/* 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":135194,"date":"2026-05-26T16:57:06","date_gmt":"2026-05-26T16:57:06","guid":{"rendered":"https:\/\/klecet.edu.in\/alumni\/?p=135194"},"modified":"2026-05-26T16:57:06","modified_gmt":"2026-05-26T16:57:06","slug":"1win-simplifie-le-pari-en-ligne-sans-sacrifier-lintensite-du-jeu","status":"publish","type":"post","link":"http:\/\/klecet.edu.in\/alumni\/1win-simplifie-le-pari-en-ligne-sans-sacrifier-lintensite-du-jeu\/","title":{"rendered":"1win simplifie le pari en ligne sans sacrifier l\u2019intensit\u00e9 du jeu"},"content":{"rendered":"

1win simplifie le pari en ligne sans sacrifier l\u2019intensit\u00e9 du jeu<\/title><\/p>\n<h3>1win simplifie le pari en ligne sans sacrifier l\u2019intensit\u00e9 du jeu<\/h3>\n<p>Le monde des paris en ligne a connu une transformation majeure gr\u00e2ce \u00e0 des plateformes comme <a href=\"https:\/\/sabrinamerabet.fr\">1win<\/a>, qui allient simplicit\u00e9 d’utilisation et exp\u00e9riences immersives. Cette approche offre aux utilisateurs une interface fluide pour placer des mises sans complexit\u00e9, tout en conservant la tension et l\u2019adr\u00e9naline propres aux jeux de hasard num\u00e9riques. Dans cet univers o\u00f9 chaque seconde compte, 1win r\u00e9ussit \u00e0 trouver un \u00e9quilibre rare, permettant \u00e0 chacun de se concentrer pleinement sur l\u2019excitation du pari, sans \u00eatre frein\u00e9 par des d\u00e9marches techniques fastidieuses.<\/p>\n<h3>Une interface intuitive au service de l\u2019exp\u00e9rience utilisateur<\/h3>\n<p>La simplicit\u00e9 est au c\u0153ur de la philosophie de 1win, qui propose une interface claire et accessible, m\u00eame pour ceux qui d\u00e9couvrent le pari en ligne. Cette fluidit\u00e9 dans la navigation permet d\u2019acc\u00e9der rapidement aux \u00e9v\u00e9nements sportifs, aux cotes les plus attractives, ainsi qu\u2019aux diff\u00e9rentes options de paris. En \u00e9liminant les \u00e9tapes superflues, la plateforme r\u00e9duit le temps entre la d\u00e9cision et la mise, ce qui est essentiel pour ne pas perdre l\u2019intensit\u00e9 du jeu. Cette ergonomie optimis\u00e9e s\u2019appuie souvent sur des technologies modernes garantissant une compatibilit\u00e9 parfaite avec divers appareils, que ce soit un ordinateur, une tablette ou un smartphone.<\/p>\n<h3>La diversit\u00e9 des paris pour maintenir l\u2019engagement et la passion<\/h3>\n<p>Au-del\u00e0 de la simplicit\u00e9 d\u2019utilisation, 1win propose une large gamme d\u2019options, ce qui favorise une exp\u00e9rience riche et dynamique. Les parieurs peuvent ainsi choisir parmi une multitude de sports, \u00e9v\u00e9nements et types de mises, allant des paris classiques aux options plus sophistiqu\u00e9es comme les paris en direct ou combin\u00e9s. Cette vari\u00e9t\u00e9 contribue \u00e0 entretenir le suspense et l\u2019engagement, des \u00e9l\u00e9ments essentiels pour conserver l\u2019intensit\u00e9 du jeu. En int\u00e9grant souvent %key2% dans son offre, la plateforme assure \u00e9galement une mise \u00e0 jour constante des contenus, refl\u00e9tant les \u00e9volutions du march\u00e9 et les attentes des utilisateurs.<\/p>\n<h3>La s\u00e9curit\u00e9 et la transparence comme piliers de confiance<\/h3>\n<p>Dans le domaine des paris en ligne, la confiance est un aspect fondamental. 1win met en avant des protocoles stricts pour garantir la protection des donn\u00e9es personnelles et financi\u00e8res de ses utilisateurs. La transparence dans les r\u00e8gles du jeu, les conditions de mise et les r\u00e9sultats permet \u00e9galement d\u2019instaurer un climat de fiabilit\u00e9. Cette rigueur assure que l\u2019exp\u00e9rience reste centr\u00e9e sur le plaisir du pari et non sur des pr\u00e9occupations techniques ou juridiques. Le respect des normes en vigueur est un atout qui s\u00e9curise la pratique, tout en maintenant la fluidit\u00e9 n\u00e9cessaire \u00e0 l\u2019intensit\u00e9 du jeu.<\/p>\n<h3>Conseils pratiques pour profiter pleinement des paris avec 1win<\/h3>\n<p>Pour tirer le meilleur parti d\u2019une plateforme comme 1win, il est recommand\u00e9 de bien comprendre les m\u00e9canismes des diff\u00e9rents types de paris propos\u00e9s. Garder une gestion rigoureuse de son capital permet d\u2019\u00e9viter des risques excessifs, tout en conservant le plaisir du jeu. Il est aussi utile de suivre r\u00e9guli\u00e8rement les \u00e9volutions concernant %key3%, ce qui peut offrir des opportunit\u00e9s suppl\u00e9mentaires ou des strat\u00e9gies adapt\u00e9es. L\u2019adoption d\u2019une approche responsable est essentielle pour que l\u2019exp\u00e9rience reste positive et \u00e9quilibr\u00e9e, surtout dans un contexte o\u00f9 l\u2019intensit\u00e9 des \u00e9motions peut parfois mener \u00e0 des d\u00e9cisions impulsives. En restant attentif aux limites personnelles et au d\u00e9roulement des paris, l\u2019utilisateur b\u00e9n\u00e9ficie pleinement des avantages d\u2019une interface optimis\u00e9e et d\u2019une offre diversifi\u00e9e.<\/p>\n<h3>Un pari accessible sans compromis sur l\u2019intensit\u00e9<\/h3>\n<p>Finalement, 1win incarne une nouvelle g\u00e9n\u00e9ration de plateformes de pari en ligne qui parviennent \u00e0 concilier accessibilit\u00e9 et profondeur du jeu. En simplifiant les d\u00e9marches techniques, elle \u00e9largit l\u2019acc\u00e8s \u00e0 une audience plus vaste, tout en pr\u00e9servant la richesse \u00e9motionnelle qui fait le sel des paris. Cette alliance entre facilit\u00e9 d\u2019utilisation et intensit\u00e9 constante transforme la mani\u00e8re dont les utilisateurs vivent leurs enjeux, rendant chaque pari \u00e0 la fois simple \u00e0 r\u00e9aliser et captivant. Ainsi, 1win s\u2019inscrit comme un acteur majeur qui red\u00e9finit l\u2019exp\u00e9rience du pari en ligne, o\u00f9 l\u2019innovation et la passion cohabitent harmonieusement.<\/p>\n<div class=\"tc-manager-wp-inner\"><\/div>\n","protected":false},"excerpt":{"rendered":"<p>Discover how 1win simplifies online betting without losing game intensity, offering seamless casino experiences with slots, crash games, and more.<\/p>\n<p> <a class=\"continue-reading-link\" href=\"http:\/\/klecet.edu.in\/alumni\/1win-simplifie-le-pari-en-ligne-sans-sacrifier-lintensite-du-jeu\/\"><span>Continue reading<\/span><i class=\"icon-right-dir\"><\/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-135194","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/135194","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=135194"}],"version-history":[{"count":1,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/135194\/revisions"}],"predecessor-version":[{"id":135195,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/135194\/revisions\/135195"}],"wp:attachment":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/media?parent=135194"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/categories?post=135194"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/tags?post=135194"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}