/* 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":20081,"date":"2026-05-13T11:24:59","date_gmt":"2026-05-13T11:24:59","guid":{"rendered":"https:\/\/klecet.edu.in\/alumni\/?p=20081"},"modified":"2026-05-13T11:25:00","modified_gmt":"2026-05-13T11:25:00","slug":"lightning-connect-local-casino-ports-apps-online-gamble","status":"publish","type":"post","link":"http:\/\/klecet.edu.in\/alumni\/lightning-connect-local-casino-ports-apps-online-gamble\/","title":{"rendered":"Lightning Connect Local casino Ports Apps online Gamble"},"content":{"rendered":"

Ocean’s sprawling slot floor goes away like a digital revolution, along with step one,800 machines comprising every denomination regarding penny slots to help you fascinating large restrictions. Indicating that great playing has no need for neon and you will serious wasteland temperature, Southland’s harbors render Delta hospitality which have Vegas-quality assortment. Brand new unbelievable distinct modern jackpots has a few of the greatest brands in the market. The newest variety selections regarding vintage around three-reels with the latest films slots with additional bells and whistles than simply a carnival halfway. The fresh playing flooring features a well-curated mix of video clips slots, antique reels, and you can penny computers bequeath across the a spacious casino flooring.<\/p>\n

Among the most other main reasons why believe you probably try probably love playing position game within the Vegas would be the fact the compensation clubs and extra marketing and advertising has the benefit of around extremely manage be sure to will be getting the most advantages of their real money slot gamble. Even if you\u2019lso are perhaps not selecting the fresh quantity of casino games into bring, you might have an incredible time because of non-end amusement in almost any place associated with awe-inspiring city, no matter where you\u2019re built during your head to. Online slots games could possibly offer high production to professionals, with a few offering high otherwise down efficiency considering play criteria. While using the online slots games, it\u2019s important to keep in mind that games of this type will normally give differing chances along the some other parts on your selected system.<\/p>\n

Off classic reels and you may clips slots to help you reducing-border machines with progressive jackpots, this type of casinos’ expansive selections will definitely contain the thrill heading. These ten casinos, selected from the a screen from advantages and you may voted from the readers as the best on U.S., shine due to their exceptional slot products. Regal Las vegas supporting various leading commission measures, in addition to borrowing\/debit cards, web wallets, financial transmits, and prepaid coupon codes. It has over eight hundred superior video game and trusted commission procedures, better app business, and you may generous player advantages. Royal Vegas has more 2 decades away from industry sense, giving a secure and you will legitimate platform. All the pro features various other choice in terms of percentage actions, so we did our far better make certain that we provide different people measures.<\/p>\n

Craps is one desk games that provides to mind the new https:\/\/hot7casino.co.uk\/<\/a> glamor of one’s gambling enterprise floor, nevertheless the on the web version also provides a great deal. The online game is actually effortless, with the aim from reaching 21 otherwise as close that you could with your hands, in the place of exceeding that it matter, and you can beating the latest agent\u2019s submit the process. Getting players based in the British, there’s absolutely no doubt one to Sky Vegas currently offers an excellent zero deposit incentive.<\/p>\n

Just what online casinos create rather is render no deposit incentives that you can use to try out slot online game. And their rewards system, you could build up issues that enable you to get bonuses that have totally free spins centered on their facts height. They often times promote a no-deposit added bonus from fifty free revolves only to turn you into are this site.<\/p>\n

In spite of the name, this type of often enables you to wager more than a penny for each and every range, nonetheless\u2019re also good for members who want to expand its funds. Las vegas gambling enterprises provide numerous slots, for every single featuring its individual theme, concept, and you will gameplay enjoys. Which have massive casino floors and you may numerous gambling choices to select-dining tables and slots. Benefit from the borrowing from the bank marker policy, hence gives you appeal-totally free funds regarding the local casino, which means you wear\u2019t stop the brand new gamble for folks who use up all your loans.<\/p>\n

Code new house that have an metal thumb and you will an excellent controls full of advantages. Possibly as a result of the simplicity, or even the hypnotic sounds that they make, and\/or the point that they feel ‘real’, since if they nonetheless had mechanical reels spinning. While in older times, it tended to become ‘fruit’ centered, such as for instance lemons, oranges, cherries, and you will plums, having a good spattering regarding 7s and you will Taverns (the major investing signs) On the web, you\u2019ll get better yet costs, much more than 90% of all currency wager on Internet slots are returned while the earnings. Now, yet not, Las vegas ports are almost all digital, and so they appear to be regular arcade cupboards which have windows and easy button graphics. However, talking about efficiently on the web Vegas cent ports, there try all those alternatives for the fresh new and you will informal bettors to blow a small and you can gamble a great deal at any finest-rated online casino.<\/p>\n

Risk-free amusement \u2013 Enjoy the game play with no danger of taking a loss For us members especially, 100 percent free slots is a great way to try out online casino games before carefully deciding whether to wager a real income. Online slots are electronic slots to gamble on the web versus risking real cash. To possess complete put added bonus worthy of, BetMGM ($dos,500 meets), Borgata ($step one,100 suits), and you can Caesars Palace ($step 1,000 meets) is actually solid choices. Since assortment are fun, we recommend prioritizing platforms that have shown payment song records.<\/p>\n

Real money casinos may offer 100 percent free types of the slot machines supply people a chance to find out how online slots functions. Slot machine game might also tend to be incentive rounds or free spins immediately after causing a particular quantity of Crazy otherwise Spread out symbols. Such as for instance, certain styled slots such as for example 88 Luck and you will Blood Suckers promote imaginative has that enable members so you’re able to click on in-game signs to get into their potential jackpots and you can winnings. Although not, profitable is down seriously to luck – stay away from betting intellectual biases when you gamble online slots games.<\/p>\n

One of the best locations to love online ports was from the overseas casinos on the internet. That\u2019s not to say truth be told there aren\u2019t most other high game to experience, nevertheless these try your own trusted wagers for an enjoyable journey. Progressive ports add a different spin toward slot betting sense through providing possibly lives-changing jackpots. Because you enjoy, you\u2019ll come upon 100 percent free revolves, crazy symbols, and you can fun small-online game you to hold the action new and you will rewarding. Out of old civilizations so you’re able to innovative worlds, such video game safety a broad selection of subjects, making certain around\u2019s one thing for everybody. Employing engaging templates, immersive graphics, and you may thrilling added bonus has, these types of harbors render limitless entertainment.<\/p>\n

Should discover more about to relax and play real cash harbors and you will in which an educated online game are to win big? Below are a few our feedback and exactly how-to-enjoy books for additional info on your options to have to experience some of playing community\u2019s top online slots games. First-big date users can get found a pleasant incentive to begin, an internet-based harbors supply the cost effective to possess \u201cunlocking\u201d those people bonuses into a real income. Over the decades, the business is served by began providing video games and you will harbors. While most online slots give RTPs between 95% and you can 96%, those payback percentages echo a casino advantageous asset of cuatro% so you’re able to 5%.<\/p>\n

It have totally free spins, a spinning controls added bonus, and you can progressive jackpots. It\u2019s played just like the a themed slot machine game version or perhaps the old-fashioned three-reel version, for every single providing an exciting pursue of your own controls. Highest denomination slots generally speaking render ideal commission proportions\u2014$step 1 ports have a home edge around six.6%, when you find yourself penny ports is arrive at twelve.5% domestic boundary. Dragon Hook continues on controling local casino floors with its demonstrated formula away from collect-and-keep game play one to perfectly balance expertise and you may chance points. Buffalo-styled harbors continue to be extremely preferred, with different iterations plus Buffalo Bucks and you can Buffalo Hook up providing some other added bonus formations and you may modern solutions. Currency Golf balls distinctions possess prolonged which have the new products giving some other extra technicians and you can keep-and-twist has actually you to remain people involved.<\/p>\n","protected":false},"excerpt":{"rendered":"

Ocean’s sprawling slot floor goes away like a digital revolution, along with step one,800 machines comprising every denomination regarding penny slots to help you fascinating large restrictions. Indicating that great playing has no need for neon and you will serious wasteland temperature, Southland’s harbors render Delta hospitality which have Vegas-quality\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-20081","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/20081","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=20081"}],"version-history":[{"count":1,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/20081\/revisions"}],"predecessor-version":[{"id":20082,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/20081\/revisions\/20082"}],"wp:attachment":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/media?parent=20081"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/categories?post=20081"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/tags?post=20081"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}