/* 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":118253,"date":"2026-05-25T13:02:52","date_gmt":"2026-05-25T13:02:52","guid":{"rendered":"https:\/\/klecet.edu.in\/alumni\/?p=118253"},"modified":"2026-05-25T13:02:53","modified_gmt":"2026-05-25T13:02:53","slug":"away-from-mythology-and-history-in-order-to-video-clips-and-you-will-nature-theres-a-themed-position-video-game-for-everybody","status":"publish","type":"post","link":"http:\/\/klecet.edu.in\/alumni\/away-from-mythology-and-history-in-order-to-video-clips-and-you-will-nature-theres-a-themed-position-video-game-for-everybody\/","title":{"rendered":"Away from mythology and history in order to video clips and you will nature, there’s a themed position video game for everybody"},"content":{"rendered":"

This type of themes not just help the visual and auditory experience but also add breadth for the gameplay, making for each and every class much more immersive and you will fun. Recognized for the simple game play and vintage attention, these video slot ports give a Videoslots app<\/a> straightforward yet , fun playing experience. Videos harbors would be the progressive evolution off position games, giving possess including scatters, wilds, and several paylines you to augment overall gameplay. The straightforward gameplay and you can less paylines make classic harbors available for beginners and you can relaxed people, letting them gain benefit from the online game without the need for state-of-the-art tips.<\/p>\n

Concurrently, taking advantage of casino games units such as to try out day notifications and you can losings maximum configurations will help maintain in charge playing patterns. The necessity of incentive rounds is dependant on their capability so you can discover superior icons that come with larger multipliers to possess large profits. Some harbors on the web British use class pay auto mechanics, enabling users to help you earn of the obtaining coordinating signs everywhere into the grid, including another type of dimensions on the gameplay. Online slots real cash British is actually packed with individuals technicians and you may have one to subscribe a different and engaging playing experience. Megaways Uk harbors on line provides transformed the net slot gaming experience employing book dynamic reel program.<\/p>\n

Autoplay was designed to cease below particular requirements, and incentive bullet activation, reaching a predetermined losses restriction (a switch responsible gambling size in the uk), or perhaps the award out of a progressive jackpot. All of the Real time Gaming’s Haphazard Count Turbines (RNGs) read uniform, separate certification because of the certified analysis laboratories, especially eCOGRA and you may Betting Laboratories Around the world (GLI). This can be clear in the titles particularly Fishin’ Madness, and this exemplify RTG’s commitment to sturdy tech fundamentals and you can user friendly game play, making sure legitimate and you may entertaining recreation across the varied programs. Live Playing (RTG) preserves a critical, long-updates presence for the online position business, notably impacting the united kingdom market.<\/p>\n

Offer ongoing but should be accomplished within this seven days out of claim<\/h2>\n

While the a number one supplier out of online casino games, MansionCasino takes satisfaction during the providing you a fantastic every-bullet feel every time you log on and you can enjoy. The service people is obtainable 24\/7 thru live talk on the website and also by email address at the email secure. I empowered our team to help you swiftly take care of technical facts otherwise efficiently handle guaranteeing accounts with no slow down. I customized Donbet to incorporate a completely frictionless cashier sense, enabling you to appeal available on your game play with no so many worries.<\/p>\n

The fresh new go back stands during the %, organized inside a standard world diversity you to definitely balances a lot of time-label presumption against the enjoyment energy regarding a premier-volatility trip. Used, the strongest consequences commonly arrive when higher-tier signs cluster through the a good duel round, or when a profile time intersects with multipliers. Game Aspects Cash range system Added bonus Element Duel rounds which have multipliers Special Signs Wild, Dollars, Bonus Volatility Profile Highest The dwelling is made to ensure that multipliers change stress for the less however, more significant winnings, aligning towards higher-volatility purpose.<\/p>\n

The industry average are 96%, although ideal on line position payment percentages try 98% and higher<\/h2>\n

Really users see these types of online slots games on the emotional end up being and you may simplistic game play. The bucks heist-themed slot possess lower gaming limitations regarding ?0.01 in order to ? for every single twist, it is therefore a great choice to have funds gamblers. The brand new 100 % free Slide incentive is where the genuine enjoyable initiate, which have an enthusiastic Avalanche ability one is applicable multipliers as high as 15x, resulting in prospective wins away from 37,500x. About fishing excitement, you’ll want to hook up various symbols so you can homes a payment.<\/p>\n

Decide for the, claim & wager ?10+ on the People ACCA or Wager Builder (2+ selections) (minute chance twenty three\/one (4.00)). The newest recreations consumers simply. 18+ Render open to new customers simply which join Promo Code BET40GET20. Free Bets is actually paid back as the Wager Credits and are available for fool around with upon settlement away from wagers so you can value of qualifying deposit.<\/p>\n

To ideal it well, we are usually leading to our online game list, making sure to add our users towards better on the web possibilities. On better and more than preferred harbors towards favorite table games such as blackjack, roulette and you will baccarat, as well as live online casino games! Join 666 Gambling establishment (for individuals who have not already) to experience a few of the most well-known casino games on the internet! This may up coming turn on a complement 3 games where you can probably winnings multipliers interacting with doing 100x! Normal icons which can show up on the new reels become a selection off seafood, and that depict the newest Mixed Will pay.<\/p>\n

Which detailed catalog, paired with a transparent commitment shop in which missions earn you specific rewards, causes it to be more flexible and you can pro-centric interest in the uk. By the completing certain for the-video game pressures, you advances because of ranks and you may earn tokens to invest during the a good devoted shop on the rewards you to definitely amount very on the method. Since the added bonus try energetic, you ought to adhere to the utmost wager laws from ?5 for every twist, otherwise 5% of the extra count, to make certain your winnings are nevertheless legitimate getting a successful detachment. Maximize your advantages from the examining the fresh new \ufffdMissions’ loss prior to rotating to make points for the Bonus Shop shorter.<\/p>\n

The new three-dimensional animated graphics is a good reach that assist the overall game turn on, and its own avalanche system, with growing multipliers, pledges a vibrant game play. Extent your earn depends upon your own stake, the new rareness off icons you match, and you can one incentive possess or multipliers your result in throughout the a go. Such things as 100 % free spins, nuts signs, multipliers, and you can secret pick’em bonuses leave you different options to profit. Check always the fresh during the-online game help diet plan to ensure the fresh new RTP of your own specific type you are to experience prior to betting real cash. This enables you to definitely change typical game play to your particular money having to buy wager-free revolves or customized cashback business. The audience is a big fan of the around three added bonus provides that are the big appeal of the game hence boasts Hurry Express.<\/p>\n

Microgaming launched the latest safari-inspired Super Moolah modern jackpot position in the 2006 to far recognition. These types of games render a genuine all of the-or-nothing experience, emphasising high-exposure, high-reward game play. Giving a different mix of ports and bingo, Slingo allows people spin a position reel generate numbers, that are designated off a timeless bingo-layout grid.<\/p>\n

Here you’ll find not just real cash ports, plus black-jack, web based poker, or any other dining table game, and its alive specialist brands. Several world veterans emerged together inside 2018 to establish this business. Here are some the handpicked list of required British gambling enterprise sites with a real income slots to obtain the solution that is suitable for your. But BTG has truly transformed the industry and you may introduced exclusive Megaways auto mechanic, which provides 243, 1,024, or higher a means to earn, according to the grid structure.<\/p>\n","protected":false},"excerpt":{"rendered":"

This type of themes not just help the visual and auditory experience but also add breadth for the gameplay, making for each and every class much more immersive and you will fun. Recognized for the simple game play and vintage attention, these video slot ports give a Videoslots app straightforward\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-118253","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/118253","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=118253"}],"version-history":[{"count":1,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/118253\/revisions"}],"predecessor-version":[{"id":118255,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/118253\/revisions\/118255"}],"wp:attachment":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/media?parent=118253"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/categories?post=118253"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/tags?post=118253"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}