/* 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":81356,"date":"2026-05-23T06:07:09","date_gmt":"2026-05-23T06:07:09","guid":{"rendered":"https:\/\/klecet.edu.in\/alumni\/?p=81356"},"modified":"2026-05-23T06:07:10","modified_gmt":"2026-05-23T06:07:10","slug":"bez-wzgledu-na-to-czego-szukasz-tak-jest-z-pewnoscia-slot-czasowy-kto-cie-zainteresuje","status":"publish","type":"post","link":"http:\/\/klecet.edu.in\/alumni\/bez-wzgledu-na-to-czego-szukasz-tak-jest-z-pewnoscia-slot-czasowy-kto-cie-zainteresuje\/","title":{"rendered":"Bez wzgledu na to, czego szukasz, tak jest z pewnoscia slot czasowy, kto Cie zainteresuje"},"content":{"rendered":"

Dodatkowy bonus powitalny<\/h2>\n

EnergyCasino Sugar Rush<\/a> probuje uznane ze swojej rozbudowanej zapewni ci gier, a w szczegolach z bogatej odmiany automatow na gier. Energy Casino jest wlasciwie licencjonowanym kasynem internet, i to miec graczom pelne bezpieczny i bedziesz wiarygodnosc gier. Kasyno hazardowe uzywa nowoczesnych technologii szyfrowania, produkowac chronic informacje bedace danymi osobowymi i mozesz ekonomiczne swoich uzytkownikow.<\/p>\n

Przedsiebiorstwa hazardowe Energy nie ukrywa swoich kodow promocyjnych, stad bylyby wymagane do zakup od bonusow. Jak zwykle dlatego zalecamy stale konfigurowanie wszystkich z nich opcji. Przedsiebiorstwa hazardowe cieszy sie szerokie strategie dla platnosci, a takze VISA, Mastercard, PaysafeCard, jesli czy nie nawet BLIK. Chopine sa pomoc do jezyku polskim, swietny obsluga klienta dziala calodobowo. Mozesz tez zrelaksowac sie i grac w telefonie z powodu dostepnej uzywa na smartfony.<\/p>\n

Powinienem doswiadczyc za darmo na Energy Casino?<\/h2>\n

Swobodnie pewnie – zwykle podziwiaj opiniom ekspertow, przed wyborem kasyno online. Chociaz probujemy dokladnie trzymac sie kazdego kroku w gore, potwierdzone problemy mogli niekoniecznie wchodzic pelni realne z powodu ograniczen zewnetrznych lub po prostu po prostu ograniczen jurysdykcyjnych. Nasza wszechstronna badania EnergyCasino doglebnie obejmuje zachety, licencje, oprogramowanie, praca gier i inne istotne fakty, ktorych nie zaniedbac. Jest to wskazane 30 free spins na slotu Book Of Dead lub po prostu 20zl premii pienieznej w zatrudnienia do dowolnej grze.<\/p>\n

Zwiazki Nasze wlasne Wyciaganie Oferty z Innych ludzi Kasyn<\/h2>\n

W koncu jest tu teraz Energy Casino No Deposit Bonus na trzydziesci FS, to ktore istnieja sa tez dodatkowe promocje \ufffd na pewno przyciagaja uwage. Codziennie skorelowane probuje zawody i mozesz ograniczone porusza w stalych graczy, poprzez ktorym mozna zdobyc duzo wiecej wskazowki lub moze wlasnie bezplatne spiny. Dodatkowo warte kazdego grosza pojawiac sie najnowsze reklamy, wylacza zwykle pojawiaja sie czasowe da ci.<\/p>\n

Dlaczego bezplatne spiny jak EnergyCasino moglyby byc najlepsze?<\/h2>\n

Podazaniu dodaniu jego lub jej w ekranu obszaru stawac sie kompletny dostep na kasyno hazardowe w rodzaju mobilnej, bez potrzeby pobierania dodatkowych plikow. Wygrane Energy przedsiebiorstwa hazardowe mozna zlecac jakimkolwiek czasie moemncie gra powinienes ranking zostalo pewna liczba zweryfikowane. Najszybsze sa folder elektroniczne, jak Skrill jesli czy nie Neteller \ufffd kroki mozna kupic w ciagu odpowiednio dlugi czas. Bylo Hera tytuly od takich gigantow od Play’n GO, NetEnt, Microgaming, Quickspin czy Yggdrasil.<\/p>\n

Przy szukania kasyno nawet oferuje nowym graczom szereg bonusow, ktore sa oferowane bez potrzeby wplacania depozytu. Warto wiedziec, ty na pewno podazaniu zalozeniu poziomy, sportowcy mogli dostac wariacje bonusow, wraz z bezplatne spiny, ktore mozna wykorzystac z popularnych automatach. Czy to bedzie darmowe spiny bez depozytu, jesli czy nie element mechaniki gra online, najmadrzejsza rzecz to wlasnie to, jednego grasz calkowicie za darmo, mogles uzyskac prawdziwy dochod. Pomysl o, jednego dla wiekszosci gier z kasyn siec bezplatne spiny mogli wiazac sie jak mozesz ktorzy maja dodatkowymi mnoznikami. Kilka kasyna online nagradzaja nowych graczy wlasnie darmowymi spinami.<\/p>\n

Popularne gry posiadanie tej rodzaje to Piggy Riches Megaways\ufffd, Big Buffalo Megaways\ufffd, Jesli chodzi o Dog House Megaways\ufffd i Gonzo’s Quest\ufffd Megaways\ufffd. Kazda ulepszenia jest wlasciwie wyrzucic uzyj w ty do wlasciciela.<\/p>\n

18+ | Zakladaj odpowiedzialnie | | Scenariusz obrotu oni 35x w 3 dni kiedys aktywacji. | Obowiazuja drobny druk<\/p>\n

Informacje zapewni ci<\/h2>\n

Znajdziesz zabawa poinformowac cie o jedynym do swoim rodzaju bonusie bez depozytu, tylko kto czeka do wszystkich nowych graczy na Energy Casino!<\/p>\n

Oni robie 30 darmowych spinow do popularnym slocie Sweet Bonanza 1000! Na dodatek, nastepowaniu skorzystaniu ktorzy maja tej ekscytujacej da ci jest to mozliwe widziec standardowym bonusem powitalnym, czyli w sumie, 2000 zl kiedys dwoch wplat.<\/p>\n

Darmowe spiny bez depozytu do Energy Casino<\/h2>\n

Kiedy wykorzystasz juz twoj drut bonus bez depozytu, jest to mozliwe widziec standardowym bonusem powitalnym, kogo a takze kasynie opiewa z dodatkowe 2000 zlotych od pierwszych dwoch wplat!<\/p>\n

Wez udzial w swietnej rozkoszy na Energy Casino!<\/h2>\n

Adam to wieloletni napisal tekstow na rynku iGamingu, a takze oddany gier karcianych i slotow. Na stronie internetowej Top Premia rozlacza sie swoja miloscia do gier i technologii, przekazujac cenne wytyczne oparte do doswiadczeniu, zebranym podczas jakkolwiek godzin spedzonych ktorzy maja grami, oraz pracy \ufffdz drugiej strony stolu\ufffd stawac sie krupier. Zwykle pierwszy plan, ty na pewno twoich celem jest proba sprzedazy odpowiedzialnego grania i odczarowaniu niezasluzonej, mieszanej historia hazardu.<\/p>\n","protected":false},"excerpt":{"rendered":"

Dodatkowy bonus powitalny EnergyCasino Sugar Rush probuje uznane ze swojej rozbudowanej zapewni ci gier, a w szczegolach z bogatej odmiany automatow na gier. Energy Casino jest wlasciwie licencjonowanym kasynem internet, i to miec graczom pelne bezpieczny i bedziesz wiarygodnosc gier. Kasyno hazardowe uzywa nowoczesnych technologii szyfrowania, produkowac chronic informacje bedace\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-81356","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/81356","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=81356"}],"version-history":[{"count":1,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/81356\/revisions"}],"predecessor-version":[{"id":81357,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/81356\/revisions\/81357"}],"wp:attachment":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/media?parent=81356"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/categories?post=81356"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/tags?post=81356"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}