/**
* 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;
}
}
The post Bezpečné Zahraniční Casino Jak Vybrat To Pravé pro Vás first appeared on .
]]>
V dnešní době, kdy se online hazard stává stále populárnějším, je důležité mít na paměti, jak vybrat bezpečné zahraniční casino, které bude splňovat vaše požadavky na bezpečnost, férovost a kvalitu her. V této příloze se zaměříme na klíčové faktory, které byste měli vzít v úvahu při výběru online casina, abyste si mohli být jisti, že vaše herní zkušenosti budou nejen zábavné, ale také bezpečné.
Při hledání bezpečného zahraničního casina je prvním a nejdůležitějším krokem ověření, zda má kasino platnou licenci. Licencování zajišťuje, že kasino musí dodržovat přísná pravidla a standardy, které chrání hráče. Nejznámějšími licenčními orgány jsou například Malta Gaming Authority, UK Gambling Commission, nebo Gibraltar Regulatory Authority. Kasino bez platné licence je často neseriózní a může představovat riziko pro vaše peníze.
Dalším důležitým aspektem je úroveň zabezpečení, kterou kasino nabízí. Ujistěte se, že webové stránky kasina používají šifrování SSL, což znamená, že vaše osobní a finanční údaje budou chráněny. Mnoho důvěryhodných kasin také nabízí informace o svých bezpečnostních protokolech na svých stránkách, což vám může pomoci cítit se bezpečněji při hraní.
Skvělá nabídka her je dalším znakem kvalitního zahraničního kasina. Při výběru kasina se ujistěte, že nabízí širokou škálu her, jako jsou automaty, stolní hry, live dealer hry a další. Důvěryhodná kasina také spolupracují s renomovanými poskytovateli herního softwaru, jako jsou Microgaming, NetEnt nebo Evolution Gaming. To zajistí, že hry budou spravedlivé a kvalitně zpracované.
Bezpečné a seriózní zahraniční kasina často nabízejí atraktivní bonusy a promo akce pro nové i stávající hráče. Před registrací však pečlivě přečtěte podmínky spojené s těmito bonusy. Zkontrolujte, zda existují férové požadavky na protočení a jaké hry lze s bonusovými prostředky hrát. Vždy je dobré porovnat bonusy mezi různými kasiny, abyste našli tu nejlepší nabídku.
Důležitým faktorem při hodnocení zahraničního kasina je také úroveň zákaznické podpory. Dobrý kasino by mělo nabízet několik možností kontaktu, jako jsou živý chat, e-mail a telefonní podpora. Ideální je také poskytovat služby zákaznické podpory v několika jazycích, včetně češtiny, aby byla zajištěna snadná komunikace. Důležité je také ověřit, jak rychle a efektivně kasino reaguje na dotazy a problémy hráčů.
Bezpečné zahraniční kasino by mělo nabízet různé možnosti plateb, které umožňují hráčům snadné a rychlé vklady a výběry. Zkontrolujte, zda kasino podporuje populární platební metody, jako jsou kreditní karty, eWallety (PayPal, Skrill, Neteller) a bankovní převody. Je také důležité zjistit, jak rychle se vyřizují výběry a zda kasino účtuje nějaké poplatky za transakce.
Všechna kvalitní kasina by měla mít intuitivní a snadno ovladatelné rozhraní. Mnoho hráčů dnes preferuje hraní na mobilních zařízeních, takže je dobré zkontrolovat, zda kasino nabízí mobilní verzi nebo dokonce mobilní aplikaci, která vám umožní hrát vaše oblíbené hry kdykoliv a kdekoliv.
Neblahý dopad hazardu na zdraví jednotlivců je realitou, a proto spolehlivá kasina podporují zodpovědné hraní. Ujistěte se, že vybrané kasino má dostupné nástroje pro sebetestování a limity, které pomohou hráčům kontrolovat své návyky. Dobre strukturované sekce věnované zodpovědnému hraní nabízí pomoc i kontakty na organizace, které se tímto problémem zabývají.
Výběr bezpečného zahraničního kasina může být náročný úkol, ale pokud budete mít na paměti výše uvedené faktory, můžete si býti jisti, že uděláte informované rozhodnutí. Vždy je dobré věnovat čas důkladnému výzkumu a porovnání různých kasin. Bezpečné zahraniční casino vám umožní užít si hazardní hry bez obav o svou bezpečnost a spravedlnost her.
The post Bezpečné Zahraniční Casino Jak Vybrat To Pravé pro Vás first appeared on .
]]>