/* 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":192164,"date":"2026-06-22T17:53:12","date_gmt":"2026-06-22T17:53:12","guid":{"rendered":"https:\/\/klecet.edu.in\/alumni\/?p=192164"},"modified":"2026-06-22T17:53:12","modified_gmt":"2026-06-22T17:53:12","slug":"der-programmierer-gibt-viele-verschiedene-themen-in-seinem-spielangebot-uber-uber-140-spielen-5","status":"publish","type":"post","link":"http:\/\/klecet.edu.in\/alumni\/der-programmierer-gibt-viele-verschiedene-themen-in-seinem-spielangebot-uber-uber-140-spielen-5\/","title":{"rendered":"Der Programmierer gibt viele verschiedene Themen in seinem Spielangebot \u00fcber uber 140 Spielen"},"content":{"rendered":"

Diese locowin<\/a> kommen in ihnen Gestalten und Gro?en, von interessanten alten 5-Mangeln Klassikern bis zu atemberaubenden four-Glatten Movies-Abenteuern. Sie k\u00f6nnen auch eine umfangreiche Wahl angeschaltet zusatzlichen Funktionen \u00fcber etwas rechnen, diese schon jede Spielrunde uber Vorfreude erwarten lasst.<\/p>\n

Initialisieren wir am anfang – 3-Platten Zur\u00fcck-Name – und was ist besser geeignet, als diese Triple Chance Spielserie. Es Ternary Chance Mensch hat 5 Mangeln und four Gewinnlinien & finden sie auf zeitlose Symbole, diese charakter angeschaltet ihnen beri?chtigten Obst-Spielautomaten in Spielhallen finden kann. Es gibt auch eine “Rewin” Funktion, eine welle Belohnung ist, wenn guy eine erfolglose Spielrunde hatte. Es gibt ein “Douple Triple Chance” und ein “Three times Ternary Chance” Runde, beiderlei erh\u00f6hen einen Absoluter wert ein “Rewin” Moglichkeiten.<\/p>\n

Glucksspieler vermogen ihre Gewinnchancen erh\u00f6hen, wenn sie sich angeschaltet einen 5-Mangeln Vortragen versuchen. Diese vorschlag ganz diese gleichen bunten Fruchtsymbole, dabei diese gleichzeitig zusatzliche Gewinnlinien auf anderem zusatzliche belohnende Elemente, zwerk.Mensch b. Multiplikatoren, Wilds und Scatter addieren. Beaugen Sie sich Fruitopia, Geld Red und Incredible angeschaltet, dar\u00fcber einige klassische Gewinnrunden nach erfahrung.<\/p>\n

Ein Zug in Mysterium und Ausstrahlung<\/h2>\n

Zeug sind durchweg zum denken gelegenheit gebend, wer einen Blick \u00fcber diese Vintage-Bestand aufwarts wirft & sich \u00fcber einen wichtige Themen-Slots auseinandersetzt. Merkur-Programm ubertrifft sich in Themen, diese aus das Norm einwirken. Haben Sie z. b. etwas einmal einen Name gesehen, ein auf einen fruheren, verruckten Video clips-Vortragen basiert? Prazise diese ist in Reel’n’Run nach finden. Warum erf\u00fcllen Sie sich nicht dem Team von Schnufflern angeschaltet, das einen Fuchs, eine Eule und einen Bar anbietet. Testen Sie “Nachricht for 3” aus, helfen Sie einen Mordfall nach l\u00f6sen und organisieren Sie sich ein paar Freispiele.<\/p>\n

Ein Sache, das adult male oft in Merkur-Spielen wiederfindet, sind Walk-Abenteuer. Gerade in denen es um das Ma und geheimnisvolle Zeug geht, die Ausstrahlung, Hippe und Reichtumer uberspannen. Es durchfuhrt das 2-Glatten (ja – three Glatten!) “Arcane Amulet”, inoffizieller mitarbeiter das Herr seinen Glanz und gloria f\u00fcr das Entdecken des diesen verzauberten Edelsteines erhalt. Sonst k\u00f6nnen Die einen three-Mangeln “Brynhild” Slot in High-eingrenzung spielen, ein angeschaltet diese legendare Kriegerin ein nordischen Folklore angelehnt ist. Es gibt viele mehrere Name, diese in diese Kategorie gefallen: Purple Mage, Dragon’s Treasure, Gods of Midgard, Knight’s Lifetime, Odin High eingrenzung und Field for Assistent.<\/p>\n

Wenn mittelalterliche Geschichten nach neu und unmenschlich z. hd. Sie ci\ufffd”?our mi?ssen, dann versuchen Sie sich in firma einen historischen Slots, diese sich in einen Luxus und diese Reichtumer vos antiken Konigreiches potpourri Mittleren Ostens konzentrieren. Spieltitel wie Alhambra, Pyramid towards Electric powered & Gold concerning Persia vorschlag viele historische Abenteuer in warmen Bedurfen. Wenn diese Geschichte nicht so Ein Objekt sein ist, dann versuchen Sie moderne Spiele wie einen three-Platten Slot Skate Jam und diese futuristische 4-Mangeln Runde Sicdonia.<\/p>\n

Suchen Sie aufwarts anderen kostenlosen Vortragen in Top-Softwareanbietern? Versuchen Sie sich jedoch mal angeschaltet NetEnt-Spielautomaten \u00fcber magischen Themen wie Excalibur und Play’n Go-Slots \u00fcber historischen Themen wie Zeitung towards Einwirken.<\/p>\n

Mehrere mehr Empfehlungen<\/h2>\n

Diese Spielentwicklung von Merkur intensiv sich in Slots. Noch es gibt auch viele Alternativen, wie Very old Poker, Kenotopia – eine Ausfuhrung potpourri klassischen Keno – und Bahamas Roulette.<\/p>\n

Sichtbar nicht so ein uberredung dienend<\/h2>\n

Wenn es auf das Qualitat ein Grafiken kommt noch, dann ist der Computerprogramm-Versorger gar nicht riesig gleich in seiner Arbeit. Diese Ehrlichkeit ist, so einige Spiele nicht dem Recht visueller Sch\u00f6nheit langen. Gentleman braucht sich etwa jedoch Mystic Draco anzuschauen – ein Runde \u00fcber dem feuerspeienden Luder uber 3D-Animation. Heute kann charakter sich a der Stelle atemberaubende Step und spannende Soundeffekte meinen. Jedoch praktisch ist diese Spiritedness sehr reibungslos & machen gesamteindruck etwas narrisch, jedoch es tats\u00e4chlich einen Grusel f\u00fchren kann.<\/p>\n

Trotz ist das unternehmen seit der zeit \u00fcber funf Jahrzehnte inoffizieller mitarbeiter Gesch\u00e4ft und guy kann daher viele alte Spiele ex Zeiten inoffizieller mitarbeiter portfolio erwarten. Positiv anzumerken ist, so Merkurs innovative Veroffentlichungen as part of Hd vorget\u00e4uscht sind fahig sein. Deshalb sind Spiele wie Scidonia, Odin & Power Burst sichtbar strapazi\u00f6s gestaltet auf anderem unterhaltsam nach vortragen.<\/p>\n","protected":false},"excerpt":{"rendered":"

Diese locowin kommen in ihnen Gestalten und Gro?en, von interessanten alten 5-Mangeln Klassikern bis zu atemberaubenden four-Glatten Movies-Abenteuern. Sie k\u00f6nnen auch eine umfangreiche Wahl angeschaltet zusatzlichen Funktionen \u00fcber etwas rechnen, diese schon jede Spielrunde uber Vorfreude erwarten lasst. Initialisieren wir am anfang – 3-Platten Zur\u00fcck-Name – und was ist besser\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-192164","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/192164","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=192164"}],"version-history":[{"count":1,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/192164\/revisions"}],"predecessor-version":[{"id":192171,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/192164\/revisions\/192171"}],"wp:attachment":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/media?parent=192164"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/categories?post=192164"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/tags?post=192164"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}