/* 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":93082,"date":"2026-05-23T21:44:44","date_gmt":"2026-05-23T21:44:44","guid":{"rendered":"https:\/\/klecet.edu.in\/alumni\/?p=93082"},"modified":"2026-05-23T21:44:46","modified_gmt":"2026-05-23T21:44:46","slug":"the-fresh-free-dragon-styled-position-game-always-need-no-down-load-and-you-may-zero-registration-to-experience-them","status":"publish","type":"post","link":"http:\/\/klecet.edu.in\/alumni\/the-fresh-free-dragon-styled-position-game-always-need-no-down-load-and-you-may-zero-registration-to-experience-them\/","title":{"rendered":"The fresh free dragon styled position game always need no down load and you may zero registration to experience them"},"content":{"rendered":"

This may offer you several totally free spins and increase the probability away from striking large gains! Just what establishes Dragon Tower besides almost every other slots try its desire to help you outline and you may entertaining storytelling aspects woven in the game play. While doing so, the fresh game’s volatility means that both careful professionals and you may higher-rollers discover something to enjoy-there is always some shock waiting coming soon. When triggered, it does redouble your profits doing 10x, to make actually more compact winnings feel just like jackpot gains!<\/p>\n

You never know, possibly you will find another love for dragons and wish to continue to experience this type of ports permanently! It\ufffds good for whoever wants to possess thrill from slaying an effective dragon without having any actual chance. And who knows \ufffd perhaps you’ll be able to discover the answer to profitable big within this games. The fresh game’s backdrop, along with its bluish dragon scales, establishes the new phase having an awesome trip.<\/p>\n

If you like Dragon Twist, you will likely appreciate almost every other 100 % free position game<\/h2>\n

For this reason, in comparison with an effective 3-reel slot online game, 5-reel harbors function even more reels and you may paylines, and work out the payouts more frequent. No matter what sort of dragon-themed slots you choose, every one of them has its novel possess, bonuses, which can be worth to relax and play. With regards to the recommendations on the professional players, just before age playing, have a look at their payout cost and you will video game evaluations. When to try out position game with the same layouts will receive their risky and you will fearless operate rewarded with steeped payouts and you may fresh popular features of dragon slot video game.<\/p>\n

The fresh new game play is not difficult and it cannot element one incentives very<\/h2>\n

Whenever playing Dragon Twist ports on line, keep in mind that your own victories are based on your choice number. When you are to try out Dragon Spin for real money, it’s going to were a modern jackpot one to our company is sure you will find enticing. And in case this occurs, you will see as much as ten wilds and extra book enjoys like the puzzle stacked symbol for additional earnings.<\/p>\n

Dragon Spin offers an alternative slot expertise in its entrancing layouts and you will fun incentives. That it position are an excursion, the opportunity to delve into an environment of dream when you find yourself spinning getting possible victories. 100 % free revolves stop whenever no 100 % free spins are or immediately after 113 100 % free spins were played. If Money Balls Extra is triggered for the feet form, the bucks Testicle Extra pot value resets in order to 5. The latest Miracle Gifts Dragon position running on IGT performs on a 5 x 4-reel grid which have fifty paylines; it has 5 bonus has and you will 5 jackpots. Powered by the fresh Bally Tech app, Double Dragon is an excellent Far-eastern-styled launch using some of incentives in store.<\/p>\n

You’ll be able to achieve large gains for those who go for limit wagers you manage exposure dropping much performing this as well. A lot of the dragon inspired ports on notorious designers have an RTP Chicken Road 2<\/a> in excess of 95%. The new style varies to most of your most other dragon inspired harbors games however you still have 5 reels or over so you can forty paylines. This is an excellent appearing 5 reel dragon themed slots game which includes top quality graphics and sound effects.<\/p>\n

That have various layouts and fascinating enjoys, dragon slots was a treasure-trove regarding enjoyable. This type of games promote 100 % free explore zero install necessary, guaranteeing everybody is able to plunge on the thrill. This is the brand new fiery world of dragon-styled position video game, where mythical creatures and you can magical wins wait for! Explore spins on the Asia because you discover reddish, eco-friendly and you can bluish Koi fish who promise to prize purple wins. Code the brand new property with a metal thumb and you may an excellent wheel packed with advantages.<\/p>\n

As you can tell from the movies Delighted and Successful are a visually very online game having worthwhile modern jackpot bonus features, book Chinese symbols, and punctual-paced game play. Select the right gambling establishment for you, do a free account, put currency, and begin playing. Sign in or Donate to have the ability to see your enjoyed and you may has just played video game. Vegas-build local casino slots with jackpots, tournaments, and you may benefits<\/p>\n

The newest RTP rates you to indicates the games pays off to the gamer is determined at %, that is method greater than the newest industry’s average. Low volatility harbors including 888 Dragons are notable for giving so much regarding constant wins with small dollars honors. You could decide for Autoplay and select between ten and you can one,000 automatic spins when you find yourself sick and tired of hitting the fresh Spin switch to make the fresh reels. Any time you see an internet casino to experience 5 Dragons, have a look at incentive even offers it offers.<\/p>\n

Your own top priority is to browse the guidelines having betting bonuses before you use the benefit. You will need to find the slot’s eating plan otherwise facts area because you play Dragon’s Luck Stamina Reels once you’ve logged to your gambling establishment membership and ultizing the true money means. You can check alone to make certain you’re to relax and play in the a good casino with the ideal variety of Dragon’s Fortune Fuel Reels. That it demonstrates to you why it’s important to find out that you are to relax and play the great RTP form from Dragon’s Fortune Strength Reels one speeds up the earn percentage by as much as one.01% as opposed to the newest substandard RTP.<\/p>\n

Antique pictures such a good lotus flower, firecrackers, the brand new happy fish and you will frog usually for each getting really worth more and a great deal more, while the ideal wins come from the fresh dish, and therefore productivity 8,000 coins at the very least stakes of 160 gold coins for every spin. Vibrant and you can challenging highest card symbols spend the money for quicker money gains, nevertheless number reported depends on which range style you’ve got chose. Like many of your own newest Novomatic slots, additionally, it is cellular optimised and you may work really well really around the all systems.<\/p>\n

RTP is the portion of overall wagers a slot manage return to the ball player throughout the years. It influence prospective returns towards struck volume from successful spins and also the sized winnings. In addition it appeals because of its liberty all over 10 adding servers and you may increased compatibility settings. The excess jackpot brings most profitable chances, matching a great 95.2% RTP, highest volatility, and flexible paylines.<\/p>\n

Special signs like wilds and you can scatters normally replace or lead to extra series, enhancing the likelihood of developing profitable combinations. The overall game employs a fixed level of paylines, having victories determined based on the quantity of coordinating icons and you can the particular thinking. It add variety and thrill, while the each icon has other thinking and will end in individuals video game provides.<\/p>\n","protected":false},"excerpt":{"rendered":"

This may offer you several totally free spins and increase the probability away from striking large gains! Just what establishes Dragon Tower besides almost every other slots try its desire to help you outline and you may entertaining storytelling aspects woven in the game play. While doing so, 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-93082","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/93082","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=93082"}],"version-history":[{"count":1,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/93082\/revisions"}],"predecessor-version":[{"id":93083,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/93082\/revisions\/93083"}],"wp:attachment":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/media?parent=93082"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/categories?post=93082"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/tags?post=93082"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}