/* 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":2053,"date":"2026-04-22T11:29:41","date_gmt":"2026-04-22T11:29:41","guid":{"rendered":"https:\/\/klecet.edu.in\/alumni\/?p=2053"},"modified":"2026-04-22T11:29:42","modified_gmt":"2026-04-22T11:29:42","slug":"casinos-sein-eigen-nennen-as-part-of-teutonia-ne-gepflogenheit-unser-einander-unter-einsatz-von-mindestens-zwei-jahrhunderte-erstreckt","status":"publish","type":"post","link":"https:\/\/klecet.edu.in\/alumni\/casinos-sein-eigen-nennen-as-part-of-teutonia-ne-gepflogenheit-unser-einander-unter-einsatz-von-mindestens-zwei-jahrhunderte-erstreckt\/","title":{"rendered":"Casinos sein eigen nennen as part of Teutonia ‘ne Gepflogenheit, unser einander unter einsatz von mindestens zwei Jahrhunderte erstreckt"},"content":{"rendered":"

Sinnvolle weiters gro?te echte Casinos bei Teutonia<\/h2>\n

Architektonisch uberreichen nachfolgende Spielstatten vom Barock solange bis hinein unser Actuel und offerte diesen Gasten die verschiedensten Attraktionen. Konzentriert geht eres den Gasten immer wieder nichtens doch um dasjenige reine Spiel. Das Klima, diese Flair und nebensachlich dies kulinarische Vorschlag sowie die Sage diverses einzelnen Ortes eignen pro jede menge Gaste im gleichen sinne nicht geringer elementar. Die Verbunden Spielbank unter einsatz von Erlaubnis as part of Brd werden naturlicherweise nine-fach mehr weiters diese Anstellung geht u. a. uff voraus wegen der Covid-21 Pandemie.<\/p>\n

Entsprechend reich sind ebendiese Casinos ferner Spielbanken<\/h2>\n

Uber setenta umfangreiche Casinos weiters Spielbanken trifft man auf dieser tage as part of Deutschland. Ein gro?teil man sagt, sie seien beheimatet within Niedersachsen, Rheinland pfalz, mark Saarland ferner Bayern. Nach anmerken gelte, wirklich so das Zufahrt inside den Casinos zusammenfassend gleichwohl z. hd. Personen ab mark Mindestalter bei xviii Jahren erlaubt sei. Hinein Baden-Wurttemberg oder Bayern gilt selber ein gesetzliches Mindestalter durch twenty-one Jahren, um die Raumlichkeiten des Casinos entsetzt nachdem durfen. Diverse das gehobenen Etablissements hatten zudem einen Dresscode, ihr eingehalten sie sind auflage, damit Tur dahinter beziehen. Dresscodes uberreichen bei das gehobenen Abendgarderobe solange bis zur anstandigen Freizeitbekleidung. Des ofteren sei sera zweite geige bei der Spezies der Spiele unmundig, wohingegen z. hd. Tischspiele alternative Kleidungsregeln gultig sein, alabama parece inside Automatenspielen ihr Untergang ist. In einen gro?en Casinos sind unser Bereiche zumeist untergeordnet raum… voneinander getrennt.<\/p>\n

Welches alteste Spielcasino Bundesrepublik befindet einander in Mineralquelle chipstars offizielle Website<\/a> Ems weiters werde 1720 eroffnet. Hinsichtlich in vergangener zeit befindet zigeunern unser Casino heute that is auch im Kurhaus. Der wie gleichfalls prachtiges Flair zeichnet ebendiese Location in folge dessen alle. Des eigenen ihr beliebtesten Spiele in der altesten Spielbank Deutschlands ist dasjenige klassische Line roulette. Beilaufig Pokertische ferner Blackjack einreihen uff unser zahlreichen Besucher, die annual hierher aufkreuzen. Neben den klassischen Geben ist dies Kasino Bad Ems seventy Automaten zur Regel, angeschaltet denen eine noch lockerere Kleiderordnung gelte, als es bei den klassischen Tischspielen zutrifft.<\/p>\n

Wie ist und bleibt dasjenige alteste Spielcasino Deutschlands<\/h2>\n

Dahinter diesseitigen sicherlich bekanntesten Casinos in Brd gehort nachfolgende Spielbank in Schwimmen-Baden. Seit 1824 wonne gegenseitig Besucher bei unserem prunkvollen Gemauer, in dem irgendetwas Scheichs, Staatschefs oder weltbekannte Stars zu gast nahrungsmittel. Wer bei keramiken within der Spiel aktiv einem ihr vielfi?a\ufffdltigsten Tische beteiligen mochte, darf einen Dresscode perzipieren. Gehobene Abendgarderobe ist und bleibt fur das Arbeitsgang amplitudenmodulation Tisch geboten. Anstandige Freizeitbekleidung setzt welches Spielsaal zu handen selbige Glucksspieler im Automatenbereich vorne. Bei keramiken fahig sein die Gaste mitten unter mit 140 Automaten auswahlen.<\/p>\n

Verstandlicherweise head wear sekundar die Kapitale der gro?es Spielcasino im angebot. Nachfolgende Kasino Bundeshauptstadt gehort unter zuhilfenahme von der Bildung 1975 auf keinen fall hinten diesseitigen altesten, zu diesem zweck wohl nach den umsatzstarksten Einrichtungen der Branche. Jedoch head wear diese Kasino Kitchener unter einsatz von diesem Casino am Potsdamer Bereich oder an dem Fernsehturm gleich mehr als einer Standorte hinten offerte. Gaste beherrschen zigeunern in unserem vielfaltigen Spielangebot genau so wie Live roulette, Piratenflagge und Poker ferner angeschaltet dm ein zahlreichen Automaten wonne.<\/p>\n

Ebendiese Spielbank Wiesbaden inoffizieller mitarbeiter Weinsaal des ehemaligen Kurhauses gehort gar nicht ungeachtet nachdem angewandten Top Adressen der deutschen Spielsaal Milieu, stattdessen sekundar zu diesseitigen beliebtesten. Ein Anteil der Stammgaste liegt within gegen 26% oder belegt daruber im vergleich zu weiteren Casinos den Topwert. Wer einmal atomar Spielsalon coeur Fortune degustieren mochte, in dem etwas Personlichkeiten wie Richard Radermacher unter anderem Elvis presley am Pokertisch sa?en, wird in diesem fall genau richtig.<\/p>\n

Hinten diesseitigen besten unter anderem gro?ten Casinos Bundesrepublik gehort auf jeden fall beilaufig dies Spielsaal Hohensyburg. Inoffizieller mitarbeiter Revier angesiedelt, diffundiert zigeunern dies Gebot aufwarts 30 Tische, das einander qua Poker, Blackjack, Roulette ferner weiteren bekannten Casino Spielen erstreckt. Jedoch zahlt welches Spielsalon stolze 360 Automaten, nachfolgende diesseitigen Gasten z. hd. das ausgiebiges Spielerlebnis bereit sein. Angrenzend einem gro?en Bieten eingeschaltet Spielen wird nachfolgende Spielbank jedoch pro die Kochkunst von rang und namen, ebendiese z. hd. selbige Gaste im Restaurantbereich schmackhafte Menus serviert. Regelma?ig aufstobern Im Disse jedoch Functions anstelle, sodass mitten unter angewandten Spielphasen zu handen sattsam Differenziertheit gesorgt war. Welche person modern im Durchlauf ist, darf umherwandern noch nach dem ein angebotenen Seminare einschreiben, damit diese Grundlagen dahinter studieren.<\/p>\n","protected":false},"excerpt":{"rendered":"

Sinnvolle weiters gro?te echte Casinos bei Teutonia Architektonisch uberreichen nachfolgende Spielstatten vom Barock solange bis hinein unser Actuel und offerte diesen Gasten die verschiedensten Attraktionen. Konzentriert geht eres den Gasten immer wieder nichtens doch um dasjenige reine Spiel. Das Klima, diese Flair und nebensachlich dies kulinarische Vorschlag sowie die Sage\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-2053","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"https:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/2053","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=2053"}],"version-history":[{"count":1,"href":"https:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/2053\/revisions"}],"predecessor-version":[{"id":2054,"href":"https:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/2053\/revisions\/2054"}],"wp:attachment":[{"href":"https:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/media?parent=2053"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/categories?post=2053"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/tags?post=2053"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}