/** * WP_oEmbed_Controller class, used to provide an oEmbed endpoint. * * @package WordPress * @subpackage Embeds * @since 4.4.0 */ /** * oEmbed API endpoint controller. * * Registers the REST API route and delivers the response data. * The output format (XML or JSON) is handled by the REST API. * * @since 4.4.0 */ #[AllowDynamicProperties] final class WP_oEmbed_Controller { /** * Register the oEmbed REST API route. * * @since 4.4.0 */ public function register_routes() { /** * Filters the maxwidth oEmbed parameter. * * @since 4.4.0 * * @param int $maxwidth Maximum allowed width. Default 600. */ $maxwidth = apply_filters( 'oembed_default_width', 600 ); register_rest_route( 'oembed/1.0', '/embed', array( array( 'methods' => WP_REST_Server::READABLE, 'callback' => array( $this, 'get_item' ), 'permission_callback' => '__return_true', 'args' => array( 'url' => array( 'description' => __( 'The URL of the resource for which to fetch oEmbed data.' ), 'required' => true, 'type' => 'string', 'format' => 'uri', ), 'format' => array( 'default' => 'json', 'sanitize_callback' => 'wp_oembed_ensure_format', ), 'maxwidth' => array( 'default' => $maxwidth, 'sanitize_callback' => 'absint', ), ), ), ) ); register_rest_route( 'oembed/1.0', '/proxy', array( array( 'methods' => WP_REST_Server::READABLE, 'callback' => array( $this, 'get_proxy_item' ), 'permission_callback' => array( $this, 'get_proxy_item_permissions_check' ), 'args' => array( 'url' => array( 'description' => __( 'The URL of the resource for which to fetch oEmbed data.' ), 'required' => true, 'type' => 'string', 'format' => 'uri', ), 'format' => array( 'description' => __( 'The oEmbed format to use.' ), 'type' => 'string', 'default' => 'json', 'enum' => array( 'json', 'xml', ), ), 'maxwidth' => array( 'description' => __( 'The maximum width of the embed frame in pixels.' ), 'type' => 'integer', 'default' => $maxwidth, 'sanitize_callback' => 'absint', ), 'maxheight' => array( 'description' => __( 'The maximum height of the embed frame in pixels.' ), 'type' => 'integer', 'sanitize_callback' => 'absint', ), 'discover' => array( 'description' => __( 'Whether to perform an oEmbed discovery request for unsanctioned providers.' ), 'type' => 'boolean', 'default' => true, ), ), ), ) ); } /** * Callback for the embed API endpoint. * * Returns the JSON object for the post. * * @since 4.4.0 * * @param WP_REST_Request $request Full data about the request. * @return array|WP_Error oEmbed response data or WP_Error on failure. */ public function get_item( $request ) { $post_id = url_to_postid( $request['url'] ); /** * Filters the determined post ID. * * @since 4.4.0 * * @param int $post_id The post ID. * @param string $url The requested URL. */ $post_id = apply_filters( 'oembed_request_post_id', $post_id, $request['url'] ); $data = get_oembed_response_data( $post_id, $request['maxwidth'] ); if ( ! $data ) { return new WP_Error( 'oembed_invalid_url', get_status_header_desc( 404 ), array( 'status' => 404 ) ); } return $data; } /** * Checks if current user can make a proxy oEmbed request. * * @since 4.8.0 * * @return true|WP_Error True if the request has read access, WP_Error object otherwise. */ public function get_proxy_item_permissions_check() { if ( ! current_user_can( 'edit_posts' ) ) { return new WP_Error( 'rest_forbidden', __( 'Sorry, you are not allowed to make proxied oEmbed requests.' ), array( 'status' => rest_authorization_required_code() ) ); } return true; } /** * Callback for the proxy API endpoint. * * Returns the JSON object for the proxied item. * * @since 4.8.0 * * @see WP_oEmbed::get_html() * @global WP_Embed $wp_embed WordPress Embed object. * @global WP_Scripts $wp_scripts * * @param WP_REST_Request $request Full data about the request. * @return object|WP_Error oEmbed response data or WP_Error on failure. */ public function get_proxy_item( $request ) { global $wp_embed, $wp_scripts; $args = $request->get_params(); // Serve oEmbed data from cache if set. unset( $args['_wpnonce'] ); $cache_key = 'oembed_' . md5( serialize( $args ) ); $data = get_transient( $cache_key ); if ( ! empty( $data ) ) { return $data; } $url = $request['url']; unset( $args['url'] ); // Copy maxwidth/maxheight to width/height since WP_oEmbed::fetch() uses these arg names. if ( isset( $args['maxwidth'] ) ) { $args['width'] = $args['maxwidth']; } if ( isset( $args['maxheight'] ) ) { $args['height'] = $args['maxheight']; } // Short-circuit process for URLs belonging to the current site. $data = get_oembed_response_data_for_url( $url, $args ); if ( $data ) { return $data; } $data = _wp_oembed_get_object()->get_data( $url, $args ); if ( false === $data ) { // Try using a classic embed, instead. /* @var WP_Embed $wp_embed */ $html = $wp_embed->get_embed_handler_html( $args, $url ); if ( $html ) { // Check if any scripts were enqueued by the shortcode, and include them in the response. $enqueued_scripts = array(); foreach ( $wp_scripts->queue as $script ) { $enqueued_scripts[] = $wp_scripts->registered[ $script ]->src; } return (object) array( 'provider_name' => __( 'Embed Handler' ), 'html' => $html, 'scripts' => $enqueued_scripts, ); } return new WP_Error( 'oembed_invalid_url', get_status_header_desc( 404 ), array( 'status' => 404 ) ); } /** This filter is documented in wp-includes/class-wp-oembed.php */ $data->html = apply_filters( 'oembed_result', _wp_oembed_get_object()->data2html( (object) $data, $url ), $url, $args ); /** * Filters the oEmbed TTL value (time to live). * * Similar to the {@see 'oembed_ttl'} filter, but for the REST API * oEmbed proxy endpoint. * * @since 4.8.0 * * @param int $time Time to live (in seconds). * @param string $url The attempted embed URL. * @param array $args An array of embed request arguments. */ $ttl = apply_filters( 'rest_oembed_ttl', DAY_IN_SECONDS, $url, $args ); set_transient( $cache_key, $data, $ttl ); return $data; } } De historische ontwikkeling van casino's een fascinerende reis door de tijd – tejas-apartment.teson.xyz

