/** * REST API: WP_REST_Post_Types_Controller class * * @package WordPress * @subpackage REST_API * @since 4.7.0 */ /** * Core class to access post types via the REST API. * * @since 4.7.0 * * @see WP_REST_Controller */ class WP_REST_Post_Types_Controller extends WP_REST_Controller { /** * Constructor. * * @since 4.7.0 */ public function __construct() { $this->namespace = 'wp/v2'; $this->rest_base = 'types'; } /** * Registers the routes for post types. * * @since 4.7.0 * * @see register_rest_route() */ public function register_routes() { register_rest_route( $this->namespace, '/' . $this->rest_base, array( array( 'methods' => WP_REST_Server::READABLE, 'callback' => array( $this, 'get_items' ), 'permission_callback' => array( $this, 'get_items_permissions_check' ), 'args' => $this->get_collection_params(), ), 'schema' => array( $this, 'get_public_item_schema' ), ) ); register_rest_route( $this->namespace, '/' . $this->rest_base . '/(?P[\w-]+)', array( 'args' => array( 'type' => array( 'description' => __( 'An alphanumeric identifier for the post type.' ), 'type' => 'string', ), ), array( 'methods' => WP_REST_Server::READABLE, 'callback' => array( $this, 'get_item' ), 'permission_callback' => '__return_true', 'args' => array( 'context' => $this->get_context_param( array( 'default' => 'view' ) ), ), ), 'schema' => array( $this, 'get_public_item_schema' ), ) ); } /** * Checks whether a given request has permission to read types. * * @since 4.7.0 * * @param WP_REST_Request $request Full details about the request. * @return true|WP_Error True if the request has read access, WP_Error object otherwise. */ public function get_items_permissions_check( $request ) { if ( 'edit' === $request['context'] ) { $types = get_post_types( array( 'show_in_rest' => true ), 'objects' ); foreach ( $types as $type ) { if ( current_user_can( $type->cap->edit_posts ) ) { return true; } } return new WP_Error( 'rest_cannot_view', __( 'Sorry, you are not allowed to edit posts in this post type.' ), array( 'status' => rest_authorization_required_code() ) ); } return true; } /** * Retrieves all public post types. * * @since 4.7.0 * * @param WP_REST_Request $request Full details about the request. * @return WP_REST_Response|WP_Error Response object on success, or WP_Error object on failure. */ public function get_items( $request ) { if ( $request->is_method( 'HEAD' ) ) { // Return early as this handler doesn't add any response headers. return new WP_REST_Response( array() ); } $data = array(); $types = get_post_types( array( 'show_in_rest' => true ), 'objects' ); foreach ( $types as $type ) { if ( 'edit' === $request['context'] && ! current_user_can( $type->cap->edit_posts ) ) { continue; } $post_type = $this->prepare_item_for_response( $type, $request ); $data[ $type->name ] = $this->prepare_response_for_collection( $post_type ); } return rest_ensure_response( $data ); } /** * Retrieves a specific post type. * * @since 4.7.0 * * @param WP_REST_Request $request Full details about the request. * @return WP_REST_Response|WP_Error Response object on success, or WP_Error object on failure. */ public function get_item( $request ) { $obj = get_post_type_object( $request['type'] ); if ( empty( $obj ) ) { return new WP_Error( 'rest_type_invalid', __( 'Invalid post type.' ), array( 'status' => 404 ) ); } if ( empty( $obj->show_in_rest ) ) { return new WP_Error( 'rest_cannot_read_type', __( 'Cannot view post type.' ), array( 'status' => rest_authorization_required_code() ) ); } if ( 'edit' === $request['context'] && ! current_user_can( $obj->cap->edit_posts ) ) { return new WP_Error( 'rest_forbidden_context', __( 'Sorry, you are not allowed to edit posts in this post type.' ), array( 'status' => rest_authorization_required_code() ) ); } $data = $this->prepare_item_for_response( $obj, $request ); return rest_ensure_response( $data ); } /** * Prepares a post type object for serialization. * * @since 4.7.0 * @since 5.9.0 Renamed `$post_type` to `$item` to match parent class for PHP 8 named parameter support. * * @param WP_Post_Type $item Post type object. * @param WP_REST_Request $request Full details about the request. * @return WP_REST_Response Response object. */ public function prepare_item_for_response( $item, $request ) { // Restores the more descriptive, specific name for use within this method. $post_type = $item; // Don't prepare the response body for HEAD requests. if ( $request->is_method( 'HEAD' ) ) { /** This filter is documented in wp-includes/rest-api/endpoints/class-wp-rest-post-types-controller.php */ return apply_filters( 'rest_prepare_post_type', new WP_REST_Response( array() ), $post_type, $request ); } $taxonomies = wp_list_filter( get_object_taxonomies( $post_type->name, 'objects' ), array( 'show_in_rest' => true ) ); $taxonomies = wp_list_pluck( $taxonomies, 'name' ); $base = ! empty( $post_type->rest_base ) ? $post_type->rest_base : $post_type->name; $namespace = ! empty( $post_type->rest_namespace ) ? $post_type->rest_namespace : 'wp/v2'; $supports = get_all_post_type_supports( $post_type->name ); $fields = $this->get_fields_for_response( $request ); $data = array(); if ( rest_is_field_included( 'capabilities', $fields ) ) { $data['capabilities'] = $post_type->cap; } if ( rest_is_field_included( 'description', $fields ) ) { $data['description'] = $post_type->description; } if ( rest_is_field_included( 'hierarchical', $fields ) ) { $data['hierarchical'] = $post_type->hierarchical; } if ( rest_is_field_included( 'has_archive', $fields ) ) { $data['has_archive'] = $post_type->has_archive; } if ( rest_is_field_included( 'visibility', $fields ) ) { $data['visibility'] = array( 'show_in_nav_menus' => (bool) $post_type->show_in_nav_menus, 'show_ui' => (bool) $post_type->show_ui, ); } if ( rest_is_field_included( 'viewable', $fields ) ) { $data['viewable'] = is_post_type_viewable( $post_type ); } if ( rest_is_field_included( 'labels', $fields ) ) { $data['labels'] = $post_type->labels; } if ( rest_is_field_included( 'name', $fields ) ) { $data['name'] = $post_type->label; } if ( rest_is_field_included( 'slug', $fields ) ) { $data['slug'] = $post_type->name; } if ( rest_is_field_included( 'icon', $fields ) ) { $data['icon'] = $post_type->menu_icon; } if ( rest_is_field_included( 'supports', $fields ) ) { $data['supports'] = $supports; } if ( rest_is_field_included( 'taxonomies', $fields ) ) { $data['taxonomies'] = array_values( $taxonomies ); } if ( rest_is_field_included( 'rest_base', $fields ) ) { $data['rest_base'] = $base; } if ( rest_is_field_included( 'rest_namespace', $fields ) ) { $data['rest_namespace'] = $namespace; } if ( rest_is_field_included( 'template', $fields ) ) { $data['template'] = $post_type->template ?? array(); } if ( rest_is_field_included( 'template_lock', $fields ) ) { $data['template_lock'] = ! empty( $post_type->template_lock ) ? $post_type->template_lock : false; } $context = ! empty( $request['context'] ) ? $request['context'] : 'view'; $data = $this->add_additional_fields_to_object( $data, $request ); $data = $this->filter_response_by_context( $data, $context ); // Wrap the data in a response object. $response = rest_ensure_response( $data ); if ( rest_is_field_included( '_links', $fields ) || rest_is_field_included( '_embedded', $fields ) ) { $response->add_links( $this->prepare_links( $post_type ) ); } /** * Filters a post type returned from the REST API. * * Allows modification of the post type data right before it is returned. * * @since 4.7.0 * * @param WP_REST_Response $response The response object. * @param WP_Post_Type $post_type The original post type object. * @param WP_REST_Request $request Request used to generate the response. */ return apply_filters( 'rest_prepare_post_type', $response, $post_type, $request ); } /** * Prepares links for the request. * * @since 6.1.0 * * @param WP_Post_Type $post_type The post type. * @return array Links for the given post type. */ protected function prepare_links( $post_type ) { return array( 'collection' => array( 'href' => rest_url( sprintf( '%s/%s', $this->namespace, $this->rest_base ) ), ), 'https://api.w.org/items' => array( 'href' => rest_url( rest_get_route_for_post_type_items( $post_type->name ) ), ), ); } /** * Retrieves the post type's schema, conforming to JSON Schema. * * @since 4.7.0 * @since 4.8.0 The `supports` property was added. * @since 5.9.0 The `visibility` and `rest_namespace` properties were added. * @since 6.1.0 The `icon` property was added. * * @return array Item schema data. */ public function get_item_schema() { if ( $this->schema ) { return $this->add_additional_fields_schema( $this->schema ); } $schema = array( '$schema' => 'http://json-schema.org/draft-04/schema#', 'title' => 'type', 'type' => 'object', 'properties' => array( 'capabilities' => array( 'description' => __( 'All capabilities used by the post type.' ), 'type' => 'object', 'context' => array( 'edit' ), 'readonly' => true, ), 'description' => array( 'description' => __( 'A human-readable description of the post type.' ), 'type' => 'string', 'context' => array( 'view', 'edit' ), 'readonly' => true, ), 'hierarchical' => array( 'description' => __( 'Whether or not the post type should have children.' ), 'type' => 'boolean', 'context' => array( 'view', 'edit' ), 'readonly' => true, ), 'viewable' => array( 'description' => __( 'Whether or not the post type can be viewed.' ), 'type' => 'boolean', 'context' => array( 'edit' ), 'readonly' => true, ), 'labels' => array( 'description' => __( 'Human-readable labels for the post type for various contexts.' ), 'type' => 'object', 'context' => array( 'edit' ), 'readonly' => true, ), 'name' => array( 'description' => __( 'The title for the post type.' ), 'type' => 'string', 'context' => array( 'view', 'edit', 'embed' ), 'readonly' => true, ), 'slug' => array( 'description' => __( 'An alphanumeric identifier for the post type.' ), 'type' => 'string', 'context' => array( 'view', 'edit', 'embed' ), 'readonly' => true, ), 'supports' => array( 'description' => __( 'All features, supported by the post type.' ), 'type' => 'object', 'context' => array( 'edit' ), 'readonly' => true, ), 'has_archive' => array( 'description' => __( 'If the value is a string, the value will be used as the archive slug. If the value is false the post type has no archive.' ), 'type' => array( 'string', 'boolean' ), 'context' => array( 'view', 'edit' ), 'readonly' => true, ), 'taxonomies' => array( 'description' => __( 'Taxonomies associated with post type.' ), 'type' => 'array', 'items' => array( 'type' => 'string', ), 'context' => array( 'view', 'edit' ), 'readonly' => true, ), 'rest_base' => array( 'description' => __( 'REST base route for the post type.' ), 'type' => 'string', 'context' => array( 'view', 'edit', 'embed' ), 'readonly' => true, ), 'rest_namespace' => array( 'description' => __( 'REST route\'s namespace for the post type.' ), 'type' => 'string', 'context' => array( 'view', 'edit', 'embed' ), 'readonly' => true, ), 'visibility' => array( 'description' => __( 'The visibility settings for the post type.' ), 'type' => 'object', 'context' => array( 'edit' ), 'readonly' => true, 'properties' => array( 'show_ui' => array( 'description' => __( 'Whether to generate a default UI for managing this post type.' ), 'type' => 'boolean', ), 'show_in_nav_menus' => array( 'description' => __( 'Whether to make the post type available for selection in navigation menus.' ), 'type' => 'boolean', ), ), ), 'icon' => array( 'description' => __( 'The icon for the post type.' ), 'type' => array( 'string', 'null' ), 'context' => array( 'view', 'edit', 'embed' ), 'readonly' => true, ), 'template' => array( 'type' => array( 'array' ), 'description' => __( 'The block template associated with the post type.' ), 'readonly' => true, 'context' => array( 'view', 'edit', 'embed' ), ), 'template_lock' => array( 'type' => array( 'string', 'boolean' ), 'enum' => array( 'all', 'insert', 'contentOnly', false ), 'description' => __( 'The template_lock associated with the post type, or false if none.' ), 'readonly' => true, 'context' => array( 'view', 'edit', 'embed' ), ), ), ); $this->schema = $schema; return $this->add_additional_fields_schema( $this->schema ); } /** * Retrieves the query params for collections. * * @since 4.7.0 * * @return array Collection parameters. */ public function get_collection_params() { return array( 'context' => $this->get_context_param( array( 'default' => 'view' ) ), ); } } Ești gata să explorezi universul captivant play jonny casino și să câștigi premii fabuloase – Chambers Of Vikramaditya

Ești gata să explorezi universul captivant play jonny casino și să câștigi premii fabuloase

Ești gata să explorezi universul captivant play jonny casino și să câștigi premii fabuloase?

Ești în căutarea unei experiențe de joc captivante și a șanselor de a câștiga premii extraordinare? Atunci ai ajuns în locul potrivit! Descoperă universul fascinant al platformei play jonny casino, un loc unde distracția și emoția se îmbină perfect. Cu o gamă largă de jocuri, o interfață intuitivă și promoții generoase, acest casino online promite o aventură memorabilă pentru toți pasionații jocurilor de noroc.

Indiferent dacă ești un jucător experimentat sau un începător, play jonny casino oferă o atmosferă primitoare și oportunități nelimitate de divertisment. De la sloturi clasice și moderne până la jocuri de masă populare precum ruleta și blackjack, vei găsi cu siguranță ceva pe gustul tău. Explorează o varietate de teme, grafică impresionantă și funcții speciale care te vor ține cu sufletul la gură.

Ce face platforma play jonny casino specială?

Platforma play jonny casino se diferențiază prin atenția la detalii și prin angajamentul de a oferi o experiență de joc de calitate superioară. Interfața este concepută pentru a fi ușor de utilizat, chiar și pentru cei care nu sunt familiarizați cu jocurile de noroc online. Navigarea este intuitivă, iar categoriile de jocuri sunt clar structurate, facilitând găsirea titlurilor preferate.

Un alt aspect important este securitatea. Platforma utilizează tehnologii avansate de criptare pentru a proteja datele personale și financiare ale jucătorilor. În plus, play jonny casino colaborează cu furnizori de software de renume, asigurând un mediu de joc corect și transparent.

Nu în ultimul rând, platforma oferă o gamă variată de metode de plată, permițând utilizatorilor să depună și să retragă fonduri în mod convenabil și rapid. Serviciul de asistență clienți este disponibil 24/7, gata să răspundă la orice întrebare sau problemă.

Bonusuri și Promoții Atractive

Una dintre cele mai mari atracții ale platformei play jonny casino sunt bonusurile și promoțiile generoase oferite jucătorilor. De la bonusuri de bun venit pentru noii înregistrați până la oferte speciale și programe de loialitate, vei avea întotdeauna motive să revii și să joci. Aceste bonusuri pot include bani suplimentari pentru a începe, rotiri gratuite la sloturile populare sau chiar premii în numerar.

Este important să citești cu atenție termenii și condițiile fiecărui bonus înainte de a-l revendica, pentru a înțelege cerințele de pariere și alte restricții. Totuși, aceste oferte pot reprezenta o modalitate excelentă de a-ți crește șansele de câștig și de a te bucura de o experiență de joc mai prelungită.

Platforma organizează periodic turnee și competiții cu premii substanțiale, oferind jucătorilor oportunitatea de a-și testa abilitățile și de a câștiga premii valoroase. Urmărește pagina de promoții pentru a fi la curent cu cele mai recente oferte și concursuri.

Varietatea Jocurilor Disponibile

Play jonny casino se mândrește cu o selecție impresionantă de jocuri, care satisface gusturile tuturor jucătorilor. Indiferent dacă preferi sloturile, jocurile de masă sau pariurile sportive, vei găsi cu siguranță ceva pe placul tău. Sloturile sunt cele mai populare jocuri de noroc, datorită simplității lor și a potențialului de câștig mare. Vei găsi sloturi clasice, sloturi video moderne, sloturi cu jackpot progresiv și multe altele.

Jocurile de masă, precum ruleta, blackjack, baccarat și poker, oferă o experiență de joc mai sofisticată și mai interactivă. Aceste jocuri necesită o strategie și abilități de gândire, iar jucătorii pot interacționa cu dealerul în timp real, în cazul jocurilor live.

În plus, platforma oferă și o gamă variată de jocuri de cărți, jocuri de arcade și alte tipuri de jocuri de noroc, asigurând o diversitate maximă pentru toți jucătorii.

Tipul Jocului Exemple Caracteristici
Sloturi Book of Ra, Starburst, Gonzo’s Quest Tematici diverse, rotiri gratuite, jackpoturi
Jocuri de Masă Ruleta, Blackjack, Baccarat Reguli simple, strategii avansate, interacțiune cu dealerul
Pariuri Sportive Fotbal, Tenis, Baschet Cote competitive, evenimente sportive diverse, pariuri live

Cum să Te Înregistrezi și să Începi să Joci

Procesul de înregistrare pe platforma play jonny casino este rapid și ușor. Tot ce trebuie să faci este să completezi un formular simplu cu informațiile tale personale, cum ar fi numele, adresa de e-mail și data de naștere. De asemenea, va trebui să îți creezi un nume de utilizator și o parolă securizată. După ce ai completat formularul, vei primi un e-mail de confirmare pe adresa de e-mail furnizată. După ce ai confirmat adresa de e-mail, poți accesa platforma și începe să joci.

Înainte de a începe să joci, este important să verifici identitatea ta, furnizând documente precum o copie a cărții de identitate și o dovadă a adresei. Acest lucru este necesar pentru a preveni frauda și pentru a asigura un mediu de joc sigur și transparent.

După ce ți-ai verificat identitatea, poți depune fonduri în contul tău și începe să joci jocurile preferate.

Sfaturi pentru o Experiență de Joc Responsabilă

Jocurile de noroc pot fi o formă de divertisment distractivă și captivantă, dar este important să joci responsabil și să eviți dependența. Stabilește-ți un buget și respectă-l, nu juca niciodată cu bani pe care nu îți poți permite să-i pierzi și ia pauze regulate. Nu încerca niciodată să recuperezi pierderile prin parierea unor sume mai mari de bani. Play jonny casino promovează jocul responsabil și oferă resurse pentru jucătorii care se luptă cu dependența de jocuri de noroc.

Este important să tratezi jocurile de noroc ca pe o formă de divertisment și nu ca pe o modalitate de a câștiga bani. Dacă simți că ai pierdut controlul asupra jocurilor de noroc, caută ajutor profesional. Există numeroase organizații și grupuri de sprijin care te pot ajuta să depășești această problemă.

  • Stabilește-ți un buget clar înainte de a începe să joci.
  • Nu depăși niciodată bugetul stabilit.
  • Ia pauze regulate în timpul jocului.
  • Nu juca niciodată cu bani pe care nu îți poți permite să-i pierzi.
  • Nu încerca să recuperezi pierderile.
  • Caută ajutor dacă simți că ai pierdut controlul.

Securitatea și Protecția Datelor Personale

Play jonny casino acordă o importanță maximă securității și protecției datelor personale ale jucătorilor. Platforma utilizează tehnologii avansate de criptare pentru a proteja informațiile tale sensibile, cum ar fi datele bancare și detaliile de contact. Toate tranzacțiile sunt efectuate prin conexiuni securizate, iar datele tale sunt stocate pe servere protejate de acces neautorizat.

Platforma respectă cu strictețe reglementările privind protecția datelor personale și se angajează să îți ofere un mediu de joc sigur și confidential. În plus, play jonny casino colaborează cu experți în securitate cibernetică pentru a monitoriza constant sistemele și a preveni eventualele atacuri.

Este important să îți protejezi și tu contul, utilizând o parolă securizată și nu o împărtășești cu nimeni. De asemenea, fii atent la e-mailurile suspecte și nu da click pe linkuri necunoscute.

Aspect de Securitate Descriere
Criptare SSL Protejează datele transmise între tine și platformă.
Firewall Previne accesul neautorizat la serverele platformei.
Politica de Confidențialitate Asigură protecția datelor tale personale.
  1. Utilizează o parolă securizată și unică pentru contul tău.
  2. Nu împărtăși parola ta cu nimeni.
  3. Fii atent la e-mailurile suspecte și nu da click pe linkuri necunoscute.
  4. Activează autentificarea cu doi factori, dacă este disponibilă.
  5. Verifică periodic istoricul tranzacțiilor.

play jonny casino
play jonny casino