/* 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":66049,"date":"2026-05-22T11:22:00","date_gmt":"2026-05-22T11:22:00","guid":{"rendered":"https:\/\/klecet.edu.in\/alumni\/?p=66049"},"modified":"2026-05-22T11:22:01","modified_gmt":"2026-05-22T11:22:01","slug":"the-fresh-new-totally-free-dragon-inspired-slot-games-always-need-no-download-and-you-will-no-membership-to-experience-them","status":"publish","type":"post","link":"http:\/\/klecet.edu.in\/alumni\/the-fresh-new-totally-free-dragon-inspired-slot-games-always-need-no-download-and-you-will-no-membership-to-experience-them\/","title":{"rendered":"The fresh new totally free dragon inspired slot games always need no download and you will no membership to experience them"},"content":{"rendered":"

This may give your several 100 % free spins and increase the possibility out of hitting large victories! Just what sets Dragon Tower besides other slots are the attention so you’re able to outline and you will enjoyable storytelling elements woven in the gameplay. At the same time, the fresh new game’s volatility means each other mindful professionals and you may large-rollers find something to enjoy-almost always there is a component of shock waiting not far off. Whenever caused, it will re-double your payouts as much as 10x, and then make actually more compact earnings feel jackpot gains!<\/p>\n

That knows, possibly you will find a different sort of love for dragons and would like to continue to play such ports forever! It is best for whoever desires to experience the adventure off slaying good dragon without the real chance. And you will who knows \ufffd perhaps you’ll be able to unlock the answer to effective big contained in this video game. The brand new game’s backdrop, using its blue dragon balances, set the fresh phase getting a magical travel.<\/p>\n

If you’d like Dragon Spin, you will likely delight in other 100 % free position games<\/h2>\n

Hence, when comparing to a good twenty-three-reel slot game, 5-reel harbors ability a great deal more reels and you will paylines, and then make their payouts more frequent. Regardless of the type of dragon-inspired ports you select, every one of them has its own novel have, incentives, that’s definitely worth to relax and play. According to recommendations regarding top-notch players, in advance of elizabeth to relax and play, have a look at its payment costs and online game evaluations. Whenever to tackle slot online game with similar templates will have its risky and you will courageous work rewarded having steeped profits and you can brand new options that come with dragon slot game.<\/p>\n

The new game play is straightforward and it also will not function people incentives extremely<\/h2>\n

Whenever to try out Dragon Spin harbors on the internet, understand that your own victories derive from the https:\/\/starlightprincess-dk.com\/<\/a> choice amount. When you find yourself to experience Dragon Twist the real deal currency, it will also tend to be a modern jackpot you to definitely we are sure you find enticing. And if this occurs, you will see up to 10 wilds and additional novel provides like the mystery loaded icon for extra earnings.<\/p>\n

Dragon Spin now offers another type of position experience in their entrancing templates and you will pleasing incentives. It slot is actually an excursion, an opportunity to look into an environment of dream when you are spinning to own possible gains. Free revolves avoid whenever zero 100 % free spins are or immediately following 113 totally free revolves was basically played. If the Currency Testicle Bonus are brought about for the legs setting, the bucks Golf balls Bonus container really worth resets to 5. The latest Magic Treasures Dragon position run on IGT performs from a 5 x four-reel grid having 50 paylines; it’s 5 extra has and you will 5 jackpots. Run on the newest Bally Technologies application, Double Dragon is a wonderful Western-inspired release with a couple regarding bonuses in store.<\/p>\n

You’ll go large wins for those who decide for limitation wagers however do risk shedding a lot this as well. A lot of the dragon inspired slots on well known developers has an enthusiastic RTP of greater than 95%. The latest concept is different to many of the most other dragon inspired harbors game however continue to have 5 reels or over to 40 paylines. This is a good searching 5 reel dragon inspired harbors game which has quality graphics and you can sound-effects.<\/p>\n

Having multiple templates and you can fascinating have, dragon ports are a treasure trove of fun. Such game promote free fool around with no download expected, guaranteeing everybody is able to plunge to the excitement. Thanks for visiting the fresh fiery realm of dragon-inspired slot online game, where mythical pets and enchanting wins expect! Mention revolves regarding China because you pick purple, green and you can blue Koi seafood who promise in order to prize purple victories. Signal the latest land that have a metal digit and you will an excellent controls laden with rewards.<\/p>\n

As you can tell in the video Happy and you may Prosperous try a visually super video game with worthwhile progressive jackpot incentive provides, unique Chinese icons, and you can timely-paced gameplay. Choose the best gambling establishment for you, would a merchant account, put currency, and begin playing. Log on otherwise Sign up to manage to visit your preferred and you may has just played video game. Vegas-design gambling enterprise harbors having jackpots, competitions, and you can advantages<\/p>\n

The latest RTP rates one to ways the way the games pays over to the ball player is set at the %, that’s means greater than the new industry’s average. Reduced volatility slots like 888 Dragons are known for giving much away from frequent wins having brief bucks prizes. You can decide for Autoplay and select ranging from 10 and 1,000 automatic revolves when you find yourself sick of clicking on the fresh Twist button to show the latest reels. Every time you come across an on-line local casino to try out 5 Dragons, read the extra also offers it includes.<\/p>\n

Your consideration is to look at the legislation to own betting incentives prior to using the advantage. You will need to get the slot’s diet plan or details part since your enjoy Dragon’s Chance Strength Reels once you have logged in the gambling establishment account and making use of the real money means. You can examine by yourself to make certain you are to relax and play in the an effective local casino that has the greatest form of Dragon’s Chance Fuel Reels. That it shows you why it is important to know that you are to experience the great RTP form out of Dragon’s Luck Fuel Reels that accelerates their victory fee up to one.01% in the place of the fresh new lower RTP.<\/p>\n

Conventional images including a great lotus rose, firecrackers, the fresh new lucky fish and you will frog usually for every single end up being worth many even more, since the ideal victories are from the fresh pan, and this production 8,000 gold coins at the very least bet out of 160 coins each twist. Vibrant and ambitious higher card signs spend the money for less coin victories, however the matter advertised utilizes and that range style you’ve got chosen. Like other of current Novomatic slots, it’s also cellular optimised and you will works really well well across the most of the systems.<\/p>\n

RTP refers to the percentage of full wagers a position manage return to the ball player throughout the years. They determine prospective productivity to the struck volume out of profitable revolves and size of winnings. In addition it is attractive because of its freedom round the 10 adding machines and you may enhanced being compatible settings. The extra jackpot brings more profitable chances, matching a good 95.2% RTP, large volatility, and flexible paylines.<\/p>\n

Special icons including wilds and you can scatters normally replace or cause extra series, increasing the likelihood of forming successful combos. The overall game employs a predetermined level of paylines, that have victories calculated in accordance with the amount of matching signs and the particular philosophy. They put range and you can excitement, while the for every single symbol have some other thinking and will bring about various video game possess.<\/p>\n","protected":false},"excerpt":{"rendered":"

This may give your several 100 % free spins and increase the possibility out of hitting large victories! Just what sets Dragon Tower besides other slots are the attention so you’re able to outline and you will enjoyable storytelling elements woven in the gameplay. At the same time, the fresh\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-66049","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/66049","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=66049"}],"version-history":[{"count":1,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/66049\/revisions"}],"predecessor-version":[{"id":66050,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/66049\/revisions\/66050"}],"wp:attachment":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/media?parent=66049"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/categories?post=66049"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/tags?post=66049"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}