/* 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":40999,"date":"2026-05-20T10:25:08","date_gmt":"2026-05-20T10:25:08","guid":{"rendered":"https:\/\/klecet.edu.in\/alumni\/?p=40999"},"modified":"2026-05-20T10:25:08","modified_gmt":"2026-05-20T10:25:08","slug":"most-readily-useful-ports-from-the-legendz-cent-modern-ports-greatest-headings","status":"publish","type":"post","link":"http:\/\/klecet.edu.in\/alumni\/most-readily-useful-ports-from-the-legendz-cent-modern-ports-greatest-headings\/","title":{"rendered":"Most readily useful Ports From the Legendz Cent & Modern Ports Greatest Headings"},"content":{"rendered":"

I triggered it because of the gathering flower symbols into reels, and I became allowed to spin a controls so you can winnings certainly one of four jackpot prizes. Next, you might home around three or more Spread out signs so you can lead to this new bonus round having doing twenty-five totally free spins. The maximum profit during the Buffalo Gold may vary, it\u2019s around $648,100, which is some commendable. For individuals who house two or more scatters through the free revolves, you\u2019ll retrigger even more revolves to keep the benefit round heading.<\/p>\n

All web based casinos toward our checklist to the better slot RTP analysis start your regarding with a welcome bonus. Song just how many spins it takes to lead to a plus otherwise a massive profit. A 99% RTP online game with high volatility feels cool for numerous revolves as the worthy of is locked into the a rare 10,000x jackpot. A casino game that is 99% from the you to definitely webpages will be set to 94% on several other.<\/p>\n

Insane Local casino, Uptown Aces, and you can DuckyLuck is actually all of our most useful workers to own RTP transparency, giving official products which help you pick large-payout headings just before place a bet. Utilize the \u2018Providers\u2019 filter so you can quickly divide higher-get back video game off builders noted for higher earnings. My personal Could possibly get 2026 audit verified one to highest-RTP ports with this platform stream within just around three mere seconds, taking one of the most stable betting environments for all of us players. It couples having prominent builders eg BGaming, Woohoo Online game, and you will Betsoft to ensure a premier degree of quality and you can equity around the the entire collection.<\/p>\n

We believe one to make in initial deposit is going to be a publicity-totally Supraplay \u03ba\u03b1\u03b6\u03af\u03bd\u03bf<\/a> free fling, thereby from the MansionCasino.com, we use only an educated payment procedures that will be top, safer and simple to use. The fresh members go for a welcome Extra offer to help you $\/\u20ac5,100000 because you make an initial put, when you find yourself faithful players can enjoy a superb VIP package that provide a number of private personal rewards from the individual VIP director. When it comes to incentives, we provide a great deal of unique advertisements to suit all sorts from member. Just in case you determine to signup and enjoy now, there\u2019s a welcome Extra supply so you can $\/\u20ac5,100000 would love to end up being reported!<\/p>\n

Everything\u2019s\u200b where\u200b you\u2019d\u200b expect,\u200b so\u200b you\u2019ll be just at domestic if\u200b you\u2019re\u200b a\u200b slots\u200b guru\u200b or\u200b just\u200b trying\u200b things\u200b out.\u200b Wild Casino has the benefit of old-school\u200b games\u200b that\u200b feel\u200b like\u200b a\u200b cozy\u200b throwback,\u200b and\u200b then\u200b there\u200b are\u200b the\u200b shiny\u200b new\u200b ones\u200b that\u200b are\u200b all\u200b fun playing. Anything we appreciate on Awesome Ports is that they\u2019ve made what you simple to use.\u200b Their\u200b site\u200b is\u200b sleek\u200b and\u200b easy\u200b to\u200b get\u200b up to.\u200b They\u2019ve\u200b thought\u200b of\u200b everything,\u200b ensuring\u200b you\u200b don\u2019t\u200b have\u200b to\u200b hunt\u200b for\u200b what\u200b you\u200b you desire.\u200b<\/p>\n

These titles combine pleasing themes, satisfying has actually and solid win possible one provides participants hooked season immediately following 12 months. The fresh new bet365 Casino was a premier-rated on-line casino in the united kingdom which provides a number of out-of games and you may a safe system which have an excellent UKGC permit. The guy spends their big experience in the industry to ensure the beginning from outstanding stuff to aid participants around the trick globally avenues. Alexander Korsager has been absorbed from inside the casinos on the internet and you will iGaming to own over 10 years, and make your a working Master Betting Manager in the Gambling enterprise.org.<\/p>\n

Let\u2019s reveal the fresh ports which might be means the web based casino globe on fire this year to check out why you need to be rotating their reels. As we diving towards the electronic playground off 2026, some slot video game have increased to the major, recognized by their charming themes, innovative features, and pure thrill they offer every single player. The online game possess random insane changes and you will a beneficial cauldron added bonus one to is result in at any time, keeping people interested also during the foot game revolves. The fresh new game’s vault extra round also offers several opportunities to break safes to own quick honours, with a few safes covering up progressive jackpot causes really worth several thousand dollars.<\/p>\n

Legendz plus uses security technical to protect athlete research and you can purchases, focusing on coverage from the program. Coins was getting activity simply, however, South carolina should be used for the money awards, gift cards, and other actual-world advantages utilizing the same payment strategies as mentioned previously a lot more than. Now here\u2019s the region you to set Legendz Sweepstakes Gambling enterprise aside from antique social gambling enterprises, you can get real prizes.<\/p>\n

Position DataDetails ProviderPragmatic Play RTP96.71% Paylines10 ThemeFishing Chief FeaturesMultipliers, totally free revolves, and easy gameplay. Biggest popular features of the overall game is simple but really dynamic game play, higher volatility, and you may totally free spins. Doorways away from Olympus provides sensation of Ancient Greece, in which players rise resistant to the Greek gods for them to take over Attach Olympus and all sorts of brand new treasures that come with they. More biggest provides tend to be highest RTP, high volatility, multipliers, and you will good incentives.<\/p>\n

The fresh NetEnt casino software merchant captured the storyline of one’s Language explorer Gonzo and his pursuit of lost gifts. These are the fresh new totally free revolves round, your trigger him or her from the getting about three golden cover up Scatter symbols to your the fresh reels. When you are from the it, my attract are on RTP, volatility, max winnings, and you may incentive keeps. They\u2019re therefore-titled the help of its simple yet prompt-paced gameplay.<\/p>\n

If you prefer consistent shorter wins, it isn’t really your dream build \u2014 however if you are chasing high potential benefits, it\u2019s a good fit. That it provides members who appreciate suspenseful lessons on the likelihood of landing large wins during the incentive cycles. It\u2019s that simple to track down a few entertaining games to test as soon as you head to Sloto Legends \u2013 a great legend one of casinos on the internet. To own an easy and you may seamless gambling experience, participants have access to Lucky Tales Gambling enterprise as a consequence of some networks.<\/p>\n","protected":false},"excerpt":{"rendered":"

I triggered it because of the gathering flower symbols into reels, and I became allowed to spin a controls so you can winnings certainly one of four jackpot prizes. Next, you might home around three or more Spread out signs so you can lead to this new bonus round having\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-40999","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/40999","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=40999"}],"version-history":[{"count":1,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/40999\/revisions"}],"predecessor-version":[{"id":41000,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/40999\/revisions\/41000"}],"wp:attachment":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/media?parent=40999"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/categories?post=40999"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/tags?post=40999"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}