/* 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":126446,"date":"2026-05-25T13:28:01","date_gmt":"2026-05-25T13:28:01","guid":{"rendered":"https:\/\/klecet.edu.in\/alumni\/?p=126446"},"modified":"2026-05-25T13:28:08","modified_gmt":"2026-05-25T13:28:08","slug":"it-means-you-can-play-totally-free-ports-for-the-our-very-own-webpages-having-no-membership-otherwise-downloads-requisite","status":"publish","type":"post","link":"http:\/\/klecet.edu.in\/alumni\/it-means-you-can-play-totally-free-ports-for-the-our-very-own-webpages-having-no-membership-otherwise-downloads-requisite\/","title":{"rendered":"It means you can play totally free ports for the our very own webpages having no membership otherwise downloads requisite"},"content":{"rendered":"

Read on for more information in the free online slots, or scroll up to the top of this site to choose a-game and commence to tackle today. OnlineSlots isn’t really an on-line casino, we’re another online slots comment web site you to definitely rates and reviews web based casinos and you can slot video game.<\/p>\n

Tall technological and inventive milestones have ent off free online headings, evolving all number of years. Such slots uk casino<\/a> organization bring fresh themes, entertaining game play, and you can high RTPs. No packages otherwise registration are needed because of HTML5 technology, ensuring smooth performance towards mobile internet explorer. To tackle free harbors on the web as opposed to getting otherwise registration towards cellphones including apple’s ios and you can Android os are simpler and easy. Let me reveal a listing of one particular bizarre and creative templates ever before encountered within the 100 % free position video game with no indication-right up or log in called for, presenting immediate play.<\/p>\n

If instead you choose totally free spins, you’re going to get five free game and a great \ufffdrich\ufffd reels feature. The latter factor is what sets Weil Vinci Diamonds’ incentive aside from someone else. During this extra, artwork symbols play the role of scatters and can submit profits from anywhere for the panel. The excess wilds needless to say help with mention of claiming big payouts.<\/p>\n

Simply because such revolves are part of the general aspects of the playing games<\/h2>\n

We have been always offering the newest and unbelievable incentives, in addition to free gold coins, free revolves, and daily rewards. Which have much to select from, we all know discover your ideal story book excitement. Simply assemble gold coins because you enjoy \ufffd get enough and you’ll progress one step further! If that’s the case, you will find plenty of authentic slot machines to love, inspired by floors of several well-known house-founded venues. Only the best of the best 100 % free slot machines allow it to be on to that it epic list of top headings.<\/p>\n

Together with the profile provides, Friends People has the benefit of about three added bonus cycles – Drunken Clam, Chicken Strive and you may Lois’ Hot Revolves. The newest secured stacked crazy helps bolster winnings throughout the 100 % free spins. The fresh trivia round is particularly fascinating because enables you to respond to concerns to have quick payouts. Of numerous Dominance position headings are present from the gambling world.<\/p>\n

100 % free spins and you will re-revolves incorporate a supplementary section of thrill to the gameplay and you can earnings. The computer perks much time earn organizations and you can helps make unmarried revolves in a position to of earning several winnings in the succession. Available since 2015, the newest business possess attained its profile because of the concentrating on provides, access to, and rewards of their game. Talk about games features and you will auto mechanics, contrast online game, and attempt them instead of membership or places. You might also such as harbors particularly Asia Coastlines or Dance Keyboards, which offer an identical blend of templates, extra cycles, and you may strong commission aspects.<\/p>\n

Because the a totally free-to-gamble application, you’ll explore a call at-video game money, G-Coins, that just be used in to relax and play. United states people is actually asked, and people who live inside the controlled countries and they are incapable of delight in on the internet genuine-currency gaming. Gambino Slots is completely genuine and available for slots admirers all of the over the world to love.<\/p>\n

Casinogamesonnet also offers more than eight,000 totally free slots without install no membership regarding 150+ company like NetEnt, IGT, and you may Big-time Playing. You’ll secure pros like a no cost money current and a lot more. For each and every spin rewards members having experience things. You’ll earn countless hours from enjoyable and adventure that lighten up your big date. The latest totally free slot machine does not bring real cash or bucks benefits. Eventually, you are welcome to register one of Jackpot Team Casino’s on the web communities, where special advantages are provided so you’re able to professionals.<\/p>\n

These slot templates can be found in the ideal record since players remain coming back on them. Of the understanding these center enjoys, you might rapidly contrast ports and find possibilities that provide the fresh new right equilibrium regarding chance, award, and you will gameplay concept to you personally. Progressive online ports come packed with fun provides made to improve your effective prospective and maintain gameplay fresh. An educated the latest slots incorporate loads of bonus cycles and you may 100 % free revolves getting a worthwhile feel.<\/p>\n

They is different from all other online game with this listing, which are offered at real cash web based casinos. Check out all of our loyal free online harbors web page playing totally free position games which have incentive series no down load no membership expected. Slots that have added bonus cycles is a very popular appeal within All of us online casinos.<\/p>\n

One added bonus may provide additional sets of revolves myself associated with extent you deposit. I have prepared a leap-by-step guide on precisely how to utilize the most typical put-based gambling enterprise 100 % free revolves, which apply at extremely web based casinos. You’ll be able to earn even more revolves because of the landing the right combination regarding symbols. Most online slots games feature an in-games 100 % free spins bonus, causing them to a greatest selection for professionals seeking 100 % free slots which have incentive and free revolves. This type of casinos on the internet 100 % free revolves are offered since the a gift having gamblers’ support and you can have increased wager count.<\/p>\n

If enjoyable free harbors having incentive feature, there are 2 an effective way to trigger they<\/h2>\n

You can twist the newest reels, unlock extra cycles, and gather perks with just a number of taps. You may also join tournaments in which you compete against most other members getting benefits and you will leaderboard places by simply enjoying totally free ports no download needed. Check out of the very most common headings that professionals remain going back in order to, each offering book enjoys, themes, and gameplay appearance. Such team provide creative auto mechanics, fantastic design, and you will novel incentive possess to each and every identity. And thanks to our very own depending-within the gamification program, you can generate advantages, done challenges, and you will register competitions, most of the while playing for enjoyable.<\/p>\n

All free harbors, no-deposit, without membership, offer specific an easy way to double possible payouts because of unique has and you can incentives. From triggering extra rounds so you can triggering unique signs, skills this type of mechanisms can enhance your betting sense and you may significantly raise the payouts. This guide examines certain strategies for finding x2 multipliers in a few prominent, no-download free position video game that have instantaneous gamble have and you may bonus roundsparing 100 % free 3d and you will free videos harbors and no down load shows variations during the gameplay, graphics, and you will consumer experience. Speaking of perfect for players exactly who appreciate a sentimental betting feel. Realize such nine methods for quick enjoy within the totally free ports which have zero download with no membership towards casinogamesonnet.<\/p>\n","protected":false},"excerpt":{"rendered":"

Read on for more information in the free online slots, or scroll up to the top of this site to choose a-game and commence to tackle today. OnlineSlots isn’t really an on-line casino, we’re another online slots comment web site you to definitely rates and reviews web based casinos and\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-126446","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/126446","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=126446"}],"version-history":[{"count":1,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/126446\/revisions"}],"predecessor-version":[{"id":126475,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/126446\/revisions\/126475"}],"wp:attachment":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/media?parent=126446"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/categories?post=126446"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/tags?post=126446"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}