/* 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":130971,"date":"2026-05-25T16:48:51","date_gmt":"2026-05-25T16:48:51","guid":{"rendered":"https:\/\/klecet.edu.in\/alumni\/?p=130971"},"modified":"2026-05-25T16:48:53","modified_gmt":"2026-05-25T16:48:53","slug":"fresh-fruit-beverage-slot-demonstration-by-the-macaw-betting-free-play-evaluation","status":"publish","type":"post","link":"http:\/\/klecet.edu.in\/alumni\/fresh-fruit-beverage-slot-demonstration-by-the-macaw-betting-free-play-evaluation\/","title":{"rendered":"Fresh fruit Beverage Slot Demonstration by the Macaw Betting: Free Play & Evaluation"},"content":{"rendered":"

It\u2019s not high, but it\u2019s not really punishing both. A few talked about symbols We\u2019d be mindful of are definitely the beverage cup\u2014that may remind your from a fun date night\u2014and the strawberry icon, hence usually has high winnings. If you wish to to alter your own risk, you\u2019ll select clear buttons for selecting line wide variety and you will wager really worth near the bottom. New program can seem to be quite old if you like extremely-modern graphics, nevertheless\u2019s some simple. Maximum you are able to win try x5,000 your choice, that may indeed please fans off elderly-design good fresh fruit machines. Normal icons particularly watermelons, plums, red grapes, and you will lucky sevens feature into reels.<\/p>\n

Any betting web site integrating that have Igrosoft could give free accessibility with the demonstration means. Gains means one another means, what amount of contours are varying, and you will a classic exposure game can there be to boost probably the smallest commission. But when you take a closer look, you could observe that the fresh follow up provides a risk game in the which the threat of winning\/dropping try 50\/50. Because there are zero bonus get alternatives, it takes time to end up in an advantage game. We mention everything from online game solutions and you may bonuses for some trick detachment regulations and safer play has actually.<\/p>\n

Ports admirers can take advantage of right from their houses having initially for the web based casinos, in addition they had a wide assortment of casino games so you can pick. Since the extra round source weblink<\/a> begins, you\u2019ll be studied in order to a different sort of mini-video game in which frozen fruits twist into another type of band of reels, offering the opportunity to profit multipliers otherwise additional honours. Little distracts you from the online game, the fresh new video slot try liked because of the both longtime fans and novices just who merely become their profession for the gambling. To own an RTP away from 95%, it indicates one to per $a hundred wagered toward online game, it should typically pay-off $95 over time. By complimentary a line with this picture, you can make winnings all the way to 2000 credit facing step 3, cuatro and 5 icons.<\/p>\n

Three berries tend to grant you you to definitely twist, five \u2013 several spins, and obtaining a mix of five strawberries gives you ideal to help you twist new wheel three times. When you need to see fruits harbors, it is as simple as searching for your preferred online game and clicking new “Play for 100 percent free” switch otherwise must spend money or the “Play within the a gambling establishment” if you want to tackle for real money. Well-known incentive possess in the on the internet fresh fruit servers online game include totally free spins, crazy icons, multiplier symbols, added bonus rounds, and you will enjoy keeps. Widely known symbols within the fresh fruit harbors are cherries, apples, lemons, plums, bells, taverns, and you may sevens. Forehead away from Games has a delicious gang of totally free fruit slots just for you in this post. Discover 1000s of on-line casino game business international, not them make fresh fruit slots or any other video game!<\/p>\n

In the long run, hitting 3 to 5 strawberries contributes to the benefit round which we\u2019ll speak about in detail inside the a little while. Photos are slightly more within the totally free revolves with board game-such animated graphics since cursor passes through the potential honours. If you haven\u2019t played people, the main focus is found on ease and you will vibrant shade exploding over the reels, especially when brand new insane symbol countries.<\/p>\n

During the gameplay of the Fresh fruit Beverage position on the web, you could potentially put wagers anywhere between 0.5 so you’re able to two hundred credit. New wild icon is actually an effective strawberry, once the scatter symbol is a delectable fruity beverage. Bet out of 0.5 so you’re able to two hundred loans having a great 92.02% RTP. Gains are formed of the matching symbols out-of kept to best together these types of paylines. LiveBet Gambling establishment offers the Fresh fruit Beverage Coin Chase demonstration variation away from DreamPlay 100percent free.<\/p>\n

Select one out-of four face-down cards on the right of dealer\u2019s. Here are respected and reputable casinos on the internet having to relax and play Good fresh fruit Cocktail on most readily useful greet incentives, chose according to my very own feel. Fruit Beverage remains one of many pioneers out of fruits ports complete. Have fun with the classic Fresh fruit Cocktail position on the internet at the specialized site in the demo form and for a real income. This can be an authorized online slot you to definitely generates random outcomes, and all of you would like is an excellent luck. When it comes to demo means people trusted local casino or gambling enterprise associated website such as for example Conflict of Ports could be good.<\/p>\n

On top of that, fresh fruit slots for the demonstration form functions similar to the fresh ports from inside the on the internet otherwise home-based gambling enterprises, in order to completely enjoy all the various features, unique bonuses, graphics and styles of game. Try their chance from the totally free form and you can play fresh fruit harbors versus investing a cent. Backed by a cool disco-style sound recording, your contend getting honors with the a chocolates Crush-concept 8×8 grid, something which often attract admirers of the famous mobile video game. Towards the Gambling enterprise Master, you’ll find fruits ports on the internet for the demo setting, without the need to bet all of your currency.<\/p>\n

Naturally, it\u2019s in addition to you can to reduce how many lines, that would together with reduce steadily the choice dimensions properly. It may sound fairly exciting in theory, but all of our professionals checked this new Fruits Cocktail Slot demonstration online game and the real money variation to produce a style from what it\u2019s like in practice. In one single spin with the board design, you could victory awards anywhere between x2 so you’re able to x100, and you also arrive at spin again before the Leave draw reveals upwards. That\u2019s as to the reasons it\u2019s thus beneficial to get more scatters first, allowing you to provide it with more tries however, if the original one fails. Very, the brand new mini-position screens around three icons, and when it does, brand new cursor encircles the fresh panel pattern carrying the new honours.<\/p>\n

Speaking of usually followed closely by low-fruit symbols for example Bells, Pubs, and you may happy matter Sevens, and therefore generally portray the greatest-really worth symbols in classic online game. Should your head gameplay and vintage icons out of good fresh fruit harbors focus to you personally, you will find several almost every other themes with the Respinix offering an identical experience. The latest catalog out of team to your Respinix assures a wide variety of perceptions of timeless layout. For brand new members, fresh fruit slots try an excellent entry way due to their obvious artwork language. A high-volatility games will pay away shorter will normally but possess a great large threat of hitting large wins when you look at the a short span. Your way regarding fruit harbors shows the newest technical progression of the new whole industry, moving away from effortless technical reels so you’re able to complex electronic grids.<\/p>\n

The overall game was loaded with juicy good fresh fruit signs, and strawberries, peaches, watermelons, cherries, and, for each and every offering different payment opinions. Released in years past, Fruits Beverage will continue to attention participants having its easy-to-discover aspects, big earnings, and you can engaging added bonus round. Temple of Video game is an internet site . giving totally free gambling games, for example slots, roulette, otherwise blackjack, which can be starred for fun inside the demo mode instead of paying anything. The amount of Strawberry icons one end in brand new ability decides how repeatedly the main benefit game try frequent. The fresh Play feature lets members so you can wager their profits of the choosing among four facedown notes. With medium volatility, Fresh fruit Cocktail usually award payouts meagerly will, that have moderate-dimensions victories.<\/p>\n","protected":false},"excerpt":{"rendered":"

It\u2019s not high, but it\u2019s not really punishing both. A few talked about symbols We\u2019d be mindful of are definitely the beverage cup\u2014that may remind your from a fun date night\u2014and the strawberry icon, hence usually has high winnings. If you wish to to alter your own risk, you\u2019ll select\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-130971","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/130971","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=130971"}],"version-history":[{"count":1,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/130971\/revisions"}],"predecessor-version":[{"id":130972,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/130971\/revisions\/130972"}],"wp:attachment":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/media?parent=130971"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/categories?post=130971"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/tags?post=130971"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}