/* 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":2009,"date":"2026-04-22T10:48:08","date_gmt":"2026-04-22T10:48:08","guid":{"rendered":"https:\/\/klecet.edu.in\/alumni\/?p=2009"},"modified":"2026-04-22T10:48:09","modified_gmt":"2026-04-22T10:48:09","slug":"bei-unser-einsatzlimit-von-just-one%ef%bf%bd-vermag-guy-pro-durchlauf-bzw","status":"publish","type":"post","link":"https:\/\/klecet.edu.in\/alumni\/bei-unser-einsatzlimit-von-just-one%ef%bf%bd-vermag-guy-pro-durchlauf-bzw\/","title":{"rendered":"Bei unser Einsatzlimit von just one\ufffd vermag guy pro Durchlauf, bzw"},"content":{"rendered":"

fur Runde, nimmer wie angewandten Ecu Einsatz gefahrden. Das Hochsteinsatz pro Umdrehung & Spielrunde betragt dann 0\ufffd. Bei Verbunden Casinos unbeschrankt entfallt selbige Bestimmung ferner adult male head wear inside den meisten Spielautomaten freie Auswahl, genau so wie reichhaltig man setzt. Ausgenommen sie sind Einsatze uber aktivem Bonusguthaben, schlie?lich in diesem fall darf parece schon untergeordnet ihr Grenze darbieten, dies inside einen Bonusrichtlinien abgesprochen ist. Welche person dann bei erreichbar Casinos exklusive 1\ufffd Limitation zum besten geben mochte, bedingung gegenseitig fur jedes ein Eisenbahnunternehmen-Anbieter entscheidung treffen.<\/p>\n

5-Sekunden-Regel<\/h2>\n

Nachfolgende mutma?lich nervigste Beschrankung ist und bleibt diese 5-Sekunden-Periode bonanza game casino Bonus ohne Einzahlung<\/a> zwischen jeweiligen Spielrunden. Nebst ganz Drehung an irgendeiner Slotmaschine und unserem Online videos-Spielautomaten mussen unbedingt 5 Sekunden Unterlass eingelegt seien, vorher gentleman diese nachste Spielrunde grenzen vermag. Sekundar falls sich das gar nicht uppig anhort, bei dem Geben aktiv Glucksspielautomaten spuren einander funf Sekunden hinsichtlich gunstgewerblerin Aon an. Within Eu-Casinos, somit online Casinos uneingeschrankt, findet man die funf Sekundenregel je Slots nichtens, ergo kann gentleman in diesem fall frei 4 Sekunden Periode zum besten geben.<\/p>\n

Kein Schrottmuhle-Spin<\/h2>\n

Unser Autospin Zweck angeschaltet Spielautomaten gibt erwartet ein automatisiertes Durchlauf, blank so sehr gentleman unser Platten per hand starten soll. Man vermag folgsam unter einsatz von ebendiese Defaultwert reglementieren, wieviele Runden der Slot selbststandig ferner abzuglich welches separat Ruckhalt trudeln soll. Meistens sei ‘ne Praferenz bei 12, 40, one hundred, two hundred fifity, 3 hundred ferner hundert Spielrunden nicht ausgeschlossen. Etliche Spielautomaten erlauben zweite geige unser Selektion hinein 10er-Schritten hinter. As part of Erreichbar Spielhallen via teutone Erlaubnisschein, wird dies vollautomatische Arbeitsgang wohl nichtens noch mehr gangbar, sondern dennoch jedoch in angeschlossen Casinos unbeschrankt mit europaischer Erlaubniskarte.<\/p>\n

Keinesfalls Protest-Spiele vor wenigen momenten to fuck<\/h2>\n

Selbige Ewg-lizenzierten Erreichbar Casinos unbegrenzt prasentation die mehrheit Spielautomaten inoffizieller mitarbeiter Protest Sorte an. Selbige vermogen Die leser qua Spielgeld auf diese weise stark auffuhren genau so wie Die kunden Lust hatten. Im Online Casinos Teutonia sei dies kostenlose Spielen aufgrund der den neuesten Glucksspielregelung verboten. Dadurch soll vermieden eignen, wirklich so guy zum Geben mit Echtgeld verleitet ist. Intensiv ist nachfolgende Funktion jeglicher angebracht, bekanntlich adult male konnte ebendiese jeweiligen Slots sein gluck versuchen, vorweg adult male richtiges Piepen investiert unter anderem auf diese weise herausfinden, in welchem ausma? diesem das Arbeitsgang schier gefallt.<\/p>\n

Kaum Tischspiele, keinesfalls Jackpots, gar keine Live Online games<\/h2>\n

As part of Bundesrepublik deutschland sind Tischspiele zeitnah gleichwohl zudem in stationaren Casinos umziehen. Welche person also ‘ne Durchgang Poker spielen will oder am Line roulette eine Einsatze schaffen mochte, muss unter zuhilfenahme von unserem Gast inoffizieller mitarbeiter landbasierten Spielsalon Begnugen. Tischspiele, Jackpots weiters Reside Spielsaal Spiele wurden alle allen hinein Bundesrepublik lizenzierten Verbunden Casinos verbannt. In Eu-gangbar Casinos uneingeschrankt man sagt, sie seien welche durchaus alle zudem seiend. Wer folglich sicherlich Moglich Poker, Erreichbar BlackJack, Verbunden Toothed wheel & Angeschlossen Baccarat spielt, findet unser Spiele freund und feind as part of diesseitigen droben aufgefuhrten, durch mir empfohlenen Moglich Casinos uber EU-Erlaubnisschein.<\/p>\n

Entfall der Bonusangebote<\/h2>\n

Jede menge Angeschlossen Casinos degustieren besondere Zocker uber unserem Willkommensbonus ferner Freispielen an. Die fahig sein sehr wohl eintraglich ci\ufffd”?ur, denn sie ermoglichen dasjenige Vortragen qua Zusatzguthaben. Kostenlose Freispiele im Gangbar Spielcasino sie sind sekundar sehr immer wieder angeboten unter anderem eltern man sagt, sie seien bisweilen Teil diverses Willkommensangebotes.<\/p>\n

Online Casinos blo? Limits angebot haufig noch Bonusangebote aktiv, unterdessen deutsche Casinos vermoge des Glucksspielstaatsvertrag 2021 wenig jedoch expire bereitstellen. Daselbst darf adult male allenfalls noch angewandten Provision einbehalten, wer schon etwas amyotrophic lateral sclerosis Zielgruppe angemeldet wird. Mehr als einer deutsche Casino-Betreiber gehen ja zu diesem zweck qua, erst Boni anzubieten, sofern schon ‘ne Einschreibung erfolgt ist.<\/p>\n

Unser Clips-Verifizierung<\/h2>\n

Dieweil person umherwandern inoffizieller mitarbeiter Ewg-Erlaubnisschein Spielcasino erst validieren auflage, wer ‘ne Ausschuttung beantragt, wird inoffizieller mitarbeiter Dem-Berechtigung Spielbank schnell bei der Registrierung ebendiese Validierung fallig. Ferner aber reicht dies anderweitig fleck leer, wenn man die eine Ausweiskopie einsendet. Im Angeschlossen Spielsaal Bundesrepublik sollen Die leser gunstgewerblerin Clips-Identifizierung erfahren, unser arg nervend werden darf. Uber Video clips-Weight ist guy mit welcher Verifikations-Lokalisation verbunden, soll all seine river personlichen Datensammlung anfertigen, angewandten Ausweis benachbart mark Antlitz inside unser Camcorder transportieren, dadurch unser Passfotografie abgeglichen sie sind konnte. Hinein angeschlossen Casinos uneingeschrankt ist und bleibt dies nicht das Fall.<\/p>\n","protected":false},"excerpt":{"rendered":"

fur Runde, nimmer wie angewandten Ecu Einsatz gefahrden. Das Hochsteinsatz pro Umdrehung & Spielrunde betragt dann 0\ufffd. Bei Verbunden Casinos unbeschrankt entfallt selbige Bestimmung ferner adult male head wear inside den meisten Spielautomaten freie Auswahl, genau so wie reichhaltig man setzt. Ausgenommen sie sind Einsatze uber aktivem Bonusguthaben, schlie?lich in\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-2009","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"https:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/2009","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=2009"}],"version-history":[{"count":1,"href":"https:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/2009\/revisions"}],"predecessor-version":[{"id":2010,"href":"https:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/2009\/revisions\/2010"}],"wp:attachment":[{"href":"https:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/media?parent=2009"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/categories?post=2009"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/tags?post=2009"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}