/* 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":211052,"date":"2026-06-22T20:52:59","date_gmt":"2026-06-22T20:52:59","guid":{"rendered":"https:\/\/klecet.edu.in\/alumni\/?p=211052"},"modified":"2026-06-22T20:52:59","modified_gmt":"2026-06-22T20:52:59","slug":"mehrere-slots-einrichten-in-einige-monaten-wieder-inoffizieller-mitarbeiter-digitalen-nirgendwo-andere-bleiben-reibungslos-10","status":"publish","type":"post","link":"http:\/\/klecet.edu.in\/alumni\/mehrere-slots-einrichten-in-einige-monaten-wieder-inoffizieller-mitarbeiter-digitalen-nirgendwo-andere-bleiben-reibungslos-10\/","title":{"rendered":"Mehrere Slots einrichten in einige Monaten wieder inoffizieller mitarbeiter digitalen Nirgendwo, andere bleiben reibungslos"},"content":{"rendered":"

dreizehn legendare Slots: Diese virtuellen Automatenspiele sind genuine Klassiker!<\/h2>\n

Diese Atlantic Spins<\/a> eintauchen auch auf Jahren ohne ausnahme noch in einen Casino-Lobbys auf, als hatte jemand diese Zeit angehalten. Sie glanz vielleicht auf keinen fall so gerauschvoll wie ebenfalls andere Releases, verprugeln vielleicht \u00fcber ihnen Spin einen ganz einen Laut angeschaltet.<\/p>\n

Diese Slots sind nicht hip, sie sind Kult. Wer sich durch Online-Casinos klickt, wird ihnen zwangslaufig begegnen, manchmal verpackt in einem neuen Design, manchmal im Originalgewand. Da die Auswahl enorm gro? ist und es immer mehr Anbieter gibt, lohnt ein Blick auf die Top Erreichbar Casinos larmig<\/u> , wodurch Spieler den passenden Anbieter fur sich finden. Nachfolgend kommen 13 Automaten, die Geschichte geschrieben haben, mit Walzen, Symbolen und einer Portion Eigenwilligkeit.<\/p>\n

1: Guide to Ra (Novomatic)<\/h2>\n

Dieser Slot steht wie kein zweiter fur das Agypten-Frage und diese mythischen Gotter<\/u> . Book of Ra wurde zum Inbegriff seiner Gattung. Das Buch-Symbol ubernimmt gleich zwei Funktionen, als Scatter und als Wild. Bei drei Buchern startet eine Freispielrunde mit einem Symbol, das sich uber alle Walzen entfalten kann. Einfach gehalten, aber mit enormer Spannung.<\/p>\n

Die Optik wirkt wie aus den fruhen 2000ern, doch genau das gehort zur Faszination, denn ich diese Pixelgrafiken ein 90er Jahre besuchen oft zur\u00fcck<\/u> . Der Sound erinnert an die alten Spielhallen. Das Forscher-Symbol sorgt nicht nur fur hochste Auszahlungen, es weckt auch Erinnerungen an unvergessliche Drehs.<\/p>\n

2: Publication of Decreased (Play’n Go)<\/h2>\n

Diese modernere Version des Bd.-Konzepts kommt noch in Play’n Jump. Deeply Wilde hei?t das innovative Hauptdarsteller inoffizieller mitarbeiter Abenteueroutfit. Beilaufig hier dient es Bd. als Code nach Freispielen \u00fcber expandierendem Spezialsymbol. Das Uberbau ist aus dem platzregen, jedoch Konzept und Leidenschaft wurden ordentlich aufpoliert.<\/p>\n

Guide concerning Einwirken glanzt speziell inoffizieller mitarbeiter mobilen Runde. Kontraste sind tats\u00e4chlich, Ablaufe schnell und ein Soundtrack packend. Gerade deshalb ist ein Slot in aller herren lander zum Dauerbrenner. Wer Publication to Ra mochte, findet hier eine unverbrauchtheit Perspektive \u00fcber gleichem Nervenkitzel.<\/p>\n

3: Grateful Lady’s Style (Greentube)<\/h2>\n

Sanfte Farben, schimmernde Rollen & Muttergotteskafer uber Schicksalspotential. Ein Slot setzt auf lady Symbolik und trifft dar\u00fcber einen Nerv, speziell inoffizieller mitarbeiter deutschsprachigen Gegend. Diese Lady \u00fcber das Glaskugel ist seit langem zur Kultfigur geworden.<\/p>\n

Inoffizieller mitarbeiter Mitte stehen 15 Freispiele, in denen ein dreifacher Verstarker wirkt. Das erh\u00f6ht diese Abenteuer deutlich. Diese schnelle Organisation und ein verspielte Look machen Lucky Lady’s Wonder nach dem ein bekanntesten Klassiker gar. Wer es einmal spielt, versteht schnell einen Schonheit.<\/p>\n

4: Sizzling Hot (Novomatic)<\/h2>\n

Hier trifft man auf Minimalismus in Reinform. Keine Freispiele, kein Hart, jedoch wenigstens Spielereien, jedoch Fruchte, Sterne und diese Sieben und richtig diese Verringerung cap eine umfangreiche Fangemeinde begeistert. Diese Mangeln drehen reibungslos, diese Beherrschen sind klar und ein Sound erinnert angeschaltet klassische Spielautomaten. Wer keine lust auf komplizierte Qualities verf\u00fcgt, bekommt hier genau diese Gute. Sizzling Herzlich lebt von Hast und Konzentration und das seit einigen Jahren.<\/p>\n

5: Gonzo’s Objective (NetEnt)<\/h2>\n

Es ist das Slot wie das Filmabenteuer. Gonzo entwickelt am Flugel und wartet auf Gold, f\u00fcr Mangeln einwirken hier Symbole in Blocken. Trifft male eine Kombination, flatter machen sie und andere r\u00fccken auf und \u00fcber ihnen Preis steigt ein Endverstarker.<\/p>\n

Diese Stimmung ist detailreich. Maya-Kirche, Steinmasken & eine animierte Hauptfigur machen das Runde herausragend. Technisch brachte ein Slot echte Neuerungen, diese bisher Norm sind. Gonzo’s Missionary post ist ein Erfahrung \u00fcber Suchtfaktor.<\/p>\n

6: Starburst (NetEnt)<\/h2>\n

Glitzernde Steine, leuchtende Farben & ein Soundtrack \u00fcber Hypnoseeffekt. Starburst verzichtet auf komplexe Bonusspiele. Stattdessen sorgen Response-Spins und expandierende Wilds f\u00fcr permanente Step. Symbole zahlen in sonst und rechts.<\/p>\n

Diese Konzept ist praktisch, diese Spielgefuhl wassrig. Komplett fur ganz, diese einen ruhigen Einstieg suchen auf anderem wie am schnurchen entspannen wollen. Starburst ist nicht drohnend, zwar unwiderstehlich.<\/p>\n","protected":false},"excerpt":{"rendered":"

dreizehn legendare Slots: Diese virtuellen Automatenspiele sind genuine Klassiker! Diese Atlantic Spins eintauchen auch auf Jahren ohne ausnahme noch in einen Casino-Lobbys auf, als hatte jemand diese Zeit angehalten. Sie glanz vielleicht auf keinen fall so gerauschvoll wie ebenfalls andere Releases, verprugeln vielleicht \u00fcber ihnen Spin einen ganz einen Laut\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-211052","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/211052","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=211052"}],"version-history":[{"count":1,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/211052\/revisions"}],"predecessor-version":[{"id":211058,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/211052\/revisions\/211058"}],"wp:attachment":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/media?parent=211052"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/categories?post=211052"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/tags?post=211052"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}