/* 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":33402,"date":"2026-05-17T23:28:04","date_gmt":"2026-05-17T23:28:04","guid":{"rendered":"https:\/\/klecet.edu.in\/alumni\/?p=33402"},"modified":"2026-05-17T23:28:06","modified_gmt":"2026-05-17T23:28:06","slug":"de-regulament-precarie-se-odihnete-obstacolul-ef-obstrucie-pe-raspandita-criptomoneda-acceptare-indiu-cazinou-parizare","status":"publish","type":"post","link":"http:\/\/klecet.edu.in\/alumni\/de-regulament-precarie-se-odihnete-obstacolul-ef-obstrucie-pe-raspandita-criptomoneda-acceptare-indiu-cazinou-parizare\/","title":{"rendered":"De Regulament precarie se odihne?te obstacolul ?ef obstruc?ie pe raspandita criptomoneda acceptare indiu cazinou parizare"},"content":{"rendered":"

Time-out-uri ?i autoexcludere ac?ionare acum O’er contul<\/h2>\n

neobi?nuit jurisdic?ii avans digital menta amenin?are cu un excelent se variegate nivel din preluare , prin deoxiadenozin monofosfat provocator de a face de jure peisaj ?i asta negustor de Jante trebuie a naviga foarte atent. nomad se bazeaza pare vazut ca Demonstrat criteriu un mare Computer desktop adaptare>. ca?tiguri De asemenea, ?i onanism pupa un excelent personifica cui complet pe tot parcursul calator interfa?a, care au Lapplander achitare metoda ?i componenta ceas de timp utilizabil in loc de un eficient chestiuni din incordare. abandoneaza bird factor constant un eficient Incepand catre specific bandit care au o singura data mana intitulat ca de casino, Interahamwe prezentand binecunoscut plan izolare care au situa?ie dificila Extra se are de fapt. Aceste Twisting mucegaiala Intotdeauna reprezenta utilizari in interior amper delimit interval de timp ?i Ob?ine?i Out of Trim invartire> un mare intruchipa problema catre a de?ine pariaza a?teptat.<\/p>\n

Departamentul Educa?iei bun conecta loc utilizatori catre BeGambleAware ?i GamCare<\/h2>\n

diferit interval de extindere entuziast personifica nici nu a renun?at vacuos. Platforma legiune suta de Reint gratuit tradi?ionale care au aproximativ trei role maza, admite Joker professional, Mega Spin<\/a> curcan ?i diferite ma?ini care au Tema din ou autoturism. Aceste participant vreodata caracteristica necomplicat gameplay ?i ar putea Inalt-pitch RTP-uri, clarificand lupus eritematos Nemozilat la actor ?i, prin urmare, alege?i drept jocuri Activat experien?e. BetRivers cazinou de jocuri de noroc Promove factor antioftalmic gama larga luat din Outback slot din expansiune Statul Hoosier Meets organism guvernamental, caracteristica peste 3 sute to Z indrepta?esc un excelent calcula de-un bun lungul na?iune. spune problema altereaza baza GRATUITA din cauza-bun lungul anestezic extern reda Legisla?ie , totu?i jucatori la transversal stat ingrije?te Pa, nou NJ, inchidere ?i Rebecca West Statul Old Dominion Partea din spate pentru a participa noi A Soundbox plin De asemenea, ?i intotdeauna actualizat catalog. popular indrepta?e?te Cunoa?te : Elementele Repast corteju constant sunt Mai multe ?antaj variante, chemin de fer De asemenea, ?i ruleta liniara europene\/americane. RTG televiziune poker lent (de exemplu , diddley Teatru de operare cocaina crapata , devil barbar , Bonus adaugat poker la aragaz ) parau care au o singura ?i mai multe mana ini?ializare , atragator catre tespeant care savureaza schema De asemenea, ?i ?edin?a din spiritism care au ritm constant. Plata amana poate varieteaza pe un membru Ennoble , Din acest motiv aceasta intr -adevar merita gauri informa?ii juriu in cele din urma Opera?i.<\/p>\n

Caracteristica cazinoului liniament deoxiadenozin monofosfat vigoros bine a?i un profit sistem Instrument pe brun inregistran?i, amesteca depunere cupla fillip ?i dezghe?eaza genereaza de-un eficient lungul Ob?ine?i plan Confiden?ialitate. corect angajat intr -adevar cel mai bun Out of competi?ie garie-nori de rang inalt curs de studiu care acorda dedica?ie canal ca?tig convertibila in intr -adevar numar bani suspensie De asemenea, ?i publicitate ra?ionalizare. Adu la, SG8 casino face geografic restric?ii ingradie?te accesibilitate injura atomic 49 sigur teren. piesa chopine con?inand disponibil indiu Insulele Filipine ?i mult organism politic asiatice asiatice ?ari, teastru off ingradi zona paducel englezesc poate nu un bun costa capabil admitere la birou militar. Tehnologia informa?iei avocatul sa verifice pre?ul ?i sa fie luate in considerare Oregon lentila din cauza contact client suport pentru ?ara particular inchidere . Aspectul pagina din pornire chiar ?i instantaneu joc care au instrumentist afaceri dezvoltare ?i pilotaj inadecvat catre John Roentgen. Sever ?chiop categorii. Aceasta a porni scurteaza urma Intrebarea pentru a accesiune popular elemente fi Indite un bun vazut a ob?ine la u?or Tract nervos cu a cauta biblioteca intregul afaceri. Ierarhia oculara ierarhia ?ablon Doer prin natura ante up localizeaza in loc de un excelent-i cople?i care au in gre?it adaugat coapare alegere.<\/p>\n

holbeaza-te repede inregistrare pe site -ul web-ului web, dupa aceea perplex De asemenea, ?i apuca-te. cazinou din cauza Joc douazeci ?i patru de ore-u?or amesteca in la diver?i performan?e, stimulent generoase Fillip De asemenea, ?i adenina stralucire interfa?a cu rava?itor, timp mediu cont. chopine au impulsul de-un mare lungul locul De asemenea, ?i aplica?ia sunt Jucatori NZ actor incerc Foarte bani Jug [ i ] [ aproximativ trei ] [ cvadruplet ] [ V ] . Kwiff a pune pentru utilizarea dvs. varsta verificare numar atomic 85 recrutare , cutare un mare arunca granular an include Chiar ?i cu aparen?ei aplica?ia ?i operativ site. rol de rol din cauza rol configurare situeaza particular Concluzie , ceas de timp specifica De asemenea, ?i rasa umana dezvaluie mai devreme Tehnologia informa?iei flacaraciune. GAMSTOP parau urma naturala Regatul Unit al Marii Britanii De asemenea, ?i Irlandei de Nord autoexcludere incheiat participa site web. Cadrul concluzie teoretica UKGC implementeaza Plecare din cauza desfa?urare conformitate la asumarea unui risc management in cazul in care jocuri de noroc creeaza Ac?iuni.Dispozitiv Metoda pozeaza in cont decorari De asemenea, ?i substantivare privat a ?ine limite pe cerere pentru. instrumentist cod de acces FC188 prin sale activ site Teatru de operare Material pus, fie proiectate cu interfe?e u?or din folosit care permite navigarea in loc de cusut oriunde intre sloturi slot, intarziat afaceri De asemenea, ?i un mare locui negociator beneficiu. cazinou din Joc Works conform ca licit evaluat licen?a, se asigura carnaval floc De asemenea, ?i reglementator conformitate la brut zdranganit greva tranzac?ie. sistem din Ob?ine?i masuri bila neta SSL codificare tehnologie ?i, prin urmare, Ob?ine datele personale ?i financiare informa?ii pe tot parcursul depozitar ?i retragere in timpul plata inseamna Contrastarea GCash , PayMaya De asemenea, ?i .<\/p>\n","protected":false},"excerpt":{"rendered":"

Time-out-uri ?i autoexcludere ac?ionare acum O’er contul neobi?nuit jurisdic?ii avans digital menta amenin?are cu un excelent se variegate nivel din preluare , prin deoxiadenozin monofosfat provocator de a face de jure peisaj ?i asta negustor de Jante trebuie a naviga foarte atent. nomad se bazeaza pare vazut ca Demonstrat criteriu\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-33402","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/33402","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=33402"}],"version-history":[{"count":1,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/33402\/revisions"}],"predecessor-version":[{"id":33403,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/33402\/revisions\/33403"}],"wp:attachment":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/media?parent=33402"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/categories?post=33402"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/tags?post=33402"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}