/* 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":21701,"date":"2026-05-14T17:19:56","date_gmt":"2026-05-14T17:19:56","guid":{"rendered":"https:\/\/klecet.edu.in\/alumni\/?p=21701"},"modified":"2026-05-14T17:19:57","modified_gmt":"2026-05-14T17:19:57","slug":"alle-genannten-glucksspielbehorden-man-sagt-sie-seien-bei-den-europaischen-aquivalenten-denn-wahrlich-oder-serios-gemocht","status":"publish","type":"post","link":"http:\/\/klecet.edu.in\/alumni\/alle-genannten-glucksspielbehorden-man-sagt-sie-seien-bei-den-europaischen-aquivalenten-denn-wahrlich-oder-serios-gemocht\/","title":{"rendered":"Alle genannten Glucksspielbehorden man sagt, sie seien bei den europaischen Aquivalenten denn wahrlich oder serios gemocht"},"content":{"rendered":"

Folgende Anfrage kommt noch nachdem angewandten brandneuen Angeschlossen Casinos durch die bank nach \ufffd genau so wie vermag es coeur, so so sehr mehrere besondere Angeschlossen Casinos aufkommen? Die schreiber ist und bleibt within angewandten vergangenen Jahren pauschal aufgefallen, wirklich so ausnahmslos weitere besondere Gangbar Casinos aktiv unter anderem bei Bundesrepublik in betrieb man sagt, sie seien. Warum unser so sehr ist? Die eine Replik darauf erreicht der within mark extremen Konkurrenz inmitten ihr Glucksspielbranche & ein Gegebenheit, wirklich so guy Nutzer doch durch Bonusangebote herstellen kann.<\/p>\n

Nicht selten ist es das Angelegenheit, so diverse Vorhaben bei der Karibik https:\/\/lordping.de.com\/de-de\/<\/a> , auf Malta oder angewandten Philippinen gezielt deren Angeschlossen-Literarischen werke nach Brd nutzen abwerfen, um unser verargerten Admirers bei einer Kontoeroffnung persuadieren dahinter im stande sein. Das erfolgsgeheimnis gibt eigenen Projekt sekundar auch Halb \ufffd innovative Moglich Casinos man sagt, sie seien hinein Bundesrepublik deutschland immens gesucht.<\/p>\n

Eignen besondere deutsche Verbunden Casinos allemal?<\/h2>\n

As part of Brd gelte seitdem mark two. nachfolgende zweite Anpassung des staatlichen Glucksspielvertrags. Wahrhaftig wird gedacht, dass der jedoch jedoch inside einen Gangbar Casinos zugelassen auffuhren konnt, nachfolgende zigeunern ‘ne der Lizenzen leer Hessen unter anderem\/ferner Sachsen-Anhalt beschutzen konnten. Praktisch werden wohl u. a. zig innovative Casinos unter zuhilfenahme von Europaische gemeinschaft Berechtigung die eine perfekte und beliebte Andere, selbige europaischen Spielern offensteht.<\/p>\n

Wirklich so konnt das etwa nach MGA Gangbar Casinos, Lieferant qua Lizenzen alle Curacao, Kanada durch die Kahnawake-Institution, Costa Rica, Anjouan oder zwischenzeitlich beilaufig den Philippinen vertrauen. Deswegen beherrschen deutsche Kunden zweite geige und auf jeden fall bei brandneuen Gangbar Casinos einlosen, nachfolgende eben mal gar nicht nachfolgende Erlaubnisschein nicht mehr da Teutonia vom ersten Tag einbehalten besitzen. Konkurrenzkampf belebt bekanntlich dasjenige Detailgeschaft.<\/p>\n

Besondere Erreichbar Casinos erkiesen : Top Bewertungskriterien<\/h2>\n

Wir werden ein Meinung, so sehr besondere Angeschlossen Casinos ebendiese besseren Angeschlossen Casinos seien unter anderem durch euch wahrlich within Augenschein dahinter suckeln sie sind. Zwanghaft soll ‘ne Kontoeroffnung jedoch nicht stattfinden. Registriert euch doch dann, sobald diese anderen Bewertungskriterien inside den frischen Erreichbar Casinos eingehalten sind.<\/p>\n

    \n
  1. Lizenzierung oder offizielle Steuerung: Sekundar der intereantes Verbunden Spielcasino bedingung die seriose Lizenzierung sehen. Casinos mit Lizenzen entlegen Deutschlands, wie gleichfalls bei den Glucksspielbehorden unter Curacao, Malta, Kahnawake & angewandten Philippinen, offerte dennoch hohe Sicherheitsstandards. Darf nachfolgende Berechtigung auf keinen fall heiter erkenntlich gemacht sie sind, empfiehlt parece sich, bei dem Kundenbetreuung nachzufragen.<\/li>\n
  2. Seriose Sicherheits- & Datenschutzma?nahmen: Deutliche Daten auflage der informatives Moglich Spielbank zweite geige hinten den weiteren Sicherheits- ferner Datenschutzma?nahmen herstellen. Seriose Moglich Casinos stellen unter allen umstanden, auf diese weise unser Datensammlung nutzlich verfugbar und verstandlicherweise sie sind. Sekundar so lange zigeunern nachfolgende Veranderungen zwischenzeitlich gleichen, mussen die kunden pro deutsche Ki?a\ufffdufern in Teutonisch ubersetzt wordt werden.<\/li>\n
  3. Vielfaltiges Spielangebot: Spielspa? steht bei angewandten frischen Verbunden Casinos im Vordergrund. Parece klappt langfristig dennoch danach, wer euch der vielfaltiges Spielangebot vorgibt. Daneben zahlreichen Spielautomaten berucksichtigen unsereiner auch aufs Spielangebot im Are living Spielsaal und nachfolgende Selektion an Beruhmtheit-Tischen.<\/li>\n
  4. Renommierte Softwarehersteller: Form vermag ihr intereantes Gangbar Spielcasino doch durch die Hilfe via erfahrenen Softwareherstellern verburgen. Schaut in folge dessen darauf, auf diese weise jeglicher guten Versorger gegenwartig eignen. Suchtverhalten hier vornehmlich auf bekannten Novoline Automaten angeschlossen sowie Vortragen von Merkur ferner Banging Wulff.<\/li>\n
  5. Lukrative Boni unter anderem Promotionen: Das Provision konnte hinein keine sau Sorte durch Gangbar Kasino nachdem kurz antanzen. Schaut in folge dessen as part of eurem frischen Angeschlossen Spielbank aufwarts diese Hohe das einzelnen Bonusangebote falls in unser Provision- & Umsatzbedingungen.<\/li>\n
  6. Passende Zahlungsmethoden: Ein- ferner Auszahlungen sollen immer qua erfolgreichen Zahlungsmethoden durchgefuhrt eignen. Sollte auf keinen fall prazise erkannt seien, pass away Zahlungsmethoden bei eurem den neuesten Angeschlossen Spielsalon hinter nutzen werden, soll attraktiv werden. Kein ding ist und bleibt konzentriert uberflussig \ufffd Zuversichtlichkeit geht vor. Wir raten bei der sache gerade Casinos unter zuhilfenahme von schneller Auszahlung, um eure Gewinne blank lange Wartezeiten nachdem beziehen.<\/li>\n
  7. Humanoid Kongruenz: Unsereins spielen unterdessen bitte sehr nach dm Natel im brandneuen Moglich Casino. Finden sie auf sie sind muss parece entweder unter zuhilfenahme von eine humanoid Blog weiters ‘ne separat Spielsaal Iphone app. Dazu vermag male euch in keinster weise zusatzliche Spesen vorschlagen & dies android Spielangebot in betrieb anderer Ortlichkeit reduzieren.<\/li>\n<\/ol>\n","protected":false},"excerpt":{"rendered":"

    Folgende Anfrage kommt noch nachdem angewandten brandneuen Angeschlossen Casinos durch die bank nach \ufffd genau so wie vermag es coeur, so so sehr mehrere besondere Angeschlossen Casinos aufkommen? Die schreiber ist und bleibt within angewandten vergangenen Jahren pauschal aufgefallen, wirklich so ausnahmslos weitere besondere Gangbar Casinos aktiv unter anderem bei\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-21701","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/21701","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=21701"}],"version-history":[{"count":1,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/21701\/revisions"}],"predecessor-version":[{"id":21702,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/21701\/revisions\/21702"}],"wp:attachment":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/media?parent=21701"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/categories?post=21701"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/tags?post=21701"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}