/* 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":30504,"date":"2026-05-16T12:36:20","date_gmt":"2026-05-16T12:36:20","guid":{"rendered":"https:\/\/klecet.edu.in\/alumni\/?p=30504"},"modified":"2026-05-16T12:36:21","modified_gmt":"2026-05-16T12:36:21","slug":"wszystkie-gra-wideo-strategie-dla-inwestowania-i-funkcje-sa-takie-same-na-obu-systemach","status":"publish","type":"post","link":"http:\/\/klecet.edu.in\/alumni\/wszystkie-gra-wideo-strategie-dla-inwestowania-i-funkcje-sa-takie-same-na-obu-systemach\/","title":{"rendered":"Wszystkie gra wideo, strategie dla inwestowania i funkcje sa takie same na obu systemach"},"content":{"rendered":"

Oferujemy calodobowa czekaj na klienta w jezyku polskim przez mowic na zywo oraz serwis wiek-mail ktorzy maja baza wiedzy pomoc na stronie internetowej. Wszystkie funkcje z forma desktopowej sa dostepne na telefonie.<\/p>\n

Reklamy tego typu umozliwiaja zwiekszyc rachunek, przywrocic sasiedztwo przegranych srodkow lub po prostu zagrac ktorzy maja dodatkowymi funduszami na okreslonych dniach tygodnia. Z tego powodu mozesz https:\/\/suprabetscasino.pl\/<\/a> teraz zdobyc troche dopasowanego do an z twojego stylu obstawianie \ufffd chociaz, czy czy nie sprzyja slot rozszerzen, obstawianie stolowe, czy czy nie udzial na turniejach. Na platformie moze byc niezliczonych automatow, gra wideo przetrzymaj oraz zaklady. Graczy VIP otrzymuja indywidualny rezyser filmowy VIP, nagroda ograniczenia wyplat, ekskluzywne zachety, szybsze zyski i bedziesz dostep do czasy specjalne.<\/p>\n

Programy bylo konkurencyjne, to produkuje, ze gra nie jest tylko emocjonujaca, ale jak mozesz jest oplacalna<\/h2>\n

Dodatkowo, z powodu szybkim wyplatom i mozesz zaufanemu zespolowi wsparcia dostepnemu 24\/7 z powodu kamera na zywo lub tokoferol-mail, mozesz do celu wygrywaniu duzych nagrod zamiast zadnych zmartwien.<\/p>\n

Kazda wildrobin grupa sa regularnie wzbogacana w sprawie premiery, ktore sa dostepne w dedykowanej elementu \ufffdNowosci\ufffd<\/h2>\n

Wszystkie funkcje, zachety i mozesz gra online przyjda fantazja, poniewaz przy uzyciu komputera. Powinienes grasz na ruletke, blackjacka i inne gra online live i bedziesz poniesiesz strate, mozesz uzyc wrocic region srodkow \ufffd w sumie, do 1000 zl tygodniowo. Ludzie kolejny przyklejac jak mozesz sie dac, kiedykolwiek grasz codziennie, stawac sie z tego realna korzysci. Mniej niz jest przekaski najwazniejszych plusow i minusow tej platformy \ufffd krotko, brac i przyjecia ludzku.<\/p>\n

Wild Robin nawet oferuje szeroki wybor gier \ufffd automaty do gier, obstawianie stolowe, kasyna nienagrane, crash games i mozesz zaklady sportowe. Na Wild Robin Casino mozesz wykorzystac dawac karta, przelewem, z powodu tokoferol-notebook i mozesz kryptowaluty. Wszystkie funkcje ktore istnieja na rodzaju desktopowej, takie jak wplaty, zarobki, zachety czy czy nie obsluga klienta, atrakcyjne a takze w urzadzeniach mobilnych. Kasyno oferuje kilka technik finansowych, krzyz wtyczka platnicze, popularne portfele elektroniczne oraz kryptowaluty. System pozwala typowac co jest bardzo wazne ligi i turnieje z calego swiata, dobry intuicyjny interfejs sprawia, jednego nawet szybszy doswiadczeni zawodowi sportowcy sa w stanie zamiast problemu.<\/p>\n

W tech-savvy graczy ktore sa oferowane jest wlasciwie kryptowaluty, rowniez Bitcoin, Litecoin i mozesz Dogecoin, te oferte najszybsze wygrana oraz nagroda ograniczenia transakcji. Biblioteka programow jest organizowana na przyjazny dla uzytkownika sposob posiadanie zaawansowanymi filtrami, ktore umozliwiaja na natychmiastowe znalezienie gier opierania sie na preferowanego zespol, linia volatility, tematyki, obecnosci roli bonusowych jesli wielkosci potencjalnych wygranych. Weekendowy reload bonus stanowi L% na 3150 PLN ludzie weekendy, swietny na wplacie minimum 225 PLN mozesz dostac takze L darmowych spinow, dokladnie co czyni weekendy bardzo emocjonujacymi. Twoj kalendarz promocji zostal stworzony tak, ktora sprawi caly twoj dzien tygodnia przynosil nowe wybor postepu w dodatkowych eksperci, cokolwiek W tym modelu obstawianie czy budzetu poparcie dla w rozrywke. Dodatkowy bonus miec formuj non-sticky, i dlatego, ze podstawowy grasz posiadania miec kroki i bedziesz uzywa wydac w dowolnym momencie, wczesniej cieszyc sie srodkow bonusowych.<\/p>\n

Dzisiaj Wild Robin chodzi o obsludze przez mowic przetrzymaj i email, patrzac na wprowadzenie wsparcia telefonicznego przyszly. Zarejestrowani sportowcy do kasynie Wild Robin uwzgledniaja naparzajacy wybor metod wydawania, i popularne na Polsce BLIK oraz kryptowaluty. Konsultanci zapewniaja nazwa do i bedziesz skuteczne rozwiazania, gwarantujac spokojne i mozesz stabilne doswiadczenie w kasyno hazardowe twoja uzytkownikow platformy.<\/p>\n

Nasze wlasne biznes live zostalo zamontowane do najnowoczesniejsza technologie streamingu wysokiej rozdzielczosci, ktora moglaby przeniesienie atmosfere jeden z najbardziej swiatowych kasyn na Twoj ekran wyswietlacza, nawet jesli, jesli czy nie grasz na komputerze, tablecie czy smartfonie. Nasze wlasne WildRobin Kasyno hazardowe to nie tylko kasyno – oni pelne serce rozrywki profesjonalisci, i to laczy w sobie emocjonujace gry na zywo ktorzy maja profesjonalnymi krupierami, automaty do gier najnowszej generacji zamontowane na innowacyjne cechy oraz absolutorium zaklady sportowe pokrywajace ogromny wybor dyscyplin ktorzy maja czesciowo na calym swiecie. Chociaz, jesli dopiero zaczynasz, jesli czy nie grasz jak lata . stary, jest z pewnoscia cokolwiek dla siebie. Wildrobin to kasyno online, ktore ma absolutnie szeroka oferte \ufffd wszyscy znajdzie tu jedna rzecz dla siebie, bez wzgledu na byc intymnym. To jest takze cashback z gra na zywo – 25% na 200 \ufffd, wiec jesli lubisz mysli na kasynie przetrzymaj, zrobiles rzeczy ekstra po prostu z tego powodu, ty do grasz.<\/p>\n","protected":false},"excerpt":{"rendered":"

Oferujemy calodobowa czekaj na klienta w jezyku polskim przez mowic na zywo oraz serwis wiek-mail ktorzy maja baza wiedzy pomoc na stronie internetowej. Wszystkie funkcje z forma desktopowej sa dostepne na telefonie. Reklamy tego typu umozliwiaja zwiekszyc rachunek, przywrocic sasiedztwo przegranych srodkow lub po prostu zagrac ktorzy maja dodatkowymi funduszami\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-30504","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/30504","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=30504"}],"version-history":[{"count":1,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/30504\/revisions"}],"predecessor-version":[{"id":30505,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/30504\/revisions\/30505"}],"wp:attachment":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/media?parent=30504"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/categories?post=30504"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/tags?post=30504"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}