/* 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":812,"date":"2025-10-16T08:06:25","date_gmt":"2025-10-16T08:06:25","guid":{"rendered":"http:\/\/klecet.edu.in\/alumni\/?p=812"},"modified":"2025-10-16T08:07:43","modified_gmt":"2025-10-16T08:07:43","slug":"h1-basaribet-bahis-giri-problemi-ve-cozum-onerisi","status":"publish","type":"post","link":"https:\/\/klecet.edu.in\/alumni\/h1-basaribet-bahis-giri-problemi-ve-cozum-onerisi\/","title":{"rendered":"
Kullan\u00fdc\u00fdya hitap eden aray\u00fcz\u00fc ve oyun \u00e7e\u00feitlili\u00f0iyle ilgi g\u00f6ren Basaribet casino portal\u00fd, bahis merakl\u00fdlar\u00fd i\u00e7in ideal bir bahis sitesi sunar. En \u00e7ok bilinen slot oyunlar\u00fd se\u00e7eneklerinden jackpotlu slot se\u00e7eneklerinden her tarza hitap eden i\u00e7erik bulmak kolayd\u00fdr. G\u00fcvenilir slot platformlar\u00fd aras\u00fdnda bulunan web sitesi y\u00fcksek kazan\u00e7 oranlar\u00fdyla kazan\u00e7 olas\u00fdl\u00fd\u00f0\u00fdn\u00fd y\u00fckseltir. Bahis sitesine \u00fcye olmak sadece birka\u00e7 ad\u00fdmda halledilir. Casino slot deneyimi arayan oyuncular i\u00e7in en iyi slot sitesi olarak \u00f6ne \u00e7\u00fdkan Basari bet \u00e7evrimi\u00e7i casino slot sitesi, keyifli ve bol kazan\u00e7l\u00fd anlar vaat eder. Derhal siz de https:\/\/www.bluevetveteriner.com\/<\/a> ba\u00f0lant\u00fdy\u00fd kullanarak kat\u00fdlabilirsiniz. <\/p>\n Basaribet oyun sitesi, 2025 y\u00fdl\u00fdnda \u00e7ok kazand\u00fdran casino slotlar\u00fd ve y\u00fcksek kazan\u00e7 sa\u00f0layan RTP oranl\u00fd slotlarla dikkatleri \u00fczerine \u00e7ekiyor. Bahis oyuncular\u00fd, slot oyunlar\u00fd t\u00fcr\u00fcnde bir\u00e7ok heyecan verici ve b\u00fcy\u00fck kazan\u00e7 f\u00fdrsatlar\u00fd olan oyunlar bulabilirler. \u00dd\u00fete 4 maddede slot \u00e7e\u00feitleri: <\/p>\n Basari bet, di\u00f0er taraftan Reflex Gaming, Evoplay ve Givme Games tan\u00fdnm\u00fd\u00fe slot sa\u00f0lay\u00fdc\u00fdlar\u00fdn\u00fd sisteminde toplar. <\/p>\n Sweet Bonanza \u00feeker temal\u00fd slot, Pragmatic Play\u2019in geli\u00fetirmi\u00fe oldu\u00f0u e\u00f0lenceli ve y\u00fcksek kazan\u00e7l\u00fd bir oyundur. Tatl\u00fd meyve ikonlar\u00fd ve zengin i\u00e7erikleriyle bahis\u00e7ilere kazan\u00e7l\u00fd \u00f6d\u00fcllerle oyuncular\u00fd bulu\u00feturur. Sweet Bonanza\u2019y\u00fd deneme f\u00fdrsat\u00fdyla meyve aromal\u00fd ve \u00feekerli tasar\u00fdma sahip bu slot oyununu g\u00fcvenli bir \u00feekilde oynayabilirsiniz. <\/p>\n Aviator oyunu, son y\u00fdllar\u00fdn yayg\u00fdn olarak tercih edilen casino oyunlar\u00fdndan biridir. \u00dcyeler, u\u00e7a\u00f0\u00fdn havalanma ve ini\u00fee ge\u00e7i\u00fe anlar\u00fdnda aviator slotunda bahis yaparak y\u00fcksek kazan\u00e7 \u00feans\u00fd elde ederler. Basaribet casino sitesinde, oyunu ke\u00fefetmek isteyenler i\u00e7in \u00fccretsiz deneyim imkan\u00fd sunar. Aviator nedir? Bu oyun, u\u00e7u\u00feun ba\u00felad\u00fd\u00f0\u00fd anla birlikte y\u00fckselen \u00e7arpanlarla yol al\u00fdr ve kat\u00fdl\u00fdmc\u00fdlar bu art\u00fd\u00fe\u00fd tahmin etmeye \u00e7abalar. <\/p>\n Bu oyun sunucusu, \u00e7e\u00feitli oyun opsiyonlar\u00fd ve kullan\u00fdc\u00fd konforunu g\u00f6zeten \u00f6zellikleriyle \u00f6ne \u00e7\u00fdk\u00fdyor. <\/p>\n \u00c7evrimi\u00e7i casino, \u00e7ok say\u00fdda oyun alternatifi ve kullan\u00fdc\u00fd odakl\u00fd yap\u00fds\u00fdyla \u00f6ne \u00e7\u00fdkmas\u00fdna ra\u00f0men, m\u00fc\u00feteri deste\u00f0i ve bonus imkanlar\u00fdn\u00fd art\u00fdrarak oyun keyfini daha \u00fcst seviyeye ta\u00fe\u00fdyabilir.<\/p>\n","protected":false},"excerpt":{"rendered":" Kullan\u00fdc\u00fdya hitap eden aray\u00fcz\u00fc ve oyun \u00e7e\u00feitlili\u00f0iyle ilgi g\u00f6ren Basaribet casino portal\u00fd, bahis merakl\u00fdlar\u00fd i\u00e7in ideal bir bahis sitesi sunar. En \u00e7ok bilinen slot oyunlar\u00fd se\u00e7eneklerinden jackpotlu slot se\u00e7eneklerinden her tarza hitap eden i\u00e7erik bulmak kolayd\u00fdr. G\u00fcvenilir slot platformlar\u00fd aras\u00fdnda bulunan web sitesi y\u00fcksek kazan\u00e7 oranlar\u00fdyla kazan\u00e7 olas\u00fdl\u00fd\u00f0\u00fdn\u00fd y\u00fckseltir. Bahis\u2026<\/p>\nBasaribet Casino Ortam\u00fd\u2019nda En Be\u00f0enilen Slot Se\u00e7enekleri<\/h2>\n
\n
Basaribet Casino\u2019da Tatl\u00fd Bonanza Ke\u00fefet ve \u00d6d\u00fcller Kazan<\/h3>\n
Basaribet Casino\u2019da Aviator Oynarken Kazanma \u00deans\u00fdn\u00fdz\u00fd Art\u00fdr\u00fdn <\/h3>\n
Basari bet Casino\u2019nun Jackpot F\u00fdrsatlar\u00fd: Kazan\u00e7l\u00fd m\u00fd?<\/h2>\n
\n\n
\n \nArt\u00fd Y\u00f6nler<\/th>\n Eksi Y\u00f6nler<\/th>\n<\/tr>\n<\/thead>\n \n \u00c7e\u00feitli oyun kategorileri: E\u00f0lenceli slot oyunlar\u00fd, masa oyunlar\u00fd ve canl\u00fd casino \u00e7e\u00feitli alternatifleriyle
\nzengin oyun koleksiyonu sunuyor.<\/td>\nM\u00fc\u00feteri hizmetleri: M\u00fc\u00feteri Deste\u00f0i daha \u00e7abuk ve verimli olsa daha iyi olurdu.<\/td>\n<\/tr>\n \n Kullan\u00fdc\u00fd dostu tasar\u00fdm: Casino platformu, kullan\u00fdc\u00fd odakl\u00fd tasar\u00fdm\u00fdyla rahat\u00e7a gezilebilir ve oyunlara h\u00fdzl\u00fd eri\u00feim olana\u00f0\u00fd tan\u00fdyor.<\/td>\n Bonus \u00feartlar\u00fd: Sunulan bonuslar\u00fdn \u00e7evrim \u00feartlar\u00fd bazen oyunculara y\u00f6nelik daha kolay olabilirdi.<\/td>\n<\/tr>\n \n H\u00fdzl\u00fd \u00f6deme se\u00e7enekleri: Kazan\u00e7lar k\u00fdsa s\u00fcrede \u00f6denir ve emniyetli \u00f6deme se\u00e7enekleri sunulur.<\/td>\n Promosyon \u00e7e\u00feitlili\u00f0i: Mevcut promosyonlar olduk\u00e7a s\u00fdn\u00fdrl\u00fd, daha fazla alternatif oyunculara daha \u00e7ekici olabilir.<\/td>\n<\/tr>\n \n Mobil cihazlarla uyumlu: Mobil cihazlar \u00fczerinden sorunsuz bir oyun deneyimi sunuyorlar.<\/td>\n <\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n