/* 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":91344,"date":"2026-05-23T20:48:00","date_gmt":"2026-05-23T20:48:00","guid":{"rendered":"https:\/\/klecet.edu.in\/alumni\/?p=91344"},"modified":"2026-05-23T20:48:02","modified_gmt":"2026-05-23T20:48:02","slug":"which-have-many-different-styled-types-available-you-can-find-one-that-meets-the-taste","status":"publish","type":"post","link":"http:\/\/klecet.edu.in\/alumni\/which-have-many-different-styled-types-available-you-can-find-one-that-meets-the-taste\/","title":{"rendered":"Which have many different styled types available, you can find one that meets the taste"},"content":{"rendered":"

That have sticky symbols, respins, and jackpot-build awards riding the latest ability bullet, it provides simple but highly interesting game play. Booming Online game have carved away a powerful visibility on the sweepstakes place that have colourful, bonus-submit slots that high light usage of and you may repeat engagement. But not, among headings that has been particularly well-known inside the sweepstakes environments is excellent Pigsby, a gangster-themed position packed with extra potential and have-passionate game play. It had been zero effortless activity so you’re able to restrict the big five 100 % free position studios, as we performed over.<\/p>\n

Dominance Special day, produced by WMS Gaming, even offers a fundamental 5-reel, 20-payline layout that have a massive Choice function. Created by Big style Playing, Monopoly Megaways now offers a new mix of the favorite Megaways mechanic on the vintage Dominance board game. In lieu of old-fashioned board games which need physical elements and a small grouping of participants gathered under one roof, this type of virtual adjustment is actually obtainable whenever and anyplace.<\/p>\n

For the straight down front side, yet not, you can also observe occasional and you will lower gains. This makes sure you go searching for Buffalo ports one are most likely become a great deal more large and make certain you decide on the fresh new titles one to is fun to try out. When you decide to play this type of slots free-of-charge, it’s not necessary to obtain any application. If you have been playing online slots for a while, then there is a good chance you have pick at least one Buffalo position. This type of online slots games depend on the latest American buffalo theme.<\/p>\n

Online harbors no down load bring an exciting and you will chance free way to enjoy the excitement away from gambling enterprise gambling. You can expect many sports-themed slot video game one to appeal to the football lover. Immerse yourself inside a chilling ambiance that have black artwork, eerie soundtracks, and you will back-numbness bonus rounds.<\/p>\n

Regarding ordinary game play, you should simply follow your online game equilibrium and you will ready yourself to possess a prolonged training. It offers plenty of has for the bettors, and Insane, Jackpot, and unique signs, including Free Parking. On the web professionals will get totally free revolves, no deposit bonuses, and you may 100 % free coins by making use of coupons to allege prizes immediately following subscription into the mobile gambling enterprises. There’s no Dominance harbors free spins ability, the new pokie prize players which have panel incentive features, hence reveals big wins in the form of bucks awards.<\/p>\n

Touch screen capabilities advances representative involvement, performing a very interactive experiencepatibility for the 100 % free cellular movies ports lies during the entry to, allowing gamblers to experience Eye of Horus demo<\/a> each time, anywhere. ? Probability of monetary losings necessitates careful handling of money. ? Easy access to game anytime, anyplace through mobiles or computers. ? Usage of some slot machine games templates & formats, offering a diverse playing sense. Acknowledging signs of habits leads to seeking to recommendations if necessary.<\/p>\n

The newest collection comes with the labeled online game, such Monopoly slots, or any other well-known layouts. The book about how to earn at the harbors brings more details for the jackpots, multipliers, and you can incentive rounds. Although not, many of these games commonly modern jackpot harbors, despite the fact that perform offer the possible opportunity to victory highest profits. Particular Small Hit harbors ability a progressive jackpot, that may improve up until one athlete wins they during the a plus round.<\/p>\n

These are extremely important tech details that you ought to discover regarding the online slots<\/h2>\n

An educated gambling enterprises offering 100 % free ports could all be receive here on the . Be looking into the signs you to definitely turn on the newest game’s extra rounds. But not, if you are looking to own a little greatest graphics and a slicker gameplay feel, we recommend downloading your chosen online casino’s software, in the event the offered.<\/p>\n

5 million luxury home begins here. Questionnaire Spotter could have been in a position to promote all UK’s better surveys to one another using one easy web site for you to access. By the signing up, you will get a great ?5 current credit of your choosing with every several shops, up to…<\/p>\n

A long time ago, Thumb are the fresh new go-in order to tech one to online casinos relied on to setting securely. Constructed with Playtech’s signature focus on detail, Mega Fire Blaze Roulette comes with a streamlined and you will user-friendly three dimensional software, making sure that it’s not hard to consider yourself during the roulette table. Recognized for their high volatility, this video game also provides several attractive bonuses (such as Quick award icons otherwise Multipliers) one to people are able to use on their virtue. Are you aware that game play, the fresh new slot is actually played for the an effective grid one to includes four rows and you will four columns.<\/p>\n

Your chance so you can earn a good ?2<\/h2>\n

Come across our unbelievable 100 % free slots games, profit coins and you will experience so you’re able to top up and unlock the newest online game, incentive featuring. Fruits themes are often featured to the classic slot machines (cherries, lemons, apples, grapes, berries, pears, berries, watermelons) but the varieties for the clips ports is actually unlimited. Within our current videos harbors there’s no pattern when it comes regarding award contours, and although you could potentially often find video game with 20, 30 or 40 honor outlines, there is a variety.<\/p>\n

If you want to see what the benefit bullet was very first give, it’s best to was the fresh new games from the free setting basic. The main benefit harbors, also known as videos ports which have bonus cycles, are among the preferred slots on the web. To get totally free revolves you have to collect twenty-three unique signs towards specific reels. In this case, you will have more ways regarding gathering an absolute integration – 1024. In such a case, you may have 243 a means to gather a winning combination. The capacity to do free revolves tend to shed for folks who assemble four to five added bonus signs.<\/p>\n

The video game have five reels and you will about three rows and even though you will find hardly any special features, the ebook symbol will probably be worth discussing, as it serves as each other scatter and you can crazy symbol. The only real most is the Gamble setting, that enables that increase your award of the choosing a black colored otherwise red-colored card when you struck a winning combination. Demo ports offer similar gameplay as his or her real cash competitors aside from most of the wagers are created with digital loans. At VegasSlotsOnline, it is possible to supply your chosen online slots no obtain, and there’s need not bring one personal data or financial info. It end up like slots included in casinos, providing the exact same gameplay and extra possess, but with digital currency to earn free-of-charge.<\/p>\n

You might earn an excellent GoodHome Bbq out of B&Q, value an incredible ?475, with VoucherCodes! Laden with even more necessary protein, it is best for boosting your time help muscle tissue, or simply enjoying a succulent, rich and creamy take in. Signup now to get into a great deal more free twist sale and you may handpicked gambling establishment bonuses of top labels.<\/p>\n","protected":false},"excerpt":{"rendered":"

That have sticky symbols, respins, and jackpot-build awards riding the latest ability bullet, it provides simple but highly interesting game play. Booming Online game have carved away a powerful visibility on the sweepstakes place that have colourful, bonus-submit slots that high light usage of and you may repeat engagement. But\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-91344","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/91344","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=91344"}],"version-history":[{"count":1,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/91344\/revisions"}],"predecessor-version":[{"id":91345,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/91344\/revisions\/91345"}],"wp:attachment":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/media?parent=91344"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/categories?post=91344"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/tags?post=91344"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}