/* 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":98046,"date":"2026-05-24T14:59:07","date_gmt":"2026-05-24T14:59:07","guid":{"rendered":"https:\/\/klecet.edu.in\/alumni\/?p=98046"},"modified":"2026-05-24T14:59:08","modified_gmt":"2026-05-24T14:59:08","slug":"gamble-%e2%ab%b8-titanic-position-games-in-the-demo-form-free-of-charge","status":"publish","type":"post","link":"http:\/\/klecet.edu.in\/alumni\/gamble-%e2%ab%b8-titanic-position-games-in-the-demo-form-free-of-charge\/","title":{"rendered":"Gamble \u2af8 Titanic Position Games in the Demo form free-of-charge"},"content":{"rendered":"

That it means can be used to add personal adventure in the place of risking real money. Finally, a first-category violation is sold with an RTP profile regarding 96.05%. The third group enjoys an enthusiastic RTP contour out-of 95.95%, although this grows in order to 96.01% having a moment-group pass. Perhaps one of the most profitable Titanic suggestions for this video game manage getting using a primary-class pass whenever you.<\/p>\n

Very first, a gambler is questioned to choose what violation into board they wish to see. What shines about this game ‘s the treatment for prefer one\u2019s risk. This game is played to the a classic 5\u00d7step three grid and has twenty five paylines. I bet you\u2019ve seen and more than likely together with find out more than simply a few books for the beating online pokies.<\/p>\n

Again, you will find independency in this regard to your eye of horus<\/a> accessibility to going to possess 20 otherwise 10 revolves if the a person is not comfy which have 50 autospins at that wade. The latest configurations could have been done cleanly, with a lot of of one’s controls available on this new leftover edge of the monitor. I feature the most suitable choice to tackle for real currency really on video game web page. Sure , look at the Clips Collection inspired slots, or understand the information directly on the overall game web page. So it incentive is starred to the a unique playing grid where in actuality the Heart of the Ocean symbols abreast of showing up in reels expand round the particular reel ranking to increase your own payouts.<\/p>\n

Should you choose the best \u2018ticket\u2019, you can even be in having a shot on specific really huge modern jackpots! Titanic 2 are bolder and you may really does anything in different ways on the unusual reel settings. About brand-new Titanic dos, you are able to produce a plus of the answering reels step one and you will 5 on the heart-designed jewels. Back into Titanic step 1, while\u2019ll discover symbols regarding the legs game was photo of the fresh new shed. The newest brand-new Titanic 2 has actually a great diamond shaped reel options, having a practically all-means system and loaded symbols.<\/p>\n

Heart of your Water incentive function proposes you choose the pair comprising what amount of 100 percent free revolves and you may a certain multiplier. Into the playing the fresh Safe incentive video game, you ought to pick one of the 10 safes. After you choose the character, and therefore shows the cash value, you get the latest award and relocate to the next stage. Which great harbors online game turned into accessible to the new fans of one’s slot machines online that have free revolves inside the April 2016. The net establishment now offers slots off top producers instead getting or registration and you will attracts attention with regards to high quality.<\/p>\n

It needs a spin otherwise one or two to repay during the, then the violation program and you may constant trigger begin to inform you actual breadth. He spends his Pr enjoy to ask the main facts which have a support employees out-of online casino workers. Once they are performed, Noah gets control of with this specific unique fact-examining means based on factual info. Enjoy slotmachine free-of-charge that have enjoyable credit we offer easily from your internet casino.<\/p>\n

Their gripping sense is remembered forever about hearts ones young ones in search of her like; inquiring Rose exactly how she receive hers. The vintage facts have touched the minds off thousands and thousands from viewers and has won their cure for become a vintage facts. The second group pass provides your one or two puzzle series, and you may an initial class that provides you with around three photos during the secret round that have a chance at the getting a large winnings with the brand new modern jackpot bonus. An effective forty borrowing wager such, has you a third group citation on the vessel.<\/p>\n

Mention this new ship to spend day which have Molly with the find upwards multiplier element, get involved with wanting which secure holds the fresh stash regarding dollars and take the new controls to go into the bonus games and you can earn cash. All the regulation was bequeath across the bottom of display screen, while the out-of left so you can right you\u2019ll pick wager value, lines, full choice, spin, borrowing, and you can win. When you’re ready, you could potentially move on to play for real cash.<\/p>\n

If you bet 0.80, 1.20, or step one.60 for every spin, you’ll located a 2nd group pass, which includes within it a beneficial 15x added bonus wager on the amount wagered for every range. For individuals who choice around 0.thirty-five credits each spin, you are going to located a 3rd class citation, with in it an excellent 10x extra wager on the quantity wagered for every single line. When considering almost every other slots, Titanic merely makes it easier on precisely how to alter the bet for every single line, constantly gaming into the twenty-five lines.<\/p>\n

Whenever triggered, you\u2019ll located anywhere between two and you will five twice wilds with the reels a few, about three, four to five. Upfront new play, you will be expected to pick from the violation categories to pick one. Passionate because of the extra enjoys and you can video, it is among the best and you will common game. If someone gains the fresh jackpot, the new prize resets in order to their brand-new undertaking count. Here, respins is actually reset every time you home a different sort of icon.<\/p>\n

These can getting claimed at random after one spin, other than spins one to turn on a portion of the controls feature. Ultimately, discover the brand new Small and you may Maxi Jackpots, which are exhibited near the top of the new screen. The new Jack and Rose icon, as stated previously, is considered the most that it position\u2019s spread symbols, while the jackpot symbol.<\/p>\n

Free online slots are an easy way to experience your choice of games on a real income gambling enterprises. Whether you\u2019re also seeking to ticket the amount of time, explore the newest headings, or get confident with casinos on the internet, free online slots give a simple and you can enjoyable answer to gamble. For all of us users particularly, free harbors is a great way playing casino games before carefully deciding whether to play for real cash. Have fun with the best incentive online game for instance the collection incentive where you can select honors and they will end up being quickly your. Rush toward keno rooms including Lost Gems regarding Atlantis™ and you may Fortunate Cherry™, and you can feel enjoyable bonus video game, and additionally modern jackpots, and you may free revolves.<\/p>\n

Discover second-classification tickets to possess stakes of 0.8, step 1.dos, and you can step one.six, which give you entry to the new Maxi and you will Mini jackpots, however the big Jackpot. First-category passes are better that have a wager from dos.0 or higher and get a plus from 15x brand new wager count. If you want to have the ability to possess offered, then you need a primary class citation. Considering their bets you may get a first, 2nd otherwise third classification pass on the Titanic.<\/p>\n

There are many Canadian casinos in which you should be able to try this position the real deal currency. Yes, it is possible to make a real income for individuals who have fun with the real money version. Usually, a gambling website that gives the actual currency form has the benefit of the newest trial form whether you are within the Canada otherwise anywhere otherwise. Titanic try an average difference position which comes with a whole machine of incentive have. In these 9 revolves, the gamer really stands a chance away from successful bucks honours, multipliers or perhaps to lead to other extra keeps.<\/p>\n","protected":false},"excerpt":{"rendered":"

That it means can be used to add personal adventure in the place of risking real money. Finally, a first-category violation is sold with an RTP profile regarding 96.05%. The third group enjoys an enthusiastic RTP contour out-of 95.95%, although this grows in order to 96.01% having a moment-group pass.\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-98046","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/98046","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=98046"}],"version-history":[{"count":1,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/98046\/revisions"}],"predecessor-version":[{"id":98047,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/98046\/revisions\/98047"}],"wp:attachment":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/media?parent=98046"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/categories?post=98046"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/tags?post=98046"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}