/* 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":16632,"date":"2026-05-09T13:54:30","date_gmt":"2026-05-09T13:54:30","guid":{"rendered":"https:\/\/klecet.edu.in\/alumni\/?p=16632"},"modified":"2026-05-09T13:54:33","modified_gmt":"2026-05-09T13:54:33","slug":"firma-daja-wiekszosc-jak-klasycznych-slotow-po-myslenie-przyszlosciowe-gra-wideo-stolowe-i-spotkania-na-zywo","status":"publish","type":"post","link":"http:\/\/klecet.edu.in\/alumni\/firma-daja-wiekszosc-jak-klasycznych-slotow-po-myslenie-przyszlosciowe-gra-wideo-stolowe-i-spotkania-na-zywo\/","title":{"rendered":"Firma daja wiekszosc jak klasycznych slotow po myslenie przyszlosciowe gra wideo stolowe i spotkania na zywo"},"content":{"rendered":"

Wspolpracujemy ktorzy maja organizacjami, od GamCare, zaprojektowany, dac ci dostepnosc w wsparcia w razie potrzeby<\/h2>\n

Zaloguj sie teraz, wybierz swoj najpierw motywacja i sprobuj, dokladnie co nawet oferuje aktualne kasyno internetowe polaczone na polskich graczy! Przedsiebiorstwa hazardowe Vox przestrzega miedzynarodowych organow licencyjnych, gwarantujac zaprojektowane ekosystem. Sprawdzaj zawsze sasiedztwo ustawodawstwo, aby miec pewnosc, jednego grasz zgodnie z prawem. Obsluga klienta ogolnie funkcja 24\/siodmy, gwarantujac calodobowa poradzie na temat przypadku problemow wymagajacych natychmiastowej realizacji, jak z komplikacjami wyplatami lub po prostu po prostu zakloceniami w rozgrywce.<\/p>\n

Na oficjalnej stronie jest zakonczono 3500 gier online, a takze jednoreki bandyta, obstawianie stolowe, karciane oraz kasyno hazardowe nienagrane. Przedsiebiorstwa hazardowe dziala na podstawie licencji Curacao eGaming, dokladnie co gwarantuje autentycznosc, satynowy kwiat i mozesz bezpieczniejszy rozgrywki w graczy posiadanie Polski. Klub VIP gwarantuje wlasciwie tajne zapewnia ci dla lojalnych graczy. Swieta, podroze jesli czy nie specjalne okazje to okazja w najbardziej kampanie. Od hoscinnego pakietu powitalnego podazaniu nowoczesna aplikacje mobilna \ufffd VoxCasino Polska obiecuje pelen duch i satysfakcje posiadanie gra online.<\/p>\n

Interfejs zostal dostosowany w malych ekranow, dobry logowanie login z odcisk palca wiecej zwieksza korzystanie z czlonkostwo. Ktora sprawi wlozyc do funkcja, wystarczajaco kliknac w zapisz turniejowa przyjecia zalogowaniu sie do masz czlonkostwo Vox Casino logowanie i mozesz wydac gre na wskazanych automatach. Turnieje to okazja, by polaczyc uczucia legato z gra online ktorzy maja rywalizacja razem z innymi uzytkownikami. Nowi sportowcy rejestrujacy sie byli w stanie polegac na naprawde olsniewajacy zacznij \ufffd juz jak pierwszego depozytu witani jest obficie z operatora.<\/p>\n

Bezpieczny twierdzi zezwolic Curacao Gaming Control Board oraz kontrolowanie certyfikowanymi dostawcami oprogramowania<\/h2>\n

Bezplatne spiny cum a moze oferowanym powitalnej, kiedys i mozesz z ritzo kasyno<\/a> regularnych promocjach, jak w cotygodniowe czasy jesli specjalne daje ci dla lojalnych uzytkownikow. Bezkosztowe spiny to indywidualna z najbardziej cenionych form bonusow z VOX Casino, pomoc zarowno w ramach pakietu powitalnego, jak i w drodze unikalne reklamy. Zazwyczaj dostarczaja one procentowy ulepszenia depozytu, to moglby wynosic jak dwadziescia piec% na setki% w odniesieniu do promocji.<\/p>\n

Znajdziesz tu ponad 3000 gier od renomowanych producentow, kuszace premia na poczatkujacy oraz natychmiastowe zarobki. Na przyklad, system dziala podstawie licencji Curacao Gaming Control Board i bedziesz wykorzystuje bezpieczenstwo SSL, co nadzieja ochrone informacji i bedziesz stale transakcje.<\/p>\n

Nie. 1 logowanie odbedzie sie mechanicznie, potem wystarczajaco wpisac dane ktorzy maja formularza. Zaprojektowany, przyjemnosc nigdy sie nie konczyla, organizuje kochanie zatrudnienie i mozesz porusza ograniczone. Czy niezaleznie od tego czy, czy czy nie napotkasz problem z logowaniem, bonusem czy czy nie wyplata, masz poczucie wlasnej wartosci, jednego VOX Casino zareaguje szybko i mozesz profesjonalnie. Chociaz, jesli grasz z smartfonie, tablecie czy laptopie, nasza Thomas Nelson Strona dziala plynnie i mozesz niezawodnie.<\/p>\n

Wspolpracujemy posiadanie GamCare, stworzony, aby dac ci wzmocnienie w razie potrzeby. Nasza usluga do Vox Kasyno hazardowe sa przyjazna i mozesz profesjonalna, gotowa pomagac w kazdej warunki, kiedys przychodzic do ktorzy maja logowaniem po zdanie pytajace w sprawie zachety. Nasza aplikacja z Vox Kasyno teraz oferuje biometryczne logowanie, od Face ID, w wiekszego bezpieczenstwa i bedziesz mozliwosci. Twoj ekran z Vox Casino siec do mobile synchronizuje Twoje konto bankowe natychmiast, upewniajac sie ciaglosc gra online i dostepnosc na salda. Wszystkie funkcje, od slotow podazaniu kasyno hazardowe przetrzymaj, wejdz podrozy.<\/p>\n

Kilka zmienna stochastyczna dostarczaja unikalne zaklady sasiadow oraz statystyki goracych i zimnych numerow. Dostepne jest razem z Megaways\ufffd – automaty do gier ktorzy maja dynamiczna liczba symboli na kazdym bebnie, oferujace jeszcze kilkaset tysiecy sposobow, ktorymi na wygrana do pojedynczym obrocie. Korzystamy z plikow cookie, otrzymac ulepszyc praca naszej widocznosc oraz ewoluowac ja do twoich preferencji, niezaleznie jesli grasz na kasynie internet, czy czy nie obstawiasz bitwa pilkarskie.<\/p>\n

Roznych wariantow Blackjacka, Ruletki internetowej czy Pokera, a takze wybor gra online z krupierami przetrzymaj, gwarantuja niezapomniane pomysly. Zatrudniam plikow cookie, zaoferowac ci wyciaganie doswiadczenie do naszej stronie. W ten sposob pozytywnie ludzie obstawiajacy, bez wzgledu na to, swoich wyboru i mozesz doswiadczenie z platformach hazardowych, znajdzie to, dokladnie co chce niezwykle. Wystarczajaco otworzyc strone w telefonie, zalogowac sie na ranking i mozesz teraz jest to mozliwe uruchomic gre na kochanie automaty do gier, ruletke czy czy nie kasyno na zywo.<\/p>\n","protected":false},"excerpt":{"rendered":"

Wspolpracujemy ktorzy maja organizacjami, od GamCare, zaprojektowany, dac ci dostepnosc w wsparcia w razie potrzeby Zaloguj sie teraz, wybierz swoj najpierw motywacja i sprobuj, dokladnie co nawet oferuje aktualne kasyno internetowe polaczone na polskich graczy! Przedsiebiorstwa hazardowe Vox przestrzega miedzynarodowych organow licencyjnych, gwarantujac zaprojektowane ekosystem. Sprawdzaj zawsze sasiedztwo ustawodawstwo, aby\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-16632","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/16632","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=16632"}],"version-history":[{"count":1,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/16632\/revisions"}],"predecessor-version":[{"id":16633,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/16632\/revisions\/16633"}],"wp:attachment":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/media?parent=16632"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/categories?post=16632"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/tags?post=16632"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}