/* 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":92406,"date":"2026-05-23T21:27:10","date_gmt":"2026-05-23T21:27:10","guid":{"rendered":"https:\/\/klecet.edu.in\/alumni\/?p=92406"},"modified":"2026-05-23T21:27:11","modified_gmt":"2026-05-23T21:27:11","slug":"most-are-simple-featuring-a-simple-reel-style-and-you-will-a-finite-number-of-paylines","status":"publish","type":"post","link":"http:\/\/klecet.edu.in\/alumni\/most-are-simple-featuring-a-simple-reel-style-and-you-will-a-finite-number-of-paylines\/","title":{"rendered":"Most are simple, featuring a simple reel style and you will a finite number of paylines"},"content":{"rendered":"

To experience free ports at the Slotspod also provides an unequaled sense that mixes entertainment, education, and you may thrill-all of the without having any investment decision. Video game for example Reels away from Money enjoys multiple-layered bonus have, in addition to a huge Star Jackpot Path one to builds anticipation with each spin. You can do this because of the examining the newest paytable, found in the slot’s information section, and this breaks down symbol opinions, paylines, incentive leads to, and you may great features. These types of video game feature good fresh fruit signs, taverns, and you will happy sevens, that have restricted paylines and easy regulations.<\/p>\n

Waiting you a remarkable day! Single I had double consecutively and you may neither date made it happen visit the incentive display screen. Many times We spun added bonus series plus it didn’t go to the main benefit round. Your age, but if you don\ufffdt up-date, your own video game sense and you may functionalities is less.<\/p>\n

In the Why don’t we Gamble Ports, you are happy to know that there’s absolutely no subscription involved<\/h2>\n

They identify basically how you can earn more spins and you may wins, and how to help you discover additional series. With each twist, you can rack up icons to make Free Revolves myself, or unlock bonus provides you to definitely award more spins. Totally free Revolves slots is special cycles away from additional revolves you could earn close to normal perks. Immediately following it is complete, your progress 1 advance to your map.<\/p>\n

This game is about profitable larger to your an excellent 5?twenty three grid, packed with exciting extra has and you can unique symbols. Which have cutting-border picture, reasonable animations, and you may outlined details, such ports transportation participants on the an environment of fantastic illustrations or photos and pleasant gameplay. Such 100 % free position online game will feature numerous shell out traces, added bonus cycles, and you can special icons, delivering an exciting and you may visually amazing thrill. With regards to effortless auto mechanics, familiar icons such fruits, taverns, and you may sevens, and you may conventional about three-reel setups, classic ports offer a vintage and straightforward betting experience. When you are happy and you will meet with the wagering conditions, you may also keep profits since an extra extra.<\/p>\n

Below, there is certainly all types out of position you could potentially gamble in the Let’s Play Ports, with the new large number of extra provides https:\/\/bookofthefallenslot-dk.com\/<\/a> imbedded in this for every single position too. This enables participants in order to knowledgeable graced picture, unbelievable animations high quality, and premium sounds without having to down load one thing prior to to relax and play a slot video game. As opposed to some online casinos that require that obtain even more software one which just availability the range of harbors, at Let’s Enjoy Slots this is not a necessity. Also, you could get confident with the newest panel for the for every slot that may offer the boundary in terms of in search of your own wished coin denomination otherwise level of paylines you desire to engage on every spin. Otherwise envision you to ultimately be an expert in the event it concerns online slots games, have no anxiety, while the to try out 100 % free slots on the our very own website provides you with the brand new benefit to first realize about the incredible incentive features infused to your for every position.<\/p>\n

Because of this, you can access all kinds of slot machines, having any theme otherwise have you could think of. Appreciate all fancy enjoyable and activity away from Las vegas from the coziness of your own house as a consequence of our very own free ports zero obtain library. Top-ranked internet 100% free harbors enjoy in the usa bring online game range, user experience and you will a real income availability.<\/p>\n

Browse owing to our very own unbelievable on the web slot game, where you are able to wager a selection of bonus possess. Minute ?10 deposit & ?ten wager set & compensated in 30 days from deposit during the minute one\/2 chance (settled), excl. 30 day expiry out of put. Way too many harbors but earnings are incredibly Tight. Waiting you a sensational day!<\/p>\n

A few of their hottest titles, together with Cleopatra, Multiple Diamond, and you can Controls from Fortune, come because homes-established slot machines. Its online game is celebrated because of their high-quality picture, creative features, and you can high volatility. So, whenever you go to, you might instantaneously access and you will play the best the newest video game. you get the chance to go into Supermeter mode, offering large payouts and you may a great jackpot from x6,000.<\/p>\n

Merging enjoyable added bonus advantages and revolves that have a mystical Egyptian motif, Cleopatra has been a well-known position games, even with getting revealed more than a decade ago. The newest excitement away from spinning the fresh reels plus the ineplay is what has professionals returning to get more, even when the creature motif can appear some dated. Some of the best online casino games readily available will offer members a great opportunity to see ideal-quality amusement and you can exciting game play versus investing real cash. Esoteric Harbors was Mystic Lake’s 100 % free personal gambling enterprise software providing real local casino preferences. The fresh technical storage otherwise accessibility which is used exclusively for unknown analytical objectives.<\/p>\n

Each time you victory, you could enjoy your own payouts towards flip from a money<\/h2>\n

Enhancing your payouts of the combining the new substituting strength away from wilds that have multipliers. Symbols that hold bucks beliefs, tend to accumulated while in the added bonus provides otherwise free spins to own immediate prizes. These could trigger large gains, particularly throughout 100 % free spins or added bonus cycles. A substitute for play the payouts getting an opportunity to improve them, generally speaking because of the speculating the colour or fit regarding an invisible credit. So it escalates the amount of paylines or a method to win, increasing effective ventures. Victories try formed by the clusters off coordinating signs coming in contact with horizontally or vertically, as opposed to antique paylines.<\/p>\n

Twist enjoyment, spin to possess huge jackpots, spin towards biggest harbors thrill! All slot machine game in the Slotomania are created to create your real casino exhilaration, away from vintage Las vegas ports in order to brand name-the new themed harbors game. \ufffd Far eastern \ufffd Go to the brand new planet’s prominent region once you twist the fresh new reels of your Asian-themed ports. Merely collect gold coins since you gamble \ufffd get enough and you will probably go up one stage further! Therefore, check out these types of ports, all of the presenting 100 % free spins aplenty. \ufffd Slots with Range \ufffd Gather symbols since you play \ufffd gather sufficient and you may bring about the benefit!<\/p>\n

For additional information about this, our Choosing an internet local casino blog post talks about everything you have to do to get the best gaming experience you can easily. Make sure to browse the site’s individual review and you may get just before to try out, and particularly prior to deposit currency. To possess slots games, just find ‘Slots’ on Video game Sort of filter out, particularly, then you may favor your own desired supplier and you will motif to whittle record off next. The new ports and you can online casino games have a tendency to boast fantastic picture and you may more complex features than in the past, that have builders having fun with cutting-border software to transmit a keen immersive gambling feel. If you’d prefer to relax and play online slots and you will casino games, you will also have much more titles than ever before about how to prefer away from.<\/p>\n","protected":false},"excerpt":{"rendered":"

To experience free ports at the Slotspod also provides an unequaled sense that mixes entertainment, education, and you may thrill-all of the without having any investment decision. Video game for example Reels away from Money enjoys multiple-layered bonus have, in addition to a huge Star Jackpot Path one to builds\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-92406","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/92406","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=92406"}],"version-history":[{"count":1,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/92406\/revisions"}],"predecessor-version":[{"id":92407,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/92406\/revisions\/92407"}],"wp:attachment":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/media?parent=92406"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/categories?post=92406"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/tags?post=92406"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}