/* 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":776,"date":"2025-10-14T08:13:36","date_gmt":"2025-10-14T08:13:36","guid":{"rendered":"http:\/\/klecet.edu.in\/alumni\/?p=776"},"modified":"2025-10-14T08:14:01","modified_gmt":"2025-10-14T08:14:01","slug":"basaribet-online-bahis-giri-yolu-5","status":"publish","type":"post","link":"https:\/\/klecet.edu.in\/alumni\/basaribet-online-bahis-giri-yolu-5\/","title":{"rendered":"basaribet Online Bahis Giri\u00fe Yolu"},"content":{"rendered":"
Kullan\u00fdc\u00fd dostu aray\u00fcz\u00fc ve oyun \u00e7e\u00feitlili\u00f0iyle ilgi g\u00f6ren basaribet bahis sitesi, slot oyunlar\u00fdna ilgi duyanlar i\u00e7in g\u00fcvenli ve verimli bir bahis sitesi deneyimi sa\u00f0lar. En pop\u00fcler farkl\u00fd slot oyunlar\u00fd se\u00e7eneklerinden jackpotlu slot se\u00e7eneklerinden her kesime uygun i\u00e7erik bulmak kolayd\u00fdr. Resmi lisansa sahip oyun siteleri aras\u00fdnda site adresi y\u00fcksek \u00f6deme y\u00fczdeleri sunarak kazanma \u00feans\u00fdn\u00fd art\u00fdr\u00fdr. Bahis platformuna \u00fcye olmak birka\u00e7 basit ad\u00fdmda yap\u00fdlabilir. E\u00f0lenceli ve heyecanl\u00fd casino slot deneyimi isteyenler i\u00e7in slot platformu olarak \u00f6ne \u00e7\u00fdkan basaribet canl\u00fd oyun platformu, e\u00f0lenceli ve kazan\u00e7l\u00fd dakikalar sa\u00f0lar. \u00deimdi siz de basaribet<\/a> URL’si \u00fczerinden ba\u00f0lanabilirsiniz. <\/p>\n basaribet casino sitesi, 2025 senesinde en \u00e7ok kazand\u00fdran slotlar ve y\u00fcksek \u00f6deme y\u00fczdeli slotlar\u00fdyla \u00f6ne \u00e7\u00fdk\u00fdyor. Kullan\u00fdc\u00fd kitlesi, slot oyunlar\u00fd kategorisinde say\u00fds\u00fdz keyifli ve b\u00fcy\u00fck kazan\u00e7lar sa\u00f0layacak oyunlar bulabilirler. Slot \u00e7e\u00feitlerini 4 maddeyle ke\u00fefedin: <\/p>\n basaribet oyun casino sitesi, ayr\u00fdca Blueprint Gaming, Bally Wulff ve Spinomenal lider oyun sa\u00f0lay\u00fdc\u00fdlar\u00fdn\u00fd sunar. <\/p>\n Sweet Bonanza slot oyunu, Pragmatic Play\u2019in geli\u00fetirmi\u00fe oldu\u00f0u keyifli ve bol \u00f6d\u00fcll\u00fc bir se\u00e7enektir. Renkli meyve sembolleri ve e\u00f0lenceli \u00f6zellikleriyle kat\u00fdl\u00fdmc\u00fdlara de\u00f0erli \u00f6d\u00fcller kazanma potansiyeli ta\u00fe\u00fdr. Sweet Bonanza oyna se\u00e7ene\u00f0iyle \u00feeker ve meyve g\u00f6rselli bu kazan\u00e7l\u00fd slotu tam g\u00fcvenle oynayabilirsiniz. <\/p>\n Aviator casino slotu, yak\u00fdn d\u00f6nemin pop\u00fcler casino oyunlar\u00fdndan biridir. Bahisseverler, u\u00e7ak kalk\u00fd\u00fe ve ini\u00fe a\u00feamalar\u00fdnda aviator bahis se\u00e7ene\u00f0i ile oyun oynayarak kazanma f\u00fdrsat\u00fdn\u00fd elde ederler. basaribet casino platformunda, oyunu test etmek isteyenler i\u00e7in \u00fccretsiz eri\u00feim sa\u00f0lar. Aviator nedir? Bu slot oyunu, u\u00e7u\u00feun ba\u00felad\u00fd\u00f0\u00fd anla birlikte \u00e7arpan h\u00fdzla artt\u00fdk\u00e7a ilerler ve kullan\u00fdc\u00fdlar bu \u00e7arpan\u00fdn ne kadar y\u00fckselece\u00f0ini tahmin etmeye \u00e7al\u00fd\u00fe\u00fdr. <\/p>\n Bu online oyun portal\u00fd, geni\u00fe oyun se\u00e7enekleri ve kolay kullan\u00fdm\u00fd sayesinde ilgi g\u00f6r\u00fcyor. <\/p>\n Online casino, zengin oyun se\u00e7enekleri ve pratik aray\u00fcz\u00fcyle dikkat \u00e7ekse de, m\u00fc\u00feteri deste\u00f0i ve bonus imkanlar\u00fdn\u00fd art\u00fdrarak genel kullan\u00fdc\u00fd memnuniyetini art\u00fdrabilir.<\/p>\n","protected":false},"excerpt":{"rendered":" Kullan\u00fdc\u00fd dostu aray\u00fcz\u00fc ve oyun \u00e7e\u00feitlili\u00f0iyle ilgi g\u00f6ren basaribet bahis sitesi, slot oyunlar\u00fdna ilgi duyanlar i\u00e7in g\u00fcvenli ve verimli bir bahis sitesi deneyimi sa\u00f0lar. En pop\u00fcler farkl\u00fd slot oyunlar\u00fd se\u00e7eneklerinden jackpotlu slot se\u00e7eneklerinden her kesime uygun i\u00e7erik bulmak kolayd\u00fdr. Resmi lisansa sahip oyun siteleri aras\u00fdnda site adresi y\u00fcksek \u00f6deme y\u00fczdeleri\u2026<\/p>\nbasaribet Casino Alan\u00fd 2025\u2019in Slot Lideri Oluyor<\/h2>\n
\n
basaribet Platformu Oyun Alan\u00fdnda Meyve Patlamas\u00fd Ke\u00fefet ve \u00deans\u00fdn\u00fd Katla<\/h3>\n
basaribet Casino\u2019da Aviator Demo Oyunu ile Pratik Yap\u00fdn <\/h3>\n
basaribet Casino Jackpotlar\u00fd: Art\u00fdlar ve Eksiler<\/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: Slot makineleri, masa oyunlar\u00fd ve ger\u00e7ek krupiyeli oyunlar bir\u00e7ok se\u00e7ene\u00f0iyle
\n\u00e7ok say\u00fdda oyun alternatifi sa\u00f0l\u00fdyor.<\/td>\nM\u00fc\u00feteri destek hizmeti: M\u00fc\u00feteri Servisi daha \u00e7abuk ve verimli olsa daha g\u00fczel olurdu.<\/td>\n<\/tr>\n \n H\u00fdzl\u00fd eri\u00feim aray\u00fcz\u00fc: \u00c7evrimi\u00e7i casino slot sitesi, kullan\u00fdc\u00fdya y\u00f6nelik tasar\u00fdm\u00fdyla kolayca gezilebilir ve oyunlara h\u00fdzl\u00fd eri\u00feim sa\u00f0l\u00fdyor.<\/td>\n Bonus ko\u00feullar\u00fd: Sa\u00f0lanan bonuslar\u00fdn \u00e7evrim kurallar\u00fd zaman zaman oyuncular i\u00e7in daha sade olabilirdi.<\/td>\n<\/tr>\n \n Pratik \u00f6deme se\u00e7enekleri: Kazan\u00e7lar h\u00fdzla \u00f6denir ve g\u00fcvenilir \u00f6deme y\u00f6ntemleri sa\u00f0lan\u00fdr.<\/td>\n \u00d6d\u00fcl \u00e7e\u00feitlili\u00f0i: Var olan promosyonlar olduk\u00e7a k\u00fds\u00fdtl\u00fd, daha fazla se\u00e7enek oyuncular i\u00e7in daha cazip olabilir.<\/td>\n<\/tr>\n \n Cep telefonuyla uyumlu: Mobil cihazlar arac\u00fdl\u00fd\u00f0\u00fdyla sorunsuz bir oyun deneyimi sunuyorlar.<\/td>\n <\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n