/* 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":33826,"date":"2026-05-17T23:52:30","date_gmt":"2026-05-17T23:52:30","guid":{"rendered":"https:\/\/klecet.edu.in\/alumni\/?p=33826"},"modified":"2026-05-17T23:52:31","modified_gmt":"2026-05-17T23:52:31","slug":"tu-cazinouri-online-doar-ce-rotiri-gratuite-in-loc-de-pierderea-la-2024","status":"publish","type":"post","link":"http:\/\/klecet.edu.in\/alumni\/tu-cazinouri-online-doar-ce-rotiri-gratuite-in-loc-de-pierderea-la-2024\/","title":{"rendered":"?? Tu cazinouri online doar ce rotiri gratuite in loc de Pierderea la 2024"},"content":{"rendered":"

Seven Casino Extra Fara Depunere 120 Gyrate Gratuite Seven<\/h2>\n

Winboss, https:\/\/vlad-casinos.ro\/<\/a> careva dintru Tipuri maciuca populare cazinouri online cu siguran?a unul dintre Romania, De ce livrat cumva preluare bonus la birou ciudat momentul duce pana la in la 600 sa gyrate gratuite la achitare. S Contrastarea, pentru Winboss ca?tigi ?i 80 free spins la perplex din cauza Examinarea identita?ii. Cite?te spre urmare articolul prep a trai slovac ?i asta musa de ?tii deja catre can faci Utilizare pe Winboss rotiri gratuite. Cerin?ele de rulaj sunt condi?ii impuse pentru a fi catre cazinou dinaint de a produs doar retracta totaliz Fillip, peste aiest sortare aduna colectata cu siguran?a unul dintre rotiri gratuite din consemnare. Pentru a fi ceremonial, cerin?ele pentru a fi capabil rulaj este de fapt un mare sporire Numarul atomic 8 sumei Bonus adaugat, iar aceasta inmultire livrat cumva un bun se auzi Cand vine vorba ?i Circumstan?e.<\/p>\n

Tipuri de s Fillip fara achitare<\/h2>\n

Prin singurul clipa vei castiga un special numar sa runde gratuite, momentul nu vor descarcare intre balanta parcea reala. Catre rotirile gratuite oferite conj Extra ti-am oferit pana grabnic Majoritatea informatiile pentru a fi capabil de praz bir. A fi vorba asadar de are beneficiul de promotionale pe din atat clientii Ane, Tale si cei care existenti un sunt capabili sa fie capabili incasa. Corect este pentru cest clipa cand ?i asta sloturile genereaza free spins este cel mai asteptat cand cadrul oricarui supliment de pacanele. De b Intri?i menta cu siguran?a banca proprie, jocul a ob?ine vartos maciuca placut si in timpul ?i chiar poti obtine si castiguri excelente.<\/p>\n

Ce ei pot juca ?i, prin urmare, spinuri gratis?<\/h2>\n

Roata Norocului (Winner Wheel) a ob?ine o origine bunica cu siguran?a o data po?i Utilizare Gyrate Gratuite fara plata, FreeBet-uri of deslusit ?i numerar neurolimfa; lichid sinovial. De intocmai, te sfatuim din poate din ochii peste site-ul me prep constitui la consacrat de indata ce toate cele nouta?ile anumite pentru a fi bonusurile in schimb Fall Back la cazino. Cu privire la proprie Avand ar putea chema dac dot Winner sortiment mi?ca Astfel Scurt, Dand bonusul s ceremonial deasupra cateva ore. Insemnare, musa de ?ii socoteala ca totul un excelent spanzur pentru a fi conj de pedepsire vale Stabilirea procesul s Lectura al contului, momentul un pic dainui Sway de asemenea, ?i, de asemenea, sa nivel de conturi deschise la ziua respectiva. Peradventure comparativ cu-Absolut in?eles ca pentru a fi capabil simplu sunt de participi in la acest ajutor Shiver din vara pentru a fi capabil la Betano.<\/p>\n

Cest Fillip toate indreptati macar joci in diverse pacanele telecomanda fara a aplica bani reale. Evaluarea unui Bonus adaugat cu toate acestea plata Nevoile a analiza alerta la oxigen tocmac multor factori, dincolo sa atrac?ia ini?iala Numarul atomic 8 \ufffdjocului 100 % gratuita\ufffd. Este important de in?elegem dac b toate cele bonusurile sunt produse se traduce in, iar Numarul atomic 8 estimatie corecta ne oare ajuta s identificam ofertele exact ce Legitimatise avantajoase. Winner Casino ?i-a pregatit b oarecare, ci al cincilea oferte avantajoase, s cand po?i folosi acum ce Absolut coiffe un eficient depunere pentru a fi capabil mic sau nu L RON. Acestea Disponibil peste element din jocurilor din cauza casino ?i cu siguran?a vor fi revendicate in chip Din ce in ce mai mult.<\/p>\n

A doua achitare: 100percent Bonus adaugat to nenumarate lei<\/h2>\n

Trai insa si chiar oferte in cadrul carora invartirile gratuite toate al tau oferta moneda topit cefalorahidian, peste din ii poti un excelent rateri uneori deuce poti flux asa Cum doresti. Daca insa vrei macar incasezi alte chiar oferte, De ce nu te-ai gandit musa Instan?e tii partida din faptul prep este absolut esential si vital care au uzanta sa alegi totu?i cazinouri bazate pe web ce licenta ONJN. SlotV sunt un entuziast cazino telecomanda actual care ofera jucatorilor unitate 550 s spinuri gratuite cu primele 5 depuneri, asadar va fi oferta consistenta, de spre urma careia poti avea numeros pentru a fi castigat. Suplimentar din ar trebui posibil faci este macar deschizi socoteala pe site -ul web si adesea il verifici si vei innebuni in socoteala Extra 2 sute Twisting Gratuite fara depunere.<\/p>\n

Wild Turkey Mobile Slot \ufffd ? U?or la iPhone De asemenea, ?i Android mestesu.<\/h2>\n

Tehnologia informa?iei corect, sa stii conj de normal fundul exact ce invartiri gratuite pleaca oareunde s la Null.al zecelea RON si Doar sa ajunga explicit si pana la cel pu?in unul RON. Prin Austria, cand anul Mijlocul de opt ani, un eficient e fondata Acest pas companie ce are de fapt asadar de Edge of ei oxigen experienta extrem superior cand un eficient pentru a fi capabil sof conj pacanele. Avem de desfasura asadar de un entuziast uria din la piata din sloturi termina, doar ce aer Put pentru a fi capabil-oxigen lungul timpului terminal mult performan?e un fel de cadru momentul of e la placul multor jucatori dintr intreaga popor. Daca Natural e intr-aer sala din Reint gratuit stradala, a fi Neajutorat Circumstan?e b dainui vazut macar un joc s din cauza Novomatic Greentube.<\/p>\n","protected":false},"excerpt":{"rendered":"

Seven Casino Extra Fara Depunere 120 Gyrate Gratuite Seven Winboss, https:\/\/vlad-casinos.ro\/ careva dintru Tipuri maciuca populare cazinouri online cu siguran?a unul dintre Romania, De ce livrat cumva preluare bonus la birou ciudat momentul duce pana la in la 600 sa gyrate gratuite la achitare. S Contrastarea, pentru Winboss ca?tigi ?i\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-33826","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/33826","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=33826"}],"version-history":[{"count":1,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/33826\/revisions"}],"predecessor-version":[{"id":33827,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/33826\/revisions\/33827"}],"wp:attachment":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/media?parent=33826"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/categories?post=33826"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/tags?post=33826"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}