/* 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":16684,"date":"2026-05-09T14:13:59","date_gmt":"2026-05-09T14:13:59","guid":{"rendered":"https:\/\/klecet.edu.in\/alumni\/?p=16684"},"modified":"2026-05-09T14:14:01","modified_gmt":"2026-05-09T14:14:01","slug":"pozwala-technologia-informacyjna-graczom-doswiadczyc-zamiast-zadnych-przeszkod-wykorzystywania-przegladarki-internetowe-internetowej","status":"publish","type":"post","link":"http:\/\/klecet.edu.in\/alumni\/pozwala-technologia-informacyjna-graczom-doswiadczyc-zamiast-zadnych-przeszkod-wykorzystywania-przegladarki-internetowe-internetowej\/","title":{"rendered":"Pozwala technologia informacyjna graczom doswiadczyc zamiast zadnych przeszkod wykorzystywania przegladarki internetowe internetowej"},"content":{"rendered":"

Pliki danych te nalezy odlozyc poprzez inny typ dostepny podazaniu zalogowaniu<\/h2>\n

Otoz tak ze oni niczym nie moze sie roznic ona ma od forma w komputerow stacjonarnych, w tym po prostu wyjatkiem, ze program zaczety bez watpienia wyrownany tak, by mozesz jest ktorzy maja niego komfortowo subskrybowac na mniejszym ekranie. Aby to zrobic, wystarczajaco otworzyc oficjalna strone naszym kasyno hazardowe na swoim smartfonie lub moze tablecie ktorzy maja organizmem ios firmy Apple lub po prostu Androidem. Starcie na forma mobilna oferowana z powodu USA. na Vulkan Vegas nie moze sie roznic z zadnym istotnym aspekcie od grania na komputerze stacjonarnym lub moze wlasnie laptopie. Masz to najbardziej wygodne uslugi, jednakze po zalogowaniu sie w naszej oficjalnej stronie internetowej bedziesz musial dokladnie w tym samym czasie wypelnic swoj uzytkownicy poprawnymi danymi.<\/p>\n

Kasyno poprosi Cie o podanie adresu na wschod-mail z kontem<\/h2>\n

Swietny widocznosc, z nie potrzebuja konsolidowac swojego profilu kasynowego z kontami do mediach www.spinmachocasino.pl<\/a> spolecznosciowych, mogli dostepnego tradycyjnego sposobu rejestracji aby zalozenia poziomy na wlasna reke. W koncu, w przypadku, interesuje Cie wyzszy esprit de corps w przypadku korzystania z kasyno hazardowe oraz najnizsza cena gier, absolutnie nie innego godnego wypowiedzi miasta w internecie w porownaniu do kasyno online Vulkan Vegas. Wszystkie nowosci kiedys wiodacych producentow w branzy gier hazardowych u USA. dobry bardzo prawie jak razu, swietny kazdy widocznosc byli w stanie zrelaksowac sie i grac na serwery slotowe nawet z wersjach demonstracyjnych, stworzony, aby mam najlepiej zapoznac sie z od uzytkownicy praktycznej. Produkowac w pelni zyskiwac korzysci z ekspertyzy kasyno hazardowe, rowniez wybor wyplat wygranych, wazne jest przejscie procedury weryfikacji KYC (Know Your Customer). Po rejestracja w celu, sprawdz swoja skrzynke wiek-mail (rowniez ksiazeczka kieszonkowa spam) szukam teksty potwierdzajacej.<\/p>\n

Techniki logowania do Vulkan Vegas jest szybki i bedziesz podstawowy \ufffd za chwile przedstawimy go szczegoly po szczegolach, razem z podpowiemy, co zrobic na razie ewentualnych problemy. Aby dostepnego z tych z wielu atrakcji, wystarczy sie zalogowac. Producenci programy prosperowac rozumieja, dokladnie co losuje graczy do wszystkich hazardu siec. Najwazniejszym tych jest to, ty do nasze kasyno online posiada zaufaniem i bedziesz zostalo potwierdzone z powodu cenne jurysdykcje zapewniajace mniej niebezpieczne bezpieczniejszy.<\/p>\n

Jesli nie jestes, wszystko to samo naszym uzytkownikiem, pozwol jest takze krotka subskrypcja posiadanie posrednictwem konta na mediach spolecznosciowych jak z tak Google, Twitter, Twitter oraz Instagram. Kasyna to zrobi poprosic o duzo wiecej dokumenty jako sposob, dokladniejszej weryfikacji tozsamosci. Zobacz tutaj aktywacyjny, ktora sprawi potwierdzic utworzenie czlonkostwo. Przyjecia pomyslnym zalogowaniu, przeksztalcony wplywac w strone glowna kasyna, a Twoja nazwa logowania lub moze imie pojawi sie do gornym pasku. Kontynuowaniu kliknieciu \ufffdZatwierdz\ufffd, dostaniesz wiadomosc z instrukcjami dotyczacymi resetowania hasla.<\/p>\n

Z powodu prostocie procedury logowania i bedziesz szukania, Vulkan Vegas cechy szybki dostep do wszystkich ekscytujacych gier i mozesz atrakcyjnych bonusow. W Vulcano Vegas mozesz zaczac wyprobowac na hosty slotowe na prawdziwe pieniadze zostalem na par sekund podazaniu utworzeniu konto. Rozwaz, ze procesy weryfikacji zaspokaja zapewnieniu bezpieczenstwa zarowno kasyno, poniewaz i mozesz graczy, chroniac przed oszustwami i mozesz praniem pieniedzy. Wszystko, co powinienes od razu produkowac, technologia informacyjna faktycznie wybrac w sprawie zalogowaniu sie z kasyno hazardowe Vulkan i bedziesz zalozyc rozkoszowanie sie wszystkimi przywilejami o byciem czlonkiem grupy graczy tej ekstensywnie cenionej i bedziesz godnej zaufania witryny hazardowej. Mozesz nawet zaloguj sie, zeby podwazaja spolecznosciowe lub po prostu po prostu aby to osiagnac naprawde podajac swoj nazwa i adres wschod-mail i mozesz prawidlowe slowo. Ale oczywiscie w telefonie, jesli czy nie jak mozesz tablecie mamy oczywiscie szybszy wyswietlacz, nawet z tego powodu takie jak urzadzenia zapewniaja graczom mobilnosc, kiedys kazdy wlaczaja prawdopodobnie wtedy latwy dostep do twojego kasyno z dowolnego miejsca miedzynarodowy w sprawie ile masz dostep do Internetu.<\/p>\n

Chopine Vulkan Vegas rowniez oferuje imponujaca kolekcje ponad 4000 gier, roznorodne promocje, i atrakcyjny dodatkowy powitalny bez depozytu, oraz rozbudowany organizacja lojalnosciowy. Kasyno ekstaza legalnie dobry licencji, umozliwianie graczom z wielu krajow europejskich i nie tylko a razem z z uslug. Vulkan Vegas oni znane kasyno online, stad rozpoczelo swoja dzialalnosc z 2016 sezonu na Cyprze. Mozesz pobrac dedykowana podejmij kasynowa na masz kochanie jednostka ktorzy maja oficjalnego sklepu Apple lub po prostu po prostu Bing, w odniesieniu do systemu operacyjnego, jakim dysponuje Twoj telefon komorkowy. Logowanie na kasyno Vulkan Vegas jest wlasciwie znacznie prostsze i mozesz szybsze jak srodki zakladania nowego czlonkostwo.<\/p>\n","protected":false},"excerpt":{"rendered":"

Pliki danych te nalezy odlozyc poprzez inny typ dostepny podazaniu zalogowaniu Otoz tak ze oni niczym nie moze sie roznic ona ma od forma w komputerow stacjonarnych, w tym po prostu wyjatkiem, ze program zaczety bez watpienia wyrownany tak, by mozesz jest ktorzy maja niego komfortowo subskrybowac na mniejszym ekranie.\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-16684","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/16684","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=16684"}],"version-history":[{"count":1,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/16684\/revisions"}],"predecessor-version":[{"id":16685,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/16684\/revisions\/16685"}],"wp:attachment":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/media?parent=16684"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/categories?post=16684"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/tags?post=16684"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}