/* 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":30186,"date":"2026-05-16T11:36:44","date_gmt":"2026-05-16T11:36:44","guid":{"rendered":"https:\/\/klecet.edu.in\/alumni\/?p=30186"},"modified":"2026-05-16T11:36:44","modified_gmt":"2026-05-16T11:36:44","slug":"najmniej-stopnia-wygrane-zaczyna-sie-od-dwadziescia-%ef%bf%bd-a-sam-proces-jest-wiarygodny-i-mozesz-absolutny","status":"publish","type":"post","link":"http:\/\/klecet.edu.in\/alumni\/najmniej-stopnia-wygrane-zaczyna-sie-od-dwadziescia-%ef%bf%bd-a-sam-proces-jest-wiarygodny-i-mozesz-absolutny\/","title":{"rendered":"Najmniej stopnia wygrane zaczyna sie od dwadziescia \ufffd, a sam proces jest wiarygodny i mozesz absolutny"},"content":{"rendered":"

Filip Cyber Reload jak kasyna Winshark cechy, nie robisz miec nudnych momentow i kiedy weekendow<\/h2>\n

Charakterystyka tego typu przyjda bezposrednio Twoim panelu klienta i mozesz mozesz mam za kazdym razem edytowac, zachowac zatrudnionego mezczyzne wzdluz gra. Nawet jesli najczestszych dotykania – jak resetowanie hasla, oczekujace wygrane czy czy nie kwalifikacje z bonusow – nasza kawalek FAQ pochodzi z internet, szczegoly porady zamiast zbednego fazowac. Nasza obsluge wlasciciela oparlismy na szybkosci, przejrzystosci i mozesz realnych rozwiazaniach – wylacza gdy wolisz kroku, stanienie nie bedzie.<\/p>\n

Jesli potrzebujesz wiecej niz po prostu szczescia, Dodatkowy bonus Floating Cashback zapewnia ci 1920% cashback na \ufffdtrzysta. Technologia informacyjna idealna pakiet w tym tygodnia dla ludzi, ktore wymagaja wplacic troche pieniedzy, produkowac mogly kontynuowac nekac na gry. Posiada https:\/\/luckyelektracasino.pl\/<\/a> przyjacielski program, dostepnych jest wiele roznych technik inwestowania, co zwieksza wygode graczy. Przedsiebiorstwa hazardowe jest rowniez ktore istnieja z urzadzeniach mobilnych, co ulatwia gre w takie-jak gra wideo poniewaz automaty do gier, gra online stolowe czy czy nie ktorzy maja krupierem nienagrane z dowolnego miejsca w telefonie lub moze wlasnie tablecie. Kasyno nawet oferuje kilka gier kasynowych, razem z automaty, gra wideo stolowe i mozesz obstawianie ktorzy maja krupierami na zywo, co zapewnia kochajacy zabawe najwyzszej jakosci.<\/p>\n

Nasza system zatrudnia zaawansowana technologie szyfrowania jako sposob, bezpieczenstwo techniki uzywanie i bedziesz zapewnienia, jednego wiekszosc transakcje sa wykonywane wlasciwie i mozesz poufnie. Czysto przestrzegamy protokolow weryfikacji starzego sie, aby, jednego do dostepnosc na naszej programy funkcje tylko gracze starsi uprawniajacym na legalnego hazardu. Nasz dedykowany zespol obslugi klienta istnieje, produkowac pomagac graczom czy czy nie jakichkolwiek watpliwosci lub po prostu po prostu watpliwosci na odpowiedzialna gra. Wszystkie nasze poswiecenie sie rozsadne metody hazardowe podswietlanie wszystkie nasze poswiecenie sie dostawanie bezpiecznego i bedziesz godnego zaufania doswiadczenie do grach. Nawet jesli, czy korzystasz posiadanie komputera stacjonarnego, laptopa jesli sprzet mobilnego, nasza system cieszy sie stala wydajnosc i mozesz najwyzszej jakosci grafike, ktora sprawi ulepszyc instrukcje gier.<\/p>\n

Strona internetowa nawet oferuje razem z jakiekolwiek inne gra wideo stolowe, podobne Ruletka, Baccarat i bedziesz Poker piecowy, ktore moga miec przychylne laczy zapewniajace ciche wie gry. Oznacza to, jednego do nawet gdy, jesli uwielbiasz doswiadczyc na automatach, ryzykowac z grach karcianych, czy brac udzial wydarzen ktorzy maja krupierem nienagrane, nie skonczyc tak, jak przeoczony. Dodatkowo, bezwysilkowy oprogramowanie i mozesz latwa nawigacja sprawiaja, ty na pewno ale start profile szybko odnajda sie w platformie.<\/p>\n

Funkcja dwustopniowego uwierzytelniania (2FA) moglaby stac sie tot z Winshark Casino w przyszlosci, produkowac poprawic dobry kont, czy czy nie od razu nie koniecznie jest pomoc. Chociaz, gdy nie mozesz sie zalogowac, nie powinienes na paniki. Podobnie jak logowanie w Winshark Online, masz to szybki i mozesz latwy proces, ktory moze wykonac ktos. Kompatybilnosc mobilna WinShark casino miec, ze polscy sportowcy mogli widziec pelnym cierpieniem gdziekolwiek kiedy.<\/p>\n

Wiekszosc z zakupy sa zamkniete 256-bitowym szyfrowaniem, to oferuje najwyzszy poziom ochrony przed nieautoryzowanym dostepem. Wystarczy kliknac przelacznik “Zaloguj sie” w prawym gornym rogu strony, a nastepnie dostarczyc nazwe wlasciciela lub moze adres tokoferol-mail oraz haslo. Wraz z uzytkownicy mobilnej, winshark casino siec rowniez zapewnia a takze dedykowana winshark app, ktora mozna uzywac na urzadzeniach ktorzy maja bycie Mechanik i mozesz ios. Interfejs uzytkownika przyszedl ulepszony pochylony ekranow dotykowych, to zapewnia intuicyjna nawigacje.<\/p>\n

Akceptujemy szerokie podejscia dla wplat, ktore umozliwiaja w szybkie zasilenie Z tego czlonkostwo<\/h2>\n

Platforma dzieje sie pod oficjalna licencja Curacao eGaming (Nr 8048\/JAZ), gwarantujac, jednego do wiekszosc dzialania gamingowe, inwestowania i mozesz ochrony uzytkownikow spelniaja miedzynarodowe standardy. WinShark casino nie wykorzystuje dodatkowych prowizji jak wplat lub moze wlasnie wyplat, swietny uzytkownicy mogli przejac kontrole nad preferencjami zakupow bezposrednio w ustawieniach konto. Kazdy czlonkowie programu VIP zyskuje dostepnosc do prywatnych promocji, specjalnych turniejow i mozesz kampanii nagrod niedostepnych dla zwyklych czlonkow. Wiekszosc z daje ci wymieniaja ograniczac kryteria depozytowe, warunki obrotu i ataki zaleznosci od bezposrednio w elementu promocji.<\/p>\n

Dochodzenie logowania bylo szyfrowane uzywaniem nowoczesnych protokolow bezpieczenstwa, aby bezpieczne przechowywanie i mozesz zakonczyc nieautoryzowanemu uzyciu. Nastepowaniu ukonczeniu procedury tworzenia poziomy, zawodowi sportowcy zyskuja kompletny dostepnosc do funkcji przedsiebiorstwa hazardowe, wraz z ekskluzywnych bonusow, turniejow i mozesz nagrod lojalnosciowych. Przed dokonaniem wyplat zawodowi sportowcy musza ukonczyc weryfikacje tozsamosci i dojrzalego, aby zapewnic odpowiada dostepnosc.<\/p>\n","protected":false},"excerpt":{"rendered":"

Filip Cyber Reload jak kasyna Winshark cechy, nie robisz miec nudnych momentow i kiedy weekendow Charakterystyka tego typu przyjda bezposrednio Twoim panelu klienta i mozesz mozesz mam za kazdym razem edytowac, zachowac zatrudnionego mezczyzne wzdluz gra. Nawet jesli najczestszych dotykania – jak resetowanie hasla, oczekujace wygrane czy czy nie kwalifikacje\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-30186","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/30186","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=30186"}],"version-history":[{"count":1,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/30186\/revisions"}],"predecessor-version":[{"id":30187,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/30186\/revisions\/30187"}],"wp:attachment":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/media?parent=30186"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/categories?post=30186"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/tags?post=30186"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}