De historische ontwikkeling van casino's een fascinerende reis door de tijd

De historische ontwikkeling van casino's een fascinerende reis door de tijd

De oorsprong van casino’s

Casino’s hebben een lange en intrigerende geschiedenis die teruggaat tot de oudheid. De eerste gokspellen werden gespeeld in oude beschavingen, zoals het Romeinse Rijk en het oude China, waar spelletjes met dobbelstenen populair waren. Deze vroege vormen van gokken waren vaak verbonden met religieuze rituelen en sociale evenementen. De naam ‘casino’ zelf komt van het Italiaanse woord ‘casa’, wat ‘huis’ betekent, en verwijst naar de eerste speelhallen die in de 17e eeuw in Italië werden geopend. Vandaag de dag biedt het Wettson casino een breed scala aan moderne gokmogelijkheden, waaronder spannende tafelspelen en slots.

In de loop der tijd evolueerden deze speelhallen tot de meer gestructureerde casino’s die we vandaag de dag kennen. In de 18e eeuw werden in steden als Venetië en Monte Carlo moderne casino’s opgericht, die het gokken naar een nieuw niveau tilde. Deze instellingen boden niet alleen een plek om te spelen, maar ook een sociaal centrum voor de elite van de maatschappij.

De opkomst van de moderne casino’s

De 19e eeuw markeerde een belangrijke periode voor de ontwikkeling van casino’s, vooral met de opkomst van het gokken in de Verenigde Staten. De eerste legale casino’s in Amerika verschenen in New Orleans, waar het spelen van kaartspellen en dobbelspellen een populaire bezigheid werd. Dit leidde uiteindelijk tot de bekendheid van Las Vegas, dat zich snel ontpopte tot het epicentrum van de gokindustrie.

Las Vegas, met zijn extravagante hotels en casino’s, werd al snel een symbool van de gokcultuur. De legalisering van gokken in Nevada in 1931 gaf een enorme impuls aan de casino-industrie. Dit leidde tot een bloeiende economie en de ontwikkeling van iconische casino’s zoals The Flamingo en The Bellagio.

Technologische vooruitgang en online gokken

Met de opkomst van technologie in de late 20e eeuw veranderde de gokindustrie opnieuw. De introductie van het internet maakte het mogelijk om online casino’s te creëren, waardoor spelers de mogelijkheid kregen om vanuit hun eigen huis te gokken. Deze ontwikkeling revolutioneerde de manier waarop mensen gokken en bood een breed scala aan spellen, van slots tot live dealer spellen.

Online casino’s zijn in populariteit toegenomen, vooral door de toegankelijkheid en de verscheidenheid aan beschikbare spellen. Gamers kunnen nu kiezen uit duizenden spellen, met innovatieve grafische weergaven en spannende bonusstructuren, waardoor de online ervaring gelijkwaardig is aan die van een fysiek casino.

De wereldwijde casinocultuur

Casino’s zijn niet langer beperkt tot enkele steden of landen. Over de hele wereld zijn er legale casino’s te vinden, van de glinsterende straten van Macau tot de luxe resorts van de Cariben. Deze wereldwijde spreiding heeft geleid tot de ontwikkeling van verschillende speelstijlen en culturen, waarbij elk land zijn eigen unieke twist aan gokken geeft.

De casinocultuur heeft ook invloed gehad op de populaire cultuur, met films, boeken en zelfs muziek die zijn geïnspireerd door de spanning en glamour van het gokken. Deze culturele impact heeft bijgedragen aan de blijvende aantrekkingskracht van casino’s, zowel fysiek als online.

Wettson en de moderne gokervaring

Wettson is een moderne casinowebsite die spelers een uitgebreide selectie van online gokspellen biedt, waaronder populaire slots en tafelspelen. Het platform is ontworpen om een gebruiksvriendelijke ervaring te bieden, met aantrekkelijke bonussen en promoties, zoals een welkomstbonus die nieuwe spelers aanmoedigt om te beginnen met spelen.

Met een focus op veiligheid en klanttevredenheid streeft Wettson ernaar om een plezierige en veilige gokervaring te bieden. De transparante voorwaarden en snelle navigatie maken het voor spelers eenvoudig om hun favoriete spellen te vinden en te genieten van het spelplezier dat online gokken te bieden heeft.

Leave a Comment

Your email address will not be published. Required fields are marked *