/* 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":152098,"date":"2026-06-14T05:07:09","date_gmt":"2026-06-14T05:07:09","guid":{"rendered":"https:\/\/klecet.edu.in\/alumni\/?p=152098"},"modified":"2026-06-14T05:07:09","modified_gmt":"2026-06-14T05:07:09","slug":"casino-beep-beep","status":"publish","type":"post","link":"http:\/\/klecet.edu.in\/alumni\/casino-beep-beep\/","title":{"rendered":"Propagace a akcie v Beep Beep Casino pre Slovensko"},"content":{"rendered":"
\n\"\u0411\u0435\u0437\u0434\u0435\u043f\u043e\u0437\u0438\u0442\u043d\u044b\u0439<\/p>\n

Pri v\u00fdbere online kas\u00edna hr\u00e1\u010di \u010dasto starostlivo venuj\u00fa pozornos\u0165 bonusy a akcie. str\u00e1nka beep beep<\/a> v tomto smere nezanech\u00e1va nikoho na pochyb\u00e1ch. Na\u0161im slovensk\u00fdm klientom pon\u00fakame r\u00f4znorod\u00fd v\u00fdber propaga\u010dn\u00fdch pon\u00fak. Tieto bonusy maj\u00fa jeden z\u00e1kladn\u00fd cie\u013e: spravi\u0165 hranie z\u00e1bavnej\u0161\u00edm a prinies\u0165 v\u00e1m viac mo\u017enost\u00ed na v\u00fdhru. V\u017edy sa usilujeme o maxim\u00e1lnu transparentnos\u0165. Ka\u017ed\u00e1 na\u0161a ponuka pon\u00faka preh\u013eadn\u00e9 a jasn\u00e9 podmienky, aby ste sa mohli odd\u00e1va\u0165 hre bez ob\u00e1v z ne\u010dakan\u00fdch prekvapen\u00ed. Na nasleduj\u00facich odsekoch v\u00e1m d\u00f4kladne prezentujeme cel\u00fd n\u00e1\u0161 bonusov\u00fd syst\u00e9m. Spolo\u010dne prejdeme od uv\u00edtacej ponuky pre nov\u00e1\u010dikov a\u017e po vernostn\u00fd program pre sk\u00fasen\u00fdch hr\u00e1\u010dov. Ka\u017ed\u00e1 akcia pon\u00faka svoje osobitosti a my v\u00e1m poskytneme v\u0161etky potrebn\u00e9 inform\u00e1cie, aby ste ich vedeli naplno vyu\u017ei\u0165.<\/p>\n

Priv\u00edtac\u00ed bonus pre za\u010d\u00ednaj\u00facich hr\u00e1\u010dov<\/h2>\n

\"BitStarz<\/p>\n

\u00davodn\u00e9 chv\u00edle v novom kas\u00edne s\u00fa d\u00f4le\u017eit\u00e9. Preto sme v Beep Beep Casino pripravili uv\u00edtac\u00ed bal\u00edk, ktor\u00fd nov\u00fdch hr\u00e1\u010dov nielen pozdrav\u00ed, ale d\u00e1 im aj siln\u00fd z\u00e1klad pre ich z\u00e1bavn\u00e9 dobrodru\u017estvo. Tento bal\u00edk nepredstavuje be\u017en\u00fd jednorazov\u00fd bonus. Ide o postupne aktivovan\u00fa s\u00e9riu bonusov, ktor\u00e9 sa aktivuj\u00fa s va\u0161imi po\u010diato\u010dn\u00fdmi vkladmi. Podobn\u00fd pr\u00edstup umo\u017e\u0148uje nov\u00fdm hr\u00e1\u010dom v pohode prezrie\u0165 hern\u00fd katal\u00f3g a zvoli\u0165 si tituly, ktor\u00e9 im sedia najlep\u0161ie. Ka\u017ed\u00e1 zlo\u017eka uv\u00edtacieho bal\u00edka prin\u00e1\u0161a percentu\u00e1lne zv\u00fd\u0161enie vkladu s dan\u00fdm maxim\u00e1lnym limitom. Stru\u010dne povedan\u00e9, \u010d\u00edm vy\u0161\u0161\u00ed je v\u00e1\u0161 po\u010diato\u010dn\u00fd vklad, t\u00fdm viac bonusov\u00fdch prostriedkov n\u00e1sledne z\u00edskate. S\u00fa\u010dasne sme starali sa na to, aby st\u00e1vkov\u00e9 po\u017eiadavky boli zodpovedaj\u00face a realizovate\u013en\u00e9 pri norm\u00e1lnom hran\u00ed. Ne\u017e si ktor\u00fdko\u013evek bonus spust\u00edte, odpor\u00fa\u010dame d\u00f4kladne si prezrie\u0165 pr\u00edslu\u0161n\u00e9 podmienky. D\u00e1vajte pozornos\u0165 predov\u0161etk\u00fdm maxim\u00e1lnej povolenej st\u00e1vke, preh\u013eadu hier, na ktor\u00e9 sa bonus vz\u0165ahuje, a lehote jeho platnosti.<\/p>\n

Pravideln\u00e9 t\u00fd\u017edenn\u00e9 a mesa\u010dn\u00e9 bonusy<\/h2>\n

Na\u0161e snahy nesmeruj\u00fa len k nov\u00fdm hr\u00e1\u010dom. Vern\u00fdm hostiam Beep Beep Casino tie\u017e pravidelne prin\u00e1\u0161ame d\u00f4vody k radosti. T\u00fd\u017edenn\u00e9 akcie \u010dasto zah\u0155\u0148aj\u00fa vr\u00e1tenie \u010dasti prehran\u00fdch pe\u0148az\u00ed, zn\u00e1me ako cashback, alebo bal\u00edky vo\u013en\u00fdch ot\u00e1\u010dok na konkr\u00e9tne sloty. Mesa\u010dn\u00e9 ponuky b\u00fdvaj\u00fa e\u0161te \u0161tedrej\u0161ie. Zvy\u010dajne s\u00favisia s v\u00e4\u010d\u0161\u00edmi udalos\u0165ami v kas\u00edne alebo s uveden\u00edm nov\u00fdch hier. Ako tak\u00e9to bonusy z\u00edska\u0165? V\u00e4\u010d\u0161inou sta\u010d\u00ed nav\u0161t\u00edvi\u0165 sekciu \u201eBonusy\u201c vo svojom \u00fa\u010dte, aktivova\u0165 si vybran\u00fa ponuku a splni\u0165 jednoduch\u00fa podmienku. M\u00f4\u017ee to by\u0165 vklad v ur\u010den\u00fd de\u0148 alebo dosiahnutie ur\u010dit\u00e9ho objemu st\u00e1vok za t\u00fd\u017ede\u0148 \u010di mesiac. Cie\u013eom t\u00fdchto pon\u00fak je pred\u013a\u017ei\u0165 v\u00e1m \u010das str\u00e1ven\u00fd pri hre a da\u0165 v\u00e1m \u010fal\u0161iu \u0161ancu na v\u00fdhru bez toho, aby ste museli v\u00fdrazne zvy\u0161ova\u0165 svoje vlastn\u00e9 riziko.<\/p>\n