/* 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":94714,"date":"2026-05-23T23:19:32","date_gmt":"2026-05-23T23:19:32","guid":{"rendered":"https:\/\/klecet.edu.in\/alumni\/?p=94714"},"modified":"2026-05-23T23:19:33","modified_gmt":"2026-05-23T23:19:33","slug":"attack-protection-system-access-refused","status":"publish","type":"post","link":"http:\/\/klecet.edu.in\/alumni\/attack-protection-system-access-refused\/","title":{"rendered":"Attack Protection System Access Refused"},"content":{"rendered":"

Join fellow members, express the wins, and enjoy the friendly banter with these vibrant gaming area. Very, let\u2019s plunge for the great world of online slots. Which have a thorough group of games, in addition to classic slots and fun modern jackpots, there is something in order to tickle every person’s prefer. For individuals who\u2019re seeking the most readily useful online slots, you\u2019ve strike the jackpot.<\/p>\n

This is a build which enables to possess near-unlimited differences, in both regards to artwork themes and game play. Most frequently step 3-reel slots element a total of 5 paylines, and some of those online game allow you to put your favorite number of profitable combos. Due to this dated-fashioned slots are sometimes also known as fruits servers! When you look at the Ban weeks these types of very early slots was basically modified to reveal to you chewing gum because the honours, toward symbols substituted for the fresh new good fresh fruit icons you can still come across to the many 3-reel harbors. The brand new Independence Bell server was an instant hit, instantaneously encouraging an entire list of imitators. This can lead to of several online slots games United kingdom players to help you inquire in regards to the differences when considering this type of game.<\/p>\n

See the 5 reel slot machines book, learn how to enjoy and play some of the best totally free 5 reel harbors on the web! As a standard notice, it\u2019s fair to declare that the five reel slots is generally more appealing versus step three reel servers. Specific online slots get alternatively feature pick-you to definitely bonuses, growing reels, or modern aspects one develop since you enjoy.<\/p>\n

One of the recommended an approach to play for totally free is via getting online slots 100 percent free spins no deposit. Our local casino advantages has give-selected an informed 5 reel online slots games as you are able to play which have real money. There’ve been a large influx out of Peter and Sons gambling enterprise web sites, while the harbors he has put out have been big hits certainly one of United kingdom members. Nearly every games provider has many 5 reel slots to own you to enjoy. All these video game features left the same visual habits as men and women that-equipped bandits out of dated, including the symbols and video game layouts.<\/p>\n

But regardless of the highest winnings, the chances of the fresh jackpot dropping was straight down. The bigger the newest jackpot as well as the high just how many reels, the higher the new profits. To relax and play on fruits servers online is similar to the during the-person local casino form of a comparable game. Company result in the possibilities amicable towards the members to enjoy all twist.<\/p>\n

The new proclivity of games inside the area now, renders this program a clinical that for these interested in an enthusiastic easy-to-play adult amusement choice, additionally the steeped assortment of game offered on line attracts members to help you was their chance while relaxing inside their most comfortable \u0985\u09a8\u09b2\u09be\u0987\u09a8 \u0995\u09cd\u09af\u09be\u09b8\u09bf\u09a8\u09cb Chicken Royal<\/a> couch in the domestic. Although it is possible in order to however come across a few electromechanical five reel servers inside the residential property-depending gambling enterprises; 5 reel movies ports may be the most widely used concept starred today. Video slot computers have no swinging bits; the fresh new spinning reels try an illusion developed by premium graphics and you will voice. Casinos you will definitely fundamentally offer high jackpots with full confidence to those and make lower wagers, realizing that chances best the house because these jackpots manage unlikely struck more than once most of the 15 million spins. The money Honey was able to pay a maximum of five-hundred coins to just one winner immediately, and that innovation try a knock on the societal. Just like the odds of good jackpot are hit was highest when the number of it is possible to combinations which might be strike try brief, it actually was high-risk organization having casinos provide high profits to have effective combinations within these hosts.<\/p>\n

Look our alphabetical position directory where you will get countless slot game, plus fresh fruit computers and you can scratch cards online. Greentube try valued for the higher variance harbors, while the picture may tend to take a look out-of-date. When the this new symbols create a winning combination, your own payouts will increase several times. The fresh new position lets you earn some 100 percent free spins with various multipliers and a simple extra. The brand new position and offers the opportunity to secure a sequence of free revolves that have a quintupled multiplier for your profits.<\/p>\n

All the information on Respinix.com is offered to own informative and you may activity motives just. This type of online game explore play-currency credits and so are intended for recreation and educational purposes simply. It is a very good way knowing the guidelines, take to playing strategies, and determine if you value a game title ahead of to try out it to have real cash someplace else. These are will with non-good fresh fruit signs particularly Bells, Taverns, and you may lucky matter Sevens, and that generally speaking represent the best-really worth icons into the vintage online game. Fundamentally, of several fruit hosts draw determination in the completely new floor online game, to make Las vegas-inspired ports a suitable exploration for these looking to one to conventional gambling enterprise ambiance. While doing so, the new Joker ports class isolates one of the most legendary symbols of fresh fruit computers and frequently centers whole online game around its setting because a wild or element produce.<\/p>\n

It indicates participants that like to experience online slots to own small bet and the ones which have most deep pockets normally twist up particular juicy wins. They\u2019ve and attempted to promote a feeling of luxury with a gold symbol, however it doesn\u2019t merge on the total framework and you can motif. Good capturing magenta build fulfills brand new fixed records, with symbols asleep on yellow reels. We\u2019lso are speculating the fresh new creative team on Shuffle Grasp were looking to perform a sense of elegance regarding type of Most Fruity. Packing antique icons such cherries, lemons, oranges, plums, grapes and you can watermelons with the reels, Extremely Fruity comes with certain happy 7s and you may huge gleaming diamonds. That\u2019s what you\u2019ll become aiming for each time you twist the fresh new sweet reels extremely Fruity casino slot games.<\/p>\n

So it mechanism can result in numerous outcomes on one spin, maintaining a vibrant rate while the multipliers raise which have straight avalanches. The vibrant photos and you will easy game play try tempting, when you find yourself expanding wilds put excitement. Another great feature of 5 reel ports is the level of extra elements available, and additionally free spins, incentive series, otherwise insane symbols that could include an extra level of pleasure. 5 reel slot machines try a kind of on the web slot games that have four straight sections, named reels, one spin once you gamble. Regardless of if slots could offer fascinating and you will intriguing gameplay, you have to remember to play sensibly getting an enthusiastic enjoyable betting experience.<\/p>\n

Enter the email address your made use of after you entered therefore\u2019ll deliver directions to reset your own code. Particular online game offer loads when it comes to incentives, and others don\u2019t. Higher rollers might be looking games having straight down volatility once the these promote bigger honors, simply shorter appear to.<\/p>\n","protected":false},"excerpt":{"rendered":"

Join fellow members, express the wins, and enjoy the friendly banter with these vibrant gaming area. Very, let\u2019s plunge for the great world of online slots. Which have a thorough group of games, in addition to classic slots and fun modern jackpots, there is something in order to tickle every\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-94714","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/94714","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=94714"}],"version-history":[{"count":1,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/94714\/revisions"}],"predecessor-version":[{"id":94715,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/94714\/revisions\/94715"}],"wp:attachment":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/media?parent=94714"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/categories?post=94714"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/tags?post=94714"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}