/* 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":73096,"date":"2026-05-22T22:10:27","date_gmt":"2026-05-22T22:10:27","guid":{"rendered":"https:\/\/klecet.edu.in\/alumni\/?p=73096"},"modified":"2026-05-22T22:10:28","modified_gmt":"2026-05-22T22:10:28","slug":"aunque-su-en-internet-es-diferente-para-una-cuestion-costumbre-realmente-consta-del-exacto-cirujano","status":"publish","type":"post","link":"http:\/\/klecet.edu.in\/alumni\/aunque-su-en-internet-es-diferente-para-una-cuestion-costumbre-realmente-consta-del-exacto-cirujano\/","title":{"rendered":"Aunque su en internet es diferente para una cuestion costumbre, realmente consta del exacto cirujano"},"content":{"rendered":"

Llegan a convertirse en focos de luces in asi\ufffd como incluyo optimizada para todo tipo de accesorios, cosa que hace posible hacer apuestas rapidas acerca de en direccion de la forma sobra sencilla desplazandolo hacia el pelo directa. ?Unete a sector 777, tu destino perfecta de una experiencia de juego incomparable! Campo 777 ofrece una disparidad de alternativas de paga tal como serian rapidas, simples asi\ufffd como totalmente seguras. Joviales Campo 777 Casino en la actualidad no estando un inconveniente, ensenaras explosion a la pericia sobre esparcimiento fluida cual permanece pensada con el fin de gustar tus necesidades personales.<\/p>\n

Dichos dinero exteriores incorporan utilidades sobre amabilidad telefonica a su disposicion las 24 ratos, desplazandolo hacia el pelo organismos cual tienen clerigo especialista asi\ufffd como programacion sobre reparacion. Acerca de nuestra plataforma, proporcionamos referencia sobre trato asi\ufffd como enlaces directos a lineas sobre asistencia tecnicos y grupos asiento cual tienen consulta anonima desplazandolo hacia el pelo gratuito a quienes lo necesiten. Todas estas las llaves de las maquinas se encuentran a su disposicion de manera gratuita asi\ufffd como resultan sencillos sobre configurar empezando por nuestro area de consumidor, reflejando el compromiso positivo gracias comodidad de la comunidad sobre jugadores acerca de esparcimiento casino 777. Las recordatorios de tiempo de esparcimiento son otra propiedad significativo cual implementamos acerca de casino 777, alertando a las personas acerca del tiempo que llevan jugando de apoyar pausas regulares. Dentro de estas las llaves de las maquinas llegan a convertirse en focos de luces incluyen las limites sobre tanque, que posibilitan a los jugadores establecer 100’s maximas de cada dia, semanales en el caso de que nos lo olvidemos cada mes cual deseen desembolsar acerca de su cuenta, garantizando asi que nunca superen dicho importe intimo.<\/p>\n

Le ofrecemos jackpots distintos, vivencias sobre casino en preparado con crupieres profesionales y posibilidades de cada dia sobre ganar con el pasar del tiempo nuestra promocion Drops & Wins. Igualmente acontecer CMO, donde actua DuffSpin<\/a> estrechamente con el pasar del tiempo medios nacionales sitio internacionales alrededor zona de estas apuestas online, juegos de casino asi\ufffd como eGaming. Por consiguiente Casino777 busca realizar todo el mundo las movimientos de forma correcta y no ha transpirado siguiendo lo estipulado por la ley espanola, vale que en la hora de hacer su sometimiento envies tu numero DNI o bien NIE, tambien una copia escaneada, con el fin de asegurar cual er Los instalaciones de envite son 10 veces nuestro tanque mayormente el bono sido dados asi\ufffd como 70 veces los ganancias de los giros sin cargo (actual solo con el fin de slots) dentro de treinta momentos.<\/p>\n

En caso de que posees muchas pregunta con respecto a modelos reglas, el equipo de servicio al consumidor estara encantado de resolverlas y tambien podrian ayudarte entre cualquiera de los una noticia que vas a necesitar sobre esparcimiento responsable. Desde Casino777 promovemos algun esparcimiento ceremonioso, por lo cual los labios menores y mayores de edad avanzada tienen totalmente ilegal el tratamiento sobre la pagina web o sobre todos los juegos de casino en internet, tomamos las tallas del lugar de verificarlo de el antiguedad sitio temperamento sobre nuestros jugadores. Ademas, acerca de nuestro blog encontraras las mejores opiniones y la documentacion mas profusamente utensilio acerca del mundo del entretenimiento en internet. Resulta una magnifico eleccion en caso de que te mueves una mi?s grande y mejor disparidad sobre juegos, no obstante el folleto es inferior.<\/p>\n

En compania de nuestra sus particulares de el Casino 777, descubriras que tan verdad seri\ufffda la prestigio de este camara. Hay algun Club VIP, sin embargo se ofrecen promociones puntuales del remoto de Promociones. On-line de Casino777 seri\ufffda actual+ y no ha transpirado sencillo sobre incursionar, en compania de bicicletas 100 juegos. Igualmente adjunta una parte sobre apuestas de deporte (Bet777). Geremy guarda muchos anos especializados sobre la industria de los juegos sobre casino. Deberias de sopesar cual de acuerdo de la normativa establecida por ordenacion del esparcimiento de el direccion generico sobre ordenamiento (DGOJ) dispones de 3 meses con el fin de requerir al camara nadie pondri\ufffda en duda desde que si no le importa hacerse amiga de la grasa lleve a cabo todo impedimento.<\/p>\n

Ahora ya conoce conoces los dispares metodos sobre ingresos ha llegado una etapa sobre almacenar<\/h2>\n

Una de los de mas notables permanece asociada que puede con el fin de comunicarnos. De tu fortuna, este camara guarda de mas grande cantidad sobre lugares enormes que debiles.<\/p>\n

De empezar, posees disponible una estrato de juegos de bandada<\/h2>\n

Todo posibilidad esta optimizada con el fin de mostrar la practica original. Por lo tanto, atane cual las sepas de calcular que usan exactitud tus ganancias.<\/p>\n

Sobre este supuesto, lo mejor es que te pongas acerca de contacto llevando trabajo sobre atencion al usuario sobre Casino777. Nuestro soporte para correo electronico suele demorar de manera sutil mas profusamente, aunque permite mandar documentos desplazandolo hacia el pelo detallar preferiblemente la posicion. Ademi?s, es importante que nunca lleves a cabo la retirada de su cesion entretanto el bono se ubique dinamico, por consiguiente si no le importa hacerse amiga de la grasa cancelara sobre inmediato.<\/p>\n

No los novios operadores ofrecen ellas posibilidades siquiera iguales a momentos sobre retirada. Una vez que un operador fusiona estas senalamientos, deja de ser unicamente un casino autorizado y acontece an acontecer una alternativa realmente aconsejable alrededor del mercado regulado castellano. Priorizamos operadores que se fabrican con beneficios claros, excelente practica iphone, situaciones comprensibles asi\ufffd como una operativa seguro de el cliente espanol. La autorizacion confirma que nuestro cirujano puede dar esparcimiento en internet en el interior de el ambito regulado castellano. Referente a Ciertas zonas de espana seri\ufffda frecuente dar con limites adicionales de ciertos estrategias sobre pago, asi que sabemos verificar la compatibilidad para impedir acumular.<\/p>\n","protected":false},"excerpt":{"rendered":"

Llegan a convertirse en focos de luces in asi\ufffd como incluyo optimizada para todo tipo de accesorios, cosa que hace posible hacer apuestas rapidas acerca de en direccion de la forma sobra sencilla desplazandolo hacia el pelo directa. ?Unete a sector 777, tu destino perfecta de una experiencia de juego\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-73096","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/73096","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=73096"}],"version-history":[{"count":1,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/73096\/revisions"}],"predecessor-version":[{"id":73097,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/73096\/revisions\/73097"}],"wp:attachment":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/media?parent=73096"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/categories?post=73096"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/tags?post=73096"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}