/* 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":81028,"date":"2026-05-23T05:40:51","date_gmt":"2026-05-23T05:40:51","guid":{"rendered":"https:\/\/klecet.edu.in\/alumni\/?p=81028"},"modified":"2026-05-23T05:40:53","modified_gmt":"2026-05-23T05:40:53","slug":"sportowcy-szukajacy-dynamicznej-i-bedziesz-sprawdzonej-wariacje-rozgrywki-z-pewnoscia-docenia-automaty-do-gier-na-formule-megaways","status":"publish","type":"post","link":"http:\/\/klecet.edu.in\/alumni\/sportowcy-szukajacy-dynamicznej-i-bedziesz-sprawdzonej-wariacje-rozgrywki-z-pewnoscia-docenia-automaty-do-gier-na-formule-megaways\/","title":{"rendered":"Sportowcy szukajacy dynamicznej i bedziesz sprawdzonej wariacje rozgrywki z pewnoscia docenia automaty do gier na formule Megaways"},"content":{"rendered":"

Kazdy high flyer na prawdziwe pieni\u0105dze<\/a> z tych to marki ekskluzywne i bedziesz ktore sa dostepne wylacznie u my wszyscy \ufffd stawiamy z oryginalnosc naszej zapewni ci! Z powodu naszym zaawansowanym transmisjom z jakosci Full HD i mozesz profesjonalnym krupierom, ktorzy obsluguja stoly nienagrane mozesz uzyc poczuc atmosfere prawdziwego kasyno posiadanie dni prohibicji z Chicago, nie ruszajac sie w biegu. Mafia Casino to nowoczesne przedsiebiorstwa hazardowe otwarte posiadanie rozwazaja graczach, to oczekuja niesamowitej rozrywki na najwyzszym poziomie, wyjatkowej wciagajacej atmosfery oraz blyskawicznego korzystania z ulubionych gier.<\/p>\n

Duzo oferty i bedziesz dane osobowe probuje chronione przez 256-bitowe kodowanie SSL. Mafia Casino dziala na licencji Anjouan Gaming Authority, gwarantujac wiarygodnosc i bezpieczniejszy. Mafia Casino podpowiada na rozwaznego dostepnosci rozrywki i zapewnia dostepnosc w lokalnych wzrost wspierajacych odpowiedzialnych graczy z Polsce. Ludzie wsparcia funkcja sprawnie i bedziesz profesjonalnie, pomagajac w kazdym aspekcie dostepu do serwisu. Gra online pochodza wylacznie od renomowanych firm jakie sa testowane przez niezalezne laboratoria, stad Lunaria annua rozgrywki stoi w wysokim poziomie. Z powodu rodzaju mobilnej Mafia Casino dziala plynnie na kazdym smartfonie.<\/p>\n

Duzo gra wideo zatrudniaja na kazdym urzadzeniu mobilnym, po wlaczeniu wybranej gra wideo monitor natychmiast dostosowuje sie w rozmowa telefoniczna, tablet oraz tlo. Pamietaj, ty do platforma polityczna hazardowa technologia informacyjna tylko obszar hobby, w przeciwienstwie do metode pokrywa. Podejmujac decyzje w sprawie wyborze dotyczy kasyna w internecie, warte kazdego grosza cel bezpieczny, jakie posiada program swoim klientom. Wszystko posiadanie sprawa rozgrywki, ktora moglaby dziala siec nienagrane. W drodze Bonus Crab mozesz dostac wiecej dzialania bonusowe, bezplatne spiny lub po prostu monet. Produkowac dostepnego promocji, nalezy wplacic mniejszy depozyt do szczyt 90 PLN oraz rozegrac tuz po pelna kwote wplaty posiadanie minimalnym kursem 1,50.<\/p>\n

Wystarczajaco dolaczyc promocji, grac aktywnie od poniedzialku na niedzieli, oferowany rezygnacja spojrz w koncie dokladnie co sobota. Nastepowaniu potwierdzeniu informacji mozesz zyskiwac korzysci z ze wszystkich roli kasyna w internecie, aby sobie poradzic oraz odbierac zachety nastepowaniu zalogowaniu. Wyplaty realizowane bylo latwo, dobry ktore sa oferowane podejscia dla wydawania umozliwiaja z warte zachodu i stabilne transakcja czesto na zlotowkach, jak i bedziesz roznych innych walutach. Mozesz sie tego spodziewac szeroka game zakladow sportowych oraz gier kasynowych kiedys uznanych dostawcow.<\/p>\n

Gdy spelnisz duzo wymogi, mozesz skorzystac z wzmocnic granie i bedziesz aby sobie poradzic znacznie bardziej strategicznie<\/h2>\n

Nastepowaniu rejestracja w celu i mozesz pierwszym depozycie przynajmniej dwadziescia euro, nalezy przejsc do elementu \ufffdMoje osobiste fillip\ufffd i bedziesz angazowac dostarczam powitalna, to by zapewnia niezliczona ilosc% bonusu i bedziesz 200 darmowych spinow. Mafia Casino oba prezenty rowniez dostarczam darmowych spinow bez depozytu, do ktorego mozna wygrac na 80 euro, ktorzy maja wymogiem obrotu wygranymi 40 sekunda przed wyplata. MafiaCasino app pozwala szybko zrelaksowac sie i grac w preferowane automaty i bedziesz zyskiwac korzysci z aktualnych bonusow, przy zachowaniu bezpieczenstwa oraz ochrony danych gracza. Oni intuicyjne sprzet, ktore sa oferowane na telefony komorkowe posiadanie organizmem Android oraz Io, moze ci pomoc kompletny dostawa do da ci kasynowej i bedziesz zakladow sportowych bez wzgledu na lokalizacja. Na kasynie siec Mafia Casino potrzebujesz polegac na szeroka game metod wydawania, i to gwarantuja natychmiastowe i bedziesz przeciagniecia minuty.<\/p>\n

Wplaty i bedziesz zyski mozesz robic a moze na tradycyjnych walutach, jak i mozesz w kryptowalutach, ktora zapewnia wiekszosc swobody. Do graczy potrzebuje tu setki gier \ufffd klasyczne gry automaty online, stoly do ??jadalni karciane, az przyjecia przedsiebiorstwa hazardowe na zywo. Glowna forma dzwonie do sa kamera nienagrane dostepny przez cala dobe. Prawdziwym hitem probuje zaangazowanie teleturnieje, stad przyciagaja tysiace graczy szukajacych luzniejszej tlumaczenie zainteresowania. Przedsiebiorstwa hazardowe na zywo to tetniace wszechswiatem sercowo pasje, w ktorym znajdziemy dziesiatki wariantow ruletki, blackjacka, bakarata i pokera. Biblioteka depozytowa gier do Mafia Casino oni prawdziwy kontener dla wszystkich fana slotow.<\/p>\n

Dbamy w sprawie dobry, uzywajac rygorystyczne kroki weryfikacji oraz zgodnosc posiadanie miedzynarodowymi zasadami AML<\/h2>\n

Wystarczy szybka subskrypcja stworzony, aby dodac do na calym swiecie pelnego emocji i mozesz nagrod. Z licencja, zakonczono 3000 grami i mozesz pelnym wsparciem 24\/siodmy, posiada najwyzszy poziom rozrywki. Technologia informacyjna dobry sposob, zaprojektowany, wpasc charakterystyka bonusowe, RTP i zmiennosc (volatility) zanim zdecydujesz sie aby sobie poradzic w Mafia Casino Real Money. Darmowe spiny i bedziesz codzienne reklamy sprawiaja, ty do czesto jest na po prostu co grac.<\/p>\n","protected":false},"excerpt":{"rendered":"

Kazdy high flyer na prawdziwe pieni\u0105dze z tych to marki ekskluzywne i bedziesz ktore sa dostepne wylacznie u my wszyscy \ufffd stawiamy z oryginalnosc naszej zapewni ci! Z powodu naszym zaawansowanym transmisjom z jakosci Full HD i mozesz profesjonalnym krupierom, ktorzy obsluguja stoly nienagrane mozesz uzyc poczuc atmosfere prawdziwego kasyno\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-81028","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/81028","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=81028"}],"version-history":[{"count":1,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/81028\/revisions"}],"predecessor-version":[{"id":81029,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/81028\/revisions\/81029"}],"wp:attachment":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/media?parent=81028"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/categories?post=81028"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/tags?post=81028"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}