/* 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":81004,"date":"2026-05-23T05:37:49","date_gmt":"2026-05-23T05:37:49","guid":{"rendered":"https:\/\/klecet.edu.in\/alumni\/?p=81004"},"modified":"2026-05-23T05:37:51","modified_gmt":"2026-05-23T05:37:51","slug":"oferujemy-wszystko-jak-klasycznych-slotow-przyjecia-urzekajace-gry-na-zywo-ktorzy-maja-jackpotami-progresywnymi","status":"publish","type":"post","link":"http:\/\/klecet.edu.in\/alumni\/oferujemy-wszystko-jak-klasycznych-slotow-przyjecia-urzekajace-gry-na-zywo-ktorzy-maja-jackpotami-progresywnymi\/","title":{"rendered":"Oferujemy wszystko jak klasycznych slotow przyjecia urzekajace gry na zywo ktorzy maja jackpotami progresywnymi"},"content":{"rendered":"

Promujemy Gates of Olympus<\/a> odpowiedzialna gre jest niezbedny element w naszym dzialania. Nasze wlasne obstawianie zaleza od certyfikowanych dostawcow i zatrudniaja kompetencja RNG (Random Number Zrodlo). Wlaczyc z Curacao to obietnica, jednego wszystkie nasze przedsiebiorstwa hazardowe bezpieczne spelnia kryteria polacz ochrony funduszy graczy. Nasza program funkcja jak 2021 sezonu a potem i zdobyla przekonanie mnostwo polskich graczy.<\/p>\n

W stalych graczy zapewniamy cashback z dwanascie% przegranych zakladow. W przypadku, Ice Casino dziala w Polsce, ma tendencje oferuje reklama, fillip i mozesz ekstra zapewnia ci spersonalizowane do potrzeb polskich graczy. ?? Jesli na Ice Casino ktore sa oferowane probuje jakies kampanie lub moze wlasnie premia w polskich graczy?<\/p>\n

Aplikacja kasynowa mowi o dostawa do okolo 4000 gier, a takze slotow, gier stolowych i mozesz kasyno na zywo. System okazalo sie, ze zoptymalizowana pochylony urzadzen mobilnych, umozliwianie plynace doswiadczenie hazardowe w kazdym miejscu. Nasza platforma polityczna wspiera szerokie metody transakcji, kiedys tradycyjnych sciezka kontynuowaniu najnowsze kryptowaluty. Oferujemy a takze demonstracja gra wideo za darmo, pozwalajace eksperymentowac automaty do gier przed gra z prawdziwy dochod.<\/p>\n

Zapewniamy naprawde imponujaca kolekcje slotow siec z Polsce<\/h2>\n

Ice Casino Polska rowniez zapewnia setki gier kasynowych, live casino posiadanie prawdziwymi krupierami, bonusy powitalne i mozesz bezpieczne inwestowania siec. Niezwlocznie nie zapewniamy dedykowanej uzywa, jeszcze nasza strona mobilna dziala perfekcyjnie na ze wszystkich urzadzeniach ktorzy maja organizmem ios firmy Apple i mozesz Mechanik. BakaratTa stronniczosc obstawianie karciana obsluga jest wlasciwie a moze do forma wirtualnej, od i bedziesz ktorzy maja prawdziwymi krupierami. Mozesz skorzystac z zrelaksowac sie i grac zarowno do posty RNG (z komputerowym rozdajacym), jak i ktorzy maja prawdziwymi krupierami z sekcji przetrzymaj.<\/p>\n

Miejmy nadzieje wiec to szczegolowe wprowadzenie pozwolilo panstwu lepiej zapoznac sie z nasza marke oraz przekonania ktorymi kierujemy sie na codziennej pracowac dla. Jestesmy dumni ktorzy maja faktu ty do nasi zawodowi sportowcy oceniaja nasze wlasne systemy wydatkow stawac sie jedne posiadanie najstabilniejszych w calej sieci po prostu co motywuje USA. na dalszej pracy wzdluz ich udoskonalaniem. Ice casino stawia na klarownosc transakcji tak duzo ograniczenia oraz szansa przetwarzania jest podane w sposob widoczny dla wszystkich zainteresowanego wlasciciela. Kazda wyplata wygranych srodkow jest dla wy priorytetem od zdajemy sobie sprawe ty na pewno przyjemnosc ktorzy maja sukcesu sa najpelniejsza gdy waluta szybko trafiaja z panstwa prywatne ranking. Prawidlowe porozumienie finansami to odpowiedz na spokojnej i udanej szczescia tak oferujemy panstwu szeroki wybor kanalow platniczych ktore sa znane i cenione na polskim rynku. Dokladnie w tym samym czasie oferujemy panstwu szereg narzedzi wspierajacych odpowiedzialne sposoby na hazardu ktore sa oferowane bezposrednio w panelu uzytkownika.<\/p>\n

Procesy weryfikacji jest zaprojektowany jak, produkowac zabezpieczac zarowno gracza, od i mozesz kasyna, zapewniajac, jednego do wszystkie minuty bylo jak rowniez odpowiedzialne. Ice Casino oni Eden do milosnikow kasyn do Polsce, dostarczajac bezprecedensowe ekspertyza w grach, i dlatego zaczyna sie od prostego i mozesz bezpiecznego procedury szukania. Popularnym elementem zapewni ci sa Drops & Wins Icecasino – przyziemne i mozesz cotygodniowe losowania nagrod do zakres grach slotowych i mozesz na zywo. Od kazda platforma hazardowa siec, Ice casino pl miec zarowno cechy, jak i bedziesz potwierdzone ograniczenia, mowia warte zachodu widziec przed rejestracja.<\/p>\n

Regularnie organizujemy jak mozesz turnieje slotowe posiadanie imponujacymi pulami nagrod, i dlatego dodaja unikalne odczuwanie na standardowej rozgrywki<\/h2>\n

Z dodatkowy powitalny przyjac i albo zwyklych graczy, poniewaz i mozesz graczy kasyn internet z wysokimi stawkami. Ice kasyno oni leczenie miejsce, aby widziec grami kasynowymi online z prawdziwa gotowka. Dla tych, ktorzy maja komplikacjami gra do Ice kasyno, najwazniejszym czynnikiem, ktora powinienes zrobic, sa wymeldowanie profile ktorzy maja bedzie zadawanymi pytaniami. Ice przedsiebiorstwa hazardowe to wlasciwy wybor, jesli chcesz aby sobie poradzic w drodze, taki jak jest, latwy w uzyciu a jednak sie duzo.<\/p>\n

Ice Casino ma faktycznie przejrzyste i mozesz rozsadne wymagania korzystania z bonusu bez depozytu, po prostu co czyni go atrakcyjnym wyborem w polskich graczy. Oprocz tego, casino filip bez depozytu ma tendencje towarzysza bezplatne spiny, ktore sa ogolnie przydzielone do wybranych automatach. Ten rodzaj tekst cieszy sie przeglad Ice Casino, oferujac faktach o rejestracji, bonusach, bonus bez depozytu, grach i mozesz metodach platnosci. Ktorzy maja szeroka gama gier, a takze slotow i gier przetrzymaj, oraz atrakcyjnymi bonusami, Ice Casino posiada niezapomniane depresja. Bardzo rejestracja potrzeby od klienta, dostac on wczesniej osiagniety osiemnasty rok zycia.<\/p>\n","protected":false},"excerpt":{"rendered":"

Promujemy Gates of Olympus odpowiedzialna gre jest niezbedny element w naszym dzialania. Nasze wlasne obstawianie zaleza od certyfikowanych dostawcow i zatrudniaja kompetencja RNG (Random Number Zrodlo). Wlaczyc z Curacao to obietnica, jednego wszystkie nasze przedsiebiorstwa hazardowe bezpieczne spelnia kryteria polacz ochrony funduszy graczy. Nasza program funkcja jak 2021 sezonu a\u2026<\/p>\n

Continue reading<\/span><\/i><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-81004","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/81004","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/comments?post=81004"}],"version-history":[{"count":1,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/81004\/revisions"}],"predecessor-version":[{"id":81005,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/81004\/revisions\/81005"}],"wp:attachment":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/media?parent=81004"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/categories?post=81004"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/tags?post=81004"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}