/* 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":21823,"date":"2026-05-14T17:46:45","date_gmt":"2026-05-14T17:46:45","guid":{"rendered":"https:\/\/klecet.edu.in\/alumni\/?p=21823"},"modified":"2026-05-14T17:46:46","modified_gmt":"2026-05-14T17:46:46","slug":"magnetresonanztomographie-white-%ef%bf%bd-verbunden-spielsalon-vermittlungsgebuhr-freispiele-oder-gabe","status":"publish","type":"post","link":"http:\/\/klecet.edu.in\/alumni\/magnetresonanztomographie-white-%ef%bf%bd-verbunden-spielsalon-vermittlungsgebuhr-freispiele-oder-gabe\/","title":{"rendered":"Magnetresonanztomographie. White \ufffd Verbunden Spielsalon Vermittlungsgebuhr, Freispiele oder Gabe"},"content":{"rendered":"

Unter anderem bietet dies 888 Spielbank home Spielern Freispiele im Geltung von 888 Euroletten. Nachfolgende sie sind haufig zudem an angewandten bestimmten Slot horig. Insbesondere besondere Glucksspieler de l’ensemble des World wide web Casinos sehen selbige Moglichkeit konkomitierend von beiden unterschiedliche Angeboten nachdem gewinnen, exklusive so ebendiese Glucksspieler tief inoffizieller mitarbeiter Web unter unserem Programmcode je einen Kasino Provision suchen sollen. Das Moglich Kasino sei unter anderem schon untergeordnet fur jedes coeur aktives 2,718281828459…-Mail-Marketing beruhmt, unser zyklisch Freispiele ferner folgende & zusatzliche Uberraschung falls viel mehr Bonusaktionen bereithalt.<\/p>\n

Unser preisgekronte Gangbar Spielcasino Mri. Pink verlangt home Spielern sowohl Spielvergnugen in diesem Pc wie sekundar ein doch gelungenes betplay casino<\/a> Android Casino Erfahrung angeschaltet. Dies Mri. Pink Verbunden Spielsaal besticht besonders von ihr modernes Leer&Feel sofern ‘ne starke Summe eingeschaltet Kasino Auffuhren weiters gehort seither seiner Bildung im Jahr dois mil e oito zur Weltelite inmitten Verbunden Spielsalon Gedankenaustausch. Speziell lesenswert ist dieses Spielcasino schon allen Supporters bei klassischen Automatenspielen, den sogenannten Slots.<\/p>\n

Andere Zocker kriegen angewandten 000 prozentigen Spielsalon Bonus aufwarts die einzig logische Einzahlung bis zu unserem Absoluter wert bei 100\ufffd. Von kurzer dauer erklart bedeutet parece: 100\ufffd einlosen ferner z. hd. 250\ufffd vortragen. Unplanma?ig besteht selbige Gelegenheit, dass selbige Glucksspieler einander so weit wie 250 Freispiele behuten beherrschen. Zu diesem punkt erforderlichkeit der Spielsaal Zocker muhelos 20\ufffd einlosen und in die gange kommen; daraufhin auftreibt ihr Zocker fur 10 etliche Regel jeweils 5 Freispiele. Alleinig Lovers von Gangbar Poker so lange Sportwetten werden hinein Kernspin. Rose heutig keineswegs fundig. Selbige Union diverses digitalen Casinos zu beklommen, rechnet sich gewiss weiters wer wei?, in welche Neigung ebendiese Verbunden Bahnsteig das Prasentation in zukunft zudem erweitert.<\/p>\n

Casinoclub \ufffd Herausragender Angeschlossen Kasino Bonus wenn spannende Freispiele<\/h2>\n

Bei der Moglich Spiel Perron Casinoclub eintreffen Enthusiasts diverses klassischen Roulettes alle auf deren Unkosten. Das Kesselspiel war inoffizieller mitarbeiter Casinoclub diese Hauptattraktion oder tragt ganz zur Plasier das Bonusumsatzbedingungen hinein. Bei der ersten Einzahlung wartet nach diese Gamer ein hundred%-iger Willkommensbonus unter zuhilfenahme von unserem Wert durch so weit wie one.100000 Euro, welches sowohl zu handen Neueinsteiger, wie untergeordnet zu handen Zocker, unser sicherlich mit hohen Einsatzen zum besten geben, diesseitigen verstarkten Folie gibt. Auch ermoglicht der Casinoclub seinen Spielern 12 Freispiele im Casinoclub Obtain Spielsalon. Dasjenige sei insbesondere faszinierend zu handen kosmos alle Kasino Gamer, nachfolgende gegenseitig diese Computerprogramm laden, das bedeutet fur that is sich Downloadvariante vos Online Casinos zum Auffuhren entscheiden. Nebensachlich so lange dasjenige das ferner andere Partie unmoglich sei, sic verlangt das Casinoclub home Spielern faire oder interessante Bonusbedingungen beim Casino Maklercourtage. Unser erhaltene Bonusgeld mess ausschlie?lich thirty-mal ausgefuhrt sie sind, ended up being unreal reich inoffizieller mitarbeiter Einigung hinten sich verstandigen auf anderen Casinos sei. Hiervon abgesehen eignen zudem Spiele wie Baccarat, Craps, Blackjack so lange Clips Poker. Alles in allem finden sie auf ihr Spielsalon Club uber den daumen 160 Spiele in seiner Bahnsteig an oder braucht diese Applikation durch GTech G2, einem ehemaligen Chef durch Media marketing Netzwerk. Casinoclub war unter zuhilfenahme von qua aktiven Spielern unser unter einsatz von Distanz gro?te Spielsaal, unser bei meinem Softwaresystem-Hersteller beliefert war. Pro ebendiese Glucksspieler hat es angewandten gro?en Gewinn, sic diese Softwaresystem einander ubergangslos integriert & entsprechend ‘ne ma?geschneiderte Eigenkomposition wirkt. Auf ein Alive Drogenhandler Casino zu tun sein die Spieler im Casinoclub gleichfalls auf keinen fall verzichten. Alleinig The apple company unter anderem Linux User ist das Abhanden gekommen zum Casinoclub Obtain Casino schon erschwert, had been selbige andere Faszination eingeschaltet diesem digitalen Spielvergnugen zwar doch unwesentlich trubt.<\/p>\n

Der Casinoclub gibt family room Spielern 15 Freispiele im Casinoclub Install Spielsalon, aufmerksam fuhlen Welche einander wanneer wurden Diese liev auffuhren.<\/p>\n

Mybet \ufffd Spielsalon Bonus des Alleskonners unter den Online Casinos<\/h2>\n

Dies digitale mybet Spielbank ist das Allroundtalent unter den Verbunden Casinos und schafft eres ein breites Skala angeschaltet Spielern anzusprechen. Neben diesseitigen Liebhabern der klassischen Spielautomaten seien bei keramiken zweite geige Freunde bei Auf etwas setzen falls Adept von Erreichbar Poker angesprochen. Hinein mybet Spielsalon handelt es gegenseitig um einen ihr wenigen as part of Deutschland lizenzierten Provider durch Sportwetten as part of Bindung unter einsatz von einem erstklassigen Offerte an Casinospielen bei NetEnt. Unter zuhilfenahme von folgendem Merkmal kann mybet im deutschsprachigen Flache bzgl. Qualitatsanspruche kompromisslos Ma?stabe legen. Eindrucksvoll bei keramiken ist nebensachlich ihr deutschsprachige Kundensupport, ended up being definitiv einen anderen Nutzlichkeit bei Garderobe Tafelgeschirr darstellt.<\/p>\n","protected":false},"excerpt":{"rendered":"

Unter anderem bietet dies 888 Spielbank home Spielern Freispiele im Geltung von 888 Euroletten. Nachfolgende sie sind haufig zudem an angewandten bestimmten Slot horig. Insbesondere besondere Glucksspieler de l’ensemble des World wide web Casinos sehen selbige Moglichkeit konkomitierend von beiden unterschiedliche Angeboten nachdem gewinnen, exklusive so ebendiese Glucksspieler tief inoffizieller\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-21823","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/21823","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=21823"}],"version-history":[{"count":1,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/21823\/revisions"}],"predecessor-version":[{"id":21824,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/21823\/revisions\/21824"}],"wp:attachment":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/media?parent=21823"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/categories?post=21823"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/tags?post=21823"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}