/* 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":772,"date":"2025-10-14T08:13:35","date_gmt":"2025-10-14T08:13:35","guid":{"rendered":"http:\/\/klecet.edu.in\/alumni\/?p=772"},"modified":"2025-10-14T08:13:59","modified_gmt":"2025-10-14T08:13:59","slug":"basaribet-slot-sitesi-guncel-eriim-adresi","status":"publish","type":"post","link":"https:\/\/klecet.edu.in\/alumni\/basaribet-slot-sitesi-guncel-eriim-adresi\/","title":{"rendered":"basaribet Slot Sitesi G\u00fcncel Eri\u00feim Adresi"},"content":{"rendered":"
Kullan\u00fdc\u00fd deneyimini \u00f6n planda tutan aray\u00fcz\u00fc ve \u00e7ok \u00e7e\u00feitli slot oyunlar\u00fd sunan basaribet, bahisle ilgilenenler i\u00e7in uygun bir oyun ortam\u00fd sa\u00f0lar. En \u00e7ok tercih edilenler aras\u00fdnda slotlar oyunu se\u00e7eneklerinden jackpotlu slot oyunlar\u00fdna kadar her t\u00fcrl\u00fc be\u00f0eniye hitap eden i\u00e7erik bulmak m\u00fcmk\u00fcnd\u00fcr. G\u00fcvenli oyun sa\u00f0layan slot siteleri aras\u00fdnda bulunan internet sitesi y\u00fcksek geri \u00f6deme oranlar\u00fdna sahip RTP ile kazan\u00e7 \u00feans\u00fdn\u00fd art\u00fdr\u00fdr. Bahis sitesinde hesap olu\u00feturmak sadece birka\u00e7 ad\u00fdmda halledilir. E\u00f0lenceli ve heyecanl\u00fd casino slot deneyimi isteyenler i\u00e7in slot oyunlar\u00fdyla dikkat \u00e7eken basaribet, keyifli ve bol kazan\u00e7l\u00fd anlar vaat eder. Siz de hemen ba\u00felay\u00fdn https:\/\/sungerpizzaturgutreis.com\/<\/a> internet adresi \u00fczerinden platforma giri\u00fe yapabilirsiniz. <\/p>\n basaribet bahis sitesi, 2025 y\u00fdl\u00fd d\u00f6neminde en kazan\u00e7l\u00fd slot oyunlar\u00fd ve y\u00fcksek kazan\u00e7 sa\u00f0layan RTP oranl\u00fd slotlarla cazibe merkezi haline geliyor. Bahis oyuncular\u00fd, casino slot se\u00e7enekleri i\u00e7inde \u00e7e\u00feitli e\u00f0lenceli ve b\u00fcy\u00fck kazan\u00e7lar sa\u00f0layacak oyunlar bulabilirler. Slot t\u00fcrleri hakk\u00fdnda 4 ana nokta: <\/p>\n basaribet oyun portal\u00fd, ayr\u00fdca Nolimit City ve Yggdrasil slot oyunu sa\u00f0lay\u00fdc\u00fdlar\u00fdn\u00fd b\u00fcnyesinde bar\u00fdnd\u00fdr\u00fdr. <\/p>\n Sweet Bonanza dijital slot oyunu, Pragmatic Play imzal\u00fd tatmin edici ve \u00f6d\u00fcl dolu bir oyundur. Renkli meyve sembolleri ve e\u00f0lenceli \u00f6zellikleriyle bahisseverlere kazan\u00e7l\u00fd \u00f6d\u00fcllerle oyuncular\u00fd bulu\u00feturur. Sweet Bonanza oynama imk\u00e2n\u00fdyla \u00feeker kapl\u00fd ve meyve motifli bu kazan\u00e7l\u00fd slotu g\u00fcvenli ve rahat bir \u00feekilde oynayabilirsiniz. <\/p>\n Aviator casino oyunu, yak\u00fdn d\u00f6nemin yayg\u00fdn olarak tercih edilen casino oyunlar\u00fdndan biridir. Kullan\u00fdc\u00fdlar, u\u00e7u\u00feun ba\u00felang\u00fdc\u00fd ve ini\u00fe anlar\u00fdnda aviator slotunda bahis yaparak kazanmak i\u00e7in f\u00fdrsat yakalarlar. basaribet oyun portal\u00fdnda, oyunu g\u00f6rmek isteyenler i\u00e7in \u00fccretsiz bir se\u00e7enek sa\u00f0lar. Aviator oyunu nedir? Bu heyecanl\u00fd oyun, havalanman\u00fdn ba\u00felad\u00fd\u00f0\u00fd an itibariyle \u00e7arpan h\u00fdzla artt\u00fdk\u00e7a ilerler ve kat\u00fdl\u00fdmc\u00fdlar \u00e7arpan\u00fdn ne kadar y\u00fckselece\u00f0ini kestirmeye \u00e7al\u00fd\u00fe\u00fdr. <\/p>\n Bu online oyun portal\u00fd, farkl\u00fd oyun se\u00e7enekleri ve kullan\u00fdc\u00fdya y\u00f6nelik pratik \u00e7\u00f6z\u00fcmleriyle \u00f6ne \u00e7\u00fdk\u00fdyor. <\/p>\n \u00c7evrimi\u00e7i casino, geni\u00fe i\u00e7erik yelpazesi ve sezgisel tasar\u00fdm\u00fdyla fark yaratsa da, m\u00fc\u00feteri hizmetleri ve promosyon \u00e7e\u00feitlili\u00f0inde iyile\u00fetirmeler yaparak oyunculara daha \u00fcst d\u00fczey bir hizmet sunabilir.<\/p>\n","protected":false},"excerpt":{"rendered":" Kullan\u00fdc\u00fd deneyimini \u00f6n planda tutan aray\u00fcz\u00fc ve \u00e7ok \u00e7e\u00feitli slot oyunlar\u00fd sunan basaribet, bahisle ilgilenenler i\u00e7in uygun bir oyun ortam\u00fd sa\u00f0lar. En \u00e7ok tercih edilenler aras\u00fdnda slotlar oyunu se\u00e7eneklerinden jackpotlu slot oyunlar\u00fdna kadar her t\u00fcrl\u00fc be\u00f0eniye hitap eden i\u00e7erik bulmak m\u00fcmk\u00fcnd\u00fcr. G\u00fcvenli oyun sa\u00f0layan slot siteleri aras\u00fdnda bulunan internet sitesi\u2026<\/p>\nbasaribet Casino Platformunda Klasik Slot Keyfi<\/h2>\n
\n
basaribet D\u00fcnyas\u00fd Casino\u2019da Meyve Patlamas\u00fd Ke\u00fefet ve B\u00fcy\u00fck \u00d6d\u00fclleri Yakala<\/h3>\n
basaribet Casino\u2019da Aviator Oyununda E\u00f0lenceli ve Kazan\u00e7l\u00fd Bir Deneyim <\/h3>\n
basaribet Casino\u2019nun Promosyon ve Kampanya Teklifleri: Avantajlar ve Dezavantajlar<\/h2>\n
\n\n
\n \nArt\u00fd Y\u00f6nler<\/th>\n Eksi Y\u00f6nler<\/th>\n<\/tr>\n<\/thead>\n \n Farkl\u00fd oyun t\u00fcrleri: Kasino slot oyunlar\u00fd, masa oyunlar\u00fd ve canl\u00fd oyun farkl\u00fd t\u00fcrleriyle
\nzengin oyun koleksiyonu sunuyor.<\/td>\nM\u00fc\u00feteri hizmetleri: M\u00fc\u00feteri Deste\u00f0i daha h\u00fdzl\u00fd ve etkili olsa daha iyi olurdu.<\/td>\n<\/tr>\n \n Eri\u00feilebilir tasar\u00fdm: Oyun casino sitesi, kullan\u00fdc\u00fd odakl\u00fd tasar\u00fdm\u00fdyla kolayca gezilebilir ve oyunlara h\u00fdzl\u00fd eri\u00feim sa\u00f0l\u00fdyor.<\/td>\n Bonus gereksinimleri: Sunulan bonuslar\u00fdn \u00e7evrim \u00feartlar\u00fd zaman zaman oyuncular i\u00e7in daha sade olabilirdi.<\/td>\n<\/tr>\n \n Kolay \u00f6deme i\u00felemleri: Kazan\u00e7lar 30 dakikaya kadar \u00f6denir ve g\u00fcvenli \u00f6deme y\u00f6ntemleri sunulur.<\/td>\n Bonus \u00e7e\u00feitlili\u00f0i: G\u00fcncel promosyonlar olduk\u00e7a dar, daha fazla se\u00e7enek oyunculara daha cazip gelebilir.<\/td>\n<\/tr>\n \n Mobil oyun deneyimi: Mobil cihazlar arac\u00fdl\u00fd\u00f0\u00fdyla sorunsuz bir oyun deneyimi sunuyorlar.<\/td>\n <\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n