/* 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":103660,"date":"2026-05-25T11:38:57","date_gmt":"2026-05-25T11:38:57","guid":{"rendered":"https:\/\/klecet.edu.in\/alumni\/?p=103660"},"modified":"2026-05-25T11:38:58","modified_gmt":"2026-05-25T11:38:58","slug":"the-latest-feature-length-may-vary-based-on-how-of-numerous-scatters-had-been-triggered","status":"publish","type":"post","link":"http:\/\/klecet.edu.in\/alumni\/the-latest-feature-length-may-vary-based-on-how-of-numerous-scatters-had-been-triggered\/","title":{"rendered":"The latest feature length may vary based on how of numerous scatters had been triggered"},"content":{"rendered":"

S. users trying enjoyable game play, timely crypto profits, and you may grand greeting bonuses<\/h2>\n

The fresh new paytable shows ten standard together with 3 advanced symbols regarding the Fortunate Duck online position the real deal currency online game. Are you ready to test your own luck from the chill-looking position game inside GAMEROOM?<\/p>\n

Obtaining 12+ scatters throughout one spin releases the advantage bullet<\/h2>\n

Past one, Sweeps Royal features a rich set of Seafood Game such as Water Little princess, Ka Fish Hunter, and you will Octopus Legend. You have a different sort of distinctive line of Buffalo ports, plus Buffalo Stack’n’s YNC, Buffalo Hunter, Ragin’ Buffalo, Buffalo on fire, Mystical Buffalo \ufffd and others. That’s one of the recommended sign up even offers in terminology out of South carolina, albeit the new GC tally is a little light total. Regardless if Jackpota mostly concentrates on ports, providing more than 1,500 headings, additionally discover jackpots, progressive ports and you will real time video game shows. Elsewhere, there are a properly-stocked real time casino, certain very handy Jackpots, and several spare desk video game you could play feeling an excellent piece closer to what an internet casino feels as though. Once you sign up, you can get the actual Prize Gambling enterprise no-deposit incentive, which extra can get you 2 Sweepstakes Coins up on enrolling, and you can as well as discover 100,000 Gold coins which you can use to play for fun.<\/p>\n

Prolific organization particularly Settle down Gaming and you may Hacksaw Playing tend to launch the newest game every week, to your greatest sweeps gambling enterprises instantly adding these to their library. Metal Lender falls you on the a great heist-motivated caper place in Cuba’s underworld. The new game’s RTP lies within % in the best sweepstakes casinos, that is more than mediocre, whether or not much less high because Currency Cart 2 otherwise some other competing ports.<\/p>\n

So it tempting alternatives is generated all the more enticing into the book DuckyLuck Allowed Extra. will bring the finest group of gambling games – ranging from video poker through to 12 reel and you can 5 reel slots. The knowledge of all of the quantities of customer support, experience-strengthening, as well as, our very own swiftness to help you get the winnings!<\/p>\n

Every has, for instance the MergeUp mechanic, tumbling reels, and you may bonus rounds, is actually available on the one another apple’s ios and you will Android gadgets. The being compatible all over gadgets and you can user-amicable program next increase usage of and you can enjoyment. Giovannis Treasures is actually good seven-reel game of the Betsoft having coal altering to diamonds and you can rewarding large profits and you may feet games profits whenever complimentary five or higher groups regarding symbols. When you use certain advertising clogging software, excite consider its options. You can study more about slot machines and how it works within online slots guide. If you’re looking to sign up at another gambling establishment to help you gamble Happy Ducker, here are some our very own gambling enterprise remark area, in which we have a selection of welcome bonuses.<\/p>\n

It’s perfect for both beginners just who see lighthearted layouts and you will knowledgeable people searching for rewarding game play. The form is actually lively but really expert, that have cartoonish graphics you to definitely pop music up against a calm liquid-inspired background. Click on the bet365 offici\u00eble website<\/a> key less than as long as you wish to stand here to read through more information. Regarding going for a real money gambling establishment on line, DuckyLuck Gambling enterprise shines which have ample perks, lightning-fast payouts, and you may personal game. DuckyLuck Gambling enterprise is one of the best-rated online casinos for You.<\/p>\n

Nolimit Area is among the latest video game business at sweepstakes gambling enterprises, but it’s ver quickly become one of several better labels getting harbors which have a real income honours. Remember that sweeps local casino that provide free online harbors and ability lots of Escape-styled promotions during joyful periods, thus keep the vision discover particularly around the social networking streams. Which have typically 1000+ harbors from the sweeps casinos, you’ll find a number of 100 % free slot online game to select from. Obviously you can consider them free-of-charge having fun with Gold Gold coins when registering just before playing with Sweeps Coins and you may trying in order to victory real cash honours if you want. When you are we’ve already seen specific hefty hitters shed, there is a lot far more coming down the newest line.<\/p>\n

The newest 100 % free Revolves bullet uses a symbol conversion process meter; landing scatters converts lower-expenses signs into the Mystery Flannel, enhancing the regularity of the Golden Flannel triggers. Obtaining 4 or 5 scatters significantly boosts the doing wild multiplier so you can 10x otherwise 25x correspondingly. ELK’s trademark X-iter buy selection can be found, offering four games methods ranging from a straightforward extra check so you can good \ufffdAwesome Incentive\ufffd that have secured huge symbols and restriction grid level. NoLimit City continues on its really really-identified team having an action-packed 6-reel options within free online position release. It is a great Pet’s Lifestyle of Knucklehead Syndicate try a free online slot built on an effective 5?twenty three or 5?4 design, and games provides nuts modifiers and added bonus-triggering scatters that may lead towards multi-superimposed free twist rounds.<\/p>\n

Fortunate Duck ports can be found to try out to the each other pc and mobile phones, so it’s smoother for members to love the online game from anywhere. That’s all; the newest cellular variation tend to load from there, and you’ll feel just like you had been to play in the-software the complete time. The reason is effortless – LuckyLand’s mobile type is right enough, and all of you need to do try would an account and you can play within the portrait function. There’s a desktop kind of the website, however, no matter all of that, I preferred to try out for the cellular without even being forced to download the fresh new app, and i explore an android tool. The brand new online slots is ruled because of the pre-programmed arbitrary matter generators.<\/p>\n

In the extra round, the fresh multiplier ladder will not reset ranging from spins, and a great \ufffdComplete Online\ufffd element can also be at random result in so you can brush all of the fish multipliers currently towards the newest reels getting just one big payout Most notably, people twist can also be end in the newest Dream Shed Jackpot entry, offering users a go from the four modern sections, like the Mega Jackpot and therefore vegetables during the \ufffd2 billion. Fish symbols carry instant cash thinking and are collected at random for the the beds base game or instantly inside Free Revolves bullet when they reach the bottom of your grid. Calm down Gaming brings a great 5?4 \ufffdWays\ufffd free online slot position which have a look closely at large-regularity jackpot possible. Since the twenty three,000x maximum win are traditional versus the colleagues this week, the latest % RTP and you will medium volatility allow it to be an excellent much time-label position readily available for lengthened courses and you can milling South carolina\/GC.<\/p>\n

Now, with participants becoming wholly susceptible to the latest whims regarding Woman Luck, there’s no sure-flame gameplay function right here that will make sure wins. Well, unfortuitously, there’s absolutely no Fortunate Duck jackpot on offer, if progressive or otherwise. Right here, players are required to capture a-row from bobbing ducks to profit multiplier bonuses otherwise usage of the top Money wheel where massive multiplier incentives are shared. The latest duck shooting spread symbol trigger an even more enjoyable Fortunate Duck incentive that may create people almost believe he or she is in the a district reasonable. The entire feel and look try Far-eastern, and this feeling is reinforced from the kind of symbols seen inside on line position, while the sounds, that is brilliant and you will chirpy enough to moving to help you. The whole thing is set below a very clear sky therefore can nearly smell sunlight glowing on the turf.<\/p>\n","protected":false},"excerpt":{"rendered":"

S. users trying enjoyable game play, timely crypto profits, and you may grand greeting bonuses The fresh new paytable shows ten standard together with 3 advanced symbols regarding the Fortunate Duck online position the real deal currency online game. Are you ready to test your own luck from the chill-looking\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-103660","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/103660","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=103660"}],"version-history":[{"count":1,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/103660\/revisions"}],"predecessor-version":[{"id":103663,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/103660\/revisions\/103663"}],"wp:attachment":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/media?parent=103660"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/categories?post=103660"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/tags?post=103660"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}