/* 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":159798,"date":"2026-06-18T07:53:31","date_gmt":"2026-06-18T07:53:31","guid":{"rendered":"https:\/\/klecet.edu.in\/alumni\/?p=159798"},"modified":"2026-06-18T07:53:31","modified_gmt":"2026-06-18T07:53:31","slug":"yoyo-casino-6","status":"publish","type":"post","link":"http:\/\/klecet.edu.in\/alumni\/yoyo-casino-6\/","title":{"rendered":"Yoyo Casino \u2013 Sigur precum \u0219i Licen\u021biat pentru Rom\u00e2nia"},"content":{"rendered":"
\n\"Ranking<\/p>\n

Pentru o mare parte dintre rom\u00e2ni, alegerea unui cazinou online se rezum\u0103 la dou\u0103 lucruri: \u00eencredere \u0219i familiaritate. yoyo casino<\/a>, disponibil la yoyospin.eu\/ro-ro\/, a reu\u0219it s\u0103 dezvolte ambele. S-a transformat un loc unde juc\u0103torii se simt proteja\u021bi, datorit\u0103 licen\u021bei ONJN, \u0219i unde se simt \u00een largul lor, mul\u021bumit\u0103 unui stil care se adapteaz\u0103 la specificul local. Nu este pur \u0219i simplu un site cu jocuri; constituie un punct de atrac\u021bie care a \u00een\u021beles ce urm\u0103re\u0219te cu adev\u0103rat juc\u0103torul rom\u00e2n: securitate, transparen\u021b\u0103 \u0219i un divertisment adaptat.<\/p>\n

Licen\u021ba ONJN \u2013 Temeiul \u00cencrederii pentru Participan\u021bii Rom\u00e2ni<\/h2>\n

\"Premium<\/p>\n

Absen\u021ba licen\u021ba Oficiului Na\u021bional pentru Jocuri de Noroc, un operator nu este capabil s\u0103 func\u021bioneze legal \u00een Rom\u00e2nia. Pentru Yoyo Casino, aceast\u0103 licen\u021b\u0103 este peste un document. Este promisiunea fa\u021b\u0103 de juc\u0103tori c\u0103 totul se \u00eent\u00e2mpl\u0103 corect. ONJN verific\u0103 totul: securitatea tranzac\u021biilor, echitatea jocurilor, modul \u00een care sunt asigurate datele. C\u00e2nd joci pe o platform\u0103 licen\u021biat\u0103, ai certitudinea c\u0103 banii t\u0103i sunt \u00een siguran\u021b\u0103 \u0219i c\u0103 \u0219ansa este real\u0103. Opt\u00e2nd pentru Yoyo Casino, te \u00eendep\u0103rtezi de riscurile operatorilor nelicen\u021bia\u021bi, care opereaz\u0103 \u00een umbr\u0103.<\/p>\n

Ce \u00censeamn\u0103 \u00een Practic\u0103 o Licen\u021b\u0103 ONJN?<\/h3>\n

\"Safe<\/p>\n

Licen\u021ba ONJN se traduce prin reguli clare pentru operator. De exemplu, toate pl\u0103\u021bile sunt obligate s\u0103 treac\u0103 prin sisteme bancare rom\u00e2ne\u0219ti sau prin procesatori autoriza\u021bi. Banii stau \u00een \u021bar\u0103, iar fiecare transfer poate fi trackuit. Platforma este obligat\u0103 s\u0103 ofere instrumente de joc responsabil, cum ar fi fixarea de limite sau alternativa de auto-excludere. Inspectorii ONJN pot controla oric\u00e2nd serverele \u0219i software-ul, pentru a se asigura c\u0103 totul este corect. Yoyo Casino trateaz\u0103 aceste obliga\u021bii cu seriozitate maxim\u0103. Pentru ei, respectarea normelor nu este o povar\u0103, ci fundamentul activit\u0103\u021bii.<\/p>\n

Experien\u021ba de Joc Potrivit\u0103 Rom\u00e2niei<\/h2>\n

Yoyo Casino a depus eforturi reale s\u0103 se apropie de juc\u0103torul rom\u00e2n. Interfa\u021ba este \u00een limba noastr\u0103, de la meniuri p\u00e2n\u0103 la regulile jocurilor. Dac\u0103 cau\u021bi de ajutor, echipa de suport intervine \u00een rom\u00e2n\u0103, f\u0103r\u0103 s\u0103 te lup\u021bi cu bariera lingvistic\u0103. Metodele de plat\u0103 sunt cele pe care le folosim de obicei: transfer bancar, carduri Visa sau Mastercard. Procesarea este viteaz\u0103, tocmai pentru c\u0103 sistemul este optimizat pentru pia\u021ba local\u0103. Asta transform\u0103 experien\u021ba de joc din ceva generic \u00eentr-una pl\u0103cut\u0103, aproape de cas\u0103.<\/p>\n

Oferta de jocuri arat\u0103 aceast\u0103 aten\u021bie la detalii. Descoperi sute de sloturi interna\u021bionale, dar \u0219i titluri care deja sunt populare \u00een Rom\u00e2nia, precum Book of Ra. Promo\u021biile sunt create \u0219i comunicate cu juc\u0103torul rom\u00e2n \u00een minte, fiind actualizate zilnic \u0219i s\u0103pt\u0103m\u00e2nal. Nu este vorba doar de a traduce ni\u0219te texte, ci de a percepe ce fel de divertisment prefer\u0103 acest public. Yoyo Casino pare s\u0103 fi izbutit asta, cl\u0103dind o rela\u021bie de parteneriat, nu doar una comercial\u0103.<\/p>\n

Securitate \u0219i Securitatea Datelor<\/h2>\n

Securitatea online este o chestiune pentru fiecare. Yoyo Casino folose\u0219te tehnologia SSL cu criptare de 256 de bi\u021bi, asem\u0103n\u0103toare cu cea a b\u0103ncilor. Toate datele tale, de la datele personale p\u00e2n\u0103 la mi\u0219c\u0103rile financiare, sunt schimbate \u00een coduri de neinterpretabil pentru persoanele din exterior. Este un nivel de protec\u021bie care ar trebui s\u0103 fie standard, dar nu \u00eentotdeauna este. Aici, este o prioritate fundamental\u0103, a\u0219a cum impune \u0219i licen\u021ba ONJN.<\/p>\n

M\u0103suri Concrete pentru Jocul Responsabil<\/h3>\n

Un cazinou serios se \u00eengrije\u0219te de bun\u0103starea juc\u0103torilor s\u0103i. Yoyo Casino pune la dispozi\u021bie instrumente practice pentru gestionarea activit\u0103\u021bii. Le reg\u0103se\u0219ti u\u0219or \u00een contul t\u0103u personal \u0219i nu sunt mascate undeva \u00een termeni \u0219i condi\u021bii. Ele sunt prezente pentru a te ajuta s\u0103 men\u021bii controlul \u0219i s\u0103 te verifici c\u0103 jocul r\u0103m\u00e2ne o distrac\u021bie. Aceste m\u0103suri demonstreaz\u0103 c\u0103 platforma \u00ee\u0219i preia responsabilitatea fa\u021b\u0103 de comunitate.<\/p>\n