/* Widget Name: Button Description: Create a custom button with flexible styling, icon support, and click tracking functionality. Author: SiteOrigin Author URI: https://siteorigin.com Documentation: https://siteorigin.com/widgets-bundle/button-widget-documentation/ Keywords: event, icon, link */ class SiteOrigin_Widget_Button_Widget extends SiteOrigin_Widget { public function __construct() { parent::__construct( 'sow-button', __( 'SiteOrigin Button', 'so-widgets-bundle' ), array( 'description' => __( 'Create a custom button with flexible styling, icon support, and click tracking functionality.', 'so-widgets-bundle' ), 'help' => 'https://siteorigin.com/widgets-bundle/button-widget-documentation/', ), array( ), false, plugin_dir_path( __FILE__ ) ); } public function get_settings_form() { return array( 'responsive_breakpoint' => array( 'type' => 'measurement', 'label' => __( 'Responsive Breakpoint', 'so-widgets-bundle' ), 'default' => '780px', 'description' => __( 'This setting controls when the Mobile Align setting will be used. The default value is 780px.', 'so-widgets-bundle' ), ), ); } public function initialize() { $this->register_frontend_styles( array( array( 'sow-button-base', plugin_dir_url( __FILE__ ) . 'css/style.css', array(), SOW_BUNDLE_VERSION, ), ) ); } public function get_widget_form() { return array( 'text' => array( 'type' => 'text', 'label' => __( 'Button Text', 'so-widgets-bundle' ), ), 'url' => array( 'type' => 'link', 'label' => __( 'Destination URL', 'so-widgets-bundle' ), 'allow_shortcode' => true, ), 'new_window' => array( 'type' => 'checkbox', 'default' => false, 'label' => __( 'Open in a new window', 'so-widgets-bundle' ), ), 'download' => array( 'type' => 'checkbox', 'default' => false, 'label' => __( 'Download', 'so-widgets-bundle' ), 'description' => __( 'The Destination URL will be downloaded when a user clicks on the button.', 'so-widgets-bundle' ), ), 'button_icon' => array( 'type' => 'section', 'label' => __( 'Icon', 'so-widgets-bundle' ), 'fields' => array( 'icon_selected' => array( 'type' => 'icon', 'label' => __( 'Icon', 'so-widgets-bundle' ), ), 'icon_color' => array( 'type' => 'color', 'label' => __( 'Icon Color', 'so-widgets-bundle' ), ), 'icon' => array( 'type' => 'media', 'label' => __( 'Image Icon', 'so-widgets-bundle' ), 'description' => __( 'Replaces the icon with your own image icon.', 'so-widgets-bundle' ), ), 'icon_placement' => array( 'type' => 'select', 'label' => __( 'Icon Placement', 'so-widgets-bundle' ), 'default' => 'left', 'options' => array( 'top' => __( 'Top', 'so-widgets-bundle' ), 'right' => __( 'Right', 'so-widgets-bundle' ), 'bottom' => __( 'Bottom', 'so-widgets-bundle' ), 'left' => __( 'Left', 'so-widgets-bundle' ), ), ), ), ), 'design' => array( 'type' => 'section', 'label' => __( 'Design and Layout', 'so-widgets-bundle' ), 'hide' => true, 'fields' => array( 'width' => array( 'type' => 'measurement', 'label' => __( 'Width', 'so-widgets-bundle' ), 'description' => __( 'Leave blank to let the button resize according to content.', 'so-widgets-bundle' ), ), 'align' => array( 'type' => 'select', 'label' => __( 'Align', 'so-widgets-bundle' ), 'default' => 'center', 'options' => array( 'left' => __( 'Left', 'so-widgets-bundle' ), 'right' => __( 'Right', 'so-widgets-bundle' ), 'center' => __( 'Center', 'so-widgets-bundle' ), 'justify' => __( 'Full Width', 'so-widgets-bundle' ), ), ), 'mobile_align' => array( 'type' => 'select', 'label' => __( 'Mobile Align', 'so-widgets-bundle' ), 'default' => 'center', 'options' => array( 'left' => __( 'Left', 'so-widgets-bundle' ), 'right' => __( 'Right', 'so-widgets-bundle' ), 'center' => __( 'Center', 'so-widgets-bundle' ), 'justify' => __( 'Full Width', 'so-widgets-bundle' ), ), ), 'theme' => array( 'type' => 'select', 'label' => __( 'Button Theme', 'so-widgets-bundle' ), 'default' => 'flat', 'options' => array( 'atom' => __( 'Atom', 'so-widgets-bundle' ), 'flat' => __( 'Flat', 'so-widgets-bundle' ), 'wire' => __( 'Wire', 'so-widgets-bundle' ), ), ), 'button_color' => array( 'type' => 'color', 'label' => __( 'Button Color', 'so-widgets-bundle' ), ), 'text_color' => array( 'type' => 'color', 'label' => __( 'Text Color', 'so-widgets-bundle' ), ), 'hover' => array( 'type' => 'checkbox', 'default' => true, 'label' => __( 'Use hover effects', 'so-widgets-bundle' ), 'state_emitter' => array( 'callback' => 'conditional', 'args' => array( 'hover[show]: val', 'hover[hide]: ! val', ), ), ), 'hover_background_color' => array( 'type' => 'color', 'label' => __( 'Hover Background Color', 'so-widgets-bundle' ), 'state_handler' => array( 'hover[show]' => array( 'show' ), 'hover[hide]' => array( 'hide' ), ), ), 'hover_text_color' => array( 'type' => 'color', 'label' => __( 'Hover Text Color', 'so-widgets-bundle' ), 'state_handler' => array( 'hover[show]' => array( 'show' ), 'hover[hide]' => array( 'hide' ), ), ), 'font' => array( 'type' => 'font', 'label' => __( 'Font', 'so-widgets-bundle' ), 'default' => 'default', ), 'font_size' => array( 'type' => 'measurement', 'label' => __( 'Font Size', 'so-widgets-bundle' ), 'default' => '1em', ), 'icon_size' => array( 'type' => 'measurement', 'label' => __( 'Icon Size', 'so-widgets-bundle' ), 'default' => '1.3em', ), 'padding' => array( 'type' => 'measurement', 'label' => __( 'Padding', 'so-widgets-bundle' ), 'default' => '1em', ), 'rounding' => array( 'type' => 'multi-measurement', 'label' => __( 'Rounding', 'so-widgets-bundle' ), 'default' => '0.25em 0.25em 0.25em 0.25em', 'measurements' => array( 'top' => array( 'label' => __( 'Top', 'so-widgets-bundle' ), ), 'right' => array( 'label' => __( 'Right', 'so-widgets-bundle' ), ), 'bottom' => array( 'label' => __( 'Bottom', 'so-widgets-bundle' ), ), 'left' => array( 'label' => __( 'Left', 'so-widgets-bundle' ), ), ), ), ), ), 'attributes' => array( 'type' => 'section', 'label' => __( 'Other Attributes and SEO', 'so-widgets-bundle' ), 'hide' => true, 'fields' => array( 'id' => array( 'type' => 'text', 'label' => __( 'Button ID', 'so-widgets-bundle' ), 'description' => __( 'An ID attribute allows you to target this button in JavaScript.', 'so-widgets-bundle' ), ), 'classes' => array( 'type' => 'text', 'label' => __( 'Button Classes', 'so-widgets-bundle' ), 'description' => __( 'Additional CSS classes added to the button link.', 'so-widgets-bundle' ), ), 'title' => array( 'type' => 'text', 'label' => __( 'Title Attribute', 'so-widgets-bundle' ), 'description' => __( 'Adds a title attribute to the button link.', 'so-widgets-bundle' ), ), 'on_click' => array( 'type' => 'text', 'label' => __( 'Onclick', 'so-widgets-bundle' ), 'description' => __( 'Run this JavaScript when the button is clicked. Ideal for tracking.', 'so-widgets-bundle' ), 'onclick' => true, ), 'rel' => array( 'type' => 'text', 'label' => __( 'Rel Attribute', 'so-widgets-bundle' ), 'description' => __( 'Adds a rel attribute to the button link.', 'so-widgets-bundle' ), ), ), ), ); } public function get_style_name( $instance ) { if ( empty( $instance['design']['theme'] ) ) { return 'atom'; } return $instance['design']['theme']; } /** * Get the variables for the Button Widget. * * @return array */ public function get_template_variables( $instance, $args ) { $button_attributes = array(); $attributes = $instance['attributes']; $classes = ! empty( $attributes['classes'] ) ? $attributes['classes'] : ''; if ( ! empty( $classes ) ) { $classes .= ' '; } $classes .= 'sowb-button ow-icon-placement-' . $instance['button_icon']['icon_placement']; if ( ! empty( $instance['design']['hover'] ) ) { $classes .= ' ow-button-hover'; } $button_attributes['class'] = implode( ' ', array_map( 'sanitize_html_class', explode( ' ', $classes ) ) ); if ( ! empty( $instance['new_window'] ) ) { $button_attributes['target'] = '_blank'; $button_attributes['rel'] = 'noopener noreferrer'; } if ( ! empty( $instance['download'] ) ) { $button_attributes['download'] = null; } if ( ! empty( $attributes['id'] ) ) { $button_attributes['id'] = $attributes['id']; } if ( ! empty( $attributes['title'] ) ) { $button_attributes['title'] = $attributes['title']; } if ( ! empty( $attributes['rel'] ) ) { if ( isset( $button_attributes['rel'] ) ) { $button_attributes['rel'] .= " $attributes[rel]"; } else { $button_attributes['rel'] = $attributes['rel']; } } $icon_image_url = ''; if ( ! empty( $instance['button_icon']['icon'] ) ) { $attachment = wp_get_attachment_image_src( $instance['button_icon']['icon'] ); if ( ! empty( $attachment ) ) { $icon_image_url = $attachment[0]; } } return array( 'button_attributes' => apply_filters( 'siteorigin_widgets_button_attributes', $button_attributes, $instance ), 'href' => ! empty( $instance['url'] ) ? $instance['url'] : '', 'on_click' => ! empty( $attributes['on_click'] ) ? $attributes['on_click'] : '', 'align' => $instance['design']['align'], 'icon_image_url' => $icon_image_url, 'icon' => $instance['button_icon']['icon_selected'], 'icon_color' => $instance['button_icon']['icon_color'], 'text' => $instance['text'], ); } /** * Get the variables that we'll be injecting into the less stylesheet. * * @return array */ public function get_less_variables( $instance ) { if ( empty( $instance ) || empty( $instance['design'] ) ) { return array(); } $text_color = isset( $instance['design']['text_color'] ) ? $instance['design']['text_color'] : ''; $button_color = isset( $instance['design']['button_color'] ) ? $instance['design']['button_color'] : ''; $less_vars = array( 'button_width' => isset( $instance['design']['width'] ) ? $instance['design']['width'] : '', 'button_color' => $button_color, 'text_color' => $text_color, 'icon_size' => ! empty( $instance['design']['icon_size'] ) ? $instance['design']['icon_size'] : '1.3em', 'hover_text_color' => ! empty( $instance['design']['hover_text_color'] ) ? $instance['design']['hover_text_color'] : $text_color, 'hover_background_color' => ! empty( $instance['design']['hover_background_color'] ) ? $instance['design']['hover_background_color'] : $button_color, 'font_size' => isset( $instance['design']['font_size'] ) ? $instance['design']['font_size'] : '', 'rounding' => isset( $instance['design']['rounding'] ) ? $instance['design']['rounding'] : '', 'padding' => isset( $instance['design']['padding'] ) ? $instance['design']['padding'] : '', 'has_text' => empty( $instance['text'] ) ? 'false' : 'true', 'responsive_breakpoint' => $this->get_global_settings( 'responsive_breakpoint' ), 'align' => ! empty( $instance['design']['align'] ) ? $instance['design']['align'] : 'center', 'mobile_align' => ! empty( $instance['design']['mobile_align'] ) ? $instance['design']['mobile_align'] : 'center', 'has_button_icon' => empty( $instance['button_icon']['icon_selected'] ) ? 'false' : 'true', ); if ( ! empty( $instance['design']['font'] ) ) { $font = siteorigin_widget_get_font( $instance['design']['font'] ); $less_vars['button_font'] = $font['family']; if ( ! empty( $font['weight'] ) ) { $less_vars['button_font_weight'] = $font['weight_raw']; $less_vars['button_font_style'] = $font['style']; } } return $less_vars; } /** * Make sure the instance is the most up to date version. * * @return mixed */ public function modify_instance( $instance ) { if ( empty( $instance ) ) { return array(); } $migrate_props = array( 'button_icon' => array( 'icon_selected', 'icon_color', 'icon', ), 'design' => array( 'align', 'theme', 'button_color', 'text_color', 'hover', 'hover_text_color', 'hover_background_color', 'font_size', 'rounding', 'padding', ), 'attributes' => array( 'id', ), ); foreach ( $migrate_props as $prop => $sub_props ) { if ( empty( $instance[ $prop ] ) ) { $instance[ $prop ] = array(); foreach ( $sub_props as $sub_prop ) { if ( isset( $instance[ $sub_prop ] ) ) { $instance[ $prop ][ $sub_prop ] = $instance[ $sub_prop ]; unset( $instance[ $sub_prop ] ); } } } } // Migrate onclick setting to prevent Wordfence flag. if ( ! empty( $instance['attributes'] ) && ! empty( $instance['attributes']['onclick'] ) ) { $instance['attributes']['on_click'] = $instance['attributes']['onclick']; } // If the mobile_align setting isn't set, set it to the same value as the align value. if ( ! empty( $instance['design'] ) && ! empty( $instance['design']['align'] ) && empty( $instance['design']['mobile_align'] ) ) { $instance['design']['mobile_align'] = $instance['design']['align']; } // Migrate predefined settings to more customizable settings. if ( ! empty( $instance['design']['font_size'] ) && is_numeric( $instance['design']['font_size'] ) ) { $instance['design']['font_size'] .= 'em'; } if ( ! empty( $instance['design']['padding'] ) && is_numeric( $instance['design']['padding'] ) ) { $instance['design']['padding'] .= 'em'; } if ( ! empty( $instance['design']['rounding'] ) && is_numeric( $instance['design']['rounding'] ) ) { $instance['design']['rounding'] = $instance['design']['rounding'] . 'em ' . $instance['design']['rounding'] . 'em ' . $instance['design']['rounding'] . 'em ' . $instance['design']['rounding'] . 'em'; } if ( empty( $instance['design']['icon_size'] ) ) { $instance['design']['icon_size'] = '1.3em'; } return $instance; } public function get_form_teaser() { if ( class_exists( 'SiteOrigin_Premium' ) ) { return false; } return array( sprintf( __( 'Add a beautiful tooltip to the Button Widget with %sSiteOrigin Premium%s', 'so-widgets-bundle' ), '', '' ), ); } } siteorigin_widget_register( 'sow-button', __FILE__, 'SiteOrigin_Widget_Button_Widget' );{"id":145151,"date":"2026-06-12T11:12:50","date_gmt":"2026-06-12T11:12:50","guid":{"rendered":"https:\/\/klecet.edu.in\/alumni\/?p=145151"},"modified":"2026-06-12T11:12:50","modified_gmt":"2026-06-12T11:12:50","slug":"turniej-szachowy-wait-aviamasters-slot-gra-planszowa-w-polsce","status":"publish","type":"post","link":"http:\/\/klecet.edu.in\/alumni\/turniej-szachowy-wait-aviamasters-slot-gra-planszowa-w-polsce\/","title":{"rendered":"Turniej Szachowy Wait Aviamasters Slot Gra Planszowa w Polsce"},"content":{"rendered":"
\n\"Avia<\/p>\n

Aviamasters Slot to nietypowa plansz\u00f3wka, kt\u00f3ra miesza szachow\u0105 strategi\u0119 z \u017cywio\u0142ow\u0105 rozgrywk\u0105 zanurzon\u0105 w \u015bwiecie lotnictwa https:\/\/aviamastersslot.org.pl\/<\/a>. W Polsce pozyskuje coraz wi\u0119cej fan\u00f3w, kt\u00f3rzy wypatruj\u0105 intelektualnej rozrywki poza konwencjonalnymi \u015bcie\u017ckami. Ten tekst przygl\u0105da si\u0119 tej grze, jej funkcjonowaniu i szansom na turniejow\u0105 karier\u0119.<\/p>\n

Czym Jest Gra Planszowa Aviamasters Slot?<\/h2>\n

Aviamasters Slot to gra logiczna dla dw\u00f3ch os\u00f3b, kt\u00f3ra czerpie z szach\u00f3w i spowija to wszystko klimatem aerodynamicznych walk. Gracze kieruj\u0105 eskadrami, a ich figurami s\u0105 samoloty o zr\u00f3\u017cnicowanych umiej\u0119tno\u015bciach. Najwi\u0119ksz\u0105 nowo\u015bci\u0105 jest sk\u0142adana plansza z\u0142o\u017cona z kafelk\u00f3w \u2013 mo\u017cna j\u0105 konfigurowa\u0107 na wielorakie sposoby, co wprowadza ogromn\u0105 rozmaito\u015b\u0107 i zmusza do nieszablonowego my\u015blenia.<\/p>\n

Kluczowe regu\u0142y odnosz\u0105 si\u0119 do szachy, ale z istotnymi zmianami. Ka\u017cdy typ samolotu ma sw\u00f3j specyficzny wz\u00f3r poruszania si\u0119 i unikaln\u0105 moc. Zwyci\u0119stwo opiera si\u0119 na zamatowaniu g\u0142\u00f3wnej jednostki przeciwnika, czyli \u201eSztabowca\u201d. To po\u0142\u0105czenie klasycznej formu\u0142y ze \u015bwie\u017cymi pomys\u0142ami.<\/p>\n

Tw\u00f3rcy skupili si\u0119 na dobrym wykonaniu. Trwa\u0142e, sze\u015bciok\u0105tne kafelki, dok\u0142adne figurki samolot\u00f3w i przejrzysta instrukcja buduj\u0105 na satysfakcjonuj\u0105ce wra\u017cenia z gry. Fizyczne komponenty daj\u0105 namacalne wra\u017cenie dowodzenia strategicznej bitwy w powietrzu.<\/p>\n

Szczeg\u00f3\u0142owa Om\u00f3wienie Mechaniki Rozgrywki<\/h2>\n

Mechanika Aviamasters Slot to dobrze zaprojektowana ewolucja szach\u00f3w. Plansza z modu\u0142owych sze\u015bciok\u0105t\u00f3w daje mo\u017cliwo\u015b\u0107 przed ka\u017cd\u0105 parti\u0105 stworzy\u0107 unikalne \u201epole bitwy\u201d. Ten element losowo\u015bci zmusza do adaptacj\u0119 i uniemo\u017cliwia poleganie na zapami\u0119tanych na pami\u0119\u0107 otwarciach.<\/p>\n

System ruchu zbudowany na hexach, a nie na kwadratach, oferuje sze\u015b\u0107 kierunk\u00f3w przemieszczenia. To ca\u0142kowicie zmienia geometri\u0119 atak\u00f3w i obrony. Kontrola centrum nabiera inne, bardziej p\u0142ynne znaczenie, a skrzyd\u0142a mo\u017cna os\u0142ania\u0107 przez odpowiednie ustawienie jednostek.<\/p>\n

Zr\u00f3\u017cnicowanie Jednostek i Ich Specjalizacji<\/h3>\n

Zamiast kr\u00f3lowej, wie\u017c czy go\u0144c\u00f3w, gracze maj\u0105 do dyspozycji eskadr\u0119 samolot\u00f3w. My\u015bliwce s\u0105 szybkie, ale maj\u0105 kr\u00f3tki zasi\u0119g, bombowce przemieszczaj\u0105 si\u0119 wolniej, za to atakuj\u0105 obszarowo. Samolot zwiadowczy mo\u017ce podejrze\u0107 cz\u0119\u015b\u0107 planszy przeciwnika. Ta specjalizacja zak\u0142ada ca\u0142o\u015bciowego planowania ka\u017cdej akcji.<\/p>\n

Kluczow\u0105 figur\u0105 jest Sztabowiec, odpowiednik kr\u00f3la. Jego zestrzelenie zaka\u0144cza parti\u0119. Chocia\u017c ma ograniczony ruch, mog\u0105 go asystowa\u0107 inne maszyny. Gracz musi nieustannie r\u00f3wnowa\u017cy\u0107 mi\u0119dzy agresywnym u\u017cyciem specjalnych mocy a obowi\u0105zkiem ochrony swojej najwa\u017cniejszej jednostki.<\/p>\n

Taktyczne Znaczenie Konfiguracji Planszy<\/h3>\n

Mo\u017cliwo\u015b\u0107 uk\u0142adania planszy to kluczowa si\u0142a tej gry. Gracze mog\u0105 projektowa\u0107 w\u0105skie gard\u0142a, otwarte przestrzenie albo os\u0142oni\u0119te strefy. Wyb\u00f3r konfiguracji bezpo\u015brednio wp\u0142ywa na warto\u015b\u0107 poszczeg\u00f3lnych samolot\u00f3w, co sprawia, \u017ce faza przygotowania jest wa\u017cnym elementem strategii, jeszcze zanim padnie pierwszy ruch.<\/p>\n

Zaawansowani gracze tworz\u0105 ca\u0142e zestawy skutecznych ustawie\u0144 startowych, dopasowanych do swojego stylu gry. Niekt\u00f3re uk\u0142ady faworyzuj\u0105 szybkie ataki my\u015bliwcami, inne u\u0142atwiaj\u0105 d\u0142ugim, pozycyjnym potyczkom. Ta dodatkowa warstwa przygotowawcza dodaje Aviamasters Slot g\u0142\u0119bi por\u00f3wnywalnej z analiz\u0105 szachowych debiut\u00f3w.<\/p>\n

Przewodnik dla Pocz\u0105tkowych: Jak Rozpocz\u0105\u0107 Przygod\u0119<\/h2>\n

Opanowanie Aviamasters Slot jest mniej skomplikowana dla ludzi, kt\u00f3re ju\u017c mia\u0142y styczno\u015b\u0107 w szachy, ale przyst\u0119pna dla ka\u017cdego. Tajemnica tkwi w systematycznym opanowywaniu gry. Wst\u0119pne partie optymalnie przeprowadza\u0107 na standardowej, regularnej planszy, aby skoncentrowa\u0107 si\u0119 na nauczeniu si\u0119 manewr\u00f3w wszystkich samolot\u00f3w.<\/p>\n

    \n
  1. Poznaj swoj\u0105 eskadr\u0119:<\/strong><\/li>\n
  2. Zacznij od podstawowych konfiguracji:<\/strong><\/li>\n
  3. Chro\u0144 swojego Sztabowca:<\/strong><\/li>\n
  4. Przeanalizuj swoje partie:<\/strong><\/li>\n
  5. Pr\u00f3buj z plansz\u0105:<\/strong><\/li>\n<\/ol>\n

    Nale\u017cy te\u017c obserwowa\u0107 gry bardziej do\u015bwiadczonych graczy, na \u017cywo albo w nagraniach publikowanych przez spo\u0142eczno\u015b\u0107. To jedno z szybszych dr\u00f3g na opanowanie zaawansowanych koncepcji taktycznych.<\/p>\n

    Por\u00f3wnanie z Tradycyjnymi Szachami: Analogii i Rozbie\u017cno\u015bci<\/h2>\n

    Aviamasters Slot opiera si\u0119 na podstawach szach\u00f3w, ale dostarcza zupe\u0142nie nowe do\u015bwiadczenie. Kluczowe analogie to mechanika turowa, symboliczna natura konfliktu oraz nacisk na refleksj\u0119 strategiczne i operacyjne. Nadrz\u0119dny cel \u2013 szach-mat g\u0142\u00f3wnej figurze \u2013 zostaje ten sam.<\/p>\n

    Rozbie\u017cno\u015bci s\u0105 jednak powa\u017cne i decyduj\u0105 o odmienno\u015bci gry. Oto najwa\u017cniejsze z nich:<\/p>\n