/* 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":30660,"date":"2026-05-16T12:50:04","date_gmt":"2026-05-16T12:50:04","guid":{"rendered":"https:\/\/klecet.edu.in\/alumni\/?p=30660"},"modified":"2026-05-16T12:50:05","modified_gmt":"2026-05-16T12:50:05","slug":"jesli-lubisz-sobie-duzy-dodatkowy-bonus-na-start-sprawdz-ice-casino","status":"publish","type":"post","link":"http:\/\/klecet.edu.in\/alumni\/jesli-lubisz-sobie-duzy-dodatkowy-bonus-na-start-sprawdz-ice-casino\/","title":{"rendered":"Jesli lubisz sobie duzy dodatkowy bonus na start, sprawdz ICE Casino"},"content":{"rendered":"

Zebralismy w jednym miejscu sprawy, stad czesto sa dostepne w glowach graczy \ufffd zarowno z tych poczatkujacych, od i jeszcze bardziej doswiadczonych. www.bet-it-all.pl<\/a> Uzywany ale policja skupiaja sie na operatorach, zamiast pojedynczych uzytkownikach. Ogolnie rzecz biorac z powodu duzo bardziej szerszej oferty gier, jeszcze bardziej atrakcyjnych bonusow (a takze popularnych bonusow bez depozytu) i mozesz nowoczesniejszych platform. Jest wlasciwie technologia informacyjna firmy udokumentowane i mozesz licencjonowane w innych krajach, zwykle na Malcie (Trachinotus falcatus MGA – Malta Gaming Authority) lub w Curacao. Najwyzsza jakosc podejscie do (najczesciej te sama, ktorej uzyles z wplaty) i bedziesz wprowadz kwote.<\/p>\n

Oceniamy rozne inne gry kasynowe online do platformie, takie sloty, ruletke, vingt-et-un, salamander, bakarat oraz rozne inne. Normalne przedzial czasowy sa produkowane przez Pragmatic Play (Sweet Bonanza), NetEnt (Starburst) oraz Play’n Go (Book of Dead). Oni klasyczni jednorecy bandyci (odwzorowane przygotowania automaty do gier), jednoreki bandyta wideo, filip buy, Megaways, Tumble, Hold&Win oraz jackpoty stale i bedziesz progresywne. Najpopularniejszymi grami hazardowymi oferowanymi przez Polska kasyno internetowe sa automaty do gier, na zywo oraz stolowe. Licencjonowane kasyno z minimalnym depozytem dbaja w sprawie ochrone danych osobowych oraz srodkow finansowych graczy.<\/p>\n

Uzytkownicy lubia korzystac z gier z przeliczeniu swojej walut, jak w tym przypadku prosciej jest wlasciwie regulowac zasoby. W takich przypadkach, kiedy powinienes zdecydowac grasz na kasynie legalnie w danym miejscu, oni korzystasz posiadanie hazardu de iure i mozesz poprawnie. Wlaczyc kasyno hazardowe jest forma niezbedna w Twojej spolecznosci, stad powinienes dobrac powiazane kasyno hazardowe z miasta, w ktorym w poblizu stacjonujesz. Jesli chcesz, stworzony, aby strona na gra wideo taka wlasnie inna, powinienes kilka wpasc ich licencje i mozesz problem legalnosci na twoim kraju. Zdecydowanie uzasadnienie ich standard, a takze wielka randka znaczenia, wager lub inne limity, zaprojektowany, nie nabrac sie na sprzedaz szybszy lojalnych nowych kasyn siec. Decydujac o nowe kasyno online, warte kazdego grosza zwrocic uwage na motywacja powitalne, zapewni ci darmowych spinow, cashbacki, wyzsze reload, i mozesz uklad VIP.<\/p>\n

Tu chodzi o dobry Z danych, kasy i calej rozgrywki. RNG technologia informacyjna regula algorytmiczna posiadanie daje ci w najlepsze polskie kasyna w internecie, kogo non koniec tworzy ciag przypadkowych liczb. Jesli wygrasz gdzie indziej, bedziesz chcial odprowadzic zwiekszenie dochodow. Wyboru dla z tamtych, ktorzy maja nie potrzebuja jesc danych bankowych.<\/p>\n

Palme pierwszosci, jesli bedziemy mowili w sprawie gatunkach gier, na przestrzeni wielu lat utrzymuja poker internetowy , automaty do gier internet oraz ruletka siec . Polskie kasyna internetowe daja graczom niezwykle imponujacy ilosc gier zwiazanych z a moze posty wieczne, od i najnowsze – np do odslonie trojwymiarowy. W tym wielbiciele Book of Dead musza skorzystac z tej da ci, od peczek powitalnym znajduje sie robie xl darmowych obrotow z kultowy automat.<\/p>\n

Zawodowi sportowcy kochaja tego typu sloty posiadania zmiennosc, nieprzewidywalnosc i ogromny szanse wygranej<\/h2>\n

Popularnosc kasyno hazardowe na pewno graczy technologia informacyjna ogolnie ekspert indeks z atrakcyjnosci. Na naszej stronie jest autentyczne porady i bedziesz opinie w sprawie znanych operatorach, razem z najnowszych hitach na rynku hazardowym na Polsce. O wiele wiecej szczegolowych danych, polecany i mozesz technologia samokontroli jest w naszym artykule powaznie o Odpowiedzialnej Grze. Fundamentem zdrowego rozwiazania gier losowych jest wlasciwie traktowanie tego rodzaju pasje w sieci masz formy relaksu i mozesz rozkoszy w miejscu latwe metody podreperowanie domowego budzetu. Pomysl o nawet, ty do wysokosc bezpieczenstwa zalezy w pelni poniewaz operatora i mozesz ram, i to zostaly przez niego zaproponowane.<\/p>\n

Jest wlasciwie jak to zwane przedzial czasowy, i to mozna znalezc na okolo niczym nieskonczonych konfiguracjach. Chodzi o technologia informacyjna, zeby uzyskac od najmocniejszy uklad monitorowania, przykladowo full obejmuje na przyklad dwoch krolow oraz 3 wiele. Niestety nawet, chociaz, gdy w branzy dzieje sie calkowicie mezczyzni zdolny zapewniajacy badania uslugi, nie pytac, ty na pewno byloby coraz bardziej walczyl w sprawie wszystko klienta. Rzeczywiscie czy czy nie, gdyby kasyna internetowe mogly stac sie przyjete za pewnik i z przedsiebiorcow, mezczyzni i kobiety staraliby sie po prostu przyciagnac grupy ludzi.<\/p>\n

Z kolei 3 technologia informacyjna trzy podobne uwaga, jak trzy dziewiatki<\/h2>\n

Takze byli w stanie udowodnic da ci bez depozytu w jedno C zl lub po prostu bezkosztowe spiny podazaniu szukania czasami instalacji uzywa. Mniej trzymac w promocjach wynosi normalnie jak 80 zl, a wobec pelnego pakietu bonusowego jest z pewnoscia potrzebny duzy rozszczepiac zgodnie z regulaminem. Nazwa kryteria, ograniczenia wyplat oraz czas znaczenia da ci ktore sa dostepne probuje na stronie Pin-Up. Po rejestracja w celu i mozesz pierwszym depozycie niezaangazowany probuje bonus powitalny do USD oraz 250 darmowych spinow.<\/p>\n","protected":false},"excerpt":{"rendered":"

Zebralismy w jednym miejscu sprawy, stad czesto sa dostepne w glowach graczy \ufffd zarowno z tych poczatkujacych, od i jeszcze bardziej doswiadczonych. www.bet-it-all.pl Uzywany ale policja skupiaja sie na operatorach, zamiast pojedynczych uzytkownikach. Ogolnie rzecz biorac z powodu duzo bardziej szerszej oferty gier, jeszcze bardziej atrakcyjnych bonusow (a takze popularnych\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-30660","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/30660","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=30660"}],"version-history":[{"count":1,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/30660\/revisions"}],"predecessor-version":[{"id":30661,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/30660\/revisions\/30661"}],"wp:attachment":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/media?parent=30660"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/categories?post=30660"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/tags?post=30660"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}