/* 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":74797,"date":"2026-05-22T22:20:47","date_gmt":"2026-05-22T22:20:47","guid":{"rendered":"https:\/\/klecet.edu.in\/alumni\/?p=74797"},"modified":"2026-05-22T22:20:48","modified_gmt":"2026-05-22T22:20:48","slug":"finalmente-una-empuje-seri%ef%bf%bda-cualquier-motivo-cual-observa-con-el-pasar-del-tiempo-obligacion-referente-a-este-operador","status":"publish","type":"post","link":"http:\/\/klecet.edu.in\/alumni\/finalmente-una-empuje-seri%ef%bf%bda-cualquier-motivo-cual-observa-con-el-pasar-del-tiempo-obligacion-referente-a-este-operador\/","title":{"rendered":"Finalmente, una empuje seri\ufffda cualquier motivo cual observa con el pasar del tiempo obligacion referente a este operador"},"content":{"rendered":"

Las metodologias de beneficios usados dentro de una tarima resultan efectivas. Al entrar, encontraras gigantesco diversidad de tipos de pasar cualquier rato divertido.<\/p>\n

En compania de demasiadas formas de hacer apuestas zapatillas de tenis, con total seguridad deseas comenzar ya<\/h2>\n

El saldo del bono se va a apoyar sobre el silli\ufffdn utilizara seguidamente del liquidacion positivo y puede utilizarse sobre los juegos de casino, excepto acerca de algunas slots asi\ufffd como ruletas especificas. Cerca de nombrar cual las retiros asimismo se pueden realizar muy facilmente, pues en caso de que te gustaria se puede utilizar unicamente el mismo aparato sobre tanque. La manera de recolectar en Casino777 es muy facil desplazandolo hacia el pelo flexible a cualquier tipo sobre consumidor, por consiguiente brinda algunos metodos cual podemos ajustar a los otras necesidades. Acerca de lo mucho que a la interfaz, una sitio web seri\ufffda visualmente importante desplazandolo hacia el pelo facil de incursionar, una lingote superior que planea los juegos para categorias como populares y ientas validos de buscar juegos, ingresar en favoritos y mirar promociones.<\/p>\n

En el contrastar ambos diferentes tipos de casino, una estilo online tiene preeminencia sobre mientras a diversidad sobre juegos; y sobre tecnologia, adaptacion movernos novedad. Entonces, los casinos online encontraremos obligados a llevar a cabo estrategias de convencer a los jugadores de para lo que resultan una inmejorable posibilidad. Deberas repartir levante esparcimiento con manga larga la persona usted quieras, falto miradas ajenas siquiera comportamientos bramantes. Desplazandolo hacia el pelo no solo ello, sino que tienen unas prerrogativas cual jamas pueden ser igualadas por los casinos organismos.<\/p>\n

A dios gracias, este cirujano brinda diversas formas de efectuarlo<\/h2>\n

Las unas 6,500 juegos que hay en el comercio, junto una medio que posibilita el sometimiento y la Feelingbet<\/a> consideracion dentro del cliente, resultan unico algun aperitivo de de un monton de que ofrece Casino777 en internet sobre De cualquier parte del mundo. Con una sola perfil accedes tanto en el casino como a Bet777, que usan liquidacion unificado de mudarte dentro de slots asi\ufffd como apuestas zapatillas de tenis carente pasos adicional. En lugar de inflar el folleto sin norma, postura por una eleccion extremadamente cuidados de juegos de casino, en compania de apariencia destacada sobre erudicion modernas desplazandolo hacia el pelo slots ahora elegidas. Aunque 777 casino en internet seri\ufffda de las excelentes alternativas cual debemos vivido por Ciertas zonas de espana, no debemos aseverar que es una unica excelente posibilidad. La siguiente seria, si, una publicidad mas profusamente robusto de el cirujano referente a sports.<\/p>\n

Va a depender del casino y la mesa, no obstante algunas versiones de ruleta online recursos positivo permiten apostar joviales cientos excesivamente por debajo de cero. Debido a lo anterior, seri\ufffda trascendente retar unicamente sobre operadores regulados y no ha transpirado con el pasar del tiempo buena reputacion. El tema se confecciona con manga larga discernimiento editoriales independientes, estudio informativo asi\ufffd como angulos en el esparcimiento formal. Esto quiere decir que podri\ufffdamos escoger la labor si el cliente llega a algun camara mediante nuestros enlaces, carente coste adicional.<\/p>\n

Por otra parte, levante camara tambien promueven nuestro entretenimiento ceremonioso y no ha transpirado por eso las minimos de edad no pueden acceder del casino. Para ingresar a la eleccion de servicio al cliente deberias elegir una seccion sobre \ufffdContacto\ufffd. Se va a apoyar sobre el silli\ufffdn comprometen a ofertar las juegos sobre casino sobre avispado sobra amenizados y no ha transpirado emocionantes, de graficos y posesiones de sonido de mayor calidad. Es invierno funcion varios de estos 8 mayusculos precios de ruleta acerca de avispado seri\ufffda brindar a sus individuos una inmejorable experiencia de esparcimiento factible. Por eso hallaras la amplia variedad sobre clases de ruleta, desplazandolo hacia el pelo diversas ruleta sobre vivo. Oriente cirujano guarda una medio combinada en la cual propuesta tanto articulos sobre casino igual que apuestas zapatillas deportivas, pero la ultima pone el sustantivo indepediente sobre Bet777.<\/p>\n

Con el fin de promover nuestro entretenimiento serio, la codigo espanola prepara cualquier limite de deposito inaugural de 100\ufffd periodicos. Los casinos acerca de vivo online en Portugal poseen el test mas profusamente absoluta con el pasar del tiempo crupieres acerca de listo y ciencia destacamento. Ademi?s, gran cantidad de ofrecen opciones exclusivas igual que bonos especificos para telefon inteligente, brindandote prerrogativas extras alrededor apostar en el momento en que su celular en el caso de que nos lo olvidemos android tablet. Si sigues estas pequenas leyes no habra camara cual se va a apoyar sobre el silli\ufffdn os resista y no ha transpirado sabras posteriormente si estas frente a un sitio web indudablemente indumentarias no. Existe seres cual desarrollan moldes de entretenimiento problematico y, por ley, los operadores joviales licencia tienen poner a habilidad las medidas oportunas de prevision de la ludopatia dictadas para nuestro cuerpo humano reformador. Otra menera significativo es acerca de como saber en caso de que algun casino seri\ufffda seguro desplazandolo hacia el pelo remuneracion realmente.<\/p>\n

Esto deja saber si fue indudablemente y a que es lo primero? juegos puede dar de manera legal sobre la zapatilla y el pie catalogo. De llevarlo a cabo, estuviese referente a invariable relacion con manga larga operadores, organismos de el mundo civil y otros actores de atencion. Acerca de Argentina, el esparcimiento online estuviese totalmente regulado debido a la Gestion Generico sobre Distribucion de el Entretenimiento. Nuestro conveniente casino online espanol es este que provee atencion al consumidor 24\/8 mediante multiples canales, especialmente debido al chat sobre preparado.<\/p>\n

Las jugadores pueden gozar sobre una vivencia de entretenimiento emocionante y no ha transpirado justa referente a algun entorno con total seguridad desplazandolo hacia el pelo de confianza. Igualmente, el camara cuenta con medidas de seguridad extras con el fin de asegurar una defensa para los menores y no ha transpirado han obtenido certificaciones sobre organismos para cada servicio igual que eCOGRA asi\ufffd como GamCare. Referente a conclusion, Casino 777 Chile seri\ufffda algun cirujano sobre juegos sobre chiripa acerca de linea indudablemente y no ha transpirado emocionante que ofrece la gran serie de alternativas de juego y una practica de usuario de la mas superior calidad.<\/p>\n","protected":false},"excerpt":{"rendered":"

Las metodologias de beneficios usados dentro de una tarima resultan efectivas. Al entrar, encontraras gigantesco diversidad de tipos de pasar cualquier rato divertido. En compania de demasiadas formas de hacer apuestas zapatillas de tenis, con total seguridad deseas comenzar ya El saldo del bono se va a apoyar sobre el\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-74797","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/74797","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=74797"}],"version-history":[{"count":1,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/74797\/revisions"}],"predecessor-version":[{"id":74799,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/74797\/revisions\/74799"}],"wp:attachment":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/media?parent=74797"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/categories?post=74797"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/tags?post=74797"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}