/* 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":99786,"date":"2026-05-25T11:18:15","date_gmt":"2026-05-25T11:18:15","guid":{"rendered":"https:\/\/klecet.edu.in\/alumni\/?p=99786"},"modified":"2026-05-25T11:18:15","modified_gmt":"2026-05-25T11:18:15","slug":"best-titles-become-gonzos-trip-and-you-may-frankenstein-however-now-we-look-closer-at-king-out-of-ports","status":"publish","type":"post","link":"http:\/\/klecet.edu.in\/alumni\/best-titles-become-gonzos-trip-and-you-may-frankenstein-however-now-we-look-closer-at-king-out-of-ports\/","title":{"rendered":"Best titles become Gonzo’s Trip and you may Frankenstein, however, now we look closer at King out of Ports"},"content":{"rendered":"

Finish the signal-upwards processes and you can put at the least ?10 for a full extra matter<\/h2>\n

Four Scatters leave you 10 spins totally free, half dozen scatters give you ten revolves 100 % free, seven scatters leave you twenty revolves totally free, seven scatters leave you twenty-four revolves free if you are over 7 scatters award you thirty revolves free. The brand new Royal setting is filled with incentives and you may honors after you play royal web based poker towards king which https:\/\/becasino-be.com\/<\/a> will end in 125x of the range wager. NetEnt might have been developing application to own casinos on the internet since 1996 and possess more 250 video game along the websites. Which have a love of gambling on line and you may an intense comprehension of the new Southern area African market, I’ve been entrusted on the activity regarding looking at registered on the web gambling enterprises and you will harbors and you will planning websites in regards to our webpages.<\/p>\n

These types of wilds choice to almost every other cues to help make winning combinations. Attaining the top floors plus honors an additional award of just one,000 gold coins. not, high gains can also happen during the totally free spins with high multipliers.<\/p>\n

36 Las vegas will get limitation or exclude people customers out of this promotion within their discretion, in addition to getting conformity, exposure, account behaviour, otherwise responsible gambling explanations. For many who adore diversifying the rotating experience, mention our very own big type of slot video game to get more enjoyable ranks. For the most part, whether or not, the new Queen from Harbors position has been designed becoming effortless to try out. Such as the construction and you can profits seem to be in fact a good.<\/p>\n

Having members in the united kingdom, choosing a position isn’t just regarding the motif or even the graphics it is more about value. For example, they offer high commission prospective that reach up to 5,000x their choice and you will bonus features, particularly totally free spins or wilds that are certain to enhance your payouts. Before choosing an educated large payout slot to the our very own record, i carefully experienced some key factors to make sure you provides an unforgettable gambling experience.<\/p>\n

I’ve loads of in control gambling systems and you will a better gambling page too<\/h2>\n

If you accept the risk-100 % free delight off free harbors, and take the latest action into the world of real money to possess a go at the large winnings? This type of online casinos constantly offer an enormous set of harbors your could play, catering to any or all choice and skill profile. The fresh fifty,000 coins jackpot is not a long way away for many who initiate obtaining wilds, and therefore lock and expand in general reel, boosting your payouts. This particular aspect kicks within the after you property a win at the base level and provide the possibility to gamble your winnings to own potentially big payouts. The guy began since the an excellent crypto creator coating reducing-boundary blockchain innovation and quickly receive the latest shiny arena of on the web casinos.<\/p>\n

Starburst stays perhaps one of the most played online slots games on United kingdom every year. The eye off Horus is set during the Ancient Egypt having broadening icons you to result in in the totally free revolves bullet, level entire reels for significant victory combinations. High volatility means wins is less common but may be somewhat large. An equivalent fisherman range auto mechanic enforce – fish signs hold multiplier philosophy you to definitely pile for the 100 % free revolves bullet. Larger Trout Splash is continually perhaps one of the most-starred ports for real cash in the united kingdom. 800+ online slots from leading team in addition to Practical Gamble, NetEnt, Microgaming, Playtech, and you may Eyecon – with the fresh new headings added each week.<\/p>\n

Websites will let you play for 100 % free however, so you can redeem bucks honours with your profits. Red-colored Tiger – Experts in Each day Lose Jackpots – pledges prizes that have to pay inside an appartment screen. About three or higher scatters result in totally free revolves, the spot where the fisherman multiplier increases with each collection.<\/p>\n

However, if you are the fresh new and also have little idea regarding the hence local casino otherwise company to decide online slots, make an attempt our very own slot collection at the CasinoMentor. You could potentially get involved in it right at the net position organization or at our greatest web based casinos that offer the brand new slots you need to enjoy. Various other casinos amass some other headings and will to switch its profits within the brand new range specified by the the licenses. In this way, you’ll more and more narrow down your own options in order to slots one to commonly give good results. To experience harbors is straightforward, everybody is able to be involved in the online game and earn on the extremely earliest spins which happen to be distinctive from Casino poker or Black-jack. But not, nowadays, there are many different top casinos on the internet that enable you to gamble which have a real income and gamble secure.<\/p>\n

It is an entertaining games with many different special features incorporated, along with great graphics and you may gameplay. Half a dozen scatters bring fifteen freespins, 7 offer up 20 freespins and seven ones reward your with a total of twenty-five freespins. And these are the newest spread out symbols, talking about depicted of the around three green gemstones, and it is which symbol that can lead to the new game’s freespins round.<\/p>\n

Despite the depth of your position, it is believe it or not easy to understand. Indeed, it\ufffds one of several smoothest online slots we have starred. For folks who hit seven, which is 20, 8 is twenty-five, and you may thirty completely around 15 scatters. When you get four scatters, you will get 5 revolves.<\/p>\n

For every seemed choice get lowest and restrict purchase choice. Some online casinos offer its people the choice to get slots desired extra to own adding credit in britain. A suggestion slot promotion advantages participants exactly who rating friends so you’re able to indication upwards in the casino. Since you enjoy even more rounds and you will progress VIP account, your discover increased suits offers, extra spins business, and position-certain honors one focus on your craft. Along with, discover instances when slots might not lead fully but nevertheless provide high progress to your cleaning your ports bonus.<\/p>\n

We advice so it Lottomart strategy to help you players who would like to mention multiple games products, such as ports, dining table and alive games. Thus, you’ll be able to withdraw all of your payouts. Just after signing up within Midnite Casino, the fresh participants possess 2 weeks in order to deposit and you can risk ?20.<\/p>\n

Because earnings for the spin is complete, after that a free of charge spin begins with the fresh nuts reels leftover repaired. Which significantly increases your chance of striking a payout, however, however doesn’t impact the said RTP regarding 96.1% and you will only earn just after per winline. The design is stuffed with nothing information, treasure icons are common mobile so you can twinkle, and you may browse over the winlines to ensure they are noticeable. Right here you can learn on gambling properly and discover any potential warning signs to watch out for. Sure, it’s safe playing harbors for real money at Mecca Bingo.<\/p>\n","protected":false},"excerpt":{"rendered":"

Finish the signal-upwards processes and you can put at the least ?10 for a full extra matter Four Scatters leave you 10 spins totally free, half dozen scatters give you ten revolves 100 % free, seven scatters leave you twenty revolves totally free, seven scatters leave you twenty-four revolves free\u2026<\/p>\n

Continue reading<\/span><\/i><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-99786","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/99786","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/comments?post=99786"}],"version-history":[{"count":1,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/99786\/revisions"}],"predecessor-version":[{"id":99787,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/99786\/revisions\/99787"}],"wp:attachment":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/media?parent=99786"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/categories?post=99786"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/tags?post=99786"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}