/** * REST API: WP_REST_Taxonomies_Controller class * * @package WordPress * @subpackage REST_API * @since 4.7.0 */ /** * Core class used to manage taxonomies via the REST API. * * @since 4.7.0 * * @see WP_REST_Controller */ class WP_REST_Taxonomies_Controller extends WP_REST_Controller { /** * Constructor. * * @since 4.7.0 */ public function __construct() { $this->namespace = 'wp/v2'; $this->rest_base = 'taxonomies'; } /** * Registers the routes for taxonomies. * * @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( 'taxonomy' => array( 'description' => __( 'An alphanumeric identifier for the taxonomy.' ), 'type' => 'string', ), ), array( 'methods' => WP_REST_Server::READABLE, 'callback' => array( $this, 'get_item' ), 'permission_callback' => array( $this, 'get_item_permissions_check' ), '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 taxonomies. * * @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'] ) { if ( ! empty( $request['type'] ) ) { $taxonomies = get_object_taxonomies( $request['type'], 'objects' ); } else { $taxonomies = get_taxonomies( '', 'objects' ); } foreach ( $taxonomies as $taxonomy ) { if ( ! empty( $taxonomy->show_in_rest ) && current_user_can( $taxonomy->cap->assign_terms ) ) { return true; } } return new WP_Error( 'rest_cannot_view', __( 'Sorry, you are not allowed to manage terms in this taxonomy.' ), array( 'status' => rest_authorization_required_code() ) ); } return true; } /** * Retrieves all public taxonomies. * * @since 4.7.0 * * @param WP_REST_Request $request Full details about the request. * @return WP_REST_Response Response object on success, or WP_Error object on failure. */ public function get_items( $request ) { // Retrieve the list of registered collection query parameters. $registered = $this->get_collection_params(); if ( isset( $registered['type'] ) && ! empty( $request['type'] ) ) { $taxonomies = get_object_taxonomies( $request['type'], 'objects' ); } else { $taxonomies = get_taxonomies( '', 'objects' ); } $data = array(); foreach ( $taxonomies as $tax_type => $value ) { if ( empty( $value->show_in_rest ) || ( 'edit' === $request['context'] && ! current_user_can( $value->cap->assign_terms ) ) ) { continue; } $tax = $this->prepare_item_for_response( $value, $request ); $tax = $this->prepare_response_for_collection( $tax ); $data[ $tax_type ] = $tax; } if ( empty( $data ) ) { // Response should still be returned as a JSON object when it is empty. $data = (object) $data; } return rest_ensure_response( $data ); } /** * Checks if a given request has access to a taxonomy. * * @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 for the item, otherwise false or WP_Error object. */ public function get_item_permissions_check( $request ) { $tax_obj = get_taxonomy( $request['taxonomy'] ); if ( $tax_obj ) { if ( empty( $tax_obj->show_in_rest ) ) { return false; } if ( 'edit' === $request['context'] && ! current_user_can( $tax_obj->cap->assign_terms ) ) { return new WP_Error( 'rest_forbidden_context', __( 'Sorry, you are not allowed to manage terms in this taxonomy.' ), array( 'status' => rest_authorization_required_code() ) ); } } return true; } /** * Retrieves a specific taxonomy. * * @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 ) { $tax_obj = get_taxonomy( $request['taxonomy'] ); if ( empty( $tax_obj ) ) { return new WP_Error( 'rest_taxonomy_invalid', __( 'Invalid taxonomy.' ), array( 'status' => 404 ) ); } $data = $this->prepare_item_for_response( $tax_obj, $request ); return rest_ensure_response( $data ); } /** * Prepares a taxonomy object for serialization. * * @since 4.7.0 * @since 5.9.0 Renamed `$taxonomy` to `$item` to match parent class for PHP 8 named parameter support. * * @param WP_Taxonomy $item Taxonomy data. * @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. $taxonomy = $item; $base = ! empty( $taxonomy->rest_base ) ? $taxonomy->rest_base : $taxonomy->name; $fields = $this->get_fields_for_response( $request ); $data = array(); if ( in_array( 'name', $fields, true ) ) { $data['name'] = $taxonomy->label; } if ( in_array( 'slug', $fields, true ) ) { $data['slug'] = $taxonomy->name; } if ( in_array( 'capabilities', $fields, true ) ) { $data['capabilities'] = $taxonomy->cap; } if ( in_array( 'description', $fields, true ) ) { $data['description'] = $taxonomy->description; } if ( in_array( 'labels', $fields, true ) ) { $data['labels'] = $taxonomy->labels; } if ( in_array( 'types', $fields, true ) ) { $data['types'] = array_values( $taxonomy->object_type ); } if ( in_array( 'show_cloud', $fields, true ) ) { $data['show_cloud'] = $taxonomy->show_tagcloud; } if ( in_array( 'hierarchical', $fields, true ) ) { $data['hierarchical'] = $taxonomy->hierarchical; } if ( in_array( 'rest_base', $fields, true ) ) { $data['rest_base'] = $base; } if ( in_array( 'rest_namespace', $fields, true ) ) { $data['rest_namespace'] = $taxonomy->rest_namespace; } if ( in_array( 'visibility', $fields, true ) ) { $data['visibility'] = array( 'public' => (bool) $taxonomy->public, 'publicly_queryable' => (bool) $taxonomy->publicly_queryable, 'show_admin_column' => (bool) $taxonomy->show_admin_column, 'show_in_nav_menus' => (bool) $taxonomy->show_in_nav_menus, 'show_in_quick_edit' => (bool) $taxonomy->show_in_quick_edit, 'show_ui' => (bool) $taxonomy->show_ui, ); } $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( $taxonomy ) ); } /** * Filters a taxonomy returned from the REST API. * * Allows modification of the taxonomy data right before it is returned. * * @since 4.7.0 * * @param WP_REST_Response $response The response object. * @param WP_Taxonomy $item The original taxonomy object. * @param WP_REST_Request $request Request used to generate the response. */ return apply_filters( 'rest_prepare_taxonomy', $response, $taxonomy, $request ); } /** * Prepares links for the request. * * @since 6.1.0 * * @param WP_Taxonomy $taxonomy The taxonomy. * @return array Links for the given taxonomy. */ protected function prepare_links( $taxonomy ) { 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_taxonomy_items( $taxonomy->name ) ), ), ); } /** * Retrieves the taxonomy's schema, conforming to JSON Schema. * * @since 4.7.0 * @since 5.0.0 The `visibility` property was added. * @since 5.9.0 The `rest_namespace` 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' => 'taxonomy', 'type' => 'object', 'properties' => array( 'capabilities' => array( 'description' => __( 'All capabilities used by the taxonomy.' ), 'type' => 'object', 'context' => array( 'edit' ), 'readonly' => true, ), 'description' => array( 'description' => __( 'A human-readable description of the taxonomy.' ), 'type' => 'string', 'context' => array( 'view', 'edit' ), 'readonly' => true, ), 'hierarchical' => array( 'description' => __( 'Whether or not the taxonomy should have children.' ), 'type' => 'boolean', 'context' => array( 'view', 'edit' ), 'readonly' => true, ), 'labels' => array( 'description' => __( 'Human-readable labels for the taxonomy for various contexts.' ), 'type' => 'object', 'context' => array( 'edit' ), 'readonly' => true, ), 'name' => array( 'description' => __( 'The title for the taxonomy.' ), 'type' => 'string', 'context' => array( 'view', 'edit', 'embed' ), 'readonly' => true, ), 'slug' => array( 'description' => __( 'An alphanumeric identifier for the taxonomy.' ), 'type' => 'string', 'context' => array( 'view', 'edit', 'embed' ), 'readonly' => true, ), 'show_cloud' => array( 'description' => __( 'Whether or not the term cloud should be displayed.' ), 'type' => 'boolean', 'context' => array( 'edit' ), 'readonly' => true, ), 'types' => array( 'description' => __( 'Types associated with the taxonomy.' ), 'type' => 'array', 'items' => array( 'type' => 'string', ), 'context' => array( 'view', 'edit' ), 'readonly' => true, ), 'rest_base' => array( 'description' => __( 'REST base route for the taxonomy.' ), 'type' => 'string', 'context' => array( 'view', 'edit', 'embed' ), 'readonly' => true, ), 'rest_namespace' => array( 'description' => __( 'REST namespace route for the taxonomy.' ), 'type' => 'string', 'context' => array( 'view', 'edit', 'embed' ), 'readonly' => true, ), 'visibility' => array( 'description' => __( 'The visibility settings for the taxonomy.' ), 'type' => 'object', 'context' => array( 'edit' ), 'readonly' => true, 'properties' => array( 'public' => array( 'description' => __( 'Whether a taxonomy is intended for use publicly either via the admin interface or by front-end users.' ), 'type' => 'boolean', ), 'publicly_queryable' => array( 'description' => __( 'Whether the taxonomy is publicly queryable.' ), 'type' => 'boolean', ), 'show_ui' => array( 'description' => __( 'Whether to generate a default UI for managing this taxonomy.' ), 'type' => 'boolean', ), 'show_admin_column' => array( 'description' => __( 'Whether to allow automatic creation of taxonomy columns on associated post-types table.' ), 'type' => 'boolean', ), 'show_in_nav_menus' => array( 'description' => __( 'Whether to make the taxonomy available for selection in navigation menus.' ), 'type' => 'boolean', ), 'show_in_quick_edit' => array( 'description' => __( 'Whether to show the taxonomy in the quick/bulk edit panel.' ), 'type' => 'boolean', ), ), ), ), ); $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() { $new_params = array(); $new_params['context'] = $this->get_context_param( array( 'default' => 'view' ) ); $new_params['type'] = array( 'description' => __( 'Limit results to taxonomies associated with a specific post type.' ), 'type' => 'string', ); return $new_params; } } To, co jsem dělal v Afghánistánu, nebyla odvaha, ale práce – THOR Tac
Rubriky

To, co jsem dělal v Afghánistánu, nebyla odvaha, ale práce

„Hrál jsem počítačové hry před svým odjezdem do Afghánistánu a realita se od nich příliš neliší,“ říká v rozhovoru poručík ve výslužbě Lumír Němec, jenž v letech 2007 až 2008 velel operačnímu družstvu speciální jednotky SOG v Afghánistánu.

Lumír Němec, poručík ve výslužbě. | na serveru Lidovky.cz | aktuální zprávy

Lumír Němec, poručík ve výslužbě. | foto: Česká pozice

ČESKÁ POZICE: Jaká byla nejintenzivnější bojová situace, jíž jste se v Afghánistánu zúčastnil?

NĚMEC: Moji vojáci absolvovali intenzivní noční boj o vesnici Rahim Kalay. Tam jsem však nebyl, mohl bych o tom mluvit jen z doslechu, a to nechci. Náš velitel britský plukovník Richard Westley řekl, že to tam bylo jako v Bratrstvu neohrožených. Sám jsem zažil nejtěžší situaci při střetu u vesnice Šurakajn.

Filmové příměry však nefungují. V reálu se na vás nikdo nerozběhne v rojnici jako blázen. Tálibán útočí ze zálohy a z krytu. Všechno jde hrozně rychle, vidíte jen plamínky a občas nějakého chlapa, jak se někde mihne. Nemáte ani čas se bát.

Čistili jsme území, kde předtím britští vojáci nepůsobili. Dostali jsme se pod intenzivní palbu z RPG, minometů i ručních zbraní, přičemž jsme byli asi v trojnásobné početní nevýhodě. Museli jsme tam nechat jednu čtyřkolku, kolega Marek Lidinský – dnes předseda strany Úsvit – přišel v boji o nohu.

V jednu chvíli to vybuchovalo a lítalo všude kolem nás, takže to bylo jako ve Vojínu Ryanovi. Filmové příměry však nefungují. V reálu se na vás nikdo nerozběhne v rojnici jako blázen. Tálibán útočí ze zálohy a z krytu. Všechno jde hrozně rychle, vidíte jen plamínky a občas nějakého chlapa, jak se někde mihne. Nemáte ani čas se bát.

ČESKÁ POZICE: Je takový útok tím nejhorším, co se vojákovi může stát?

NĚMEC: Je to hodně nepříjemné, ale přece jen se můžete bránit – přeskupit se, opětovat palbu. Když ná vás vyběhne sebevražedný atentátník nebo najedete na ID (nástražný odpalovací systém – pozn. red.), vaše možnosti jsou malé.

ČESKÁ POZICE: S SOG jste bojovali ve strategické provincii Hílmand na jihu Afghánistánu, který po ofenzivě na konci roku 2015 téměř celý získal nazpět Tálibán. Vytlačit jej lze jen částečně. Navíc se do Afghánistánu dostala franšíza Islámského státu. Není frustrující, že po 15 letech bojů je situace s trochou nadsázky tam, kde začala?

Afghánistán je ideální země na outdoorovou turistiku, až na spoustu nástražných min a Tálibánců

NĚMEC: Nemůžu říct, že by to byla frustrace, je to vývoj situace, jež v Afghánistánu byla a je komplikovaná. Nebylo tam bezpečno ani za nás (vojáků koalice – pozn. red.), natož teď, kdy se Tálibánu nemá kdo postavit.

ČESKÁ POZICE: Kde se stala chyba? Co mělo udělat jinak?

NĚMEC: To už je příliš vysoká politika. Musel bych střílet od boku, což nechci.

ČESKÁ POZICE: Ze sovětsko-afghánské války pochází píseň Prišel prikaz, v níž se zpívá: „Afghánistán, krásný a divoký horský kraj.“ Lze vnímat jeho krásy, nebo na to není čas?
NĚMEC: Rozhodně lze, země je nádherná. Okolo Gerešku máte před očima poušť, která přechází ve step, následně ve vyšší hory a končí to v Hindúkúši. Je to země divoká, potkáte kočovné kmeny, velbloudy. Řeky jsou v období dešťů průzračné jako v pohádce… Ideální země na outdoorovou turistiku, až na spoustu nástražných min a Tálibánců.

V mé generaci degenerují hodnoty. Ničeho si nevážíme, žijeme komerčně. Všechno se točí kolem peněz, pití, sexu. Lidi jdou za svým cílem bez ohledu na to, komu uškodí.

ČESKÁ POZICE: Hrajete počítačové hry, takzvané střílečky. Baví vás, když jste bojoval doopravdy?
NĚMEC: Hrál jsem počítačové hry dlouho před svým odjezdem do Afghánistánu a zajímavé je, že realita se od nich příliš neliší. Všechno je rychlé, musíte pořád reagovat, na emoce není čas. Rozdíl je v tom, že se nemůžete sejfnout a loudnout. Ale jinak je to velmi podobné.

ČESKÁ POZICE: Bojoval jste někdy „muž proti muži“?
NĚMEC: Až tak zblízka ne. Nejblíže jsme byli patnáct dvacet metrů, ale na bodáky jsme nikdy nešli.

ČESKÁ POZICE: Odvaha patřila v dějinách mezi základní hodnoty prakticky ve všech kulturách. Nezdá se vám, že se v dnešní, alespoň západní, postmoderní společnosti dostává do pozadí?
NĚMEC: To bychom museli definovat odvahu. Je odvážný chlap, který jde do války, nebo žena, jež je schopná postarat se z jednoho platu o dvě děti? To, co jsem dělal v Afghánistánu, nebyla odvaha, ale práce a koníček. Velmi mě to bavilo. Ale pokud bych to měl paušalizovat, v mé generaci degenerují hodnoty. Ničeho si nevážíme, žijeme komerčně. Všechno se točí kolem peněz, pití, sexu. Lidi jdou za svým cílem bez ohledu na to, komu uškodí.

Vždycky bude někdo, kdo vás bude mít rád a kdo vás bude nenávidět. V Čechách je zášť hodně daná penězmi, které voják za misi dostává.

ČESKÁ POZICE: Bývali lidé lepší?
NĚMEC: Nevím, jestli byli lepší, můžu jen srovnávat. Před revolucí jsme byli pospolitější, byla větší legrace. Dokud jsme měli všichni stejně, nebyl prostor pro závist. Dnes už to funguje jen na vesnici. Odstěhoval jsem se do osady o jedenácti domech a do Prahy bych se už nikdy nevrátil.

ČESKÁ POZICE: V rurální společnosti také existuje závist. Nebo Afghánec s jednou krávou nezávidí tomu se dvěma?
NĚMEC: Nevím, do natolik blízkého soužití jsme se nikdy nedostali. Můžu jedině říct, že žijí úplně jinak než my. Negramotných je 90 procent. Žijí podle kmenového práva nebo práva šaría. Hlavní slovo má stařešina nebo imám.


ČESKÁ POZICE: V USA je postavení vojáka ve společnosti jiné než u nás. Tam se o válečných veteránech točí hollywoodské filmy. Tady se vám říká „žoldáci“ nebo hůř. Je to pro vás a vaše bývalé kolegy velká frustrace?
NĚMEC: Nepřipouštím si to. Vím, proč jsem tam byl a proč jsem tu práci dělal. Co si o mně někdo myslí, mě nezajímá. Vždycky bude někdo, kdo vás bude mít rád a kdo vás bude nenávidět. V Čechách je zášť hodně daná penězmi, které voják za misi dostává.

Když jsem byl u URNy, spolupracovali jsme s Delta Force, SAS i GSG9. Měli za sebou velkou zemi, skvělou výbavu, slavné jméno a dlouhou historii, ale nepřipadá mi, že by nás v něčem převyšovali.

ČESKÁ POZICE: Americký voják ale také finančně nestrádá…
NĚMEC: Rozdíl však není stejně velký jako u nás. Bere třeba dvojnásobek běžného platu. Naši kluci berou dost. Ale otázka zní: Co je to „dost“, když vám někdo ustřelí hlavu?

ČESKÁ POZICE: Která ze světových speciálních jednotek je nejefektivnější – američtí Delta Force, ruští Specnaz nebo někdo jiný?
NĚMEC: Nedá se to příliš srovnávat. Když jsem byl u URNy, spolupracovali jsme s Delta Force, SAS i GSG9. Měli za sebou velkou zemi, skvělou výbavu, slavné jméno a dlouhou historii, ale nepřipadá mi, že by nás v něčem převyšovali.

ČESKÁ POZICE: Opakem skvěle vybaveného vojáka jsou kurdští milicionáři v syrské Rojavě. Jaký dojem na vás udělala jejich obrana města Kobání takřka holýma rukama proti často výborně vyzbrojeným vojákům Islámského státu?
NĚMEC: Je to fascinující. Bojují za svou zemi a jsou odhodlaní položit za ni život. Pletou „bič z hovna“, ale všechno vyváží obrovským duchem a odhodláním. Morálně jsou to válečníci par excellence. Na pozvání paní Nisrin Abdollahové, velitelky kurdských ženských oddílů YPJ, jsem jel do Kurdistánu a podílel se na výcviku jednotky HAT, protiteroristického oddílu kurdské policie.

Připadal jsem si tam jako za kubánské revoluce. Kluk, který mě doprovázel, měl rozevláté vlasy a v pistoli šest nábojů. Když jsem se ho zeptal, proč jen šest, řekl mi, že víc nemá. Nemají pancéřová auta, takže dveře vysypávají sklem, pak to něčím zalejí, což je jejich ochrana.

Bombardování samo o sobě nic neřeší. Rozmlátíte spoustu věcí, zabijete spoustu lidí, ale situace je tam, kde byla. Pokud ji chcete změnit, jde to jen po zemi.

Na území Rojavy je asi milion uprchlíků. Kurdové je živí ze svého a nikdo jim nic nedá. Kdyby chtěli, otevřou stavidla a pustí je do Evropy. Ale my je podporovat nebudeme, protože Erdogan řekl, že PKK je teroristická organizace. Je evidentní, že tito lidé jednou dosáhnout svého. Nedovedu si totiž představit, co by se muselo stát, aby se vzdali svého cíle. Kdyby měli přijít o Rojavu, muselo by být nasazeno obrovské pozemní vojsko, které by je „semlelo“. Doufám, že se to nikdy nestane.

ČESKÁ POZICE: Kurdská otázka je součástí zřejmě největšího konfliktu od konce studené války – syrské občanské války. Co si o situaci v Sýrii myslíte jako voják?
NĚMEC: Bombardování samo o sobě nic neřeší. Rozmlátíte spoustu věcí, zabijete spoustu lidí, ale situace je tam, kde byla. Pokud ji chcete změnit, jde to jen po zemi. Nálety zničí logistiku a velitelství, ale někdo musí přijít a říct: „Tohle je černá a tohle bílá.“ A to z letadla neuděláte.

ČESKÁ POZICE: Proč souhlasíte s povinnou vojenskou službou v ČR?
NĚMEC: Protože dnes není v případě napadení Armáda ČR schopná ubránit naše území. Můžeme mobilizovat, ale otázkou je koho. Mladá generace nic neumí a pušku v životě nedržela. Nebyl bych pro tradiční vojnu na dva roky, ale základní vojenský výcvik tři až šest měsíců by každému prospěl. Nejde jen o zbraně, mladí kluci by se naučili základy orientace, přežití v lese, vtiskl by se jim určitý řád a úcta k autoritám.

ČESKÁ POZICE: Mrzí vás, že jste v armádě skončil?
Mrzí mě to moc, práci jsem měl velmi rád.

Lumír Němec (1965)Poručík ve výslužbě.
V letech 2007 až 2008 velel operačnímu družstvu speciální jednotky SOG v Afghánistánu.
Zúčastnil se také misí v Kosovu a Iráku, předtím byl mnoho let u Útvaru rychlého nasazení Policie ČR (URNA).
Od roku 2009, kdy byla jednotka SOG bez náležitého zdůvodnění zrušena, je v civilu.
Nyní se mimo jiné podílí na výcviku speciálních jednotek kurdské policie v syrské Rojavě.

Štěpán Hobza

Zdroj: http://ceskapozice.lidovky.cz/tema/to-co-jsem-delal-v-afghanistanu-nebyla-odvaha-ale-prace.A170202_185054_pozice-tema_lube?