/* 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":111496,"date":"2026-05-25T11:56:42","date_gmt":"2026-05-25T11:56:42","guid":{"rendered":"https:\/\/klecet.edu.in\/alumni\/?p=111496"},"modified":"2026-05-25T11:56:42","modified_gmt":"2026-05-25T11:56:42","slug":"the-main-focus-is-found-on-blogs-that-would-attract-millennials","status":"publish","type":"post","link":"http:\/\/klecet.edu.in\/alumni\/the-main-focus-is-found-on-blogs-that-would-attract-millennials\/","title":{"rendered":"The main focus is found on blogs that would attract Millennials"},"content":{"rendered":"

Already, there is certainly an excellent ing online slots games. Looking for easy but really incredibly funny online game which feature proven motors and you can prominent boosters? Super Joker is an easy install slot providing limit amusement. Therefore, there are not any extra cycles into the punters to utilize here. Sign in at any on-line casino that you choose making a deposit there.<\/p>\n

Mancala Gaming are a great Prague-dependent application seller established in 2019, targeting creating online slots which have enjoyable www.yukon-gold-casino-hr.com<\/a> technicians and you may varied graphic appearances. Mancala Gaming is actually a game developer noted for doing online slots games which have enjoyable layouts and you can obtainable game play. The organization skilfully combines this type of and other technicians for the entertaining slot layouts, together with both popular and you can rarer artwork setup. To store it easy I could you will need to stay glued to pits and you will locations for the following laws of the online game. Sinful Center goes up so you can 5,000x risk on one spin, which is punchy sufficient to keep myself concentrated throughout the added bonus cycles and you can Streaming Reels lines.<\/p>\n

When half a dozen pouches for the both sides of one’s board was blank, the new rocks (inside the for every shop) was measured, plus the champ is proclaimed. Fortunately you’ll choose one online, which solid wood Mancala online game panel will make a fine solutions. You need to total the brand new stones for the per player’s store when this happens. The video game was starred in many different nations, along with Europe, The usa, and you may Africa.<\/p>\n

We shall run launching one to how to gamble Mancala, allowing you to speak about an age-dated games you to resonates into the modern betting sensibilities away from the present female. With an effective pries and you can chop harbors, Mancala Gambling delivers a diverse array of layouts featuring in order to appeal to players’ choices. Which unwavering dedication to athlete defense, safeguards, and you will protection makes Mancala Gambling Gambling enterprises a well liked choices certainly one of discerning users seeking to an exceptional and you will care and attention-free betting feel. Members normally with certainty drench by themselves inside an environment of captivating activity, realizing that Mancala Betting Gambling enterprises prioritize its really-are.<\/p>\n

Introduced towards , that it slot is a great mixture of nostalgia and you can modern betting excitement. With a method volatility level, \ufffdPublication off Riches\ufffd strikes an equilibrium ranging from repeated gains and higher advantages, appealing to a varied directory of users. The new game’s female design and you can immersive graphics create a strange atmosphere, capturing players’ interest as they continue an exciting adventure. Somewhat, if you are jackpot games is yet , become brought, the fresh new vendor seems the capability of starting fulfilling online game having large winning potential. While you are its interest remains for the taking a wide selection of pleasant gambling games, competition occurrences commonly part of the latest choices.<\/p>\n

During the a-game for example Chess, you’ll find 5 otherwise six movements to prefer to begin by, all of these features their own positives. This will home your past portion straight into the store, which means you could get an extra change. Each means contained in this guide is certainly going to your the prospective of getting as much stones too into your store. The objective of Mancala is to find a lot more stones into your shop than just their opponent (the top gap at the conclusion of the fresh board). You have got to work facing your own adversary to figure out how to find as many rocks on the shop to. When you’re to your protection, a good method is to distribute the rocks through your pits round the your own region of the Mancala board by moving the new rocks on your own much remaining side.<\/p>\n

Members can find Mancala Gaming titles within better online casinos including FreshBet and you can Morespin. You’ll find more than 90 harbors to choose from, and you can the fresh online game are set in the newest inventory at the over 20 titles per year. The new studio has established an extensive set of high-top quality videos ports having twenty-three, four, 5, and you may 7 reels that will attract the users. The group about the business includes educated community professionals which all the express a similar attention to own starting ining items.<\/p>\n

Put the Mancala panel between the two users so each athlete enjoys 6 servings facing them as well as their Mancala glass to its best. People stand on the board between to ensure six servings face them, and their Mancala is to try to ideal. Mancala is a great family games for everyone decades six and you may upwards because it’s strategic enough to be fun having adults, yet simple enough getting kids to help you with ease discover ways to gamble. The simple legislation succeed obtainable as the means provides they enjoyable. Mancala is a great informative game that helps students routine relying, build proper thought, and you may boost considered skills. Habit against AI competitors from the broadening difficulty accounts to construct the proper convinced.<\/p>\n

These paylines are pretty straight forward yet , good at delivering consistent rewards through the both base and you may added bonus game. The maximum earn during the Water History was 5000 times your own total wager, making it extremely satisfying inside incentive cycles. Built with modern technology at heart, Sea Heritage works effortlessly across most of the major products as well as computer systems, smartphones, and you will pills. Players will delight in the brand new thrill off randomly chosen broadening symbols throughout the Free Spins, incorporating unpredictability and you may big-win potential to the bullet.<\/p>\n

At the end of each row are a more impressive game hole titled mancalas otherwise locations<\/h2>\n

Thus users can also enjoy a soft and you can immersive gaming sense whatever the equipment it choose to use. All that is required is a steady net connection and you may availableness to the webpages as a consequence of people fundamental internet browser. From the Gamble Fortuna Gambling enterprise, players can certainly access slot machines of Mancala Betting to their cell phones without the need to download and run additional software. The big online slots regarding Mancala of the payout dimensions range from the after the servers. All online slots games from Mancala Gaming has demo types, allowing gamblers to learn everything about the game play, enjoys, and you will winnings. The fresh theoretical return to member (RTP) of your provider’s slot machines is decided from the 95%.<\/p>\n

Broadening significantly, Mancala is actually extending the slot portfolio daily and you will operates inside the numerous online casinos. Found in the investment town of Prague, the business has produced 80+ advanced online slots. Specifically, the new Prague-centered brand name concentrates on chance online game including ports merely.<\/p>\n

Once you reach finally your store, you could potentially put one stone inside<\/h2>\n

Plans which have for example preferred firms that has progressive aggregator programs make it Mancala to spreading their content quicker and efficiently. That have a giant selection of video game from the very beginning aided one software vendor to be noticed from the more knowledgeable companies. Research company focused on familiar slot formations, conventional gambling enterprise build, and you will evergreen reel framework. Our very own databases will bring a technical article on low-slot gambling, focusing on house boundary transparency and you can multiplier reason.<\/p>\n","protected":false},"excerpt":{"rendered":"

Already, there is certainly an excellent ing online slots games. Looking for easy but really incredibly funny online game which feature proven motors and you can prominent boosters? Super Joker is an easy install slot providing limit amusement. Therefore, there are not any extra cycles into the punters to utilize\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-111496","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/111496","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=111496"}],"version-history":[{"count":1,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/111496\/revisions"}],"predecessor-version":[{"id":111497,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/111496\/revisions\/111497"}],"wp:attachment":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/media?parent=111496"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/categories?post=111496"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/tags?post=111496"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}