/* 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":193501,"date":"2026-06-22T17:57:35","date_gmt":"2026-06-22T17:57:35","guid":{"rendered":"https:\/\/klecet.edu.in\/alumni\/?p=193501"},"modified":"2026-06-22T17:57:35","modified_gmt":"2026-06-22T17:57:35","slug":"glucksspiele-gibt-es-in-ihnen-farben-und-gestalten-wenn-in-ein-operation-auf-ein-ganzen-welt-5","status":"publish","type":"post","link":"http:\/\/klecet.edu.in\/alumni\/glucksspiele-gibt-es-in-ihnen-farben-und-gestalten-wenn-in-ein-operation-auf-ein-ganzen-welt-5\/","title":{"rendered":"Glucksspiele gibt es in ihnen Farben und Gestalten wenn in ein operation auf ein ganzen Welt"},"content":{"rendered":"

Wette und Erreichbar Casinos in Deutschland<\/h2>\n

Seit hier klicken f\u00fcr Infos<\/a> Menschengedenken fordert male nach allen moglichen Formen sein Glucksgefuhl heraus und might dar\u00fcber Erfolg aus seinem Anwendung machen. Seit das Internet uns so alluberall vernetzt, gibt es unendlich mehrere Angebote und Erreichbar-Casinos. Jedoch tun heute that was auch sehr viele Leute gern in diese \ufffdechten\ufffd Casinos vorab Location. Ja ist das einzigartiges Stimmung geboten und diese ganze Gewerbe loath etwas getrennt Brauche und Traditionen. Von Alive-Spiele bekommt adult male diese Stimmung vielleicht nebensachlich jedoch nutzlich vermittelt, & das inoffizieller mitarbeiter diesen Wohnzimmer.<\/p>\n

In Deutschland ist ein Glucksspielsektor etwas seit einigen Jahren immer weiter am Wachsen. Dar\u00fcber, so wir ganz Internet haben, programmiert diese autor tats\u00e4chlich nichts viel mehr inoffizieller mitarbeiter Weg. Samtliche kaum, in wie weit Notebook, Computer, Device und Mobile, wir vermogen standig und allseits einen schwein hochkriegen, wenn wir united nations dann einen bestimmten Versorger auserlesen haben.<\/p>\n

Diese besten Gemeinsam Casino Versorger 2025<\/h2>\n

Wenn Sie aufs Suche in einen Top Moglich Casinos sind, diese anbei schnellen Auszahlungen sekundar einen kompetenten Kundenservice eroffnen, dann sind Sie in diese autor angeschaltet ein geeigneten Lokalitat. Ganz Echtgeld Casinos, diese wir versuchen und bewerten, mussen gewisse Kriterien tun. Jedoch so schafft es ein Versorger aufwarts unsere Top-Liste ein besten Umsetzbar Casino Kehrseiten. Grundvoraussetzung dafur ist naturgema? immer beilaufig eine gultige Erlaubnis.<\/p>\n

Unsere Top-Liste ein Erreichbar Casinos haben wir grundend auf etlichen unterschiedlichen Kriterien fur Sie zusammengestellt. Jedoch diese allerbesten Echtgeld Casinos machen es, auf unserer Startseite gelistet nach sind. Im weiteren verlauf gibt es unsere Kriterien, wenn wir einen Casino Test verwirklichen<\/p>\n

Beste deutsche Casinos<\/h2>\n

Nun Spielen! Nun Auffuhren! Nun Vortragen! Nun Auffuhren! Heute Spielen! Nun Geben! Nun Spielen! Nun Spielen! Nun Spielen! Heute Vortragen! Heute Geben! Nun Spielen! Nun Geben! Nun Vortragen! Nun Spielen! Nun Spielen! Nun Auffuhren! Nun Spielen! Nun Auffuhren! Nun Vortragen! Nun Spielen! Nun Geben! Nun Auffuhren! Heute Auffuhren! Nun Spielen! Nun Geben! Heute Spielen! Nun Auffuhren! Nun Spielen! Heute Geben! Nun Spielen!<\/p>\n

Runde Erlaubnis des diesen Umsetzbar Casinos<\/h2>\n

Eine sichtbar vorliegende Erlaubnis ist eine Grundvoraussetzung, so wir auf einsatz von dem Casino Test gar erst beginnen. Hier achten wir darauf, so diese Erlaubnis von der seriosen Glucksspielbehorde vergeben ist und diese sekundar gultig ist.<\/p>\n

Spielerschutz in Gemeinsam Spielhallen<\/h2>\n

In diesem Erreichbar Casino Test werfen wir ebenso einen Blick darauf, die Moglichkeiten Glucksspieler haben, ein eigenes Spielverhalten inoffizieller mitarbeiter Auge nach behalten. Ein serioses Casino ermoglicht daf\u00fcr immer diese Gelegenheit angeschaltet, so Die sich eigene Limits legen k\u00f6nnen. Jedoch daruber ist gewahrleistet, so Sie ein etwaigen Spielsucht umsichtig verhuten konnen.<\/p>\n

Auszahlungsquoten in einen Moglich Glucksspielen<\/h2>\n

Fairness und Sicherheit ist nebensachlich jedoch als nachstes garantiert, wenn diese Auszahlungsraten ein Spiele offengelegt sind. Jedoch so k\u00f6nnen sich Glucksspieler auf jeden fall sein, so kein Betrug in der Gemeinsam Spielothek vorliegt und es sich um “echte”, dann lizenzierte Spiele renommierter Versorger handelt. H\u00e4ufig ist hier as part of Dem Kundenkonto auch das Hergang angezeigt, beim vorangegangene Spielrunden ersichtlich man sagt, sie sind.<\/p>\n

Anmeldung und Anmeldeprozess in europaischen Erreichbar Casinos<\/h2>\n

Jedoch wenn sich ein Casino Glucksspieler geschenkt und inwendig weniger Minuten in dem ein Internet Casinos anmelden kann, f\u00fchren wir unseren Prufung weiter. Hier lasst sich etwas vorab oft einsehen, in wie weit ein Moglich Casino kundenfreundlich und f\u00fcr deutsche Spieler geeignet ist.<\/p>\n

Bonusangebote ein Echtgeld Casinos<\/h2>\n

Diese besten Moglich Casinos anerkennen diese Anmeldung des neuen Spielers \u00fcber gewissen Bonusangeboten. Hier handelt es sich haufig dar\u00fcber einen Willkommensbonus & auch Freispiele. In dem Casino Test lesen diese autoren diese angebotenen Bonusangebote und werfen hierzu auch einen Blick in diese Provision- und Umsatzbedingungen.<\/p>\n

Wahl angeschaltet Spielen in dem Gemeinsam Casino Versorger<\/h2>\n

Daneben einen Bonusangeboten ist ein Hauptgrund nach handen eine Anmeldung in einem Gemeinsam Casino meistens nebensachlich diese Praferenz das angebotenen Casino-Spiele. Fur jedes deutsche Spieler ist es intensiv h\u00e4ufig wichtig, so es hier keineswegs Einschrankungen gibt und im besten fall nebensachlich Stay Casino Spiele angeboten sie sind.<\/p>\n","protected":false},"excerpt":{"rendered":"

Wette und Erreichbar Casinos in Deutschland Seit hier klicken f\u00fcr Infos Menschengedenken fordert male nach allen moglichen Formen sein Glucksgefuhl heraus und might dar\u00fcber Erfolg aus seinem Anwendung machen. Seit das Internet uns so alluberall vernetzt, gibt es unendlich mehrere Angebote und Erreichbar-Casinos. Jedoch tun heute that was auch sehr\u2026<\/p>\n

Continue reading<\/span><\/i><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-193501","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/193501","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=193501"}],"version-history":[{"count":1,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/193501\/revisions"}],"predecessor-version":[{"id":193503,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/193501\/revisions\/193503"}],"wp:attachment":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/media?parent=193501"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/categories?post=193501"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/tags?post=193501"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}