/** * 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; } } Kulturella perspektiv på spelande En djupdykning i traditioner och normer -

Kulturella perspektiv på spelande En djupdykning i traditioner och normer

Kulturella perspektiv på spelande En djupdykning i traditioner och normer

Historiska rötter till spelande

Spelande har funnits i olika former i århundraden, och dess rötter sträcker sig tillbaka till antikens kulturer. I det gamla Kina spelade man tärningar, och i Egypten användes spelmarker för att underhålla sig under ceremonier. Dessa tidiga exempel visar hur spelande har varit en del av människans sociala liv, ofta kopplat till festligheter och religiösa ritualer. Idag kan man även spela på casino utan spelpaus, vilket ger spelare fler alternativ och möjligheter.

I många kulturer var spelande även ett sätt att föra samman människor. Det kunde vara en social aktivitet där familj och vänner samlades, vilket förstärkte gemenskapen. Traditionerna kring spelande har genom tiderna förändrats, men den grundläggande funktionen som en social aktivitet kvarstår.

Spelande i olika kulturer

Olika kulturer har olika syn på spelande, och dessa perspektiv formar hur spelande uppfattas och praktiseras. I vissa samhällen är spelande en accepterad del av livet, medan det i andra kan ses som moraliskt tveksamt eller rentav skadligt. I delar av Asien, till exempel, är hasardspel en djupt rotad tradition, medan många västerländska kulturer har en mer skeptisk syn på det.

Traditionella spel som mahjong i Kina eller poker i USA har också sina egna unika normer och regler. Dessa spel speglar kulturella värderingar och traditioner, vilket gör att spelande ofta blir en spegelbild av samhällsnormerna. I vissa kulturer kan spelande vara en tecken på status, medan det i andra kan leda till stigma.

Normer och regler kring spelande

Normerna kring spelande kan variera kraftigt beroende på kultur och samhälle. I vissa kulturer regleras spelande strängt genom lagar och föreskrifter, medan andra har mer avslappnade attityder. Dessa normer kan påverka hur människor engagerar sig i spelande, från casual spelande till mer allvarliga insatser.

Det finns också en skillnad mellan traditionella former av spel och moderna former som online-spelande. Digitaliseringen har skapat nya normer och regler, vilket ställer traditionella värderingar på prov. Hur dessa normer utvecklas och anpassas kan ge insikter i samhällets föränderliga värderingar kring spelande.

Spelandets påverkan på samhället

Spelande har en komplex påverkan på samhällen, både positiva och negativa. Å ena sidan kan spelande främja sociala interaktioner och ekonomisk tillväxt, särskilt genom turism och skapande av arbetstillfällen. Många casinon och spelplatser är viktiga kulturella och ekonomiska resurser i vissa regioner.

Å andra sidan kan överdrivet spelande leda till allvarliga sociala problem, inklusive beroende och ekonomiska svårigheter. Att förstå dessa konsekvenser är avgörande för att skapa en balans mellan att njuta av spelande och att hantera de risker som det kan medföra. Genom att studera kulturella perspektiv kan vi bättre förstå dessa dynamiker.

Om vår webbplats

Vår webbplats syftar till att erbjuda en djupgående förståelse för spelande ur olika kulturella perspektiv. Genom att analysera traditioner och normer hoppas vi kunna bidra till en mer informerad diskussion om spelande i dagens samhälle. Vi strävar efter att ge våra läsare insikter och verktyg för att navigera i den komplexa världen av spelande.

Vi tror att kunskap är makt, och genom att utforska de kulturella aspekterna av spelande kan vi bättre förstå dess inverkan på individ och samhälle. Tillsammans kan vi skapa en mer medveten och ansvarsfull spelkultur.

Leave a Reply

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