/* 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":828,"date":"2025-10-16T14:24:03","date_gmt":"2025-10-16T14:24:03","guid":{"rendered":"http:\/\/klecet.edu.in\/alumni\/?p=828"},"modified":"2025-10-16T14:30:04","modified_gmt":"2025-10-16T14:30:04","slug":"basari-bet-oyun-platformu-giri-adresi","status":"publish","type":"post","link":"https:\/\/klecet.edu.in\/alumni\/basari-bet-oyun-platformu-giri-adresi\/","title":{"rendered":"Basari bet Oyun Platformu Giri\u00fe Adresi"},"content":{"rendered":"
Kullan\u00fdm\u00fd kolay aray\u00fcz\u00fc ve geni\u00fe i\u00e7erikli oyun koleksiyonuyla tan\u00fdnan Basaribet casino sitesi, bahisle ilgilenenler i\u00e7in uygun bir oyun ortam\u00fd sa\u00f0lar. En \u00e7ok tercih edilenler aras\u00fdnda slot oyunlar\u00fd aras\u00fdndan jackpotlu makinelerden her tarza hitap eden her t\u00fcrl\u00fc i\u00e7erik bulmak m\u00fcmk\u00fcnd\u00fcr. G\u00fcvenli slot siteleri aras\u00fdnda yer alan web tabanl\u00fd casino sitesi y\u00fcksek \u00f6deme f\u00fdrsatlar\u00fdyla y\u00fcksek kazan\u00e7 f\u00fdrsatlar\u00fd sunar. Siteye giri\u00fe yapmak i\u00e7in kay\u00fdt ol birka\u00e7 ad\u00fdmda halledilmektedir. Casino slot heyecan\u00fd pe\u00feinde olanlar i\u00e7in slot oyunlar\u00fdyla dikkat \u00e7eken Basari bet oyun casino sitesi, keyifli ve y\u00fcksek kazan\u00e7 f\u00fdrsatlar\u00fd sa\u00f0lar. Siz de hemen ba\u00felay\u00fdn basaribet casino<\/a> ba\u00f0lant\u00fd yoluyla hesab\u00fdn\u00fdza giri\u00fe yapabilirsiniz. <\/p>\n Basaribet bahis sitesi, 2025 y\u00fdl\u00fd d\u00f6neminde en kazan\u00e7l\u00fd slot oyunlar\u00fd ve y\u00fcksek RTP de\u00f0erine sahip slot makineleriyle fark yarat\u00fdyor. Bahis tutkunlar\u00fd, slot oyunlar\u00fd t\u00fcr\u00fcnde say\u00fds\u00fdz keyifli ve y\u00fcksek kazan\u00e7 sa\u00f0layan oyunlar ke\u00fefedebilirler. Slot oyunlar\u00fdn\u00fdn \u00e7e\u00feitleri 4 ba\u00fel\u00fdkta: <\/p>\n Basari bet casino sitesi, buna ek olarak ELK Studios ve Sthlm Gaming tan\u00fdnm\u00fd\u00fe slot sa\u00f0lay\u00fdc\u00fdlar\u00fdn\u00fd sisteminde toplar. <\/p>\n Sweet Bonanza interaktif slotu, Pragmatic Play firmas\u00fdn\u00fdn geli\u00fetirdi\u00f0i heyecan verici ve kazand\u00fdrma olas\u00fdl\u00fd\u00f0\u00fd y\u00fcksek bir deneyimdir. Reng\u00e2renk semboller ve e\u00f0lenceli dinamikleriyle kat\u00fdl\u00fdmc\u00fdlara b\u00fcy\u00fck kazan\u00e7lar i\u00e7in ideal bir ortam sa\u00f0lar. Sweet Bonanza\u2019y\u00fd deneme f\u00fdrsat\u00fdyla meyve ve \u00feeker konseptli bu makaral\u00fd oyunu g\u00fcvence alt\u00fdnda oynayabilirsiniz. <\/p>\n Aviator bahis oyunu, son d\u00f6nemlerin pop\u00fcler casino oyunlar\u00fdndan biridir. \u00dcyeler, u\u00e7a\u00f0\u00fdn havaland\u00fd\u00f0\u00fd ve ini\u00fee ge\u00e7ti\u00f0i anlarda aviator slotunda bahis yaparak \u00feanslar\u00fdn\u00fd de\u00f0erlendirme f\u00fdrsat\u00fd bulurlar. Basaribet \u00e7evrimi\u00e7i casino sitesinde, oyunu test etmek isteyenler i\u00e7in bedava deneme imkan\u00fd sunar. Aviator oyunu nedir? Bu oyun, u\u00e7ak havaland\u00fd\u00f0\u00fd andan itibaren gittik\u00e7e y\u00fckselen bir \u00e7arpanla devam eder ve bahis oyuncular\u00fd \u00e7arpan\u00fdn ne kadar y\u00fckselece\u00f0ini kestirmeye \u00e7al\u00fd\u00fe\u00fdr. <\/p>\n Bu oyun sunucusu, \u00e7e\u00feitlilik sunan oyun listesi ve interaktif \u00f6zellikleriyle kullan\u00fdc\u00fdlar\u00fd memnun ediyor. <\/p>\n Platform, \u00e7ok say\u00fdda oyun alternatifi ve kullan\u00fdc\u00fd odakl\u00fd yap\u00fds\u00fdyla \u00f6ne \u00e7\u00fdkmas\u00fdna ra\u00f0men, destek hizmetleri ile promosyonlarda g\u00fc\u00e7lendirmeler yaparak genel kullan\u00fdc\u00fd memnuniyetini art\u00fdrabilir.<\/p>\n","protected":false},"excerpt":{"rendered":" Kullan\u00fdm\u00fd kolay aray\u00fcz\u00fc ve geni\u00fe i\u00e7erikli oyun koleksiyonuyla tan\u00fdnan Basaribet casino sitesi, bahisle ilgilenenler i\u00e7in uygun bir oyun ortam\u00fd sa\u00f0lar. En \u00e7ok tercih edilenler aras\u00fdnda slot oyunlar\u00fd aras\u00fdndan jackpotlu makinelerden her tarza hitap eden her t\u00fcrl\u00fc i\u00e7erik bulmak m\u00fcmk\u00fcnd\u00fcr. G\u00fcvenli slot siteleri aras\u00fdnda yer alan web tabanl\u00fd casino sitesi y\u00fcksek\u2026<\/p>\nMega \u00d6d\u00fcl Beklentisi Basaribet Casino Web Alan\u00fdnda Size G\u00f6z K\u00fdrp\u00fdyor<\/h2>\n
\n
Basaribet Platformu Platformunda \u00deekerli Slot Ke\u00fefet ve Kazan\u00e7 Elde Et<\/h3>\n
Basari bet Casino\u2019da Aviator ile H\u00fdzl\u00fd Ba\u00felang\u00fd\u00e7 ve Kazan\u00e7 Olanaklar\u00fd <\/h3>\n
Basaribet Casino Y\u00fcksek RTP Oyunlar\u00fdn\u00fdn Art\u00fdlar\u00fd ve Eksileri<\/h2>\n
\n\n
\n \nArt\u00fd Y\u00f6nler<\/th>\n Eksi Y\u00f6nler<\/th>\n<\/tr>\n<\/thead>\n \n Zengin oyun portf\u00f6y\u00fc: Makaral\u00fd oyunlar, poker ve canl\u00fd casino farkl\u00fd t\u00fcrleriyle
\nfarkl\u00fd oyun t\u00fcrleriyle oyunculara se\u00e7enek sunuyor.<\/td>\nM\u00fc\u00feteri hizmetleri: M\u00fc\u00feteri Yard\u00fdm Hizmetleri daha h\u00fdzl\u00fd ve etkili olsa daha iyi olurdu.<\/td>\n<\/tr>\n \n Basit navigasyon: Casino portal\u00fd, kullan\u00fdc\u00fdya y\u00f6nelik tasar\u00fdm\u00fdyla pratik bir \u00feekilde gezilebilir ve oyunlara h\u00fdzl\u00fd ula\u00fe\u00fdm imkan\u00fd sunuyor.<\/td>\n Bonus gereksinimleri: Sa\u00f0lanan bonuslar\u00fdn \u00e7evrim kurallar\u00fd bazen oyuncular i\u00e7in daha kolay olabilirdi.<\/td>\n<\/tr>\n \n Pratik \u00f6deme se\u00e7enekleri: Kazan\u00e7lar 1 saat i\u00e7inde \u00f6denir ve g\u00fcvenli \u00f6deme y\u00f6ntemleri sunulur.<\/td>\n Bonus \u00e7e\u00feitlili\u00f0i: Mevcut promosyonlar olduk\u00e7a s\u00fdn\u00fdrl\u00fd, daha fazla alternatif oyunculara daha \u00e7ekici olabilir.<\/td>\n<\/tr>\n \n Tablet uyumlu: Mobil cihazlar arac\u00fdl\u00fd\u00f0\u00fdyla sorunsuz bir oyun deneyimi sunuyorlar.<\/td>\n <\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n