ce.' ), 'type' => 'integer', 'context' => array( 'view', 'edit', 'embed' ), ), // Font face settings come directly from theme.json schema // See https://schemas.wp.org/trunk/theme.json 'font_face_settings' => array( 'description' => __( 'font-face declaration in theme.json format.' ), 'type' => 'object', 'context' => array( 'view', 'edit', 'embed' ), 'properties' => array( 'fontFamily' => array( 'description' => __( 'CSS font-family value.' ), 'type' => 'string', 'default' => '', 'arg_options' => array( 'sanitize_callback' => array( 'WP_Font_Utils', 'sanitize_font_family' ), ), ), 'fontStyle' => array( 'description' => __( 'CSS font-style value.' ), 'type' => 'string', 'default' => 'normal', 'arg_options' => array( 'sanitize_callback' => 'sanitize_text_field', ), ), 'fontWeight' => array( 'description' => __( 'List of available font weights, separated by a space.' ), 'default' => '400', // Changed from `oneOf` to avoid errors from loose type checking. // e.g. a fontWeight of "400" validates as both a string and an integer due to is_numeric check. 'type' => array( 'string', 'integer' ), 'arg_options' => array( 'sanitize_callback' => 'sanitize_text_field', ), ), 'fontDisplay' => array( 'description' => __( 'CSS font-display value.' ), 'type' => 'string', 'default' => 'fallback', 'enum' => array( 'auto', 'block', 'fallback', 'swap', 'optional', ), 'arg_options' => array( 'sanitize_callback' => 'sanitize_text_field', ), ), 'src' => array( 'description' => __( 'Paths or URLs to the font files.' ), // Changed from `oneOf` to `anyOf` due to rest_sanitize_array converting a string into an array, // and causing a "matches more than one of the expected formats" error. 'anyOf' => array( array( 'type' => 'string', ), array( 'type' => 'array', 'items' => array( 'type' => 'string', ), ), ), 'default' => array(), 'arg_options' => array( 'sanitize_callback' => function ( $value ) { return is_array( $value ) ? array_map( array( $this, 'sanitize_src' ), $value ) : $this->sanitize_src( $value ); }, ), ), 'fontStretch' => array( 'description' => __( 'CSS font-stretch value.' ), 'type' => 'string', 'arg_options' => array( 'sanitize_callback' => 'sanitize_text_field', ), ), 'ascentOverride' => array( 'description' => __( 'CSS ascent-override value.' ), 'type' => 'string', 'arg_options' => array( 'sanitize_callback' => 'sanitize_text_field', ), ), 'descentOverride' => array( 'description' => __( 'CSS descent-override value.' ), 'type' => 'string', 'arg_options' => array( 'sanitize_callback' => 'sanitize_text_field', ), ), 'fontVariant' => array( 'description' => __( 'CSS font-variant value.' ), 'type' => 'string', 'arg_options' => array( 'sanitize_callback' => 'sanitize_text_field', ), ), 'fontFeatureSettings' => array( 'description' => __( 'CSS font-feature-settings value.' ), 'type' => 'string', 'arg_options' => array( 'sanitize_callback' => 'sanitize_text_field', ), ), 'fontVariationSettings' => array( 'description' => __( 'CSS font-variation-settings value.' ), 'type' => 'string', 'arg_options' => array( 'sanitize_callback' => 'sanitize_text_field', ), ), 'lineGapOverride' => array( 'description' => __( 'CSS line-gap-override value.' ), 'type' => 'string', 'arg_options' => array( 'sanitize_callback' => 'sanitize_text_field', ), ), 'sizeAdjust' => array( 'description' => __( 'CSS size-adjust value.' ), 'type' => 'string', 'arg_options' => array( 'sanitize_callback' => 'sanitize_text_field', ), ), 'unicodeRange' => array( 'description' => __( 'CSS unicode-range value.' ), 'type' => 'string', 'arg_options' => array( 'sanitize_callback' => 'sanitize_text_field', ), ), 'preview' => array( 'description' => __( 'URL to a preview image of the font face.' ), 'type' => 'string', 'format' => 'uri', 'default' => '', 'arg_options' => array( 'sanitize_callback' => 'sanitize_url', ), ), ), 'required' => array( 'fontFamily', 'src' ), 'additionalProperties' => false, ), ), ); $this->schema = $schema; return $this->add_additional_fields_schema( $this->schema ); } /** * Retrieves the item's schema for display / public consumption purposes. * * @since 6.5.0 * * @return array Public item schema data. */ public function get_public_item_schema() { $schema = parent::get_public_item_schema(); // Also remove `arg_options' from child font_family_settings properties, since the parent // controller only handles the top level properties. foreach ( $schema['properties']['font_face_settings']['properties'] as &$property ) { unset( $property['arg_options'] ); } return $schema; } /** * Retrieves the query params for the font face collection. * * @since 6.5.0 * * @return array Collection parameters. */ public function get_collection_params() { $query_params = parent::get_collection_params(); // Remove unneeded params. unset( $query_params['after'], $query_params['modified_after'], $query_params['before'], $query_params['modified_before'], $query_params['search'], $query_params['search_columns'], $query_params['slug'], $query_params['status'] ); $query_params['orderby']['default'] = 'id'; $query_params['orderby']['enum'] = array( 'id', 'include' ); /** * Filters collection parameters for the font face controller. * * @since 6.5.0 * * @param array $query_params JSON Schema-formatted collection parameters. */ return apply_filters( 'rest_wp_font_face_collection_params', $query_params ); } /** * Get the params used when creating a new font face. * * @since 6.5.0 * * @return array Font face create arguments. */ public function get_create_params() { $properties = $this->get_item_schema()['properties']; return array( 'theme_json_version' => $properties['theme_json_version'], // When creating, font_face_settings is stringified JSON, to work with multipart/form-data used // when uploading font files. 'font_face_settings' => array( 'description' => __( 'font-face declaration in theme.json format, encoded as a string.' ), 'type' => 'string', 'required' => true, 'validate_callback' => array( $this, 'validate_create_font_face_settings' ), 'sanitize_callback' => array( $this, 'sanitize_font_face_settings' ), ), ); } /** * Get the parent font family, if the ID is valid. * * @since 6.5.0 * * @param int $font_family_id Supplied ID. * @return WP_Post|WP_Error Post object if ID is valid, WP_Error otherwise. */ protected function get_parent_font_family_post( $font_family_id ) { $error = new WP_Error( 'rest_post_invalid_parent', __( 'Invalid post parent ID.', 'default' ), array( 'status' => 404 ) ); if ( (int) $font_family_id <= 0 ) { return $error; } $font_family_post = get_post( (int) $font_family_id ); if ( empty( $font_family_post ) || empty( $font_family_post->ID ) || 'wp_font_family' !== $font_family_post->post_type ) { return $error; } return $font_family_post; } /** * Prepares links for the request. * * @since 6.5.0 * * @param WP_Post $post Post object. * @return array Links for the given post. */ protected function prepare_links( $post ) { // Entity meta. return array( 'self' => array( 'href' => rest_url( $this->namespace . '/font-families/' . $post->post_parent . '/font-faces/' . $post->ID ), ), 'collection' => array( 'href' => rest_url( $this->namespace . '/font-families/' . $post->post_parent . '/font-faces' ), ), 'parent' => array( 'href' => rest_url( $this->namespace . '/font-families/' . $post->post_parent ), ), ); } /** * Prepares a single font face post for creation. * * @since 6.5.0 * * @param WP_REST_Request $request Request object. * @return stdClass Post object. */ protected function prepare_item_for_database( $request ) { $prepared_post = new stdClass(); // Settings have already been decoded by ::sanitize_font_face_settings(). $settings = $request->get_param( 'font_face_settings' ); // Store this "slug" as the post_title rather than post_name, since it uses the fontFamily setting, // which may contain multibyte characters. $title = WP_Font_Utils::get_font_face_slug( $settings ); $prepared_post->post_type = $this->post_type; $prepared_post->post_parent = $request['font_family_id']; $prepared_post->post_status = 'publish'; $prepared_post->post_title = $title; $prepared_post->post_name = sanitize_title( $title ); $prepared_post->post_content = wp_json_encode( $settings ); return $prepared_post; } /** * Sanitizes a single src value for a font face. * * @since 6.5.0 * * @param string $value Font face src that is a URL or the key for a $_FILES array item. * @return string Sanitized value. */ protected function sanitize_src( $value ) { $value = ltrim( $value ); return false === wp_http_validate_url( $value ) ? (string) $value : sanitize_url( $value ); } /** * Handles the upload of a font file using wp_handle_upload(). * * @since 6.5.0 * * @param array $file Single file item from $_FILES. * @return array|WP_Error Array containing uploaded file attributes on success, or WP_Error object on failure. */ protected function handle_font_file_upload( $file ) { add_filter( 'upload_mimes', array( 'WP_Font_Utils', 'get_allowed_font_mime_types' ) ); // Filter the upload directory to return the fonts directory. add_filter( 'upload_dir', '_wp_filter_font_directory' ); $overrides = array( 'upload_error_handler' => array( $this, 'handle_font_file_upload_error' ), // Not testing a form submission. 'test_form' => false, // Only allow uploading font files for this request. 'mimes' => WP_Font_Utils::get_allowed_font_mime_types(), ); // Bypasses is_uploaded_file() when running unit tests. if ( defined( 'DIR_TESTDATA' ) && DIR_TESTDATA ) { $overrides['action'] = 'wp_handle_mock_upload'; } $uploaded_file = wp_handle_upload( $file, $overrides ); remove_filter( 'upload_dir', '_wp_filter_font_directory' ); remove_filter( 'upload_mimes', array( 'WP_Font_Utils', 'get_allowed_font_mime_types' ) ); return $uploaded_file; } /** * Handles file upload error. * * @since 6.5.0 * * @param array $file File upload data. * @param string $message Error message from wp_handle_upload(). * @return WP_Error WP_Error object. */ public function handle_font_file_upload_error( $file, $message ) { $status = 500; $code = 'rest_font_upload_unknown_error'; if ( __( 'Sorry, you are not allowed to upload this file type.' ) === $message ) { $status = 400; $code = 'rest_font_upload_invalid_file_type'; } return new WP_Error( $code, $message, array( 'status' => $status ) ); } /** * Returns relative path to an uploaded font file. * * The path is relative to the current fonts directory. * * @since 6.5.0 * @access private * * @param string $path Full path to the file. * @return string Relative path on success, unchanged path on failure. */ protected function relative_fonts_path( $path ) { $new_path = $path; $fonts_dir = wp_get_font_dir(); if ( str_starts_with( $new_path, $fonts_dir['basedir'] ) ) { $new_path = str_replace( $fonts_dir['basedir'], '', $new_path ); $new_path = ltrim( $new_path, '/' ); } return $new_path; } /** * Gets the font face's settings from the post. * * @since 6.5.0 * * @param WP_Post $post Font face post object. * @return array Font face settings array. */ protected function get_settings_from_post( $post ) { $settings = json_decode( $post->post_content, true ); $properties = $this->get_item_schema()['properties']['font_face_settings']['properties']; // Provide required, empty settings if needed. if ( null === $settings ) { $settings = array( 'fontFamily' => '', 'src' => array(), ); } // Only return the properties defined in the schema. return array_intersect_key( $settings, $properties ); } } Şenol Aslanoğlu CHP il başkan Adayı - Bayraklı Haber
İzmir

Şenol Aslanoğlu CHP il başkan Adayı

CHP İzmir İl başkanlığı kongresi öncesi adaylığını açıklayan mevcut il başkanı Şenol Aslanoğlu, genel merkezde Aslanoğlu aleyhine görüşme gerçekleştirilen MYK üyesi Devrim Barış Çelik, milletvekilleri Ednan Arslan ve Deniz Yücel’i..

Şenol Aslanoğlu CHP il başkan Adayı

CHP İzmir İl başkanlığı kongresi öncesi adaylığını açıklayan mevcut il başkanı Şenol Aslanoğlu, genel merkezde Aslanoğlu aleyhine görüşme gerçekleştirilen MYK üyesi Devrim Barış Çelik, milletvekilleri Ednan Arslan ve Deniz Yücel’i hedef alırken, “Genel merkez koridorunda dedikodu yaparak il başkanı belirlemeye çalışanlar sizin adınıza karar veremez” dedi.
Cumhuriyet Halk Partisi İzmir’de eski il başkanı Deniz Yücel’in milletvekilliği adaylığı için istifa etmesi sonrası göreve atanan Şenol Aslanoğlu, 16 Eylül’de gerçekleştirilecek il kongresi için yola çıktı.

Partisinin il binası önünde kurulan platform üzerinden partililere seslenen Aslanoğlu, göreve yeniden aday olduğunu açıkladı. Düzenlenen etkinliğe CHP PM Üyesi ve İzmir Milletvekili Rıfat Nalbantoğlu, CHP İzmir Milletvekili ve YDK Üyesi Mahir Polat, İzmir Büyükşehir Belediye Başkanı Tunç Soyer, Konak Belediye Başkanı Abdül Batur, Güzelbahçe Belediye Başkanı Mustafa İnce, Narlıdere Belediye Başkanı Ali Engin, Ödemiş Belediye Başkanı Mehmet Eriş, Karşıyaka Belediye Başkanı Cemil Tugay, Bayraklı Belediye Başkanı Serdar Sandal, Torbalı Belediye Başkanı Mithat Tekin, Kemalpaşa Belediye Başkanı Rıdvan Karakayalı, Seferihisar Belediye Başkanı İsmail Yetişkin, Dikili Belediye Başkanı Adil Kırgöz, Gaziemir Belediye Başkanı Halil Arda, Foça Belediye Başkanı Fatih Gürbüz, Beydağ Belediye Başkanı Feridun Yılmazlar, Selçuk Belediye Başkanı Filiz Ceritoğlu Sengel ve İZBETON Genel Müdürü Heval Savaş Kaya, parti ilçe başkanları ve çok sayıda partili katıldı.

 

ASLANOĞLU: GENEL BAŞKAN İNERDE KOLTUK KAPARIM DİYENLERDEN OLMADIM
Konuşmasını gerçekleştiren İl Başkan Adayı Şenol Aslanoğlu, “Ayinesi iştir kişinin lafa bakılmaz. Öyle gelecekten bahsetmeyeceğim. Yaptıklarımızdan bahsedeceğim. Ocak ayında göreve gelişimizin ardından 3 hafta boyunca basmadığımız toprak parçası bırakmadık. Köylerde, kasabalarda, mahallelerde yer aldık.

Çok çalıştım. Sabah 5’de hallerde, gece yarıları iftarlara sahurlara gittim. Örgüt şahit misiniz çalıştığıma! Seçimin bittiği sabahı partiyi yandaş kanallarda tartışmaya başladılar.

İlk gün sabah yüksek sesle genel başkanımızın arkasındayız diye bağırdım. Genel başkan inerde koltuk kapar mıyım diye bakanlardan olmadım. Neye inanıyorsam onu söyledim.

Bu partinin genel başkan sorunu yoktur. Bu partinin yeterince çalışmayan insanlar sorunu vardır. Sayın genel başkan bütün seçim süreci boyunca basmadık toprak bırakmadı. Sabahtan gece yarılarına kadar en çok çalışanımız oldu. Umutsuzluk var diye oradan dolaşanlar… Umutsuzluk diye birşey yok.

Umutsuz olan sizsiniz. Biz de umut var. Biz baraj altına kaldığımızda küstük partiye. Aramızda devrimci gelenekten olan insanlar var. Biz 50 bin iken korktuk mu bu iktidardan? Biz 2 milyon kişiyiz. Korkarmıyız onlardan? Biz bu ülkenin yarısıyız, kimseden korkmuyoruz, umudumuz var, biz kazanacağız! Bu şehirde Erdoğan’a 1 milyon 20 bin oy farkı atmış insanlarız, enseyi karartmaya gerek yok” dedi.

GENEL MERKEZ’DE DEDİKODU YAPAN…
‘Birlik yok’ eleştirilerine de kürsüden yanıt veren Aslanoğlu, Genel Merkez’de bugün Genel Başkan Yardımcısı Devrim Barış Çelik, Milletvekilleri Ednan Arslan ve Deniz Yücel’in genel başkan ziyaretine tepki gösterirken, “Birlik olmak lazım, birlik olmak lazım… Sen yoksun diye birlikte değil miyiz? Bak bakalım etrafına.

Biz biriz ve beraberiz. Ben yoksam gökyüzü çıplak kalır diyenler, liste göremedi diye küsenler bıraksınlar bu edebiyatı. Birlik olalım! Birlik olmak için mücadele etmek lazım. Değişimi ağızlarına doladılar.

Bütün ilçe kongrelerinde haykırdık, bu partide değişimin nasıl olacağına partinin üyeleri, delegeleri karar verir. Seçim zamanı ortada olmayanlar, çalışmayanlar sizler adına karar veremez. İşi gücü dedikodu olanlar, sadece iş yapanları eleştirenler sizler adına karar vermez. Genel merkez koridorunda dedikodu yaparak il başkanı belirlemeye çalışanlar sizin adınıza karar veremez.

Değişimimizin nasıl olacağına, il başkanının kim olacağına siz karar vereceksiniz. Söz de yetki de karar da sizde! Aday mısın diye soranlar oluyordu… Buradan sesleniyorum, ben adayım! Mücadeleyi büyütmeye, umudu örgütlemek için adayım!” ifadelerini kullandı.

 

İLÇE BAŞKANLARI SAHNEYE DAVET EDİLDİ
Aslanoğlu konuşmasının ardından kendisine destek için alana gelen milletvekilleri, belediye başkanları ve ilçe başkanlarını kürsüye davet ederek birlik pozu verdi.

İKİ İSİM DAHA ADAYLIĞINI AÇIKLAMIŞTI
İl Başkanlığı için geçtiğimiz günlerde Aytekin Tunus ve Mehmet Şakir Başak’da adaylığını açıklamıştı.

YORUMLAR (İLK YORUMU SİZ YAZIN)

ÜYE GİRİŞİ

KAYIT OL