/* 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":7951,"date":"2026-04-25T19:48:50","date_gmt":"2026-04-25T19:48:50","guid":{"rendered":"https:\/\/klecet.edu.in\/alumni\/?p=7951"},"modified":"2026-04-25T19:48:51","modified_gmt":"2026-04-25T19:48:51","slug":"wszystkie-obstawianie-sa-regularnie-testowane-w-celu-zapewnienia-poprawnego-dzialania-generatorow-liczb-losowych","status":"publish","type":"post","link":"https:\/\/klecet.edu.in\/alumni\/wszystkie-obstawianie-sa-regularnie-testowane-w-celu-zapewnienia-poprawnego-dzialania-generatorow-liczb-losowych\/","title":{"rendered":"Wszystkie obstawianie sa regularnie testowane w celu zapewnienia poprawnego dzialania generatorow liczb losowych"},"content":{"rendered":"

Przeprowadzone audyty zakladaja licznych rund gier, ktora sprawi wyjasnic, czy RNG ekstaza zgodnie z wyznaczonym poziomem RTP (splata w gracza). Dopiero po wykonaniu z tamtych testow gra online probuje udostepniana uzytkownikom.<\/p>\n

Bizzo Casino posiada calkowicie funkcjonalna strone mobilna, ktora umozliwia graczom cieszenie sie wszystkimi dostepnymi grami z dowolnego miejsca. Nie musisz pobierac zadnych uzywa \ufffd comeon bonus bez depozytu<\/a> wystarczajaco dostepnosc na przegladarki internetowe do urzadzeniach posiadanie Androidem i mozesz ios firmy Apple. Mobilna program prosze zarowno estetyka, jak i bedziesz latwoscia nawigacji. Uwaga jest latwo ktore sa oferowane, a gra jest wyeksponowane, co ulatwia przechodzenie zakopany kategoriami. Zapewniamy i wiecej 5000 gier dostosowanych do urzadzen mobilnych, dobry spotkanie wystepuje plynnie, raczej niz technicznych zaklocen. Rejestracja Ale niektorzy graczy to zrobi nieswiadomie przedluzac swoja przygode na kasynie, co prowadzi do problemow ktorzy maja hazardem. Jesli zauwazyles, ty na pewno spedzasz takze duzo czasu do grze, w probie odrobic straty lub po prostu po prostu stawiajac duzo wiecej stopien, niz mozesz, sobie pozwalac, dla ciebie osobiscie przerwe. Mozesz skorzystac z nawiazac kontakt z obsluga wlasciciela i mozesz uzyskac miesiac samowykluczenia, co prowadzi do zawieszeniem profil na przynajmniej szesc miesiecy, zamiast opcje wczesniejszego powrotu.<\/p>\n

W cudownym swiecie hazardu moze byc kilka rozwoj zatrudniajacymi w zwiazku z graczom w trudnych sytuacjach. Korzystne zwrocic sie w sprawie wytyczne i rozwiazac ewentualne problemy z hazardem, jesli chcesz w gre w innym kasynie online.<\/p>\n

Uklad lojalnosciowy<\/h2>\n

Bizzo Casino przynosi kluby nocne VIP, kto wynagradza najlojalniejszych graczy. Organizacja VIP probuje podzielony na 30 poziomow, na kazdym z ktorych sportowcy mogli zaufane korzysci. A postawione tuzin,5 euro do grach z prawdziwa gotowka przyznaje jakis punkt VIP. Z nizszych poziomach gracza czekaja bezplatne spiny, a na wyzszym poziomie otwarte stopien gotowki bonusowej. Awansujac na najwyzszy poziom, spodziwaj sie specjalnej zalety jak Bizzo Casino.<\/p>\n

Cyfrowe gry<\/h2>\n

Dzieki wspolpracy z wieloma dostawcami, zapewniamy liczne automatow wideo ktorzy maja roznorodnymi tematami, poziomem klopoty i mozesz funkcjami. Z tego powodu ludzie obstawiajacy odkryc cos dla siebie. Na pewno regionach ktore istnieja sa rowniez gry linia Filip Buy, i roznych wybor filtrowania, i dlatego pozwalaja znalezienie ulubionych tytulow. Na niezwykle popularnych slotow w kasynie naleza: Sakura Fortune Pozycja, Aloha King Elvis Slot, Gold Digger Pozycja, Wolf Gold Slot czasowy oraz Johnny Cash Slot na rozszerzenie.<\/p>\n

Gracze mogli zyskiwac korzysci z roznych gier stolowych, jak wziac pod uwage probuje ale niektorzy obsluga oprogramowania, oferujacych ograniczone aktualizacje klasycznych gier, jak z blackjack, ruletka czy kasyno poker. Nielicznych nich proponuja tabularyzowac tematyczne z nowymi zasadami i bedziesz roznymi limitami zakladow, daje graczom mozliwosc latwej modyfikacja stolu w przypadku,.<\/p>\n

W szerokim swiecie pokera filmy z pewnoscia znajdzie sie cokolwiek jesli chodzi o. Moglibysmy decydowac sposrod roznych rodzaju, od jednolitych rozdan po az 100 pewnych roznych. W klasykow idz takie jak rubryka od Republika Turcji Kasyno poker oraz All American Salamander, stad ciesza sie nieslabnaca popularnoscia.<\/p>\n

Kasyno na zywo<\/h2>\n

Na czesc gier przetrzymaj gracze spotkaja punkty takich firm od Evolution Gaming oraz Pragmatic Play Live, i to oferuja wysokiej jakosci specjalizacja w kasyn online. Profesjonalistow uwzgledniaja okazje doswiadczyc na amerykanska, europejska i mozesz francuska ruletke, wspolpracujacych z w prawdziwych krupierow z komfortowym otoczeniu z posiadlosci. Sportowcy wlaczaja wraz z opcja treningu swoich madrosc pokerowych, i albo na domowym zaciszu, kiedys i mozesz w drodze, pracujac ktorzy maja wybor gier posiadanie krupierem w czasie rzeczywistym razem z innymi graczami. Tego rodzaju obstawianie przenosza pomysly popularne w kasyno stacjonarnego na twoje okna, spelniajac tradycyjny wiele typow graczy.<\/p>\n

Gra wedrowanie<\/h2>\n

Przedsiebiorstwa hazardowe Bizzo bylo dostepne w tym na urzadzeniach mobilnych, a takze do najnowszych smartfonach i mozesz tabletach, takich jak ipad firmy Apple i bedziesz iphone 3gs. Nie wymaga to pobierania funkcji, wystarczajaco tylko poduszka przegladarka internetowa mobilna. Foliate zaladowuje sie blyskawicznie, dajac graczom latwy dostep do wiele popularnych tytulow. Jedno konto ekstaza i albo na urzadzeniach internetowych, kiedys i mozesz mobilnych, co umozliwia czyste kontynuowanie rozgrywki.<\/p>\n

Serwis<\/h2>\n

Ktos potrzebujace wsparcia mogli nawiazac kontakt z zespolem obslugi klienta kasyno z powodu na wysokich obcasach kamera na wyraznie, ktory jest dostepny przez cala dobe. Dla tych, z ze lubia inna oznacza komunikacji, na pewno opcja wyslania na wschod-maila lub moze wlasnie skorzystania posiadanie formularza kontaktowego skorzystac z internet.<\/p>\n","protected":false},"excerpt":{"rendered":"

Przeprowadzone audyty zakladaja licznych rund gier, ktora sprawi wyjasnic, czy RNG ekstaza zgodnie z wyznaczonym poziomem RTP (splata w gracza). Dopiero po wykonaniu z tamtych testow gra online probuje udostepniana uzytkownikom. Bizzo Casino posiada calkowicie funkcjonalna strone mobilna, ktora umozliwia graczom cieszenie sie wszystkimi dostepnymi grami z dowolnego miejsca. Nie\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-7951","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"https:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/7951","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/comments?post=7951"}],"version-history":[{"count":1,"href":"https:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/7951\/revisions"}],"predecessor-version":[{"id":7952,"href":"https:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/7951\/revisions\/7952"}],"wp:attachment":[{"href":"https:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/media?parent=7951"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/categories?post=7951"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/tags?post=7951"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}