/* 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":113628,"date":"2026-05-25T11:58:00","date_gmt":"2026-05-25T11:58:00","guid":{"rendered":"https:\/\/klecet.edu.in\/alumni\/?p=113628"},"modified":"2026-05-25T11:58:24","modified_gmt":"2026-05-25T11:58:24","slug":"you-can-discover-a-lot-more-about-slots-and-just-how-they-work-in-our-online-slots-games-guide","status":"publish","type":"post","link":"http:\/\/klecet.edu.in\/alumni\/you-can-discover-a-lot-more-about-slots-and-just-how-they-work-in-our-online-slots-games-guide\/","title":{"rendered":"You can discover a lot more about slots and just how they work in our online slots games guide"},"content":{"rendered":"

The brand new e enjoys a fresh visual ecosystem featuring that may attract both experienced professionals and the ones fresh to online slots. You can play Jungle Nuts position inside a trial version instead downloading and you may win bonus perks and fantastic honors. One another notable web based casinos feel the permit to the agreement regarding the united states Western name brand only received. 12 spread icons will result in four spins, 4 scatters will provide eight spins and you will 5 scatters will leave you twenty chill 100 % free revolves. Truly the gamer that will score of many cool 100 % free revolves in the event the since you should be aware of a minimum of 3 scatters show up inside the regular gamble.<\/p>\n

Have fun with the Celebrity Check out Forest casino slot games at best on the internet casinos http:\/\/trustdicecasino-ca.com<\/a> and you can enjoy the newest benefits of them greatest possess. The video game plus uses unique signs, along with quick honor celebrities, wilds, and you may shooting celebrity scatters. On the base online game the fresh new maximum earn try 1,822.5x your own stake, even though it is a massive seven,768x on 100 % free revolves function.<\/p>\n

With more than 100 Fun Free Slots right from the new gambling establishment floor in addition to IGT’s Controls out of Chance\ufffd, Money Mania Cleopatra\ufffd and you may Wolf Manage Eclipse\ufffd! If you like crypto betting, below are a few our very own variety of trusted Bitcoin gambling enterprises to obtain networks that accept electronic currencies and have Williams Interactive harbors. The online game are totally enhanced having cell phones, plus ios and Android. Check always the fresh terms in advance of stating. Try all of our totally free variation significantly more than to understand more about the features.<\/p>\n

Releasing the new variety of FoxwoodsOnline<\/h2>\n

Gambino Harbors are a reputable absolve to gamble societal local casino app one many slots admirers from around earth delight in relaxed. Canadian professionals can take advantage of Jungle Wild slot during the respected WMS casinos, along with PlayOJO, JackpotCity, and Ruby Luck. Getting about three or even more mask scatters produces the latest 100 % free Revolves Added bonus, in which broadening icons do enhanced payment options.<\/p>\n

Ranked very because of its challenging volatility, Even more Chilli Megaways has the benefit of thrilling chance-award game play. The new Forest Nuts 100 % free revolves feature is a great opportunity to get larger incentive perks. Painting, decorate, include sweets and you can confetti, next crush the brand new pinata to earn novel rewards! Yes, Rich Absolutely nothing Piggies Hog-wild can be obtained to your Desktop, Mobile, Internet browser which is optimized having cell phones and you may pills at the most judge web based casinos. Sure, Rich Absolutely nothing Piggies Hog-wild includes a totally free spins ability one are triggered by certain special symbols or combinations, that have enhanced victory potential compared to foot games.<\/p>\n

Looking for to explore Jungle Nuts inside the an online gambling establishment as opposed to impacting the handbag? So it thrilling online slot machine guarantees best-level activity and severe thrill since you explore its have and you can profitable solutions. It is really not no more than spinning-it’s about planning your alternative within hunter’s eden. The fresh new reels was inhabited which have well-removed symbols, together with ducks of the many variety just waiting to become captured during the the winning combinations. Keep in mind that there are two main insane reels inside the 100 % free spins and this is achievable to victory an extra five wade-arounds if you had around three or higher scatters arrive once more. That is to say that there’s a single bonus – a free of charge revolves feature that is activated because of the a great scatter symbol.<\/p>\n

Earn Large with FoxPlay Local casino right from your residence free of charge!<\/h2>\n

Getting 3+ scatters produces around 20 totally free revolves, where a couple of reels randomly change insane and 100 % free spins added bonus might be re also-triggered. Sure, you might spin the brand new Jungle Insane slot machine game in a lot of places around the world, for instance the Usa. Among the best popular features of the game is the 100 % free revolves element, that gives people a bona-fide danger of striking tall victories.<\/p>\n

Most top on-line casino internet sites provide tens of thousands of harbors, along with the newest ports out of top team, ensuring players have access to a knowledgeable and more than prominent video game. Less than, i emphasize several of the most well-known United states online casinos getting the fresh ports on line. Concurrently, the fresh online slots games have a tendency to ability improved cellular compatibility and you may smaller packing moments than just more mature games. Sites such as McLuck and you may Top Coins Gambling enterprise will have sections solely serious about their brand new online slots. Log on to your favorite real-money internet casino or sweepstakes gambling establishment weekly, and you will place dozens of the brand new online slots. Having hundreds of the brand new online slots create each year, the competition gets increasingly intense.<\/p>\n

Users often feel the enthusiasm and you will dampness because they speak about a lush dream jungle, and meet the nuts citizens. not, it can give an excellent selection of ports that you will not come across to your All of us-centered casinos on the internet. These types of monkey harbors shall be played free-of-charge and also for real money on numerous legitimate online casinos that take on users from the United states. It offers pleasing has also, such as the gorilla stock broker wilds, spend packet scatters, and you can totally free spins game play providing to 30 100 % free spinsbine one to with a robust sound recording, progressive artwork, and up so you can 800x restrict winning possible, and you may appreciate this it\ufffds to the the record.<\/p>\n

Initiate to relax and play in just a matter of ticks, delight in rotating the brand new reels, allege incentives, and have fun with no requirements. They offer myths, escapades, and you may novel storylines you simply will not see somewhere else. Speak about this standout games as well as our very carefully curated gang of top-tier online slots and see your following favourite adventure.<\/p>\n

The game commonly possibly leave you incentives back-to-back to help you right back otherwise literally never ever. In addition to, let’s not forget that it’s simply 0.20 per twist. The fresh online slots games is actually governed by pre-set arbitrary matter machines. Lawfully, the latest online slots need to pay your profits just like the fresh slots you’d get a hold of into the a las vegas casino floors. General, the new online slots demonstrate a full range of volatility.<\/p>\n

None of your own games inside FoxPlay Local casino provide real cash otherwise bucks benefits and gold coins acquired was only for amusement purposes just. FoxPlay Gambling establishment provides everyday and you will bi-hourly incentives to store you spinning and you may effective right through the day! Find out exciting the fresh new slots right from the newest gambling establishment floors, releasing twice thirty day period! ..it’s laden up with a ton of fun New features.<\/p>\n","protected":false},"excerpt":{"rendered":"

The brand new e enjoys a fresh visual ecosystem featuring that may attract both experienced professionals and the ones fresh to online slots. You can play Jungle Nuts position inside a trial version instead downloading and you may win bonus perks and fantastic honors. One another notable web based casinos\u2026<\/p>\n

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