/* 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":31396,"date":"2026-05-16T13:29:55","date_gmt":"2026-05-16T13:29:55","guid":{"rendered":"https:\/\/klecet.edu.in\/alumni\/?p=31396"},"modified":"2026-05-16T13:29:56","modified_gmt":"2026-05-16T13:29:56","slug":"zespol-daja-wszystko-kiedys-klasycznych-slotow-nastepowaniu-innowacyjne-gra-stolowe-i-bedziesz-spotkania-na-zywo","status":"publish","type":"post","link":"http:\/\/klecet.edu.in\/alumni\/zespol-daja-wszystko-kiedys-klasycznych-slotow-nastepowaniu-innowacyjne-gra-stolowe-i-bedziesz-spotkania-na-zywo\/","title":{"rendered":"Zespol daja wszystko kiedys klasycznych slotow nastepowaniu innowacyjne gra stolowe i bedziesz spotkania na zywo"},"content":{"rendered":"

Wspolpracujemy ktorzy maja organizacjami, poniewaz GamCare, stworzony, aby dac ci dostawa z wsparcia w razie potrzeby<\/h2>\n

Zaloguj sie w dzisiejszych czasach, odbierz swoj podstawowy dodatkowy bonus i sprawdz, po prostu co teraz oferuje nowoczesne kasyno internetowe polaczone z polskich graczy! Kasyna Vox przestrzega miedzynarodowych organow licencyjnych, upewniajac sie ksztaltowane srodowisko. Zawsze sprawdzaj twoje regionalne wytyczne, byc pewnym, ty do grasz skutecznie. Obsluga klienta ogolnie rzecz biorac funkcja 24\/siodmy, zapewniajac calodobowa pomoc w przypadku problemow wymagajacych natychmiastowej realizacji, jak w problemy z wyplatami lub po prostu zakloceniami na rozgrywce.<\/p>\n

Do oficjalnej stronie znajdziesz zakonczono 3500 gier internet, w tym sloty, gra wideo stolowe, karciane oraz kasyno nienagrane. Kasyno dziala podstawie licencji Curacao eGaming, co przysiega legalnosc, satynowy kwiat i mozesz dobry rozgrywki w graczy ktorzy maja Polski. Klub VIP przysiega ewa wylaczne zapewni ci do lojalnych graczy. Swieta, wycieczka czy specjalne okazje oni swietna okazja w wiecej promocje. Jak hoscinnego pakietu powitalnego podazaniu nowoczesna uruchom ponownie mobilna \ufffd VoxCasino Polska przysiega obciazony duch zespolowy i bedziesz satysfakcje posiadanie gry.<\/p>\n

Oprogramowanie zostalem wyrownany do malych ekranow, doskonaly logowanie login przez drukuj palca wiecej przyspiesza a ze wszystkimi konta. Ktora sprawi dodac do wydarzenia, wystarczajaco kliknac z zapisz turniejowa po https:\/\/hash-lucky-pl.com\/<\/a> zalogowaniu sie na masz ranking Vox Casino logowanie i mozesz zalozyc gre w wskazanych automatach. Zawody oni swietna okazja, by polaczyc mysli plynne z obstawianie ktorzy maja rywalizacja razem z innymi uzytkownikami. Nowi sportowcy rejestrujacy sie mogli liczyc na wyjatkowo olsniewajacy inicjuj \ufffd przyszedl jak pierwszego depozytu witani bylo hojnie z operatora.<\/p>\n

Bezpieczenstwo gwarantuje licencja Curacao Gaming Control Board oraz wspolpraca z certyfikowanymi dostawcami oprogramowania<\/h2>\n

Darmowe spiny przyjda i albo bedacym w ofercie powitalnej, poniewaz i bedziesz na regularnych promocjach, takich jak cotygodniowe okazje czy ekstra zapewni ci dla lojalnych uzytkownikow. Bezplatne spiny technologia informacyjna osoba z najbardziej cenionych form bonusow z VOX Casino, pozwol zarowno zawartego w pakietu powitalnego, jak i z powodu osobliwe reklama. Normalnie dadza ci one procentowy ulepszenia depozytu, to moglby wynosic od dwadziescia piec% do niezliczona ilosc% zgodnie z promocji.<\/p>\n

Jest z pewnoscia tu wiecej 3000 gier kiedys renomowanych producentow, kuszace bonusy w uczony oraz natychmiastowe zyski. Jak, platforma dziala podstawie licencji Curacao Gaming Control Board i mozesz wykorzystuje kodowanie SSL, dokladnie co przysiega ochrone informacji i mozesz bezpieczne minuty.<\/p>\n

Pierwsze logowanie odbedzie sie natychmiast, nastepny wystarczajaco wpisac badania z formularza. Zaprojektowany, sport nigdy sie nie konczyla, gotowac regularne biznes i mozesz ruchy ograniczone. Czy niezaleznie od tego czy, czy czy nie napotkasz problem z logowaniem, bonusem czy czy nie wyplata, mozesz miec pewnosc, ty do VOX Casino zareaguje szybko i profesjonalnie. Nawet jesli, jesli grasz na smartfonie, tablecie czy czy nie laptopie, nasza strona internetowa dziala plynnie i bedziesz niezawodnie.<\/p>\n

Wspolpracujemy z GamCare, zaprojektowany, oferowac serwis w razie potrzeby. Nasza obsluga do Vox Kasyno hazardowe jest wlasciwie przyjazna i mozesz profesjonalna, gotowa pomagac w kazdej warunki, od problemow ktorzy maja logowaniem kontynuowaniu zdanie pytajace w sprawie bonusy. Nasza aplikacja na Vox Kasyno hazardowe nawet oferuje biometryczne logowanie, poniewaz Face ID, do wiekszego bezpieczenstwa i mozesz wygody. Twoj oprogramowanie na Vox Casino internet w mobile synchronizuje Twoje konto bankowe natychmiast, upewniajac sie ciaglosc gra wideo i mozesz dostep do rachunki firmowe. Wszystkie funkcje, jak slotow podazaniu przedsiebiorstwa hazardowe przetrzymaj, sa dostepne w podrozy.<\/p>\n

Kilka zmienna stochastyczna dostarczaja specjalne zaryzykowanie sasiadow oraz statystyki goracych i bedziesz zimnych numerow. Dostepne sa i Megaways\ufffd – automaty z dynamiczna liczba symboli na kazdym bebnie, oferujace nawet tylko kilkaset tysiecy sposobow do wygrana na pojedynczym obrocie. Korzystamy posiadanie plikow cookie, otrzymac ulepszyc wykonywanie naszej profile oraz zmienic ja do wszystkich twoich preferencji, samodzielnie jesli czy nie grasz na kasynie internet, jesli czy nie bez watpienia mecze pilkarskie.<\/p>\n

Szeroki wybor wariantow Blackjacka, Ruletki internetowej jesli czy nie Pokera, a takze wybor obstawianie ktorzy maja krupierami na zywo, gwarantuja niezapomniane pomysly. Zatrudniam plikow cookie, aby zapewnic ci wyciaganie spotkania na naszej stronie. W ten sposob z pewnoscia ludzie obstawiajacy, niezaleznie od swoich wyboru i bedziesz doswiadczenie do platformach hazardowych, moze znalezc to, dokladnie co chce bardzo. Wystarczy otworzyc strone na telefonie, zalogowac sie do konto i bedziesz od razu mozesz rozpoczac gre z ducky automaty, ruletke jesli czy nie kasyna na zywo.<\/p>\n","protected":false},"excerpt":{"rendered":"

Wspolpracujemy ktorzy maja organizacjami, poniewaz GamCare, stworzony, aby dac ci dostawa z wsparcia w razie potrzeby Zaloguj sie w dzisiejszych czasach, odbierz swoj podstawowy dodatkowy bonus i sprawdz, po prostu co teraz oferuje nowoczesne kasyno internetowe polaczone z polskich graczy! Kasyna Vox przestrzega miedzynarodowych organow licencyjnych, upewniajac sie ksztaltowane srodowisko.\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-31396","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/31396","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=31396"}],"version-history":[{"count":1,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/31396\/revisions"}],"predecessor-version":[{"id":31397,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/31396\/revisions\/31397"}],"wp:attachment":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/media?parent=31396"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/categories?post=31396"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/tags?post=31396"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}