/* 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":98146,"date":"2026-05-24T15:34:07","date_gmt":"2026-05-24T15:34:07","guid":{"rendered":"https:\/\/klecet.edu.in\/alumni\/?p=98146"},"modified":"2026-05-24T15:34:08","modified_gmt":"2026-05-24T15:34:08","slug":"titanic-demonstration-enjoy-free-position-online-game","status":"publish","type":"post","link":"http:\/\/klecet.edu.in\/alumni\/titanic-demonstration-enjoy-free-position-online-game\/","title":{"rendered":"Titanic Demonstration Enjoy Free Position Online game"},"content":{"rendered":"

So it slot was created in a manner you need certainly to choice a-flat increment from gold coins trying to send their reel rotating, thus guarantee that should you choose want to have fun with the Titanic Slot you take a glance at exactly what men and women share account is actually and you will wager practical share numbers the bankroll can sustain! Is the Titanic Position a position with high RTP In the event that aside do gamble slot machines frequently then you will now the new commission payment you can achieve whenever to relax and play lots like the Titanic Position will always rely how chance you\u2019re, however this is a position and this does have a fair high RTP you will always possess a number of successful opportunities as soon as you play it. not, for those who have a few more questions relating to the way in which that it position functions and you may takes on less than i’ve set together a problems and you will solutions part to this opinion and that we think you will have a great read through.<\/p>\n

Having Collect, people carefully eye of horus<\/a> favor a symbol you to reveals an admiration and you may multiplies you to definitely matter by the stake matter. The heart symbol becomes the latest insane in this minigame. You could select one off around three ceramic tiles because of it secret round and you will victory a mini otherwise Maxi jackpot.<\/p>\n

This new navigator is actually perhaps the first icon inside Titanic 1912, because it often force you to the benefit games. With that said, as you\u2019ll look for throughout the following the comment, Titanic 1912 is a straightforward recommendation. Along with 15 years into the betting marketing and you can an online playing record, Daniel now could be passionately investigating and you may comparing diverse harbors and you will internet for clients.<\/p>\n

Head to ReallyBestSlots to try out the newest Titanic online slot 100percent free and you will talk about its great features before carefully deciding to experience the real deal currency. Because the Flower decades, she cherishes new recollections from the lady true-love, keeping a souvenir from Jack next to their heart. The new heartbreaking achievement observes the Titanic sinking and Jack compromising himself to store Rose. The movie narrates brand new facts out of an effective seventeen-year-old aristocrat, Rose, who’s set to get married a refreshing suitor picked because of the the woman mother. For instance, good forty-borrowing wager features a 3rd category admission up to speed the new boat, bringing the means to access you to definitely puzzle element.<\/p>\n

The advantages is actually rich, which have an excellent boats controls spin choosing and this added bonus video game you get to play. Has actually and progressive incentive games opened the greater the \u2018ticket\u2019. Professionals enter into a plus video game where they select a selection from illustrations to disclose immediate cash awards.<\/p>\n

New spread symbols appear on reels step one, 3 and you can 5 and they cause the brand new controls element, during this dos region feature you twist new chief\u2019s wheel and are given both loans and you will a supplementary spin, or one of several enjoys on offer. Select the brand new ports and you may claim your own acceptance added bonus otherwise put extra during the all of our recommended and best casinos on the internet or any other totally free local casino video game only at BETO. You’ll select one regarding 3 ceramic tiles to disclose your own extra honor otherwise Jackpot. It isn\u2019t an easy task to meet anybody if the expectations are prepared high by the term of this slot. Truly, that it position is very easily perhaps one of the most ambitious ports we keeps ever before starred. Delight in a huge excitement regarding the Titanic on the internet slot on that off BETO’s recommended online casino<\/p>\n

Graphically, new Titanic Software is actually divine and employ cool features which may view you enjoying the games and real cash honors so it now offers. I have slots from other gambling enterprise software team into the our very own databases. Zero community jackpot consist right here, although within the-online game Small and you can Maxi on the Secret Jackpots find include place-ceiling bursts you to become reasonable into the risk curve. Puzzle Wild Reels can be place a couple of reels aside because the crazy up to brand new spin settles. I place a steady risk and let the violation mechanic would their job. I found the entire package common yet , calming, which fits a game title tied to a film everyone knows.<\/p>\n

If you need enjoying your preferred characters and you will spinning the fresh reels of the slot, then browse the almost every other tactics as well. At least three symbols looking for a passing fancy line is actually paid back with regards to the purely place possibility. not, you have the possible opportunity to like your own choice. This new Western company already chose a layout that worths, so they just need to make use of development and cleverness to the slot. We understand one Bally Tech enjoys one of the biggest and you will significant experience in the production of slots and other playing technology (their dominant areas predicated on its certified page).<\/p>\n

It is advisable knowing these types of detailed games long before playing which have real cash. It gives a terrific way to changeover towards another establishment with a new set of games. A few of the online casinos provide no deposit incentives because of their the members.<\/p>\n

For those who continue using this web site in the place of switching the cookie settings or you mouse click “Accept” below then you are consenting to that particular. Irrespective of my own personal personal advice, you can look at away Titanic with the hearts articles and sample most of the 7 incentive feature rounds at no cost, physically a lot more than. But then, that’s the beauty of slots as there is usually anything for everyone.<\/p>\n

If you like all the features productive, you\u2019ll must buy the initial group ticket, while choosing the next and you will 3rd classification passes will discover features removed. Complete, you\u2019ll see more than 100 fascinating 100 percent free ports that have extra video game, plus more than simply 50 100 percent free electronic poker choice! This will help to incorporate significantly more excitement along with loads of added bonus has actually and you will bonus games in those incentives. Utilize the totally free enjoy trial in order to data an excellent game\u2019s technicians before you can invest in staking real cash which have a keen internet casino. The fresh new video slot keeps a couple of 100 percent free twist features, four added bonus games, and the greatest You-Twist Controls Incentive Ability.<\/p>\n

Able the real deal currency gamble? Enjoy 100 percent free trial instantly\u2014no down load necessary\u2014and you may talk about every extra has actually chance-free. 200+ Bally totally free cent slots is famous for their instant play technology in the place of registration without down load options. Bally 100 percent free harbors thrills can be found in no put up no registration form.<\/p>\n

So you can alert the net user on form of occasions and consequences, brand new Titanic Slot gambling enterprise video game goes and additionally faithful music special outcomes that go-off so you can tag the conclusion a few version of accounts from the online game. Profit Big which have Mystic Slots right from your house free of charge! Merely install the fresh app off Yahoo Gamble or perhaps the Apple App Shop, therefore\u2019ll be on your path in order to an extraordinary 100 percent free gaming thrill. Sorry, however, not one of the game during the Mystic Harbors bring real money otherwise bucks benefits. With more than 130 ports, plus Electronic poker, Roulette, Blackjack, Keno, and you may Live Bingo, you\u2019ll provides what you to satisfy the gambling enterprise playing desires!<\/p>\n

Yes, Titanic will likely be played with the all types of gadgets, as well as desktops, smartphones and you may tablets. This is certainly an average rate to own an internet gambling enterprise casino slot games. A third-class pass may be worth step 1 penny, a second-category ticket will set you back dos-cuatro dollars, and you will a bet of five dollars usually open among doors with the steeped world on first-class visitors.<\/p>\n","protected":false},"excerpt":{"rendered":"

So it slot was created in a manner you need certainly to choice a-flat increment from gold coins trying to send their reel rotating, thus guarantee that should you choose want to have fun with the Titanic Slot you take a glance at exactly what men and women share account\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-98146","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/98146","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=98146"}],"version-history":[{"count":1,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/98146\/revisions"}],"predecessor-version":[{"id":98147,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/98146\/revisions\/98147"}],"wp:attachment":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/media?parent=98146"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/categories?post=98146"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/tags?post=98146"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}