/* 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":115696,"date":"2026-05-25T12:32:39","date_gmt":"2026-05-25T12:32:39","guid":{"rendered":"https:\/\/klecet.edu.in\/alumni\/?p=115696"},"modified":"2026-05-25T12:32:39","modified_gmt":"2026-05-25T12:32:39","slug":"but-really-you-need-to-know-the-principles-of-your-gambling-establishment-to-check-your-luck-properly","status":"publish","type":"post","link":"http:\/\/klecet.edu.in\/alumni\/but-really-you-need-to-know-the-principles-of-your-gambling-establishment-to-check-your-luck-properly\/","title":{"rendered":"But really, you need to know the principles of your gambling establishment to check your luck properly"},"content":{"rendered":"

MARIE, Towards \ufffd There have been two months remaining in order to allege a good MAXMILLIONS honor value $1 million regarding the Tuesday, Lottery Max mark. MARIE, tonybet<\/a> Towards \ufffd There are 2 months leftover to claim a keen ENCORE honor really worth $ten,000 on Saturday, Lottery Max mark. MARIE, For the \ufffd There are two weeks kept to claim an excellent LOTTARIO award value $359, from the Monday, LOTTARIO draw. MARIE, On the \ufffd There are two months left so you’re able to allege good $ten,000 honor regarding Monday, Lotto six\/forty-two draw.<\/p>\n

PlayOLG Local casino has its designated cellular local casino application that’s complete of enjoyable have, plus entry to best online casino ports, dining table online game and more! And research means and you will category tabs, you will see strain for templates, features, and you will business. The official OLG application provides the really sleek treatment for gamble, having car-log in, individualized notifications, and you may safe cashier consolidation. A sleek Olg Signin sets your one to simply click away from superior ports, tailored bonuses, while the enjoys you adore-cascades, increasing icons, respins, and. Unlock a world of advanced slots, free revolves, and you can private advertisements with an instant, safe Olg Signin.<\/p>\n

Whenever you become a member of the fresh new OLG gambling enterprise, just be sure to realize some basic rules. Simply select the nearby location to your their certified web site and make sure you are good Canadian resident of an appropriate age.<\/p>\n

Most of the a real income wagers and you will victories are given out within the genuine dollars, that will up coming end up being withdrawn towards affirmed savings account. Ontario casinos on the internet don’t offer public incentives in the same way because Rest of Canada gambling enterprises. OLG operates legally contained in this Ontario’s managed iGaming construction that’s merely accessible to users personally based in Ontario old 19 and you will earlier. Game catalogue growth also has improved somewhat in the 2025, jackpot assortment are aggressive, and you may financial laws and regulations try genuinely user-friendly.<\/p>\n

If you miss the discount step, the fresh new spins does not show up<\/h2>\n

To ensure that you just spend that which you promote, explore bucks and leave the newest cards in the home. According to the multiyear price, OLG becomes a proper NHL mate to have activities … OLG now gets an official MLB mate getting wagering thanks to its PROLINE+ … TORONTO, Into the \ufffd Ontario Lottery and you may Gaming Company (OLG) while the National Basketball Organization (NBA) was remembering the fresh new 2022 NBA Write displayed from the Condition Farm because of the announcing that OLG’s PROLINE sportsbook has become an official companion out of the fresh NBA within the Ontario. Claimants which have awards more $one,000 are now able to availableness …<\/p>\n

MARIE, For the \ufffd There have been two weeks kept so you’re able to allege an effective $100,000 ENCORE award on the Wednesday, PICK-twenty-three Night mark. MARIE, Towards \ufffd There are 2 months kept in order to claim a lotto Maximum 2nd award worth $144,943 on the Monday, Lotto Maximum mark. MARIE, Into the \ufffd There have been two weeks remaining in order to claim a $5 million award from the Tuesday, Lotto 6\/44 draw. MARIE, For the \ufffd There are two main months left to claim an excellent $25,000 honor on the Tuesday, Lottery 6\/44 Awesome Mark. MARIE, For the \ufffd There are 2 days remaining to help you allege an enthusiastic ONTARIO 49 second honor really worth $50,000 in the Wednesday, mark.<\/p>\n

The new lobby suggests which games meet the criteria, and also the totally free spins start instantly after you open certainly one of the new checked online game. Your own cashback need to be wagered just after and that is legitimate to have 7 days shortly after it\ufffds granted.<\/p>\n

We are going to discuss the finest provides, readily available game, or other important information regarding OLG Internet casino remark. OLG Local casino are live and you will courtroom within the Ontario, giving new users to sign up and start to experience at the simply local casino established from the province’s specialized gambling payment. Local casino.master is another way to obtain information about casinos on the internet and gambling games, perhaps not subject to people betting driver. A step i revealed on the mission in order to make an international self-exception to this rule program, that’ll succeed insecure players so you’re able to take off its usage of all of the online gambling opportunities. The protection List is the main metric i use to explain the newest trustworthiness, equity, and you will quality of most of the web based casinos inside our databases. We hardly if discover in initial deposit match render, there are no totally free revolves or things provided usually.<\/p>\n

Harbors accept dollars otherwise entry that have dollars really worth titled TITO, or \ufffdsolution during the, solution aside\ufffd<\/h2>\n

Up coming, down load they, register, and start to become towards biometrics to have quick access. Below are a few our very own formal application online Wager Android os otherwise the fresh new Application Shop to have iPhones and iPads. You could potentially operate quickly and you may without having to suppose with OLG advertising since the i secure the code brief and you may clear. As the playthrough is over, loans try released since the bucks that may be withdrawn. After you enter into a code that gives your free revolves, see how much each twist is definitely worth, exactly what slot it\ufffds, and exactly how much you can profit altogether. 2 to 4 minutes 30 days, i publish focused offers with currency incentives, free spins bundles, or entryway tickets value $10 to $fifty.<\/p>\n

It is possible to see just more info on one to position, plus about how precisely this type of software operate in general. You can know hands on, however when money and you may fun is at stake, as to the reasons chance it? We could carry on, nevertheless the area try there’s a lot to learn! You don’t need to bet real cash, however you continue to have the opportunity to find out about they.<\/p>\n

If or not your desire highest volatility otherwise easy, constant classes, discover an Olg slot one hits your own sweet put. Olg provides an excellent curated combination of classic reels and feature-steeped movies titles, all the primed for timely gameplay, piled enjoys, and you will huge-profit potential. Check full terms, eligible games, and you will betting laws and regulations just before stating. Olg Alive Casino captures the newest highest-opportunity getting of a genuine gambling flooring with top-notch investors, clean Hd streams, and you may immediate table access. If you want rotating reels and you may going after thrilling has, Olg Bonuses try your shortcut to help you even more fun time and bigger prospective output.<\/p>\n

OLG are an enthusiastic Ontario government work at agencies providing you with both lottery and betting entertainment to individuals. On the , the players can also be discover the newest lotteries given. It\ufffds a classic destination for gambling establishment enthusiasts, getting a wide range of options to bettors and you may a fantastic gambling sense. The fresh new graphics are clear and you will entertaining, making the playing experience much more immersive. As well as the colour scheme, OLG’s platform also features high-quality image that enhance the complete visual.<\/p>\n","protected":false},"excerpt":{"rendered":"

MARIE, Towards \ufffd There have been two months remaining in order to allege a good MAXMILLIONS honor value $1 million regarding the Tuesday, Lottery Max mark. MARIE, tonybet Towards \ufffd There are 2 months leftover to claim a keen ENCORE honor really worth $ten,000 on Saturday, Lottery Max mark. MARIE,\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-115696","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/115696","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=115696"}],"version-history":[{"count":1,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/115696\/revisions"}],"predecessor-version":[{"id":115697,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/115696\/revisions\/115697"}],"wp:attachment":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/media?parent=115696"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/categories?post=115696"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/tags?post=115696"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}