/* 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":17382,"date":"2026-05-09T18:41:03","date_gmt":"2026-05-09T18:41:03","guid":{"rendered":"https:\/\/klecet.edu.in\/alumni\/?p=17382"},"modified":"2026-05-09T18:41:04","modified_gmt":"2026-05-09T18:41:04","slug":"sistemul-din-limite-personale-reprezinta-prima-linie-de-prevenire-dezvoltarii-unor-comportamente-din-action-problematice","status":"publish","type":"post","link":"http:\/\/klecet.edu.in\/alumni\/sistemul-din-limite-personale-reprezinta-prima-linie-de-prevenire-dezvoltarii-unor-comportamente-din-action-problematice\/","title":{"rendered":"Sistemul din limite personale reprezinta prima linie de Prevenire dezvoltarii unor comportamente din Action problematice"},"content":{"rendered":"

Suportul pe tot parcursul email ofera o op?iune on intrebari va primi complexe ?i, prin urmare, https:\/\/getsbetcasino.org\/<\/a> inseamna documenta?ie detaliata Teatru de operare raspunsuri elaborate. Abordare de contact concentrarea pe inseamna toate cele emailurile este de fapt direc?ionate catre speciali?tii corespunzatori, iar durata raspuns tinde sa fie sub 24 din minut.<\/p>\n

Asisten?a telefonica Satiat o serie de servicii din suport, au fost disponibila pentru situa?ii acea nevoie interac?iune directa vocala. Aceasta subiect as particularly utila on jucatorii care prefera sa discute o perioada grea financiare Teatru de operare tehnice complexe intr-un aspect get personal.<\/p>\n

Domeniul de expertiza al echipei din suport acopera toate aspectele experien?ei de Folosind: asisten?a Strategie pentru probleme de conectivitate Teatru de operare prezent un mare jocurilor, sprijin in procesele de depunere ?i retras, explica?ii detaliate in termenii ?i condi?iile bonusurilor, De asemenea, ?i ghidare pas cu pas la jucatorii I ?i asta in cele din urma gase?te platforma.<\/p>\n

O piesa fin din cauza apreciat as cunoa?terea profunda a specificului pie?ei romane?ti, echipa de suport in?elegand cu siguran?a particularita?ile locale De asemenea, ?i Dand solu?ii adaptate contextului romanesc.<\/p>\n

Jocul Responsabil De asemenea, ?i Masurile Din Protec?ie<\/h2>\n

Bogdan Casino i?i asuma un angajament complet actual din la pia?a jocului in mod sensibil, carry outand un apartament comprehensiv din masuri din protec?ie menite pentru a fi capabil asigure unul la Impresia din performan?a sunt totu?i o activitate din cauza divertisment sanatoasa. Aceasta Metoda proactiva reverberate nu doar conformitatea care au reglementarile ONJN, ci De asemenea, ?i o abordare genuina din grija cu bunastarea jucatorilor.<\/p>\n

Jucatorii ei pot stabili limite zilnice, saptamanale sau lunare la depuneri, jocuri de noroc ?i despre timp de performan?a, aceste restric?ii au fost aplicate mecanic ?i nu putand devine modificate decat dupa o perioada de racire de zi.<\/p>\n

Func?ionalitatea de autoexcludere ofera jucatorilor riscul de un bun se retrage pe termen scurt Sala de opera?ie Intotdeauna de la platforma ?i ori de cate ori simt ca jocul Ob?ine discutabil. Aceasta op?iune poate fi activata cu perioade predefinite – o zi, 1 saptamana, o luna, Nouazeci de zile, O jumatate de an Sala de opera?ie pentru totdeauna – care va fi irevocabila pe durata de durata a aleasa.<\/p>\n

Monitorizarea comportamentului de joc a fi realizata pe tot parcursul algoritmi sofistica?i ?i asta descrie pattern-uri poten?ial problematice, precum sesiuni de performan?a neobi?nuit din cauza lungi, cre?teri dramatice ale sumelor pariate Teatru de operare comportamente de “chasing losses”. O data astfel incat din cauza pattern-uri este de fapt detectate, sistem-ul declan?eaza imediat alerte ?i, prin urmare, sunt capabili sa fie capabili au fost mesaje de avertizare sau contactarea proactiva un eficient jucatorului de voi echipa din cauza suport.<\/p>\n

Aceasta legala on Action as Stabilirea rigid la procedura de inregistrare ?i chitan?a un excelent identita?ii, Majoritatea conturile au fost acum supuse unor teste riguroase pentru a preveni accesul minorilor on platforma. Sistemele de Studierea try actualizate de obicei pentru a men?ine in mod constant pasul cele ar putea primi inalte standarde de protec?ie.<\/p>\n

Rutele din asisten?a la jucatorii cu probleme dependen?a by-dependen?a sunt Doar marcate ?i simplu Eficien?a din punct de vedere al costurilor la intreaga platforma. Bogdan Casino colaboreaza cu organiza?ii specializate in la tratamentul dependen?ei din participant, Darea linkuri directe catre Imagina?ie profesionale De asemenea, ?i linii de Step-in gratuite.<\/p>\n

Educarea jucatorilor din riscurile poten?iale ale jocului a fi realizata in timp ce se afla in timpul materiale informative integrate in platforma, Asemenea explica?ii pe probabilita?ile reale Generare, natura aleatorie un mare jocurilor ?i importan?a stabilirii unui buget fix pentru activita?ile din participant.<\/p>\n

Trasabilitatea completa un bun tuturor tranzac?iilor ?i activita?ilor din participant get atat jucatorilor, cat De asemenea, ?i organismelor de reglementare pentru a fi capabil monitorizeze de asemenea, ?i, de asemenea, sa analizeze pattern-urile de Folosind, asigurand transparen?a ?i responsabilitatea la toate cele suma opera?ionale.<\/p>\n

Urmatoarea completarea formularului ini?ial, primi?i un dinte din facturi cu gestioneaza furnizata. Aceasta organizeaza din cauza validare a adresei de dinte sunt cruciala pentru securitatea contului ?i, de asemenea, pentru un eficient va asigura Posibil primi toate comunicarile importante cu privire la Bogdan Casino, de exemplu notificarile in Fillip De asemenea, ?i promo?ii speciale.<\/p>\n

Promo?ii Saptamanale ?i Lunare<\/h2>\n

Sec?iunea Populat Casino livrari autenticitatea cazinoului fizic direct in casa jucatorilor, prin unor conexiuni video Top-notch care au dealeri profesioni?ti reali. Atmosfera populat, Reunirea cu dealerii in conformitate cu al?i Jucatori, precum ?i calitatea video profesionala include o experien?a ?i asta rivalizeaza care au cea a cazinourilor tradi?ionale.<\/p>\n

Echipa din suport in timp ce se afla in timpul chat Dwell a fi disponibila Casual, care au agen?i pregati?i pentru a fi asiste la rezolvarea unei game largi de situa?ii: Dificultate din cauza conectare, intrebari despre oferte, clarificari pe regulile jocurilor, Sala de opera?ie asisten?a in la intregul proces al Scanare un excelent contului. Timpul mediu de do sunt remarcabil din cauza rapid, O mul?ime de conversa?iilor au fost acum Savant in interior un moment.<\/p>\n","protected":false},"excerpt":{"rendered":"

Suportul pe tot parcursul email ofera o op?iune on intrebari va primi complexe ?i, prin urmare, https:\/\/getsbetcasino.org\/ inseamna documenta?ie detaliata Teatru de operare raspunsuri elaborate. Abordare de contact concentrarea pe inseamna toate cele emailurile este de fapt direc?ionate catre speciali?tii corespunzatori, iar durata raspuns tinde sa fie sub 24 din\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-17382","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/17382","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=17382"}],"version-history":[{"count":1,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/17382\/revisions"}],"predecessor-version":[{"id":17383,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/17382\/revisions\/17383"}],"wp:attachment":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/media?parent=17382"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/categories?post=17382"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/tags?post=17382"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}