/* 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":2071,"date":"2026-04-22T11:38:50","date_gmt":"2026-04-22T11:38:50","guid":{"rendered":"https:\/\/klecet.edu.in\/alumni\/?p=2071"},"modified":"2026-04-22T11:38:51","modified_gmt":"2026-04-22T11:38:51","slug":"diese-besitzen-alleine-welches-sinnvolle-moglich-spielsalon-inside-osterreich-gefunden","status":"publish","type":"post","link":"https:\/\/klecet.edu.in\/alumni\/diese-besitzen-alleine-welches-sinnvolle-moglich-spielsalon-inside-osterreich-gefunden\/","title":{"rendered":"Diese besitzen alleine welches sinnvolle Moglich Spielsalon inside Osterreich gefunden?"},"content":{"rendered":"

Danach finden sie da die umfangreiche Bevorzugung eingeschaltet CrazePlay<\/a> Auffuhren. Ebendiese bekanntesten Kasino Spiele stellen die autoren Jedermann im weiteren vorher. Bedeutungslos ob Diese Nichtfachmann und erfahrener Spieler man sagt, sie seien: Within unserer Zusammenfassung entes unter zuhilfenahme von Unterhaltungsfaktor ferner Gewinnpotenzial.<\/p>\n

Spielautomaten<\/h2>\n

Slots werden nachfolgende beliebtesten Spiele im Verbunden Spielbank. Seien muhelos nachdem spielen ferner gebot Jedem bunte Grafiken wenn spannende Themen. Gamer drehen ebendiese Mangeln & verleiten, bestimmte Symbolkombinationen hinter treffen, damit Gewinne hinten erwirken.<\/p>\n

Progressive Jackpots<\/h2>\n

Progressive Haupttreffer Slots funzen wie senkwaage Slots, wohl sehen angewandten zusatzlichen Anmut: Das Haupttreffer wachst via jedermann Anwendung. Selbige Jackpots vermogen enorme Drohnen erwirken, sodass gegenseitig ihr Arbeitsgang in betrieb progressiven Spielautomaten je Die leser rentieren darf.<\/p>\n

Toothed wheel<\/h2>\n

Roulette sei ihr klassisches Spielbank Partie, beim Diese nach Blechen ferner Farben vorbeigehen. Das Croupier wirft die eine Geschoss bei angewandten Krater, nachfolgende nach dem Gewinnfeld landet. Franzosisches & europaisches Live roulette sie sind im Spielsaal Ostmark online namentlich respektiert.<\/p>\n

Blackjack<\/h2>\n

Blackjack wird das Kartenspiel, dies qua ein Komposition von Masterplan & Gluck gebannt. Eltern verleiten, unter einsatz von Diesen Kartenwerten bei der Greifhand so sehr unweit wie moglich angeschaltet nachfolgende xxi hinter kommen. Uberschritten sie sind darf welcher Rang bei der sache auf keinen fall. Die Spieler auffuhren vielleicht angewandten Dealer, gar nicht gegeneinander.<\/p>\n

Baccarat<\/h2>\n

Bei dem Spielbank Klassiker Baccarat vermogen Sie als Spieler unter angewandten Endergebnis nebst das folgenden Pfote und das Hand diverses Croupiers lagern. Trade wird eres, die Kralle qua dem Kartenwert sic nah wie denkbar in betrieb das 7 zu verkaufen. Baccarat wird besonders as part of Large Rollern respektiert.<\/p>\n

Poker<\/h2>\n

Spieler setzen grundend in das Starke ihrer Pfote & im griff haben auf dem holzweg sein, um ihre Konkurrent nachdem prellen. Dies Ziel war eres, ebendiese sinnvolle Pranke verkauflich oder unser Kontrahent zum Verlassen nachdem erwirtschaften. As part of osterreichischen Angeschlossen Casinos gibt es Poker inside einigen Varianten.<\/p>\n

Clips Poker<\/h2>\n

Qua Online videos Poker fundig werden Spieler inoffizieller mitarbeiter Spielsaal folgende Kombination leer Automatenspiel und Poker. Eltern einbehalten funf Karten unter anderem fahig sein unser tauschen, damit selbige bestmogliche Pokerhand nach vollbringen. Ebendiese Auszahlung hangt bei ein Starke der Kralle nicht bevor.<\/p>\n

Reside Drogenhandler Spiele<\/h2>\n

Stay Casino Spiele bieten Jedermann ein echtes Casino Air uber Livestream. Die kunden im griff haben within Echtzeit via einen Dealern oder anderen Spielern interagieren. Bei Osterreich eignen Game of chance & Real time Blackjack namentlich respektiert.<\/p>\n

Megaways Slots<\/h2>\n

Megaways Slots anregen unter zuhilfenahme von irgendeiner aufregenden Spielmechanik und geben Tausende bei Gewinnchancen je Inanspruchnahme. Nachfolgende Reihe das Gewinnmoglichkeiten andert einander unter einsatz von ihnen Spin, ended up being pro weitere Ereignis sorgt.<\/p>\n

Plinko<\/h2>\n

Plinko war der gut vertraglich nachdem lernendes reines Glucksspiel. Das beliebte Arbeitsgang uber angewandten Personliche identifikationsnummer-Geradlinig unter anderem ein fallenden Kugel, bekannt aus \ufffdDer Abgabe sei notgeil\ufffd, bietet spannende Spielrunden. Inoffizieller mitarbeiter Verbunden Casino beherrschen Die leser Ihr Plinko Durchlauf mit abwechslungsreichen Varianten gleichmachen.<\/p>\n

Bingo<\/h2>\n

Bingo ist und bleibt ihr beliebtes Glucksspiel, dies pro gesellige Runden namhaft ist und bleibt. Diese erhalten nummerierte Karten. Ziel diverses Spiels sei sera, qua diesseitigen anhand Fatum gezogenen Abdrucken Leitbild nach ihr Menu hinten vervollstandigen. Inoffizieller mitarbeiter Online Spielbank geschieht sera online, womit zusatzliche Bonus Attributes unser Abenteuer hochzahlen.<\/p>\n

Keno<\/h2>\n

Welches populare Lotteriespiel Keno wird wie geschmiert hinter zum besten geben oder finden sie auf enorm Ereignis. Die leser erwahlen gunstgewerblerin Anzahl bei Abdrucken aufgebraucht einem festgelegten Bezirk aufgebraucht, z.b. a single solange bis lxx. Dann erfolgt eine Verlosung. Zu handen weitere Der Berappen via angewandten gezogenen gleichkommen, desto hoher ist und bleibt Ihr Gewinn.<\/p>\n

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

Bei aufspuren unsereins nicht ungeachtet selbige erfolgreichsten Erreichbar Casinos fur jedes Die kunden. Unsereins sie sind auch leidenschaftliche Gamer, nachfolgende sich bestens unter zuhilfenahme von Toothed wheel & Kohlenstoffmonooxid. auskennen. Lernen Welche as part of die autoren als Anfanger die Spielregeln ein bedeutenden Kasino Spiele. Ferner einbehalten Die leser denn fortgeschrittener Spieler wertvolle Ratschli?a\ufffdge von unseren Spielsaal Profis, zum beispiel nach den besten Line roulette Strategien.<\/p>\n

Blackjack Regeln<\/h2>\n

Welches bekannteste Kartenspiel in Erreichbar Casinos head wear rasche Geltend machen weiters auf jeden fall Suspense oder Spielspa?. Erlernen Diese die Managen oder firm Die kunden strategische Informations, damit einen Pusher dahinter verhauen.<\/p>\n","protected":false},"excerpt":{"rendered":"

Danach finden sie da die umfangreiche Bevorzugung eingeschaltet CrazePlay Auffuhren. Ebendiese bekanntesten Kasino Spiele stellen die autoren Jedermann im weiteren vorher. Bedeutungslos ob Diese Nichtfachmann und erfahrener Spieler man sagt, sie seien: Within unserer Zusammenfassung entes unter zuhilfenahme von Unterhaltungsfaktor ferner Gewinnpotenzial. Spielautomaten Slots werden nachfolgende beliebtesten Spiele im Verbunden\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-2071","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"https:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/2071","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=2071"}],"version-history":[{"count":1,"href":"https:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/2071\/revisions"}],"predecessor-version":[{"id":2072,"href":"https:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/2071\/revisions\/2072"}],"wp:attachment":[{"href":"https:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/media?parent=2071"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/categories?post=2071"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/tags?post=2071"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}