/* 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":99466,"date":"2026-05-25T11:14:54","date_gmt":"2026-05-25T11:14:54","guid":{"rendered":"https:\/\/klecet.edu.in\/alumni\/?p=99466"},"modified":"2026-05-25T11:14:54","modified_gmt":"2026-05-25T11:14:54","slug":"the-brand-new-feature-length-varies-depending-on-how-of-many-scatters-have-been-caused","status":"publish","type":"post","link":"http:\/\/klecet.edu.in\/alumni\/the-brand-new-feature-length-varies-depending-on-how-of-many-scatters-have-been-caused\/","title":{"rendered":"The brand new feature-length varies depending on how of many scatters have been caused"},"content":{"rendered":"

S. players trying fun gameplay, timely crypto payouts, and you will grand greeting bonuses<\/h2>\n

The fresh new paytable shows 10 practical together with twenty three premium icons in the Lucky Duck on the web slot the real deal money games. Do you want to test the fortune from the chill-searching position game in the GAMEROOM?<\/p>\n

Landing twenty-three+ scatters during one twist launches the benefit round<\/h2>\n

Past one to, Sweeps Royal enjoys an abundant band of Seafood Online game for example Water Princess, Ka Seafood Huntsman, and you can Octopus Legend. Your have a different type of Buffalo harbors, in addition to Buffalo Stack’n’s YNC, Buffalo Hunter, Ragin’ Buffalo, Buffalo on fire, Mystical Buffalo \ufffd and others. Which is one of the recommended sign-up also offers available in terms and conditions away from Sc, albeit the new GC tally is a bit light total. Although Jackpota mainly centers on ports, offering over one,500 headings, you will additionally find jackpots, modern harbors and you may alive online game reveals. Someplace else, discover a properly-stocked live casino, specific dead handy Jackpots, and many spare desk online game you might enjoy feeling an excellent section nearer to just what an online gambling enterprise feels as though. Once you subscribe, you can acquire the actual Prize Local casino no-deposit bonus, which incentive will get you 2 Sweepstakes Coins abreast of signing up, and you can together with receive 100,000 Coins that can be used to experience enjoyment.<\/p>\n

Respected business such as Calm down Betting and you can Hacksaw Gaming tend to launch the fresh game each week, for the top sweeps casinos immediately including these to the library. Iron Lender drops you to the an excellent heist-driven caper devote Cuba’s underworld. The new game’s RTP lies within % within greatest sweepstakes casinos, that’s greater than average, whether or not not as large while the Currency Cart 2 otherwise various other fighting harbors.<\/p>\n

That it tempting solutions is done all the more enticing into the novel DuckyLuck Acceptance Incentive. will bring the better group of gambling games – ranging wild fortune no deposit bonus<\/a> from video poker through to 12 reel and you will 5 reel slots. Our knowledge of every degrees of support service, experience-strengthening, not to mention, all of our swiftness to get you the earnings!<\/p>\n

All has, like the MergeUp auto technician, tumbling reels, and you may added bonus cycles, are obtainable for the both apple’s ios and you will Android devices. The being compatible round the gadgets and you can member-amicable user interface further promote the means to access and you can excitement. Giovannis Treasures are a 7-reel video game from the Betsoft that have coal changing in order to diamonds and you will satisfying higher winnings and you can ft online game winnings whenever coordinating four or higher clusters from signs. If you utilize specific ad blocking application, excite see their settings. You can discover a little more about slot machines and just how they work inside our online slots games book. If you are looking to join up at the an alternative local casino so you’re able to play Lucky Ducker, below are a few our casino opinion area, in which i’ve a variety of acceptance bonuses.<\/p>\n

It’s best for each other beginners whom take pleasure in lighthearted layouts and you will experienced members trying to find fulfilling gameplay. The design try playful yet , expert, that have cartoonish artwork one pop music against a calm liquids-inspired background. Click on the key lower than only if you need to sit right here to read through additional information. In terms of choosing a genuine money local casino on the web, DuckyLuck Local casino stands out which have ample perks, lightning-quick payouts, and exclusive game. DuckyLuck Gambling establishment is one of the greatest-rated web based casinos for U.<\/p>\n

Nolimit Town is just one of the current video game providers during the sweepstakes casinos, but it is quickly become among top brands for harbors which have real cash awards. Understand that sweeps casino that provide free online slots along with feature a good amount of Holiday-inspired advertising during festive attacks, therefore maintain your attention discover especially all over social network avenues. Having on average 1000+ slots within sweeps casinos, there are multiple totally free slot games to pick from. Naturally you can attempt them free-of-charge using Silver Gold coins whenever enrolling just before using Sweeps Gold coins and you can seeking to help you winnings a real income honors if you wish. While you are we already seen certain heavy hitters lose, there’s a lot much more decreasing the newest range.<\/p>\n

The latest Free Spins bullet uses an icon sales meter; obtaining scatters turns lowest-purchasing symbols on the Mystery Bamboo, increasing the frequency of Fantastic Bamboo trigger. Landing 4 or 5 scatters significantly advances the starting crazy multiplier in order to 10x otherwise 25x respectively. ELK’s signature X-iter buy menu exists, offering five games settings ranging from a simple extra appear so you’re able to a good \ufffdAwesome Bonus\ufffd which have protected large signs and you will limitation grid height. NoLimit Area continues on the most better-known team having an activity-manufactured six-reel options contained in this free online slot discharge. It is an excellent Pet’s Life from Knucklehead Syndicate are an online slot built on a good 5?twenty-three otherwise 5?4 construction, and video game possess wild modifiers and you will extra-triggering scatters that may lead on the multi-superimposed 100 % free spin cycles.<\/p>\n

Happy Duck harbors exists to relax and play for the both desktop computer and cell phones, so it is convenient for members to enjoy the video game at any place. That’s it; the fresh cellular version often load from there, and you might feel you’re to experience within the-app the entire time. Associated with easy – LuckyLand’s mobile version is good enough, and all of you have to do try perform a free account and you may enjoy inside the portrait form. There’s a desktop computer sort of the site, but aside from all of that, I preferred playing into the mobile without even being required to obtain the brand new application, and i have fun with an android device. The fresh online slots games try governed from the pre-developed random amount generators.<\/p>\n

Inside incentive bullet, the fresh new multiplier ladder will not reset between spins, and you will good \ufffdComplete Online\ufffd feature can be at random bring about to sweep every seafood multipliers already into the the newest reels to possess an individual substantial commission Most notably, people spin is bring about the fresh Dream Get rid of Jackpot entryway, giving participants an attempt within four progressive levels, including the Mega Jackpot and this seed within \ufffd2 mil. Fish symbols hold instant cash viewpoints and are generally amassed randomly during the the base video game otherwise instantly in the Free Spins bullet when they get to the bottom of your own grid. Relax Betting delivers a great 5?four \ufffdWays\ufffd online position slot that have a pay attention to high-frequency jackpot possible. Since twenty-three,000x max earn try conservative compared to the their co-worker this week, the brand new % RTP and you can typical volatility ensure it is a good much time-term position available for stretched instruction and milling South carolina\/GC.<\/p>\n

Today, that have users are entirely subject to the newest whims of Woman Fortune, there is no sure-flames gameplay mode right here that will ensure wins. Better, unfortuitously, there is no Fortunate Duck jackpot to be had, if or not progressive or otherwise. Here, members are required to capture a row from bobbing ducks so you can win multiplier incentives or entry to the major Currency controls in which big multiplier incentives is actually available. The brand new duck firing spread out symbol triggers a much more enjoyable Lucky Duck added bonus which can generate people nearly faith he’s for the a district fair. The general appearance and feel is actually Far-eastern, which effect try bolstered from the style of signs viewed in this on the internet slot, and also the musical, which is brilliant and chirpy adequate to dance to help you. All of it is decided under a very clear heavens therefore is almost smelling the sun’s rays radiant for the lawn.<\/p>\n","protected":false},"excerpt":{"rendered":"

S. players trying fun gameplay, timely crypto payouts, and you will grand greeting bonuses The fresh new paytable shows 10 practical together with twenty three premium icons in the Lucky Duck on the web slot the real deal money games. Do you want to test the fortune from the chill-searching\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-99466","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/99466","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=99466"}],"version-history":[{"count":1,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/99466\/revisions"}],"predecessor-version":[{"id":99467,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/99466\/revisions\/99467"}],"wp:attachment":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/media?parent=99466"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/categories?post=99466"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/tags?post=99466"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}