/* 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":141079,"date":"2026-06-10T11:29:15","date_gmt":"2026-06-10T11:29:15","guid":{"rendered":"https:\/\/klecet.edu.in\/alumni\/?p=141079"},"modified":"2026-06-11T07:53:17","modified_gmt":"2026-06-11T07:53:17","slug":"madcasino-1546","status":"publish","type":"post","link":"https:\/\/klecet.edu.in\/alumni\/madcasino-1546\/","title":{"rendered":"D\u00e9couvrez les Meilleures Offres de Madcasino France : Bonus, Slots et Tournois"},"content":{"rendered":"

Pr\u00e9sentation de Madcasino<\/h2>\n

Madcasino est une plateforme de jeu en ligne r\u00e9put\u00e9e pour ses offres attrayantes et ses jeux de hasard de haute qualit\u00e9. Avec une interface conviviale et une large s\u00e9lection de jeux, madcasino France se d\u00e9marque comme une option int\u00e9ressante pour les joueurs. Les utilisateurs peuvent explorer diverses promotions et bonus qui rendent l’exp\u00e9rience de jeu encore plus enrichissante. Pour plus d’informations, rendez-vous sur madcasino<\/a>.<\/p>\n

Les Jeux de Madcasino<\/h2>\n

Slots et Machines \u00e0 Sous<\/h3>\n

Madcasino propose une large gamme de slots et de machines \u00e0 sous de divers d\u00e9veloppeurs de logiciels de jeu, notamment Microgaming et NetEnt. Les joueurs peuvent profiter de titres populaires ainsi que de nouvelles sorties, offrant ainsi une exp\u00e9rience vari\u00e9e. Les machines \u00e0 sous sont souvent mises \u00e0 jour avec des th\u00e8mes innovants et des fonctionnalit\u00e9s bonus int\u00e9ressantes.<\/p>\n

Live Casino et Jeux de Table<\/h3>\n

La plateforme offre \u00e9galement une section Live Casino avec des jeux de table tels que la roulette, le blackjack et le baccara, ainsi que des jeux de poker et autres jeux de hasard. La qualit\u00e9 des flux en direct est remarquable, permettant aux joueurs de vivre une exp\u00e9rience immersive comme dans un v\u00e9ritable casino.<\/p>\n

Les Offres de Madcasino<\/h2>\n

Bonus et Tours Gratuits<\/h3>\n

Madcasino propose des bonus et tours gratuits aux nouveaux joueurs, permettant de d\u00e9couvrir les jeux et les fonctionnalit\u00e9s de la plateforme. Ces offres sont souvent accompagn\u00e9es de conditions avantageuses, ce qui est un atout pour les joueurs souhaitant maximiser leur temps de jeu.<\/p>\n

Programmes de Fid\u00e9lit\u00e9<\/h3>\n

La plateforme a \u00e9galement des programmes de fid\u00e9lit\u00e9 pour les joueurs r\u00e9guliers, offrant des r\u00e9compenses et des avantages exclusifs. Ces programmes permettent de b\u00e9n\u00e9ficier de promotions personnalis\u00e9es et d\u2019un traitement privil\u00e9gi\u00e9, renfor\u00e7ant ainsi la satisfaction des utilisateurs.<\/p>\n

\"Image:<\/div>\n

Paiement et S\u00e9curit\u00e9<\/h2>\n

M\u00e9thodes de Paiement<\/h3>\n

Madcasino accepte diverses m\u00e9thodes de paiement, telles que les cartes de cr\u00e9dit, les cartes de d\u00e9bit, les transferts bancaires et les services de paiement en ligne. Cela garantit une flexibilit\u00e9 pour les joueurs, leur permettant de choisir le mode de paiement qui leur convient le mieux.<\/p>\n

Licences et S\u00e9curit\u00e9<\/h3>\n

La plateforme est conforme aux normes de s\u00e9curit\u00e9 et de confidentialit\u00e9 impos\u00e9es par les autorit\u00e9s r\u00e9glementaires, garantissant la protection des informations des joueurs. Les mesures de s\u00e9curit\u00e9 incluent le cryptage des donn\u00e9es et des protocoles stricts pour assurer une exp\u00e9rience de jeu s\u00e9curis\u00e9e.<\/p>\n

Exp\u00e9rience de Jeu Mobile<\/h2>\n

Madcasino propose une application mobile pour les joueurs qui veulent jouer sur leur smartphone ou leur tablette. L’application est intuitive et permet d’acc\u00e9der facilement \u00e0 l’ensemble des jeux disponibles, ainsi qu’aux promotions en cours. La version mobile de madcasino est optimis\u00e9e pour offrir une exp\u00e9rience fluide, que ce soit pour les jeux de casino ou pour effectuer des paiements.<\/p>\n

Verdict<\/h2>\n

Madcasino est une plateforme de jeu en ligne fiable et s\u00e9curis\u00e9e, offrant une large gamme de jeux, des offres attrayantes et des fonctionnalit\u00e9s de jeu conviviales. Que ce soit pour les amateurs de slots, les fans de jeux de table ou ceux qui pr\u00e9f\u00e8rent le casino en direct, madcasino r\u00e9pond \u00e0 toutes les attentes. Avec un service client\u00e8le r\u00e9actif et des options de paiement vari\u00e9es, cette plateforme m\u00e9rite d’\u00eatre explor\u00e9e par tous les joueurs fran\u00e7ais.<\/p>\n

Questions Fr\u00e9quentes<\/h2>\n
\n
\n

Qu’est-ce que Madcasino ?<\/h3>\n

Madcasino est une plateforme de jeu en ligne proposant une large s\u00e9lection de jeux de hasard et un syst\u00e8me de bonus attrayant.<\/p>\n<\/div>\n

\n

Quels sont les avantages de jouer sur Madcasino France ?<\/h3>\n

Sur Madcasino, les joueurs peuvent profiter d’une interface conviviale, de jeux de haute qualit\u00e9 et de promotions r\u00e9guli\u00e8res pour enrichir leur exp\u00e9rience de jeu.<\/p>\n<\/div>\n

\n

Puis-je jouer en fran\u00e7ais sur Madcasino ?<\/h3>\n

Oui, Madcasino propose des contenus et des param\u00e8tres de langue en fran\u00e7ais pour faciliter l’exp\u00e9rience de jeu pour les joueurs francophones.<\/p>\n<\/div>\n

\n

Quels sont les types de jeux propos\u00e9s par Madcasino ?<\/h3>\n

Madcasino offre une vari\u00e9t\u00e9 de jeux de hasard, notamment des slots, des machines \u00e0 sous et des jeux classiques.<\/p>\n<\/div>\n<\/div>\n