/* 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":114883,"date":"2026-05-25T11:58:36","date_gmt":"2026-05-25T11:58:36","guid":{"rendered":"https:\/\/klecet.edu.in\/alumni\/?p=114883"},"modified":"2026-05-25T11:59:16","modified_gmt":"2026-05-25T11:59:16","slug":"discover-an-enormous-icon-on-it-making-it-the-search-a-tad-bit-more-enjoyable","status":"publish","type":"post","link":"http:\/\/klecet.edu.in\/alumni\/discover-an-enormous-icon-on-it-making-it-the-search-a-tad-bit-more-enjoyable\/","title":{"rendered":"Discover an enormous Icon on it, making it the search a tad bit more enjoyable"},"content":{"rendered":"

Landing six currency icons triggers respins, when you find yourself spread out icons launch 100 % free revolves<\/h2>\n

The new fortune of your own Irish has made we pleased but it is maybe not a promise by any means. Once you’ve done it you’ll be taken to a grip and Twist form of online game having twenty three respins. It\ufffds far too vintage however, I’m aware specific people such as it it can nevertheless be enjoyable, based on your preference. That you’ve got the Purchase Incentive as well because Gamble alternative after each win, really does generate things a great deal more fun.<\/p>\n

The brand new receptive build adjusts to the display size, making sure seamless gameplay and you may fast packing moments. These assistance are Vegas Palms casino login<\/a> tested and verified by independent labs such GLI (Gaming Laboratories All over the world) and you will iTech Labs, which audit online game efficiency, RTP reliability, and equity. The fresh auto mechanics are created to end up being intuitive, definition you could rapidly understand how for every feature functions while however using deeper gameplay levels. The balance anywhere between simple aspects and you can rewarding expertise lets both novices and knowledgeable professionals to enjoy the new video game. That it produces frequent times away from thrill, in which players normally create effective combinations more than consecutive respins.<\/p>\n

Log into your account, financing your balance, and delight in an entertaining and issues-totally free reel-rotating tutorial. As an alternative, you can simply weight the new for the-web browser app from an online casino that helps that it developer’s slots. While the app supplier creates every one of its position video game having fun with the most up-to-date HTML5 design, switching from just one sort of equipment to another while seeing their favourite hobby is a straightforward task. Harbors are made in order that, based on your own device’s opportunities, they are played in portrait and you may landscaping formats. At the same time, for every position comes with a double-or-absolutely nothing online game and you can sometimes a trending Bet otherwise Pick Extra possibilities.<\/p>\n

Rabcat try a credit card applicatoin organization which is located in Austria and you can that creates exceptional clips ports that have thrilling storylines and you may to play have. Likelihood Jones is a Uk-founded software providers that create online slots games and you can scratchcard games for ideal web based casinos in the business. Practical Gamble is actually a leading blogs provider for the iGaming business, offering a multi-equipment profile regarding slots, live casino, bingo & a lot more thru one single API. Playtech ‘s the world’s largest gambling establishment software providers subscribed to run for the more than 20 regions in which they give you best ports, desk, and you may real time dealer online game. The fresh betting seller brings novel and expert playing products which boundary the latest iGaming world.<\/p>\n

The brand new betting vary from 0.10 to help you 100 will make it offered to all kinds of players, and capped max victory regarding 2,000x brings a clear address in place of releasing a lot of risk. Gamzix possess designed a casino game one areas old-fashioned slot basic principles when you’re incorporating a verified Keep and you may Twist auto technician to operate a vehicle adventure and you may important winsbined with mobile optimization, demonstration supply, and you can an extensive playing range, the video game towards the top of because the a complete and you can accessible package one meets the newest expectations of progressive position users. The fresh Free Spins bullet, featuring its at random chose multiplier, contributes a piece out of unpredictability you to significantly accelerates victory potential and replay really worth. The latest Purchase Added bonus options create industrial and you may user flexibility, enabling immediate access on the slot’s most effective minutes, while the lightweight file size and you can solid cellular optimisation promote usage of. Simply Expensive diamonds are a slot designed for professionals exactly who worth framework, suspense, and quality more chaotic reel actions.<\/p>\n

Membership availableness tips and industry opportunities for the creator as well as create preferred enquiries. Trial features tend to be all the fundamental gameplay issues but a real income wagering.<\/p>\n

KA Betting try a relatively the new local casino app seller that has safeguarded a location regarding the iGaming parece with unique titles and you will mathematics designs. JFTW or simply just For the Winnings try a Swedish app company that occurs position games from really good high quality and numerous gamification possess. SoftGamings provides inked an accept JDB Gambling, a Vietnamese local casino games designer whoever game profile is prepared to have consolidation from business’s good API. Due to you to-solitary integration consumers can get access to over 8000 games together with 150 greatest-carrying out iSoftbet headings, state-of-the-art member engagement and you may analysis choice.<\/p>\n

The latest Buy Incentive alternative (30?) brings people control over timing, bypassing ft game grinding when they prefer immediate element access. During the Free Revolves, an international multiplier escalates into the ?100, since video game pledges between 5 and you will 20 Wild signs across all incentive spins. The fresh new Jalapeno Prize Steps represents the fresh new core mechanic – homes between about three and nine jalapeno icons to help you climb prize levels, which have 9 peppers getting the major reward. Max victory limits from the 2,000?, less than some Gamzix choice, nevertheless the Buy Added bonus (30?) brings affordable feature availableness. The new Pick Added bonus ability lets players get immediate access to this round to possess 50? its stake – of good use when base game determination works narrow.<\/p>\n

The game combines vintage design which have modern has. Users score 3 respins if incentive triggers, with gold coins keeping to have bigger victories.<\/p>\n

Fantasma Online game are an excellent Swedish application company that combines the fresh globes away from desktop that have gambling enterprise playing to create slots that will be an effective primary mix of the 2. Espresso Online game brings together Italian style with gambling expertise to help you develop large-top quality and you may ines to possess on the internet and mobile gambling enterprises around the world. ELK Studios is just one of the brand-new app business off Sweden you to definitely specialises inside development premium cellular-basic movies ports and has now a great portfolio regarding book headings.<\/p>\n

The fresh new games are built which have fair formulas one make sure arbitrary efficiency<\/h2>\n

The variety of video game are varied, but each is carefully built to deliver the best playing sense, whether you’re fresh to the web based gambling establishment industry otherwise an experienced. Gamzix’s work at high quality and you can uniform abilities all over devices makes them a talked about creator on iGaming world. The blogs is actually optimized for both cellular and you will pc gizmos, guaranteeing access to for everybody professionals. Of the focusing on this type of key aspects and you may keeping uniform top quality, Gamzix has created a powerful presence regarding internet casino markets. Which precision inside overall performance is a key factor you to establishes Gamzix besides many opposition. This method lets players with various tastes and to relax and play styles in order to discover game you to definitely meets the appeal, leading to a top fulfillment price.<\/p>\n","protected":false},"excerpt":{"rendered":"

Landing six currency icons triggers respins, when you find yourself spread out icons launch 100 % free revolves The new fortune of your own Irish has made we pleased but it is maybe not a promise by any means. Once you’ve done it you’ll be taken to a grip and\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-114883","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/114883","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=114883"}],"version-history":[{"count":1,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/114883\/revisions"}],"predecessor-version":[{"id":114917,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/114883\/revisions\/114917"}],"wp:attachment":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/media?parent=114883"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/categories?post=114883"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/tags?post=114883"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}