/* 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":121180,"date":"2026-05-25T13:15:06","date_gmt":"2026-05-25T13:15:06","guid":{"rendered":"https:\/\/klecet.edu.in\/alumni\/?p=121180"},"modified":"2026-05-25T13:15:07","modified_gmt":"2026-05-25T13:15:07","slug":"the-fresh-feature-length-may-differ-depending-on-how-of-many-scatters-was-in-fact-caused","status":"publish","type":"post","link":"http:\/\/klecet.edu.in\/alumni\/the-fresh-feature-length-may-differ-depending-on-how-of-many-scatters-was-in-fact-caused\/","title":{"rendered":"The fresh feature-length may differ depending on how of many scatters was in fact caused"},"content":{"rendered":"

S. players trying to pleasing game play, quick crypto winnings, and you may grand invited incentives<\/h2>\n

The new paytable shows 10 simple together with twenty three advanced icons from the Happy Duck on the web slot the real deal currency games. Do you want to use your luck on the cool-appearing slot video game within the GAMEROOM?<\/p>\n

Obtaining twenty-three+ scatters during the that spin launches the bonus round<\/h2>\n

Past you to definitely, Sweeps Royal provides a rich selection https:\/\/ruby-fortune-hr.com\/hr-hr\/<\/a> of Fish Game such as Sea Princess, Ka Seafood Huntsman, and Octopus Legend. Your need an alternative type of Buffalo slots, plus Buffalo Stack’n’s YNC, Buffalo Hunter, Ragin’ Buffalo, Buffalo on fire, Esoteric Buffalo \ufffd and many others. That’s one of the best join also provides in conditions from Sc, albeit the fresh new GC tally is a little light total. Although Jackpota mostly focuses primarily on ports, offering more one,five hundred headings, additionally, you will see jackpots, modern ports and you will alive game reveals. Somewhere else, you can find a properly-stored live casino, some really handy Jackpots, and some spare desk online game you could potentially play feeling a good bit closer to just what an internet gambling establishment feels like. After you sign-up, you will get the true Award Gambling enterprise no-deposit bonus, so it bonus will get you 2 Sweepstakes Coins up on signing up, and you can as well as receive 100,000 Coins which can be used to tackle enjoyment.<\/p>\n

Respected providers including Settle down Playing and you may Hacksaw Betting commonly release the fresh video game every week, to your better sweeps gambling enterprises instantaneously adding them to its collection. Metal Financial falls you into the a good heist-driven caper set in Cuba’s underworld. The newest game’s RTP is in the % during the finest sweepstakes casinos, that is higher than average, even when much less highest since Currency Cart 2 or some other contending slots.<\/p>\n

It tempting choices is done much more enticing to your unique DuckyLuck Welcome Extra. brings you the best gang of casino games – ranging from video poker through to 3 reel and 5 reel harbors. All of our expertise in all the levels of support service, experience-strengthening, and, our swiftness to help you get the winnings!<\/p>\n

All provides, including the MergeUp auto technician, tumbling reels, and you may extra cycles, was obtainable towards both apple’s ios and you will Android devices. Its being compatible around the devices and you may member-friendly program further promote access to and you will enjoyment. Giovannis Jewels is actually a eight-reel online game because of the Betsoft with coal modifying so you can diamonds and you can fulfilling large profits and foot video game earnings whenever complimentary five or maybe more clusters regarding symbols. By using certain offer clogging software, delight take a look at their options. You can learn about slots and how they work within our online slots games publication. If you are looking to register within a different sort of local casino in order to enjoy Lucky Ducker, here are a few all of our gambling establishment review area, in which you will find various allowed bonuses.<\/p>\n

It\ufffds ideal for one another newbies who take pleasure in lighthearted layouts and you will experienced users searching for satisfying gameplay. The shape is lively yet higher level, having cartoonish graphics that pop against a serene liquid-styled backdrop. Click on the key less than only if you wish to stand right here to read details. In terms of choosing a genuine money casino on the internet, DuckyLuck Gambling enterprise shines with nice benefits, lightning-prompt earnings, and you will personal games. DuckyLuck Gambling enterprise is amongst the finest-ranked casinos on the internet getting You.<\/p>\n

Nolimit Area is among the current online game team at sweepstakes gambling enterprises, but it’s quickly become one of several better labels to possess slots which have a real income honours. Just remember that , sweeps local casino offering free online ports and function loads of Escape-themed advertising while in the festive episodes, so keep your attention open specifically round the social networking avenues. That have an average of 1000+ ports in the sweeps gambling enterprises, you will find many free slot online game available. Naturally you can try everyone for free having fun with Silver Gold coins when joining in advance of having fun with Sweeps Coins and trying so you can win a real income awards if you want. If you are we’ve got already viewed specific heavier hitters drop, there’s a lot a lot more coming down the new range.<\/p>\n

The latest 100 % free Revolves bullet spends an icon sales meter; getting scatters converts low-spending symbols into the Secret Flannel, improving the regularity of the Golden Bamboo causes. Landing 4 or 5 scatters rather increases the starting crazy multiplier to 10x otherwise 25x correspondingly. ELK’s trademark X-iter buy selection can be found, providing five games settings ranging from a straightforward extra appear so you can a good \ufffdExtremely Extra\ufffd which have secured huge symbols and you will limit grid height. NoLimit Town continues on their extremely better-known business having an action-manufactured six-reel configurations contained in this free online position launch. It\ufffds a Pet’s Existence out of Knucklehead Syndicate is an online slot constructed on an effective 5?twenty three otherwise 5?4 design, plus the online game have crazy modifiers and you may incentive-causing scatters that may head on the multi-layered free spin cycles.<\/p>\n

Fortunate Duck slots can be obtained playing to the one another desktop computer and cellphones, so it is simpler getting people to enjoy the video game at any place. That’s all; the fresh new cellular adaptation have a tendency to load from that point, and you will probably feel like you used to be to relax and play in the-app the complete date. Associated with simple – LuckyLand’s mobile variation is great adequate, as well as you have to do is actually do a merchant account and you can play within the portrait setting. You will find a desktop computer variety of the website, but despite all of that, We appreciated to experience to your cellular without even having to obtain the fresh application, and that i play with an android tool. The newest online slots is actually ruled by pre-developed arbitrary number turbines.<\/p>\n

In the extra round, the fresh new multiplier steps doesn’t reset between revolves, and good \ufffdComplete Web\ufffd function is randomly result in to help you sweep most of the seafood multipliers already on the the latest reels having a single massive payment Particularly, people spin can trigger the fresh new Dream Miss Jackpot admission, offering members a trial in the five progressive sections, like the Super Jackpot and that seed products within \ufffd2 billion. Fish icons hold immediate cash opinions and are also obtained randomly for the the bottom online game otherwise automatically within the 100 % free Revolves round whenever they achieve the base of your grid. Relax Gaming provides an excellent 5?four \ufffdWays\ufffd online position position that have a pay attention to higher-volume jackpot potential. Because 3,000x maximum profit was conventional as compared to the colleagues this week, the newest % RTP and you can average volatility allow an excellent much time-term slot available for longer classes and you may milling South carolina\/GC.<\/p>\n

Now, that have members being wholly susceptible to the new whims away from Woman Chance, there is no yes-fire game play mode here that can ensure victories. Well, unfortunately, there isn’t any Fortunate Duck jackpot available, whether or not modern or otherwise. Here, people must shoot a row away from bobbing ducks to winnings multiplier incentives otherwise the means to access the major Money wheel in which big multiplier bonuses was shared. The latest duck capturing spread out symbol produces an even more fun Happy Duck incentive that can generate members nearly trust they are for the a county fair. All round appearance and feel was Far-eastern, which feeling try strengthened because of the style of signs viewed within online slot, and also the musical, that’s bright and you may chirpy enough to moving so you’re able to. The whole thing is set under a very clear sky therefore can almost smell the sunlight shining on the yard.<\/p>\n","protected":false},"excerpt":{"rendered":"

S. players trying to pleasing game play, quick crypto winnings, and you may grand invited incentives The new paytable shows 10 simple together with twenty three advanced icons from the Happy Duck on the web slot the real deal currency games. Do you want to use your luck on the\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-121180","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/121180","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=121180"}],"version-history":[{"count":1,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/121180\/revisions"}],"predecessor-version":[{"id":121182,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/121180\/revisions\/121182"}],"wp:attachment":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/media?parent=121180"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/categories?post=121180"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/tags?post=121180"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}