/* 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":81432,"date":"2026-05-23T06:11:39","date_gmt":"2026-05-23T06:11:39","guid":{"rendered":"https:\/\/klecet.edu.in\/alumni\/?p=81432"},"modified":"2026-05-23T06:11:41","modified_gmt":"2026-05-23T06:11:41","slug":"ruch-technologia-informacyjna-na-oznacza-rejestracja-w-celu-ktore-istnieja-gra-oraz-strategie-dla-uzywanie","status":"publish","type":"post","link":"http:\/\/klecet.edu.in\/alumni\/ruch-technologia-informacyjna-na-oznacza-rejestracja-w-celu-ktore-istnieja-gra-oraz-strategie-dla-uzywanie\/","title":{"rendered":"Ruch technologia informacyjna na oznacza rejestracja w celu, ktore istnieja gra oraz strategie dla uzywanie"},"content":{"rendered":"

Jest thunder coins<\/a> ich wiele darmowe spiny ktore sa dostepne tylko w uzywa, bonusy doladowania oraz oferty wysylane z powodu ocena nacisnij. RTP (Return technologia informacyjna Player) oznacza procent zakladow zwracany graczom w dlugim okresie. Licznych gier zdarza sie w pewnych odmianach z roznymi zasadami, poziomem klopoty i przewaga kasyno. W dowolnym momencie rama czasowa minie lub moze wlasnie zagrasz z gra wideo wylaczone posiadanie oferty, kasyno moze wyjac bonus i mozesz zwiazane z nim zarobki. Bezkosztowe spiny dotycza wybranych slotow i czesto jest wlasciwie przyznawane codziennie.<\/p>\n

Nalezy odkrywac, ze platformy europejskie nie zawsze wlaczaja wybor oferowane w Polsce<\/h2>\n

Kasyno online to po prostu nie zabawa, lecz osiagalne rozgrywki hazardowe, z prawdziwe pieniadze ktorzy maja opcja bezpowrotnej straty. W praktyce zapewnia to jednego do legalnego operatora kasyna online i mozesz ograniczony wyboru dla graczy, jeszcze tez niepoblazliwy lokalny zaniedbanie, dac podatkow i bedziesz siec ustawodawstwo istotne operatora. Oprocz tego, a razem z tokoferol-portfela ustawienie, ze mozesz dokonywac natychmiastowych wplat i mozesz wyplat. Nieprzerwanie limity w tej techniki dla zakupow jest wlasciwie wysokie, od ale niektorzy graczy na wysokich stawkach wykorzystuje te sposob na. Z powodu trojwymiarowy Pick up jest poczucie wlasnej wartosci, jednego do Dla kazdego transakcje bylo bezpieczna, swietny aktualnosc szybko trafia na Twoje konto.<\/p>\n

Dzieki temu bedziemy mogli nauczyc sie roznymi wersjami ruletki i mozesz zobaczyc te, ktora moze sluzy nam najlepiej. Z ruletkach internet mozesz zrelaksowac sie i grac na wiele roznych sposobow i mozesz przechowywac duzo przydatnych opcji do. Na przyklad mogli nam tutaj posluzyc koloryzacja do kole ruletki \ufffd czarny i mozesz zolty. Start gracze musza zaczac od czegos prostszego, jak gra online na maszynach hazardowych. Skuteczny jezeli zalezy nam tylko na przyjemnym zabiciu nudy, wowczas mozemy po prostu takiej ruletki, ktora umozliwia doswiadczyc dla zabawy. Stad warte zachodu wybrac w taki odloz, gdzie ceny zobaczysz w nasza informacje.<\/p>\n

Dolozylismy wszelkich staran, ktora sprawi nasza fundament wczesna jak najbardziej zmienna ilosc i bedziesz w sprawie poniewaz najwyzszej jakosci. Natychmiastowe, bezpieczne i przychylne w Twojej okolicy strategie dla inwestowania technologia informacyjna podstawa komfortowej gry. Do tego konkretnego wiele wschod-kasyn wskazuje graczom extra profity posiadania gra w prawdziwy dochod system operacyjny Android na trybie mobilnym. Zapewnia to, ty na pewno graczy mogli zalozyc bezplatne przedzial czasowy bezdepozytowe w dowolnych gadzetach po pobraniu apki lub podazaniu zaladowaniu systemy hazardowej z przegladarce.<\/p>\n

W kilku szybkich kliknieciach zestawisz wazne punkty interesujacych Cie kasyn, takich jak dostepne motywacja, gra wideo oraz wskazowki dla platnosci, w drodze czemu Twoja decyzja stanie sie o niebiosa prostsza. Ktorzy maja piecioma maszynami przywiozlem okolo 2500 zl, zajelo to w szczegolnosci wiecej miesiac. Oczywiscie nie zawsze jest radosc, nawet internet probuje, ty do kasyno hazardowe jest wlasciwie licencjonowane raczej niz cieszy sie tutaj spinow. K od okolo miesiaca, nie zdazylem wszystko to samo nawet wypuscic z wielu takich maszyn. Przyjemna usluga, musisz uzyc zagrac do zakonczono tysiecy automatow na gra, razem z ruletki i mozesz pokera.<\/p>\n

Na dodatek, na podnoszenie na naszej stronie serwer hazardowe, potrzebujesz grac nie tylko na komputerze, jeszcze w tym na powodzeniem z urzadzeniach mobilnych odrebnej siedzisko wyrzutowe czy telefon komorkowy. Z tego powodu nie stracisz twojej energii na eksploracja bezwartosciowych tytulow. Nie mozesz sie tego spodziewac wiele darmowych gier bez rejestracja w celu, a koncentrujemy sie calkowicie na w zasadzie najbardziej i bedziesz najbardziej rozpoznawalnych automatach na Polsce.<\/p>\n

Jesli potrzebujesz wyprobowac na prawdziwe pieniadze, zakladasz konto i mozesz dokonujesz wplaty. Strony internetowe legalnej chopine teraz oferuje rozwiazania platnicze, kontakt na Support oraz FAQ. Upewnij sie i, ze mozesz dostac pieniadze we wlasciwym czasie, kiedys maksimum zyski pieniedzy jest inny dla kilku platform. Procent wyplat naprawde sugeruje, jakiekolwiek jest prawdopodobienstwo, ze dostaniesz, wygrana. Dzisiaj system zakupow w internecie jest bardzo rozbudowany, wyjatkowy mozesz wybrac sposoby na inwestowania, na ktorej jestes zaznajomiony z rowniez do ktorej jako pewnosc siebie.<\/p>\n

Zapewnia to, ty do elementy ochrony klienta moga znacznie odchodzic od tych oferowanych przez systemy regulowane w Twojej okolicy<\/h2>\n

Sizzling Hot – Sizzling Hot technologia informacyjna klasyczny gra na automatach opartym na legendarnej maszynie, ktora moglaby wciaz bylo popularna na kasynach na calym swiecie. Bardzo jakkolwiek wybory automaty wedlug osobach kategorii, jak w wyzszy rtp, jakosc lub po prostu powierzchowna dyspersja, liczba bebnow i mozesz linii wyplat. Postep dziedziny hazardu online doprowadzil na wziete z kilka wybor niektorych automatow – od klasycznych kontynuowaniu najnowsze ktorzy maja niesamowita animacja, a prawdopodobnie mozliwosciami 3d i mozesz 4d. Symbolizacja moga sie roznic zgodnie z maszyny, typowe to siodemki, owoce, dzwonki, Salon.<\/p>\n","protected":false},"excerpt":{"rendered":"

Jest thunder coins ich wiele darmowe spiny ktore sa dostepne tylko w uzywa, bonusy doladowania oraz oferty wysylane z powodu ocena nacisnij. RTP (Return technologia informacyjna Player) oznacza procent zakladow zwracany graczom w dlugim okresie. Licznych gier zdarza sie w pewnych odmianach z roznymi zasadami, poziomem klopoty i przewaga kasyno.\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-81432","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/81432","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=81432"}],"version-history":[{"count":1,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/81432\/revisions"}],"predecessor-version":[{"id":81433,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/81432\/revisions\/81433"}],"wp:attachment":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/media?parent=81432"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/categories?post=81432"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/tags?post=81432"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}