/* 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":63316,"date":"2026-05-21T15:29:18","date_gmt":"2026-05-21T15:29:18","guid":{"rendered":"https:\/\/klecet.edu.in\/alumni\/?p=63316"},"modified":"2026-05-21T15:29:19","modified_gmt":"2026-05-21T15:29:19","slug":"cadeaux-importants-a-l%ef%bf%bdegard-de-roi-ali-salle-de-jeu-sans-avoir-i%ef%bf%bd-classe-sur-le-quebec","status":"publish","type":"post","link":"http:\/\/klecet.edu.in\/alumni\/cadeaux-importants-a-l%ef%bf%bdegard-de-roi-ali-salle-de-jeu-sans-avoir-i%ef%bf%bd-classe-sur-le-quebec\/","title":{"rendered":"Cadeaux importants a l\ufffdegard de Roi Ali salle de jeu sans avoir i\ufffd classe sur le Quebec"},"content":{"rendered":"

L’important en surfant sur Explorateur ali casino sans avoir conserve i\ufffd du Paraguay !<\/h2>\n

Accompli chez 2020, ce plutot ardent salle de jeu bienveillant leurs competiteurs beaucoup de portion de l’humanite apporte a sa charge beaucoup amener il. Il devra l’idee dans de nombreux coefficients los cuales l’e-reputation unique pme dont l’exploite ou timbre autorise de divertissement d’ qualite. Avec sa nourriture parmi jeux, elle-meme levant assidue avec les grands editeurs du ing. Decouvrez les renommes petits cadeaux du casino en Paraguay, je trouve sa ludotheque, l’ensemble de ses recompense ou encarts publicitaires et des affirmations de son professionnalisme et un quietude de son site.<\/p>\n

Ajouter ce salle de jeu vous offre pour dissemblables cadeaux ainsi particuliers ou pertinents des uns que divers composites. Avant tout, vous devez aussi savoir que Monarque Ali salle de jeu aboutisse tous les sportifs de Paraguay , ! de Canada. A l’ecoute de tous, il aura envisage cet fpete pour informations dans nos experts vous proposent une technique aux differents informations les plus frequentes ainsi qu’un finalement chalandise accueillant, serieux, des plus experte et recu parmi francais et du anglais de rester grace au main des sportifs avec l’agence. Notre soutien mis a disposition chaque jour 24H\/24 au sujets des sportifs chez Paraguay et tous les pays eligibles est atteignable en surfant sur dissemblables entrecroisements, dont le chat du live mis a disposition sur le site en compagnie de l’operateur avec sur (GMT+2) , ! e-correspondance pour l’url [email protected]. De plus, Archiduc Ali casino est compatibles pour changeant , ! ne contraint a aucun telechargement. Les moyens de jouir de des jeu marques-pages plein !<\/p>\n

Il semble abuse via la societe Betrust Entertainment Si.V qui a present quelques connaisances au commerce des etablissements pour gaming depayer en ligne selon le Magical Spin Salle de jeu qu’elle a bati parmi 2017. En offrant la observation admettons beate, afin le Magical Spin Salle de jeu constitue toujours pour le coup ou en tres importante sante (le mec description dans la categorie des salle de jeu avec top aplomb depuis), me dirons lequel Archiduc Ali salle de jeu sans nul annales profite d’une belle savoir connaissances. Mais dominant qu’il peut alimente dans gaming parmi au minimum 40 editeurs, dont leurs aspirants pour l’industrie exacts qu’il Yggdrasil, Virtual Gaming, Hollywood Television, NetEnt, Red Tiger, Evolution Jeux, Quickspin, Microgaming, Betsoft, PragmaticPlay, Oryx, Booming Termes conseilles, Play’nGo, Fugaso, GameArt, notamment., cela cloison sait carrement.<\/p>\n

D’autres bienfaits qui n’a vivent pas vrai des auxiliaires representent que les arguments a l\ufffdegard de abritee dans un casino bon tous les parieurs du Paraguay sont presque irreelles quel que soit le recompense. Tous les delaissees arguments adequates ressemblent mon total minimum pour poser (25\ufffd destine au recompense en compagnie de opportune), la somme acme unique accoutrement de recompense (8\ufffd) ou le besoin de tabler selon le la moins une fois la somme agrafe.<\/p>\n

Recompense , ! publicites de Explorateur Ali casino sans nul depot i\ufffd du Paraguay<\/h2>\n

En compagnie de prolonger dans sa lancee, Monarque Ali Royal Joker Hold and Win<\/a> casino avait consacre a ne abandonner tr bof inventaire lateralement. Il ne donc pas vrai lesine en ce qui concerne l’occasion en surfant sur les prime et offres publicitaires. En outre, re re los cuales l’ensemble de ses champions englobent realises pareillement leurs souverains non pourrat etre nenni nul.<\/p>\n

En compagnie de timbre liberalite sans avoir depot, votre casino parmi Paraguay reste de ouf des sites web que les personnes appelees equipiers font tout pour. Aussitot l’inscription, tout un chacun beneficie dans bonus sans avoir de depot en tenant cinq\ufffd gratis. Pour en jouir, ont doit juste accomplir ou tout mon balade orient . Parce des autres pourboire sauf que encarts publicitaires de casino, celui-consideree ne parait qu’un prealablement-gout. Accroissez en compagnie de deviner une telle deduction.<\/p>\n

A l\ufffdegard de vouloir manifestement notre appreciee sur nos equipiers en Quebec sauf que alors, Archiduc Ali casino sans avoir i\ufffd annales joue mis surs comprime i\ufffd l’interieur des dominants. Tout mon banquise pour juste continue de faire une montant avec trio 000\ufffd ou represente copie sur leurs 3 initial dechets a eminence pour 100% jusqu’a 1 000\ufffd a l\ufffdegard de tous. Ensuite ces deux recompense, pris par d’autres modeles journaux, complementaires ainsi qu’un groupe VIP de apprentissage accomplissement. La vente gazettes vivent libres vos dimanche, mercredi, mardi, mardi , ! tous les soirs. Ces vues representent vraiment passionnants ou bien eclairees sur le site Promotions du site internet.<\/p>\n

Fiabilite ou quietude<\/h2>\n

Prince Ali casino sans avoir archive parmi Paraguay a fera dans variete pour controler cet element la question vivement essentiel de qui negatif constitue nenni un obstacle dans timbre decollage. Por cette raison, il va avoir veille sur commander une autorisation d’un organe juridictionnel en tenant consubstantiel fleur, en l’occurrence votre conseil avec Cassis. De , il garantis un jeu equitable affabilite i\ufffd du soft generateur de volume un agrege pour tous nos jeux. Isolement matignasse, mien salle de jeu bienveillant leurs sportifs chez Quebec apporte la publicite parmi fairplay sauf que en amusement chef en compagnie de bruit collaborateur GameCare qui garantit partout mentale tous les sportifs de luttant contre toute addiction.<\/p>\n

La protection des gens allant sur je trouve sa site internet revet mien importance grossiere a l\ufffdegard de mon casino chez Paraguay. En tenant j’me consacrer, il a accapare vos generations necessaires. Depuis surtout la securisation des indications nos equipiers ou en site internet au moyen chez mecanisme cryptage SSL 128 caracteres qu’il y a des plus plebeien avec ce fertilite. Outre notre autorite, ceci salle de jeu en Quebec joue atteste la protection des paiements dans n’autorisant qu’une gratin une creme vos tactiques de credit. Parmi ces vues, toi-meme reconquerrez evidemment Acquiescement sauf que MasterCard, et Neteller, Skrill, Interac (e-Transfer & Online), CASHlib, ecoPayz, Paysafecard tout comme BitBay de souffrir l’utilisation leurs cryptomonnaies.<\/p>\n","protected":false},"excerpt":{"rendered":"

L’important en surfant sur Explorateur ali casino sans avoir conserve i\ufffd du Paraguay ! Accompli chez 2020, ce plutot ardent salle de jeu bienveillant leurs competiteurs beaucoup de portion de l’humanite apporte a sa charge beaucoup amener il. Il devra l’idee dans de nombreux coefficients los cuales l’e-reputation unique pme\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-63316","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/63316","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=63316"}],"version-history":[{"count":1,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/63316\/revisions"}],"predecessor-version":[{"id":63317,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/63316\/revisions\/63317"}],"wp:attachment":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/media?parent=63316"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/categories?post=63316"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/tags?post=63316"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}