/* 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":95340,"date":"2026-05-24T00:13:44","date_gmt":"2026-05-24T00:13:44","guid":{"rendered":"https:\/\/klecet.edu.in\/alumni\/?p=95340"},"modified":"2026-05-24T00:13:46","modified_gmt":"2026-05-24T00:13:46","slug":"on-the-web-position-game","status":"publish","type":"post","link":"http:\/\/klecet.edu.in\/alumni\/on-the-web-position-game\/","title":{"rendered":"On the web Position Game"},"content":{"rendered":"

Comparable game such offer the same gameplay experience in moderate volatility and you may steady winnings. The greater this new RTP, the greater amount of of your players’ bets normally theoretically end up being came back over the near future. So it slot, with a rating regarding step three.69 out of 5 and you will the right position regarding 346 out of 1447, try a steady choices for those who don\u2019t need large threats or instant jackpots. I enjoy enjoy ports in residential property casinos an internet-based to have 100 percent free enjoyable and frequently we wager a real income once i end up being a tiny fortunate.<\/p>\n

You can play online slots games any kind of time of one’s position internet sites we feature within our guide, plus 888casino, William Slope, and you can Highbet. So you can victory a real income, you should get a hold of no deposit gambling enterprise incentives where you could play the newest eligible position titles at no cost. This information is constantly in the online game\u2019s paytable or Information point. not, it\u2019s vital that you find a position that you delight in from the investigating their added bonus have, templates, and you can auto mechanics. Top-ranked titles were Marching Legions, Blood Suckers Megaways, and you may Book off Deceased.<\/p>\n

May possibly not feel a fresh game, but their tried and tested motif and you can algorithm was in fact professionally conducted to be certain you prefer nothing but top amusement feel. Therefore, if you are searching to own a far more antique gaming experience, the initial game is best one for you – and possibly the fresh new Mega Jackpots type if you are looking to have good grand earn. The brand new Cleopatra position collection is designed to interest a myriad of online livescore bet app<\/a> slots professionals. You’re capable victory actual cash otherwise incentive bucks regarding the 100 percent free revolves, with respect to the wagering standards that will be implemented of the online casino. Once you join at of a lot on the internet gambling internet sites, you\u2019ll feel rewarded having a welcome bonus bundle that frequently comes with a-flat quantity of totally free spins which you can use into the preselected online game. Since the Cleopatra is really a popular online game, this has been integrated as one of the ports one to players can be claim free revolves to have in the an online local casino.<\/p>\n

The site we looked at anticipate a range of bets out of $\/\u00a3\/\u20ac0.20 so you’re able to $\/\u00a3\/\u20ac200 for every single twist depending on how of several lines and bucks worth set to the latest gold coins. You might look for a lot fewer when you need to up you volatility a little (the possibility was anywhere between step one, 5, 9, 15 or 20 traces). Like most IGT slots the latest cartoon is useful and you may smooth, however, little special. While you are Traditional Egypt was a fun theme, that slot machines get back over and over repeatedly, the new theme is actually nominal more than anything else. You can learn more and more slots as well as how it works in our online slots games book.<\/p>\n

This really is a good structurally easy slot, hence\u2019s not a problem \u2014 it\u2019s a routine solutions that possess the newest difference math clean and predictable. IGT has been milking the newest Cleopatra brand for over ten years. What is the difference in RTP for the no obtain no membership slot headings and harbors the real deal currency? We continuously update our collection considering representative views, guaranteeing a varied listing of well-known and requested titles. Switching to real cash enjoy comes to joining a merchant account at the a great authorized online casino, transferring bucks, as well as following going for a bona fide money type of one desired position. Video harbors close to modern jackpot online game be preferred certainly one of Canadian professionals, offering interesting layouts and also the potential for big victories.<\/p>\n

The back ground graphics for the slot illustrates a big solid brick wall entrance. Harbors fans do know this package quite prominent slot templates of all time is the Old Egypt theme. Nostalgia performs a job, however, Cleopatra’s important games build is basically advanced level.<\/p>\n

To relax and play the newest free sort of Cleopatra reputation video game has the benefit of a risk-100 percent free feel due to the fact doesn’t require a beneficial bona-fide income, ergo reducing you to financial risk. Into the technical top, the online game provides a keen RTP regarding 95.02% on the internet, while the performance can vary extensively, specifically having a lower amount of online game starred. People can get on straight from cellular internet explorer, preserving the computer has as well as paylines, additional time periods, plus in-games points. #1 Best casino Around\u2019s a natural paradox ultimately causing make it easier to suggestion and you normally paying lay membership, attempts to regain while the very shed condition to help you make it easier to ludomania.<\/p>\n

The new Cleopatra collection today comes with more half dozen online game, for each with exclusive gameplay and you may features. Higher bets imply proportionally large prospective gains, very think about your bankroll when means your risk. You could Gamble Cleopatra through the demonstration type above associated with remark otherwise at the favorite online casinos.<\/p>\n

Practical Play is recognized for its variety of video game, several of which seem to come in great britain\u2019s top ten slot maps. Plus renowned headings eg Starburst and you can Gonzo\u2019s Journey, NetEnt has produced over 2 hundred games. Anytime a new player limits within these online game, a small part of that wager goes on jackpot. According to the old-fashioned setting might get in home-mainly based gambling enterprises, fundamental slot video game render a straightforward game play.<\/p>\n

Whether you are spinning enjoyment otherwise scouting your upcoming genuine-currency local casino, such programs provide the finest in slot activity. Yes, modern jackpots are going to be won randomly while in the enjoy, that have higher wagers improving the opportunity. Reel Stamina enables you to stimulate areas of this new reels to have reduced limits, however, full activation (regarding 0.75) grows your chances of winning combos. Yet not, Aristocrat\u2019s unique Buffalo slot or any other Buffalo headings are available on the internet.<\/p>\n

Members normally to evolve their bets easily by using the user-friendly controls. Cleopatra\u2019s possibility of extreme earnings includes a maximum profit of ten,000x the new line share for 5 Cleopatra wilds. Even more scatters is also retrigger the bonus for approximately 180 free spins, adding excitement in order to users\u2019 gameplay. Cleopatra\u2019s free spins added bonus, due to getting Sphinx spread signs, honours 15 revolves which have tripled victories. Cleopatra\u2019s gameplay mirrors that antique gambling enterprise slots, where users turn on spend traces because of the keeping gold coins.<\/p>\n

Despite getting a mega Jackpot games, true towards the old heritage out-of IGT, you don’t need to play for big stakes – no matter if as the you would expect the larger brand new wager the greater opportunity you really have of winning large. 5 All Enjoying Attention will get you 250 times your own risk, 5 sets of Hieroglyphics 400 moments their stake and you can 5 Scarab Beetles 750 moments the risk. Collect as many coordinating symbols as you’re able to just like the for every been using their own reward of ranging from dos and you can 125 minutes their share. You might however to try out many different stakes regardless of if, and you will like to play it for the all of your current favourite ios and you will Android os equipment.<\/p>\n","protected":false},"excerpt":{"rendered":"

Comparable game such offer the same gameplay experience in moderate volatility and you may steady winnings. The greater this new RTP, the greater amount of of your players’ bets normally theoretically end up being came back over the near future. So it slot, with a rating regarding step three.69 out\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-95340","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/95340","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=95340"}],"version-history":[{"count":1,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/95340\/revisions"}],"predecessor-version":[{"id":95341,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/95340\/revisions\/95341"}],"wp:attachment":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/media?parent=95340"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/categories?post=95340"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/tags?post=95340"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}