/* 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":2141,"date":"2026-04-22T12:07:25","date_gmt":"2026-04-22T12:07:25","guid":{"rendered":"https:\/\/klecet.edu.in\/alumni\/?p=2141"},"modified":"2026-04-22T12:07:26","modified_gmt":"2026-04-22T12:07:26","slug":"vergleich-verbunden-casinos-ohne-deutsche-erlaubnisschein-via-kraut-erlaubnisschein","status":"publish","type":"post","link":"https:\/\/klecet.edu.in\/alumni\/vergleich-verbunden-casinos-ohne-deutsche-erlaubnisschein-via-kraut-erlaubnisschein\/","title":{"rendered":"Vergleich: Verbunden Casinos ohne deutsche Erlaubnisschein & via kraut Erlaubnisschein"},"content":{"rendered":"

Unterdessen im europaischen Online Spielsaal alle Tischspiele von ein Bildflache verschwunden seien, konnt ein in verbunden Casinos exklusive deutsche Erlaubnis zudem einem Pokerspiel frohnen, selbige Gewehrkugel beim Line roulette scrollen lassen ferner mit folgenden Spielern bei dem Baccarat am virtuellen Reside Dealer Tafel Ort nehmen. Wanneer that i-Tupfelchen ermi\ufffdglichen sich sekundar die eine ganze Warteschlange in betrieb knackevollen, progressiven Jackpots, ebendiese umfangreiche Gewinne verburgen. Diverse ihr Ernahrer besitzen benachbart diesem verschiedenartig gemischten Portfolio aktiv Casinospielen zusatzlich nebensachlich jedoch Sportwetten im portfolio.<\/p>\n

Sicherheit as part of moglich Casinos blo? deutsche Billigung<\/h2>\n

Ebendiese erreichbar Casinos blo? deutsche Billigung verfugen zumeist ungeachtet qua folgende zusatzliche Billigung im bereich das Europaische gemeinschaft. Das genuine Vorreiter ist hierbei wohl unser Billigung das Malta Gaming Authority, diese jede menge gro?es Vertrauen bei der Spielergemeinde genie?t. Bekannterma?en mussen alle Casinobetreiber, nachfolgende zigeunern um eine Malta Berechtigung werben, sehr strenge Vorgaben erfullen, um wanneer ernst oder serios eingestuft dahinter man sagt, sie seien.<\/p>\n

Zwar zweite geige zusatzliche Regulierungsbehorden erwischen hohe Anspruche a die Lizenznehmer, pass away einander doch schlapp von denen ein MGA differieren http:\/\/alfcasino-de.de<\/a> . Jedem Angeschlossen Casinos ist alltaglich, auf diese weise die kunden durch Regierungsseite uberpruft seien. Ein Unternehmen, unser kohlema?ig ungut aufgestellt wird weiters alabama von zweifelhaftem ruf bewertet war, sei keineswegs gunstgewerblerin ihr begehrten Lizenzen einbehalten.<\/p>\n

Nachfolgende Zuverlassigkeit ihr Glucksspieler darf in ihnen virtuellen Arbeitsgang-Spielcasino, plus im landbasierten Spielcasino, durch die bank zuallererst stehen, wie noch ihr faires Spielangebot gewahrleistet coeur soll. Wie as part of jedem europaischen Casinos vermutlich nebensachlich as part of diesseitigen Eg-Casinos ihr sogenannter Ergodic Rate of recurrence Dynamo (RNG) angewandten Spielablauf oder ermittelt unser Gewinne in in Zufallsprinzip. Dass dies zweite geige naturlich wirklich so war, ist und bleibt periodisch kontrolliert, damit zu jeder zeit ein faires Runde stattfindet.<\/p>\n

Overforingen unter anderem Zahlungen auftreiben inside angewandten virtuellen Spielhallen zu jeder zeit chiffriert anstelle, dass wirklich so sensible Kundendaten ewig dahinter tausend V. h. geschutzt eignen. As part of deutschen Erreichbar Casinos sei unser Datensicherheit in balde nicht langer blau gewahrleistet, daselbst freund und feind personenbezogenen Aussagen oder Bezuge nach welcher zentralen Verzeichnis gesammelt man sagt, sie seien.<\/p>\n

Es sei bislang optimal obskur, wer auf diese Zentraldatei Einsicht entdeckt, welche person unser Datensammlung kontrolliert ferner entsprechend nachfolgende nicht alltagliche Vorgehensweise werden sei. Alabama Zocker scheint male durch welcher Verfahrensweise relativ glasern nach seien, welches wahrscheinlich die wenigsten beabsichtigen. Wafer Mankos dies auf lange sicht qua gegenseitig bringen konnte, lasst zigeunern bis jetzt dennoch mutma?en. In anbetracht ebendiese weiteren sensiblen Daten, spielt adult male within moglich Casinos exklusive deutsche Erlaubniskarte mit Erlaubnisschein nicht mehr da anderen Neue welt ihr Eu sicherer und anonymer wie hinein solchen qua einer Diesem-Lizenz.<\/p>\n

Sturz vorher Spielsucht nebensachlich abzuglich deutsche Billigung<\/h2>\n

Welches Glucksspielgesetz, dasjenige 2021 within Bundesrepublik verabschiedet werde, plansoll die europaischen Spieler auf lange sicht vorweg der Spielsucht wahren. So jedenfalls sie sind ebendiese Regelungen ausgelegt. Es ist und bleibt sporadisch auch das Beweggrund, weshalb Verbunden Casinos aus Bundesrepublik deutschland angewandten Himmelangst Ansteckplakette aufspielen mussten. Ob ein Spieler naturlich eigenen Button nutzlichkeit ist, damit fur jedes dies Musizieren gesperrt nach eignen \ufffd & zwar landesweit as part of allen Casinos \ufffd ist und bleibt umstritten.<\/p>\n

Wirklich so bei dem Auffuhren ‘ne Suchtgefahr besteht, sei zweifelsfrei anerkannt. Ungeachtet gab ferner existieren bei ziemlich allen Moglich Casinos Hinweise darauf. Auch hinein verbunden Casinos frei deutsche Lizenz. Welche person vermutet, hinein die eine Abhangigkeit abzurutschen, entdeckt as part of einen meisten Anbietern Erleichterung.<\/p>\n

Aber und abermal werden selbige Webseiten qua die Unterseite \ufffdResponsible Gaming\ufffd selber geradlinig dahinter Suchtzentren verlinkt, aktiv selbige man zigeunern zur Suchtbewaltigung anrufen vermag. Daruber hinaus man sich alabama Spieler in einen meisten Anbietern im Kontobereich separat Limits aufladen vermag, is wirklich Semantik ergibt.<\/p>\n

Zuletzt ist und bleibt es genau so wie mit samtliche Spezies durch Sucht \ufffd folgende gesunde Selbstverstandnis geschult aufmerksam, unser Warnsignale zeitig hinten erkennen. Folgende Regulierung von seiten ihr Regentschaft ist und bleibt nichtens dolos ferner wird zigeunern wahrscheinlich sekundar nichtens aufbauen, bekannterma?en zwischenzeitlich bergwandern etliche Glucksspieler nicht fruher als in alternative gangbar Casinos abzuglich deutsche Erlaubnis oder frei Fursorge.<\/p>\n","protected":false},"excerpt":{"rendered":"

Unterdessen im europaischen Online Spielsaal alle Tischspiele von ein Bildflache verschwunden seien, konnt ein in verbunden Casinos exklusive deutsche Erlaubnis zudem einem Pokerspiel frohnen, selbige Gewehrkugel beim Line roulette scrollen lassen ferner mit folgenden Spielern bei dem Baccarat am virtuellen Reside Dealer Tafel Ort nehmen. Wanneer that i-Tupfelchen ermi\ufffdglichen sich\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-2141","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"https:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/2141","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=2141"}],"version-history":[{"count":1,"href":"https:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/2141\/revisions"}],"predecessor-version":[{"id":2142,"href":"https:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/2141\/revisions\/2142"}],"wp:attachment":[{"href":"https:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/media?parent=2141"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/categories?post=2141"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/tags?post=2141"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}