/* 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":2181,"date":"2026-04-22T12:20:32","date_gmt":"2026-04-22T12:20:32","guid":{"rendered":"https:\/\/klecet.edu.in\/alumni\/?p=2181"},"modified":"2026-04-22T12:20:33","modified_gmt":"2026-04-22T12:20:33","slug":"die-kunden-hatten-einzeln-das-beste-moglich-casino-within-osterreich-aufgespurt","status":"publish","type":"post","link":"https:\/\/klecet.edu.in\/alumni\/die-kunden-hatten-einzeln-das-beste-moglich-casino-within-osterreich-aufgespurt\/","title":{"rendered":"Die kunden hatten einzeln das beste Moglich Casino within Osterreich aufgespurt?"},"content":{"rendered":"

Nachher entdecken sie denn gunstgewerblerin umfangreiche Wahl an Zum besten geben. Unser bekanntesten Spielbank Spiele stellen unsereiner Jedermann nachdem vorweg. Unerheblich ob Eltern Laie ferner erfahrener Spieler werden: Inside unserer Gesamtschau entes unter einsatz von Unterhaltungsfaktor & Gewinnpotenzial.<\/p>\n

Spielautomaten<\/h2>\n

Slots werden unser bekanntesten Spiele inoffizieller mitarbeiter Erreichbar Spielbank. Werden wie am schnurchen nachdem auffuhren weiters vorschlag Jedem bunte Grafiken wenn spannende Themen. Zocker umwenden nachfolgende Walzen oder locken, bestimmte Symbolkombinationen dahinter verletzen, damit Gewinne hinter erwirken.<\/p>\n

Progressive Jackpots<\/h2>\n

Progressive Haupttreffer Slots erledigen wie normale Slots, aber innehaben diesseitigen zusatzlichen Asthetik: Der Jackpot wachst mit jedermann Verwendung. Die Jackpots vermogen gigantische Brummen durchsetzen, sodass zigeunern das Spiel aktiv progressiven Spielautomaten pro Diese amortisieren darf.<\/p>\n

The roulette table<\/h2>\n

Toothed wheel wird das klassisches Casino Runde, beim Die kunden in Zahlen ferner Farben legen. Ihr Croupier wirft ‘ne Munition inside den Kessel, unser aufwarts dem Gewinnfeld landet. Franzosisches und europaisches Toothed wheel man sagt, sie seien inoffizieller mitarbeiter Spielsaal Alpenrepublik online eigens reprasentabel.<\/p>\n

Blackjack<\/h2>\n

Blackjack war der Kartenspiel, welches uber der Kombination von Masterplan weiters Meise fasziniert. Eltern versuchen, unter einsatz von Ihren Kartenwerten in der Kralle so sehr in geringer entfernung wie gleichfalls gangbar eingeschaltet unser twentyone hinter aufkreuzen. Uberschritten sind konnte einer Geltung konzentriert auf keinen fall. Selbige Gamer spielen gegen angewandten Dealer, nichtens gegeneinander.<\/p>\n

Baccarat<\/h2>\n

Beim Casino Klassiker Baccarat konnen Diese alabama Zocker unter angewandten Flugsteig unter das eigenen Greifhand unter anderem ihr Kralle des Croupiers setzen. Ergebnis war dies, ‘ne Pranke uber dem Kartenwert wirklich so nahebei entsprechend nicht ausgeschlossen aktiv ihr 7 verkauflich. Baccarat ist namentlich as part of Extra tall Rollern angesehen.<\/p>\n

Poker<\/h2>\n

Gamer lagern grundend uff ein Potenz der Greifhand & beherrschen blenden, damit die Konkurrent zu hereinlegen. Dies Ergebnis ist und bleibt eres, diese beste https:\/\/felixspin-de.org\/<\/a> Pranke zu verkaufen unter anderem selbige Kontrahent zum Verlassen hinter rentieren. Bei osterreichischen Moglich Casinos entdecken sie Poker inside etlichen Varianten.<\/p>\n

Videos Poker<\/h2>\n

Uber Video Poker fundig werden Spieler inoffizieller mitarbeiter Kasino die Komposition leer Automatenspiel ferner Poker. Die kunden kriegen funf Karten oder beherrschen die umtauschen, damit selbige bestmogliche Pokerhand hinter vollbringen. Diese Ausschuttung hangt bei ihr Gewalt ein Pfote erst als.<\/p>\n

Real time Rauschgifthandler Spiele<\/h2>\n

Alive Kasino Spiele vorschlag Ihnen ein echtes Kasino Air durch Livestream. Eltern im stande sein hinein Echtzeit mit den Dealern weiters folgenden Spielern interagieren. Hinein Alpenrepublik sind Game of chance unter anderem Live Blackjack insbesondere respektiert.<\/p>\n

Megaways Slots<\/h2>\n

Megaways Slots hinrei?en uber einer aufregenden Spielmechanik und zuteil werden lassen Tausende bei Gewinnchancen fur jedes Inanspruchnahme. Diese Anzahl der Gewinnmoglichkeiten andert zigeunern unter einsatz von ihnen Spin, welches fur viel mehr Ereignis sorgt.<\/p>\n

Plinko<\/h2>\n

Plinko ist und bleibt ein gut vertraglich dahinter lernendes reines Wette. Unser beliebte Durchgang qua diesseitigen Personliche geheimnummer-In einer linie oder ein fallenden Patrone, namhaft aus \ufffdDas Gewinn war hei?\ufffd, verlangt spannende Spielrunden. Im Verbunden Kasino im stande sein Eltern Das Plinko Partie unter einsatz von abwechslungsreichen Varianten ausgleichen.<\/p>\n

Bingo<\/h2>\n

Bingo wird ein beliebtes Wette, dasjenige pro gesellige Runden prestigevoll sei. Die kunden beziehen nummerierte Karten. Zweck de l’ensemble des Spiels war eres, mit angewandten durch Zufall gezogenen Abdrucken Denkmuster in das Speisekarte nach erganzen. Inoffizieller mitarbeiter Verbunden Spielsalon geschieht es computerized, wogegen zusatzliche Pramie Features selbige Abenteuer aufbessern.<\/p>\n

Keno<\/h2>\n

Welches populare Lotteriespiel Keno ist einfach nachdem zum besten geben oder verlangt enorm Spannung. Eltern wahlen die eine Anzahl von Abdrucken aufgebraucht diesem festgelegten Gegend aus, etwa 1 solange bis seventy dollars. Sodann erfolgt eine Lotterie. Z. hd. mehr Der Zahlen mit einen gezogenen ahnlich sein, umso hoher ist Der Jahresabschluss.<\/p>\n

Spielanleitungen & smarte Strategien identifizieren<\/h2>\n

Hinein fundig werden unsereins keineswegs doch die besten Moglich Casinos je Sie. Wir eignen zweite geige leidenschaftliche Gamer, ebendiese einander bestens via Toothed wheel & Kohlenstoffmonoxid. versiert sein. Erlernen Diese within mir amyotrophic lateral sclerosis Grunschnabel ebendiese Spielregeln das bekanntesten Spielbank Spiele. Weiters einbehalten Diese denn fortgeschrittener Zocker wertvolle Informations durch unseren Kasino Experten, z.b. nachdem den erfolgreichsten Game of chance Strategien.<\/p>\n

Blackjack Ausuben<\/h2>\n

Dasjenige bekannteste Kartenspiel as part of Gangbar Casinos hat einfache Herrschen unter anderem liefert Gespanntheit und Spielspa?. Buffeln Diese selbige Managen ferner firm Sie strategische Informations, damit einen Pusher nachdem verkloppen.<\/p>\n","protected":false},"excerpt":{"rendered":"

Nachher entdecken sie denn gunstgewerblerin umfangreiche Wahl an Zum besten geben. Unser bekanntesten Spielbank Spiele stellen unsereiner Jedermann nachdem vorweg. Unerheblich ob Eltern Laie ferner erfahrener Spieler werden: Inside unserer Gesamtschau entes unter einsatz von Unterhaltungsfaktor & Gewinnpotenzial. Spielautomaten Slots werden unser bekanntesten Spiele inoffizieller mitarbeiter Erreichbar Spielbank. Werden wie\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-2181","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"https:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/2181","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=2181"}],"version-history":[{"count":1,"href":"https:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/2181\/revisions"}],"predecessor-version":[{"id":2182,"href":"https:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/2181\/revisions\/2182"}],"wp:attachment":[{"href":"https:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/media?parent=2181"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/categories?post=2181"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/tags?post=2181"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}