/* 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":95690,"date":"2026-05-24T01:54:29","date_gmt":"2026-05-24T01:54:29","guid":{"rendered":"https:\/\/klecet.edu.in\/alumni\/?p=95690"},"modified":"2026-05-24T01:54:31","modified_gmt":"2026-05-24T01:54:31","slug":"top-pragmatic-play-harbors-top-game-rtp-and-you-can-where-you-should-gamble","status":"publish","type":"post","link":"http:\/\/klecet.edu.in\/alumni\/top-pragmatic-play-harbors-top-game-rtp-and-you-can-where-you-should-gamble\/","title":{"rendered":"Top Pragmatic Play harbors: Top game, RTP, and you can where you should gamble"},"content":{"rendered":"

The brand new reels try populated that have well-drawn icons, as well as ducks of the many species just waiting to getting captured from inside the their successful combinations. Exactly what it is hooks professionals within creature-themed position was its interesting enjoys and you may technicians. You may have to expect the individuals large victories, nevertheless when they belongings, these are typically well worth it! The game\u2019s RTP off 96.05% now offers a reasonable chance at the benefits, but it is the newest volatility rating of five that truly establishes the fresh new phase for many thrilling revolves. You may enjoy frictionless game play with the effective, smaller customer.<\/p>\n

The form is colourful which have versatile configurations and you may high capabilities one to will probably be worth your entire appeal. And then there\u2019s Zeus himself \u2014 best icon, step one.2x commission, but once stacked and multiplied? The fresh new RTP about this beast was 97.23%, however, you to\u2019s a lay.<\/p>\n

Whenever you are effective is actually exciting, the key goal would be to have fun and relish the mythological motif and you can engaging gameplay. If you see one to incentive provides is creating with greater regularity on specific wager levels, you may want to play within the individuals accounts more frequently. Don\u2019t be afraid to lessen their wager proportions for individuals who\u2019lso are toward a losing streak otherwise boost they a little throughout the a good beautiful streak. Make use of the video game\u2019s mainly based-during the products, in the event the offered, setting concept date limitations or deposit restrictions. Put limitations on your own to ensure in control game play and to create their betting class stay longer.<\/p>\n

With the big 100 percent free revolves added bonus round, the Zeus video slot determined a different sort of age bracket out-of local casino bucks slot machines in the Las vegas, such as the extremely prominent video game named Kronos. The newest classes off 10 and twenty-five revolves get a fairly decent strike frequency, however, you should maybe not hold the breath looking forward to those100 revolves as triggered. Such as for instance, 4 Scatters commonly award twenty five most revolves, while you are 5 element icons commonly put in place about one hundred Spins. As being the youngest boy out-of Cronus and you may Rhea, Zeus needed to work additional difficult to establish themselves, as we all know how parents like to contrast and set our very own old siblings as an example.<\/p>\n

The feedback seek to render users a respectable and you may in depth knowledge each and every games, enabling them make informed https:\/\/eyeofhorusslot-nl.com\/<\/a> possibilities. Concurrently, WMS is also fabled for undertaking the new creative an easy way to determine payouts. In the place of the essential slots, Entrance Away from Olympus Pragmatic Play’s people-win game play causes it to be more comfortable for users to acquire made use of towards style. Although not, might be your efforts can be worth it whenever a larger prize turns up. While doing so, unique from inside the-games features particularly Tumble, Multiplier, and you will 100 percent free Revolves, will bring you closer to their jackpot prize, worthy of 5,000x their risk.<\/p>\n

It allows one familiarise themself into the gaming restrictions, bonus features, the value of the fresh symbols, and you may what is necessary to end in added bonus has. Free slots are the best opportinity for on the internet professionals to check a casino game before position a real income bets. Every one of these headings also provides unbelievable added bonus keeps, sophisticated graphics, and ability to play on pc otherwise mobile devices.<\/p>\n

That have Megaways technicians, members is also trigger around 117,649 profit implies. Admirers off antique vibes will delight in fresh fruit Bonus Buy harbors, where users can acquire a plus round. This is accomplished in order to meet players’ cravings to have immediate gratification and you can the ability to win large. Because a person, you have access to added bonus has and winnings larger because of the variations in such harbors.<\/p>\n

You realize, I\u2019m not as sure if the game will probably be worth to relax and play. Stay to find out more about the gameplay, prizes, and features. Regrettably so it casino does not take on professionals out-of Moldova You will find additional types of free ports to choose from as well as Vegas, antique, video, good fresh fruit, plus three-dimensional slots. The brand new Zeus slot turned-out very popular one WMA and additionally developed a beneficial listing of headings the same as they and additionally High Zeus, Zeus 2, and Zeus 3. You will find over 100 100 percent free headings to pick from plus Raging Rhino, Montezuma, and Gold Seafood.<\/p>\n

If you choose autoplay, you could constantly lay more parameters eg losses restrictions otherwise solitary winnings constraints to keep command over the session. Alternatively, make use of the autoplay means so you can twist automatically to own a set count out of series. Knowing the paytable allows you to recognize potential larger wins and you will build advised choices during the game play.<\/p>\n

I initiate the online game using my wagers set-to an effective $dos share for each spin. Wager 100 percent free when you look at the demonstration means and determine as to why professionals like so it title! All these bonus has actually would be liked whenever to try out getting real money and for 100 percent free by using the enjoyable gamble demonstration function. A great wins can be done in the feet online game, however the greatest wins are from the benefit keeps in the Zeus slots.<\/p>\n

The back ground are a bluish sky which have light clouds encompassing the fresh Temple of your Olympian Gods, a strong silver strengthening which might be seen above the reels. Next inside our Zeus comment, we are going to look closer from the gameplay mechanics and you will the overall laws and regulations of one’s online game. Considering the ability to customize the number of paylines, for every twist are worth out-of 0.01 to 150 credits. Use these demonstrations to explore each games\u2019s concept, themes, features and you will game play to determine what Zeus Gamble Harbors you prefer the quintessential.<\/p>\n

The fresh Spread symbol, have a tendency to depicted from the Temple out-of Olympus, is vital to unlocking the game\u2019s exciting bonus provides. The video game\u2019s user-friendly program and you can cellular compatibility make certain a seamless gambling experience across the some devices, making it possible for players so you can utilize the power of the fresh gods regardless of where they wade. That have a minimum choice out-of \u20ac0.50 and you will a maximum of \u20acfifty, Zeus serves both everyday people and big spenders exactly the same. Zeus, this new electrifying position games regarding Fa Chai Betting, also offers professionals a thrilling journey with the arena of Greek myths. Zeus, the new exciting position of Fa Chai Betting, has the benefit of straightforward yet , interesting game play.<\/p>\n

Likewise, this particular aspect will pertain both in the beds base game therefore the 100 percent free spins. It matter ensures that you may get 96.fifty coins straight back for each one hundred coins you bet on a great winning spin, a successful percentage to own users in the end. In addition to, the newest RTP level of the newest Doorways away from Olympus position are some greater than the standard, 96.50%.<\/p>\n

There are also re also-causes on added bonus bullet, and you may even upgrade your function if you strike 4 FS scatters. Total, Ze Zeus are a properly-tailored slot that mixes fun game play which have pretty good victory prospective. The only real disadvantage i indexed is the some straight down limit win prospective off 10,000x the share, which, if you find yourself however good-sized, is gloomier than simply some other Hacksaw Betting titles. The ability to purchase incentives and adds an absorptive proper level to possess users trying maximize the profitable prospective. New average volatility balances exposure and you may prize, so it is obtainable for almost all players.<\/p>\n","protected":false},"excerpt":{"rendered":"

The brand new reels try populated that have well-drawn icons, as well as ducks of the many species just waiting to getting captured from inside the their successful combinations. Exactly what it is hooks professionals within creature-themed position was its interesting enjoys and you may technicians. You may have to\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-95690","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/95690","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=95690"}],"version-history":[{"count":1,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/95690\/revisions"}],"predecessor-version":[{"id":95691,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/95690\/revisions\/95691"}],"wp:attachment":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/media?parent=95690"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/categories?post=95690"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/tags?post=95690"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}