/* 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":96338,"date":"2026-05-24T08:07:26","date_gmt":"2026-05-24T08:07:26","guid":{"rendered":"https:\/\/klecet.edu.in\/alumni\/?p=96338"},"modified":"2026-05-24T08:07:29","modified_gmt":"2026-05-24T08:07:29","slug":"titanic-slot-machine-2026-play-for-online-now","status":"publish","type":"post","link":"http:\/\/klecet.edu.in\/alumni\/titanic-slot-machine-2026-play-for-online-now\/","title":{"rendered":"Titanic Slot machine 2026 Play for Online Now"},"content":{"rendered":"

In terms of to play position game on the internet, locating the best online casino renders a big difference inside the their gaming sense. Professionals normally winnings 100 percent free revolves because of bells and whistles, see much more incentives with each spin, and open fascinating extra online game cycles for extra perks.And you can hi, often new reels are just sensuous. If you see you to spread out symbol appear, minds battle having a description. Each video game now offers its book game play, added bonus have, and you can successful potential. Vintage slots are pure enjoyable\u2014effortless guidelines, quick play, and lots of sentimental attraction. With three reels, one to payline, and you will legendary signs particularly Bars, cherries, and you may lucky 7s, this type of game bring back the fantastic period of slots.<\/p>\n

Many of the online casinos give no-deposit bonuses for their the new participants. This function may be used to provide personal excitement as opposed to risking a real income. It just takes good Internet connection to take some enjoyable.<\/p>\n

There isn’t any bucks to get won when you gamble totally free position online game enjoyment simply. When someone wins this new jackpot, the honor resets to its brand new creating matter. Here, respins is reset every time you home an alternative icon. A bonus online game are a small online game that appears into the ft game of one’s free video slot.<\/p>\n

For those who\u2019re adopting the biggest jackpots, the most interesting added bonus cycles, or maybe just have to like to play your favorite slots, i support you in finding an informed online casinos for the betting need. Safety and faith was greatest goals, so we merely recommend online casinos having a powerful character and legitimate customer support. I select gambling enterprises offering an informed online slots games, enjoyable bonus has actually, and a lot of totally free spins bonus possibilities to continue stuff amusing. Finding the right online casino to have position game isn\u2019t just about showy picture otherwise large claims\u2014it\u2019s regarding selecting a website providing you with on each peak. As well as, of a lot totally free harbors promote from inside the game coins and you can entertaining small game where you could victory added bonus gold coins\u2014all of the rather than using one real cash. Look for position online game specialized from the separate evaluation businesses\u2014these types of seals out of approval mean the latest video game are often times looked to possess fairness.<\/p>\n

The main is always to think of responsible gambling, proceed with the information from our pros on exactly how to prefer a great method and revel in gambling for quite some time. Today there are a lot more online slot machines one to promote participants an array of has. You can check licence info in casino reviews into SlotsUp.All of us believes you to in charge playing is essential.<\/p>\n

It is currently perhaps one of the most prominent game within online casinos, and you’ll indeed Ivibet<\/a> provide it with a spin. It absolutely was confronted by a greatly confident reaction out of each other members and gambling establishment staff, it was only the second absolute step to own Bally to bring the online game with the internet casino industry. Bally Tech earliest put out Titanic because the a land-situated web based poker host – so if the game appears familiar, the likelihood is you starred this game in the an effective pokie pub or local casino. Which have eg numerous bonus have available on so it on line pokie, participants is secure more funds inside the a great amount of different methods. We’d highly recommend considering online game including Aliens, Judge Dredd, Terminator dos and you will Jurassic Playground. The overall game offers members a wide range of generous incentive possess that give members to your opportunity to earn unbelievable bucks honors with every twist of the reels.<\/p>\n

Once the Rose ages, she cherishes the fresh memory out-of the lady real love, keeping a memento out of Jack close to the girl cardiovascular system. The new tragic achievement notices the fresh new Titanic sinking and you will Jack sacrificing himself to save Rose. The movie narrates the latest story off a good seventeen-year-dated aristocrat, Flower, that is set-to get married a wealthy suitor picked because of the their mom.<\/p>\n

So it slot is for members who like lots of incentive has. Courtesy a simple integration, Practical Play\u2019s bingo allows web based casinos with all the tools needed to transmit a casino game true to their brand, giving participants yet another, fresh bingo experience with a common ecosystem. The brand new legendary Zeus produces his alive casino first, getting electronic multipliers, Fortunate and you will Extra Number, and you can an exciting slot extra online game. Get on board with crazy multipliers, half a dozen bonus games solutions, and also the chance to bring about Extremely Free Spins Skip timely-moving action, here we have been subjected to a far more relaxed presentation presenting large foods, relaxing sloths, and lots of added bonus keeps. This has a superb range-right up more than step three,100000 a real income harbors and you will gambling games away from 70+ leading software providers, plus NetEnt, Development, Blueprint, Practical Gamble and many more.<\/p>\n

Various cues is film signs like leather gloves, luggage, cab cabs, pouch observe, Jack, Rose, and other head letters. Of a lot unbelievable icons resonate with the movie and present Titanic lovers a thrill. It position links members for the film and you will, like the Anubis Slot machine, have high image and you can big incentive features.<\/p>\n

I element your best option playing for real currency physically towards video game webpage. Yes , take a look at Video Collection themed harbors, otherwise see the recommendations directly on the overall game webpage. This added bonus try played towards the an alternate betting grid in which the Heart of Water signs up on hitting the reels build all over particular reel ranks to improve the payouts. The mix of cinematic illustrations or photos, interesting gameplay, and you may satisfying incentive enjoys ensure it is a talked about online game in the realm of movie-inspired ports.<\/p>\n

Free online slots are an easy way to test your selection of online game from the a real income casinos. If your\u2019re also seeking to citation the time, speak about the brand new titles, otherwise rating more comfortable with web based casinos, online ports provide a straightforward and you will enjoyable answer to gamble. For all of us users particularly, totally free harbors is actually a great way to experience gambling games before carefully deciding whether or not to wager real cash. New Titanic slot machine is much like a number of other games within the regards to just how users can pick of different extra game which have their particular special benefits. The advantage game will need members available a series of different symbols otherwise photographs. Through getting about three or more scatter symbols, a person can enter into one of three other added bonus game.<\/p>\n

With the entertaining templates, immersive graphics, and you may fascinating bonus features, such ports bring limitless recreation. They\u2019lso are ideal for people who enjoy free harbors for fun with an emotional reach. Their more recent video game, Starlight Princess, Gates away from Olympus, and Nice Bonanza use an enthusiastic 8\u00d78 reel function without the paylines.<\/p>\n

Playing 100 percent free gambling enterprise harbors is the perfect solution to relax, enjoy your favorite slot machines online. Take to the characteristics as opposed to risking the dollars – enjoy a maximum of well-known totally free slots. A knowledgeable this new slots include enough incentive series and 100 percent free spins to have a rewarding experience. No real cash expected \u2013 Play playing with demonstration credits in place of cash<\/p>\n","protected":false},"excerpt":{"rendered":"

In terms of to play position game on the internet, locating the best online casino renders a big difference inside the their gaming sense. Professionals normally winnings 100 percent free revolves because of bells and whistles, see much more incentives with each spin, and open fascinating extra online game cycles\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-96338","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/96338","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=96338"}],"version-history":[{"count":1,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/96338\/revisions"}],"predecessor-version":[{"id":96339,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/96338\/revisions\/96339"}],"wp:attachment":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/media?parent=96338"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/categories?post=96338"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/tags?post=96338"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}