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

It form can be used to incorporate personal excitement in the place of risking a real income. In the long run, a first-class ticket includes a keen RTP shape of 96.05%. The 3rd category enjoys an RTP contour from 95.95%, while this increases to help you 96.01% getting an additional-class admission. Probably one of the most successful Titanic tips for the game manage become having fun with a first-class citation when you can.<\/p>\n

Very first, a casino player was expected to choose what solution on the board they want to get. Exactly what stands out about it game ‘s the treatment for choose one\u2019s share. This game is actually starred towards a classic 5\u00d7step 3 grid and contains 25 paylines. I choice your\u2019ve viewed and you can likely along with read more than just a number of books with the beating on the internet pokies.<\/p>\n

Again, there is certainly freedom in connection with this towards accessibility to heading to possess 20 or ten revolves in the event the a player isn\u2019t safe that have fifty autospins on one go. The brand new options might have been over cleanly, with many of your controls on new remaining edge of the brand new display. We feature the best option to play the real deal money in person into video game web page. Sure , have a look at Video Collection themed slots, or understand the suggestions close to the video game web page. Which extra try played into the a different sort of playing grid where in actuality the Cardiovascular system of your Sea signs through to showing up in reels expand around the respective reel ranking to improve your profits.<\/p>\n

If you choose best \u2018ticket\u2019, you can even be in with an attempt in the particular extremely huge progressive jackpots! Titanic 2 was bolder and you may does one thing in a different way for the strange reel configurations. About latest Titanic dos, you may also produce a bonus from the answering reels step 1 and you may 5 to the cardiovascular system-molded gems. Back once again to Titanic step 1, and also you\u2019ll discover the signs about foot online game is photographs away from brand new throw. The brand new brand new Titanic 2 has a great diamond designed reel options, which have a pretty much all-implies system and you can loaded symbols.<\/p>\n

Cardiovascular system of one’s Water added bonus element implies you decide on the two consisting of the number of 100 percent free spins and you may a certain multiplier. In to tackle brand new Safer extra game, you need to choose one of Book of Ra<\/a> your own 10 safes. Once you purchase the reputation, and therefore reveals the money worth, you earn brand new honor and you can relocate to the next level. This fantastic slots games turned open to the newest admirers of slots on the web having free spins inside the April 2016. The online place has the benefit of slots off best providers in the place of downloading or registration and you may draws focus with the top quality.<\/p>\n

It entails a spin otherwise a couple to repay during the, then the violation system and you will constant produces begin to reveal genuine depth. He uses his Public relations experience to inquire of the main info that have a services group out-of on-line casino workers. After they are carried out, Noah gets control using this book truth-examining method based on truthful facts. Play slotmachine for free which have enjoyable credits that people provide freely from our on-line casino.<\/p>\n

Their gripping feel are recalled forever throughout the hearts of these family searching for their particular love; asking Rose how she found hers. The fresh antique story possess handled this new hearts out-of thousands out of watchers features received their answer to becoming an old story. The second class violation provides your one or two secret rounds, and you will an initial group that will give you three images in the mystery bullet that have a spin during the delivering a giant earn that have the newest modern jackpot bonus. A beneficial forty credit wager such as, offers you a third group admission toward boat.<\/p>\n

Speak about the fresh watercraft to invest date that have Molly towards the select right up multiplier ability, get involved with in search of and this safe retains the latest stash of cash and take the fresh new controls to enter the main benefit games and earn cash. All the regulation is give across the bottom of your own display screen, since from kept to help you right you\u2019ll select bet well worth, lines, total choice, spin, credit, and you can victory. While you are able, you could potentially proceed to play for a real income.<\/p>\n

For individuals who bet 0.80, step one.20, or 1.60 for every single spin, might found a 2nd category ticket, which includes in it a 15x incentive bet on extent wagered for each and every range. For folks who choice as much as 0.35 credit each spin, you will discovered a third category citation, which includes in it a good 10x extra bet on the total amount wagered for each line. About other slots, Titanic merely makes it easier on exactly how to change the choice for each and every range, always betting on twenty five traces.<\/p>\n

Whenever activated, you\u2019ll located ranging from a couple and you may five twice wilds to the reels a few, about three, 4 or 5. Ahead of time the latest enjoy, you’re requested to choose from the newest pass groups so you can select one. Motivated because of the incentive enjoys and you will video clips, it has become one of the best and well-known online game. When someone gains this new jackpot, the fresh new award resets in order to their new performing count. Here, respins try reset every time you belongings a different sort of symbol.<\/p>\n

These may end up being claimed at random immediately after people spin, except that revolves one activate part of the wheel ability. Eventually, there are the latest Mini and you may Maxi Jackpots, that are demonstrated towards the top of the brand new display screen. The latest Jack and you will Rose symbol, given that stated previously, is among the most it position\u2019s spread out signs, therefore the jackpot icon.<\/p>\n

Free online slots are an easy way to test your selection of games in the real cash casinos. Whether or not you\u2019re looking to pass committed, speak about the fresh new titles, or score comfortable with casinos on the internet, online ports provide an easy and you may fun answer to play. For us professionals especially, 100 percent free slots are a simple way to tackle online casino games before making a decision whether or not to wager real cash. Have fun with an educated incentive games for instance the collection extra where you might choose honours and they will become immediately your personal. Rush into keno room such Destroyed Treasures out-of Atlantis™ and Happy Cherry™, and you can experience exciting extra video game, and modern jackpots, and you will free spins.<\/p>\n

You’ll find 2nd-category seats having stakes out of 0.8, 1.dos, and you may step one.six, which give you accessibility brand new Maxi and you can Micro jackpots, however the big Jackpot. First-class seats try better with a play for regarding 2.0 or higher and then have a bonus out of 15x the bet number. If you want to have got all features offered, then you will want a primary category citation. According to your own bets you can aquire a primary, next otherwise 3rd classification citation for the Titanic.<\/p>\n

There are many different Canadian casinos where you can test this slot for real currency. Yes, you are able to a real income if you play the a real income type. Constantly, a gaming website that gives the actual currency function even offers the fresh demo setting regardless if you are when you look at the Canada or anywhere more. Titanic is a moderate difference slot that comes that have a whole machine out-of incentive keeps. In these 9 revolves, the player stands a go out-of winning bucks honours, multipliers or even result in almost every other extra possess.<\/p>\n","protected":false},"excerpt":{"rendered":"

It form can be used to incorporate personal excitement in the place of risking a real income. In the long run, a first-class ticket includes a keen RTP shape of 96.05%. The 3rd category enjoys an RTP contour from 95.95%, while this increases to help you 96.01% getting an additional-class\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-98050","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/98050","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=98050"}],"version-history":[{"count":1,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/98050\/revisions"}],"predecessor-version":[{"id":98052,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/98050\/revisions\/98052"}],"wp:attachment":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/media?parent=98050"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/categories?post=98050"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/tags?post=98050"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}