/* 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":110846,"date":"2026-05-25T11:54:44","date_gmt":"2026-05-25T11:54:44","guid":{"rendered":"https:\/\/klecet.edu.in\/alumni\/?p=110846"},"modified":"2026-05-25T11:54:44","modified_gmt":"2026-05-25T11:54:44","slug":"best-titles-tend-to-be-gonzos-trip-and-you-may-frankenstein-but-today-we-look-closer-at-the-queen-off-slots","status":"publish","type":"post","link":"http:\/\/klecet.edu.in\/alumni\/best-titles-tend-to-be-gonzos-trip-and-you-may-frankenstein-but-today-we-look-closer-at-the-queen-off-slots\/","title":{"rendered":"Best titles tend to be Gonzo’s Trip and you may Frankenstein, but today we look closer at the Queen off Slots"},"content":{"rendered":"

Finish the signal-upwards techniques and deposit at least ?10 to get the full bonus matter<\/h2>\n

Four Scatters give you 10 revolves free, half dozen scatters leave you fifteen spins totally free, 7 scatters make you twenty revolves free, eight scatters leave you twenty-four spins totally free when you find yourself over eight scatters award you thirty revolves 100 % free. The new Regal form is stuffed with bonuses and you can awards once you enjoy regal poker into the queen that’ll lead to 125x of one’s range choice. NetEnt has been development software to have online casinos since the 1996 and you will has over 250 online game along side internet. Having a passion for online gambling and a deep comprehension of the brand new Southern area African market, I’ve been trusted for the activity of looking at authorized on the web gambling enterprises and slots and you will getting ready content for the site.<\/p>\n

This type of wilds solution to most other cues to make successful combos. Attaining the best flooring and honours an extra honor of 1,000 gold coins. not, significant wins can also occur through the free spins with a high multipliers.<\/p>\n

36 Las vegas can get restrict or prohibit people consumer from this promotion at the its discretion, in addition to to possess compliance, risk, membership behaviour, otherwise responsible gambling explanations. For those who appreciate diversifying your own spinning sense, speak about our big collection of slot online game for much more fun score. For the most part, whether or not, the newest King from Slots position was created as effortless to experience. For instance the build and you will winnings seem to be actually a good.<\/p>\n

To own members in britain, choosing a position is not just concerning theme or perhaps the graphics it’s about well worth. For 1, they offer high payment prospective which can are as long as 5,000x your wager and incentive features, such totally free spins otherwise wilds which can be certain to increase payouts. Before you choose an informed highest payment slot for the our very own list, i cautiously thought some key factors to ensure that you possess an unforgettable betting experience.<\/p>\n

We have a lot of in charge gaming equipment and a better gaming web page too<\/h2>\n

If you incorporate the chance-free happiness from 100 % free harbors, or take the latest step to your field of real cash getting a trial at the huge winnings? These types of web based casinos constantly boast a vast selection of slots you can enjoy, providing to all needs and you may experience profile. The new fifty,000 coins jackpot isn\ufffdt miles away for those who start landing wilds, and that secure and you can grow on the whole reel, increasing your earnings. This particular aspect kicks inside once you home a profit during the base level and gives the chance to gamble their earnings to have probably larger earnings. The guy started off while the good crypto journalist covering reducing-line blockchain development and you will easily discover the latest sleek field of on the web gambling enterprises.<\/p>\n

Starburst remains one of the most played online slots vegasino no deposit bonus<\/a> regarding British year in year out. The eye from Horus is set in the Ancient Egypt that have expanding symbols that cause in the free revolves round, layer entire reels to have tall profit combinations. Higher volatility function gains try less frequent but can getting rather large. An equivalent fisherman collection mechanic enforce – seafood symbols hold multiplier viewpoints one heap for the free revolves bullet. Large Bass Splash is consistently perhaps one of the most-starred harbors the real deal profit great britain. 800+ online slots games off top company along with Pragmatic Gamble, NetEnt, Microgaming, Playtech, and you can Eyecon – which have the latest titles added each week.<\/p>\n

Those sites allows you to wager 100 % free but so you can receive cash awards with your payouts. Red Tiger – Experts in Every single day Get rid of Jackpots – guarantees honors that has to shell out contained in this an appartment screen. Around three or even more scatters result in free spins, in which the fisherman multiplier develops with every collection.<\/p>\n

not, when you are the newest as well as have little idea on the which casino otherwise organization to choose online slots games, make an attempt the slot collection at CasinoMentor. You could potentially get involved in it just at the internet slot business or from the the greatest casinos on the internet that provide the fresh ports you should enjoy. Different gambling enterprises assemble different headings and can to improve their payouts within this the latest selections given of the the certificates. Similar to this, you are going to more and more narrow down your choice so you’re able to slots one to have a tendency to work. Playing harbors is simple, everyone can participate in the overall game and you can secure in the very basic spins which are different from Web based poker or Blackjack. Although not, nowadays, there are many top casinos on the internet where you can play which have real cash and you will gamble safer.<\/p>\n

It\ufffds an enjoyable online game with many different great features integrated, together with great graphics and you may game play. Six scatters render fifteen freespins, eight offer 20 freespins and you will 7 of them award your with all in all, twenty-five freespins. And speaking of the latest spread signs, these are represented of the around three green gemstones, and it’s which symbol that can lead to the new game’s freespins bullet.<\/p>\n

Despite the depth of your position, it\ufffds believe it or not easy to understand. Indeed, it\ufffds one of the smoothest online slots i have starred. If you hit 7, that is 20, 8 try twenty-five, and you will 30 right up to fifteen scatters. If you get five scatters, you can aquire 5 revolves.<\/p>\n

Each searched solution will receive minimal and restrict exchange solutions. Some casinos on the internet bring the people the choice to get slots acceptance extra having adding card in the united kingdom. A recommendation slot promotion perks professionals which rating friends so you’re able to signal right up at local casino. Because you gamble even more cycles and move up VIP membership, your open enhanced matches now offers, additional revolves sales, and you may slot-certain prizes one to cater to their interest. Together with, you’ll find cases where ports may not lead fully but nonetheless bring tall progress on the cleaning the harbors extra.<\/p>\n

I encourage which Lottomart venture to players who would like to speak about multiple game types, such slots, dining table and you will live games. So, you’ll be able to withdraw all your earnings. Once joining in the Midnite Gambling establishment, the fresh users has two weeks to deposit and you can stake ?20.<\/p>\n

Since the payouts regarding twist is actually complete, up coming a no cost spin starts with the new wild reels kept fixed. So it rather increases your chance from hitting a payment, however, needless to say cannot affect the stated RTP off 96.1% and you can only winnings once for each winline. The form is filled with little details, treasure symbols are typical mobile to twinkle, and you can scroll across the winlines to ensure they are obvious. Here you can learn from the betting properly and find out any potential warning signs to watch out for. Yes, it is safer playing harbors the real deal money within Mecca Bingo.<\/p>\n","protected":false},"excerpt":{"rendered":"

Finish the signal-upwards techniques and deposit at least ?10 to get the full bonus matter Four Scatters give you 10 revolves free, half dozen scatters leave you fifteen spins totally free, 7 scatters make you twenty revolves free, eight scatters leave you twenty-four spins totally free when you find yourself\u2026<\/p>\n

Continue reading<\/span><\/i><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-110846","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/110846","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=110846"}],"version-history":[{"count":1,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/110846\/revisions"}],"predecessor-version":[{"id":110847,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/110846\/revisions\/110847"}],"wp:attachment":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/media?parent=110846"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/categories?post=110846"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/tags?post=110846"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}