/** * REST API: WP_REST_Widget_Types_Controller class * * @package WordPress * @subpackage REST_API * @since 5.8.0 */ /** * Core class to access widget types via the REST API. * * @since 5.8.0 * * @see WP_REST_Controller */ class WP_REST_Widget_Types_Controller extends WP_REST_Controller { /** * Constructor. * * @since 5.8.0 */ public function __construct() { $this->namespace = 'wp/v2'; $this->rest_base = 'widget-types'; } /** * Registers the widget type routes. * * @since 5.8.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[a-zA-Z0-9_-]+)', array( 'args' => array( 'id' => array( 'description' => __( 'The widget type id.' ), 'type' => 'string', ), ), array( 'methods' => WP_REST_Server::READABLE, 'callback' => array( $this, 'get_item' ), 'permission_callback' => array( $this, 'get_item_permissions_check' ), 'args' => $this->get_collection_params(), ), 'schema' => array( $this, 'get_public_item_schema' ), ) ); register_rest_route( $this->namespace, '/' . $this->rest_base . '/(?P[a-zA-Z0-9_-]+)/encode', array( 'args' => array( 'id' => array( 'description' => __( 'The widget type id.' ), 'type' => 'string', 'required' => true, ), 'instance' => array( 'description' => __( 'Current instance settings of the widget.' ), 'type' => 'object', ), 'form_data' => array( 'description' => __( 'Serialized widget form data to encode into instance settings.' ), 'type' => 'string', 'sanitize_callback' => function( $string ) { $array = array(); wp_parse_str( $string, $array ); return $array; }, ), ), array( 'methods' => WP_REST_Server::CREATABLE, 'permission_callback' => array( $this, 'get_item_permissions_check' ), 'callback' => array( $this, 'encode_form_data' ), ), ) ); } /** * Checks whether a given request has permission to read widget types. * * @since 5.8.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 ) { return $this->check_read_permission(); } /** * Retrieves the list of all widget types. * * @since 5.8.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 ) { $data = array(); foreach ( $this->get_widgets() as $widget ) { $widget_type = $this->prepare_item_for_response( $widget, $request ); $data[] = $this->prepare_response_for_collection( $widget_type ); } return rest_ensure_response( $data ); } /** * Checks if a given request has access to read a widget type. * * @since 5.8.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, WP_Error object otherwise. */ public function get_item_permissions_check( $request ) { $check = $this->check_read_permission(); if ( is_wp_error( $check ) ) { return $check; } $widget_id = $request['id']; $widget_type = $this->get_widget( $widget_id ); if ( is_wp_error( $widget_type ) ) { return $widget_type; } return true; } /** * Checks whether the user can read widget types. * * @since 5.8.0 * * @return true|WP_Error True if the widget type is visible, WP_Error otherwise. */ protected function check_read_permission() { if ( ! current_user_can( 'edit_theme_options' ) ) { return new WP_Error( 'rest_cannot_manage_widgets', __( 'Sorry, you are not allowed to manage widgets on this site.' ), array( 'status' => rest_authorization_required_code(), ) ); } return true; } /** * Gets the details about the requested widget. * * @since 5.8.0 * * @param string $id The widget type id. * @return array|WP_Error The array of widget data if the name is valid, WP_Error otherwise. */ public function get_widget( $id ) { foreach ( $this->get_widgets() as $widget ) { if ( $id === $widget['id'] ) { return $widget; } } return new WP_Error( 'rest_widget_type_invalid', __( 'Invalid widget type.' ), array( 'status' => 404 ) ); } /** * Normalize array of widgets. * * @since 5.8.0 * * @global WP_Widget_Factory $wp_widget_factory * @global array $wp_registered_widgets The list of registered widgets. * * @return array Array of widgets. */ protected function get_widgets() { global $wp_widget_factory, $wp_registered_widgets; $widgets = array(); foreach ( $wp_registered_widgets as $widget ) { $parsed_id = wp_parse_widget_id( $widget['id'] ); $widget_object = $wp_widget_factory->get_widget_object( $parsed_id['id_base'] ); $widget['id'] = $parsed_id['id_base']; $widget['is_multi'] = (bool) $widget_object; if ( isset( $widget['name'] ) ) { $widget['name'] = html_entity_decode( $widget['name'], ENT_QUOTES, get_bloginfo( 'charset' ) ); } if ( isset( $widget['description'] ) ) { $widget['description'] = html_entity_decode( $widget['description'], ENT_QUOTES, get_bloginfo( 'charset' ) ); } unset( $widget['callback'] ); $classname = ''; foreach ( (array) $widget['classname'] as $cn ) { if ( is_string( $cn ) ) { $classname .= '_' . $cn; } elseif ( is_object( $cn ) ) { $classname .= '_' . get_class( $cn ); } } $widget['classname'] = ltrim( $classname, '_' ); $widgets[ $widget['id'] ] = $widget; } return $widgets; } /** * Retrieves a single widget type from the collection. * * @since 5.8.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 ) { $widget_id = $request['id']; $widget_type = $this->get_widget( $widget_id ); if ( is_wp_error( $widget_type ) ) { return $widget_type; } $data = $this->prepare_item_for_response( $widget_type, $request ); return rest_ensure_response( $data ); } /** * Prepares a widget type object for serialization. * * @since 5.8.0 * * @param array $widget_type Widget type data. * @param WP_REST_Request $request Full details about the request. * @return WP_REST_Response Widget type data. */ public function prepare_item_for_response( $widget_type, $request ) { $fields = $this->get_fields_for_response( $request ); $data = array( 'id' => $widget_type['id'], ); $schema = $this->get_item_schema(); $extra_fields = array( 'name', 'description', 'is_multi', 'classname', 'widget_class', 'option_name', 'customize_selective_refresh', ); foreach ( $extra_fields as $extra_field ) { if ( ! rest_is_field_included( $extra_field, $fields ) ) { continue; } if ( isset( $widget_type[ $extra_field ] ) ) { $field = $widget_type[ $extra_field ]; } elseif ( array_key_exists( 'default', $schema['properties'][ $extra_field ] ) ) { $field = $schema['properties'][ $extra_field ]['default']; } else { $field = ''; } $data[ $extra_field ] = rest_sanitize_value_from_schema( $field, $schema['properties'][ $extra_field ] ); } $context = ! empty( $request['context'] ) ? $request['context'] : 'view'; $data = $this->add_additional_fields_to_object( $data, $request ); $data = $this->filter_response_by_context( $data, $context ); $response = rest_ensure_response( $data ); $response->add_links( $this->prepare_links( $widget_type ) ); /** * Filters the REST API response for a widget type. * * @since 5.8.0 * * @param WP_REST_Response $response The response object. * @param array $widget_type The array of widget data. * @param WP_REST_Request $request The request object. */ return apply_filters( 'rest_prepare_widget_type', $response, $widget_type, $request ); } /** * Prepares links for the widget type. * * @since 5.8.0 * * @param array $widget_type Widget type data. * @return array Links for the given widget type. */ protected function prepare_links( $widget_type ) { return array( 'collection' => array( 'href' => rest_url( sprintf( '%s/%s', $this->namespace, $this->rest_base ) ), ), 'self' => array( 'href' => rest_url( sprintf( '%s/%s/%s', $this->namespace, $this->rest_base, $widget_type['id'] ) ), ), ); } /** * Retrieves the widget type's schema, conforming to JSON Schema. * * @since 5.8.0 * * @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' => 'widget-type', 'type' => 'object', 'properties' => array( 'id' => array( 'description' => __( 'Unique slug identifying the widget type.' ), 'type' => 'string', 'context' => array( 'embed', 'view', 'edit' ), 'readonly' => true, ), 'name' => array( 'description' => __( 'Human-readable name identifying the widget type.' ), 'type' => 'string', 'default' => '', 'context' => array( 'embed', 'view', 'edit' ), 'readonly' => true, ), 'description' => array( 'description' => __( 'Description of the widget.' ), 'type' => 'string', 'default' => '', 'context' => array( 'view', 'edit', 'embed' ), ), 'is_multi' => array( 'description' => __( 'Whether the widget supports multiple instances' ), 'type' => 'boolean', 'context' => array( 'view', 'edit', 'embed' ), 'readonly' => true, ), 'classname' => array( 'description' => __( 'Class name' ), 'type' => 'string', 'default' => '', 'context' => array( 'embed', 'view', 'edit' ), 'readonly' => true, ), ), ); $this->schema = $schema; return $this->add_additional_fields_schema( $this->schema ); } /** * An RPC-style endpoint which can be used by clients to turn user input in * a widget admin form into an encoded instance object. * * Accepts: * * - id: A widget type ID. * - instance: A widget's encoded instance object. Optional. * - form_data: Form data from submitting a widget's admin form. Optional. * * Returns: * - instance: The encoded instance object after updating the widget with * the given form data. * - form: The widget's admin form after updating the widget with the * given form data. * * @since 5.8.0 * * @global WP_Widget_Factory $wp_widget_factory * * @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 encode_form_data( $request ) { global $wp_widget_factory; $id = $request['id']; $widget_object = $wp_widget_factory->get_widget_object( $id ); if ( ! $widget_object ) { return new WP_Error( 'rest_invalid_widget', __( 'Cannot preview a widget that does not extend WP_Widget.' ), array( 'status' => 400 ) ); } // Set the widget's number so that the id attributes in the HTML that we // return are predictable. if ( isset( $request['number'] ) && is_numeric( $request['number'] ) ) { $widget_object->_set( (int) $request['number'] ); } else { $widget_object->_set( -1 ); } if ( isset( $request['instance']['encoded'], $request['instance']['hash'] ) ) { $serialized_instance = base64_decode( $request['instance']['encoded'] ); if ( ! hash_equals( wp_hash( $serialized_instance ), $request['instance']['hash'] ) ) { return new WP_Error( 'rest_invalid_widget', __( 'The provided instance is malformed.' ), array( 'status' => 400 ) ); } $instance = unserialize( $serialized_instance ); } else { $instance = array(); } if ( isset( $request['form_data'][ "widget-$id" ] ) && is_array( $request['form_data'][ "widget-$id" ] ) ) { $new_instance = array_values( $request['form_data'][ "widget-$id" ] )[0]; $old_instance = $instance; $instance = $widget_object->update( $new_instance, $old_instance ); /** This filter is documented in wp-includes/class-wp-widget.php */ $instance = apply_filters( 'widget_update_callback', $instance, $new_instance, $old_instance, $widget_object ); } $serialized_instance = serialize( $instance ); $widget_key = $wp_widget_factory->get_widget_key( $id ); $response = array( 'form' => trim( $this->get_widget_form( $widget_object, $instance ) ), 'preview' => trim( $this->get_widget_preview( $widget_key, $instance ) ), 'instance' => array( 'encoded' => base64_encode( $serialized_instance ), 'hash' => wp_hash( $serialized_instance ), ), ); if ( ! empty( $widget_object->widget_options['show_instance_in_rest'] ) ) { // Use new stdClass so that JSON result is {} and not []. $response['instance']['raw'] = empty( $instance ) ? new stdClass : $instance; } return rest_ensure_response( $response ); } /** * Returns the output of WP_Widget::widget() when called with the provided * instance. Used by encode_form_data() to preview a widget. * @since 5.8.0 * * @param string $widget The widget's PHP class name (see class-wp-widget.php). * @param array $instance Widget instance settings. * @return string */ private function get_widget_preview( $widget, $instance ) { ob_start(); the_widget( $widget, $instance ); return ob_get_clean(); } /** * Returns the output of WP_Widget::form() when called with the provided * instance. Used by encode_form_data() to preview a widget's form. * * @since 5.8.0 * * @param WP_Widget $widget_object Widget object to call widget() on. * @param array $instance Widget instance settings. * @return string */ private function get_widget_form( $widget_object, $instance ) { ob_start(); /** This filter is documented in wp-includes/class-wp-widget.php */ $instance = apply_filters( 'widget_form_callback', $instance, $widget_object ); if ( false !== $instance ) { $return = $widget_object->form( $instance ); /** This filter is documented in wp-includes/class-wp-widget.php */ do_action_ref_array( 'in_widget_form', array( &$widget_object, &$return, $instance ) ); } return ob_get_clean(); } /** * Retrieves the query params for collections. * * @since 5.8.0 * * @return array Collection parameters. */ public function get_collection_params() { return array( 'context' => $this->get_context_param( array( 'default' => 'view' ) ), ); } } 뉴스레터 – 재중한인과학기술자협회 http://kseach.org/ksc Welcome to KSEACH Wed, 21 Sep 2022 02:00:39 +0000 ko-KR hourly 1 https://wordpress.org/?v=5.8.10 http://kseach.org/ksc/wp-content/uploads/2016/04/cropped-logo512-32x32.png 뉴스레터 – 재중한인과학기술자협회 http://kseach.org/ksc 32 32 202209_60호 재중과협 뉴스레터 http://kseach.org/ksc/archives/1786 http://kseach.org/ksc/archives/1786#respond Wed, 21 Sep 2022 01:59:33 +0000 http://kseach.org/ksc/?p=1786 202209_60호 재중과협 뉴스레터

재중한인과학기술자협회(KSEACH) NEWS Letter_202209_60호

중국 경제  동향 NEWS

중국 경제 8월 호조에도 비관적 전망…UBS, 올해 성장률 전망 2%대로 하향 –경향신문

2022년 하반기 중국 경제 전망 –해외시장뉴스

국제유가, 중국 경제 활동 둔화로 하락 –에너지데일리

중국 과학기술 ISSUE

중국 “2025년 상업용 우주여행 시작… 표 값 4억원부터” –조선일보

중국, 재사용 가능 로켓엔진 시험비행 성공 –연합뉴스

中, 美 반도체 관련 수출통제 확대에 “기술 패권주의” –연합뉴스

한중협력 발전 ISSUE

‘한중수교 30주년’ 송도서 27일 인차이나포럼 개최 –연합뉴스

尹, 시진핑 방한 초청… “사드, 한중관계 걸림돌 돼선 안돼” –조선일보

中리잔수, 66명 수행단 이끌고 방한…”양국 관계 발전 희망”(종합) –연합뉴스

실시간  NEWS

신종 코로나바이러스 실시간 상황 사이트:  https://coronaboard.kr/ , https://www.worldometers.info/coronavirus/

202208_59호 재중과협 뉴스레터

The Korean Scientists and Engineers Association in China(在中国韩人科技协会)

]]>
http://kseach.org/ksc/archives/1786/feed 0
202208_59호 재중과협 뉴스레터 http://kseach.org/ksc/archives/1783 http://kseach.org/ksc/archives/1783#respond Sun, 21 Aug 2022 13:35:11 +0000 http://kseach.org/ksc/?p=1783 202208_59호 재중과협 뉴스레터

재중한인과학기술자협회(KSEACH) NEWS Letter_202208_59호

중국 경제  동향 NEWS

“중국 경기 둔화 우려가 국제유가 끌어내리고 있다” -에너지 데일리

수출 비중 중국↓·미국↑…”中 코로나 봉쇄·무역전쟁 등 영향” -연합뉴스

중국 7월 민간 제조업 두 달째 확장 국면이지만…회복 속도는 둔화 -아주경제

중국 과학기술 ISSUE

10년 전 美로 유학 보냈던 中…지금 특허 논문 순위를 보니 -머니투데이

중국판 탑건?…中, 스텔스기 내세워 ‘하늘의 왕’ 제작 -SBS

中, 美와 ‘기술패권’ 경쟁?…실제론 기술 구매 ‘혈안’ -아시아경제

한중협력 발전 ISSUE

“韓, 반도체 칩4 적극 참여… 글로벌 룰 메이커 돼야” -파이낸셜뉴스

추경호 “한중수교 30년, 고위급 회담 통해 협력방안 논의” -머니투데이

박진 “다음주 왕이 만나 북핵 소통 강화· 공급망 협력 논의” -Newsis

실시간  NEWS

202207_58호 재중과협 뉴스레터

The Korean Scientists and Engineers Association in China(在中国韩人科技协会)

]]>
http://kseach.org/ksc/archives/1783/feed 0
202207_58호 재중과협 뉴스레터 http://kseach.org/ksc/archives/1778 http://kseach.org/ksc/archives/1778#respond Sat, 02 Jul 2022 10:32:39 +0000 http://kseach.org/ksc/?p=1778 202207_58호 재중과협 뉴스레터

재중한인과학기술자협회(KSEACH) NEWS Letter_202207_58호

중국 경제  동향 NEWS

중국 금리 동결…통화정책 보다 재정정책에 무게 –아시아경제

재정난에 민간기업 투자서 소비·고용 해법 찾는 중국 –파이낸셜뉴스

미국의 ‘중국 견제’ 경제플랫폼 IPEF 참여…득·실은 –브릿지경제

중국 과학기술 ISSUE

北, 중국 공산당 101주년 축하… “사회주의 새 중국 일떠세워” –news1뉴스

3M, 과학기술 동향 탐구 ‘3M Futures’ 플랫폼 공개 –아시아투데이

외계인의 메시지? 중국 전파망원경 새 신호 포착 –주간조선

한중협력 발전 ISSUE

박진 “한중관계 발전 위해 젊은 세대 마음의 거리 좁혀야” –파이낸셜뉴스

한덕수 “한중관계도 시간 지나 변해” –매일경제

‘RCEP 디딤돌 삼아 수교 30년 한중 경협 새 지평 열자’ –뉴스핌

실시간  NEWS

202206_57호 재중과협 뉴스레터

The Korean Scientists and Engineers Association in China(在中国韩人科技协会)

]]>
http://kseach.org/ksc/archives/1778/feed 0
202206_57호 재중과협 뉴스레터 http://kseach.org/ksc/archives/1771 http://kseach.org/ksc/archives/1771#respond Mon, 06 Jun 2022 04:19:53 +0000 http://kseach.org/ksc/?p=1771 202206_57호 재중과협 뉴스레터

재중한인과학기술자협회(KSEACH) NEWS Letter_202205_56호

중국 경제  동향 NEWS

中 상하이, 조업 재개 및 산업·민생 경제 회복을 위한 지원 정책 가속화 –해외시장뉴스

중국 의료용 로봇 시장 트렌드 –해외시장뉴스

중국 운동화 시장 동향 –해외시장뉴스

중국 과학기술 ISSUE

중국 유인우주선 선저우 14호 성공적 발사…우주정거장 모듈과 도킹 –동아사이언스

UFO 존재는 확인했다는데…과학자들이 외계인 가능성 낮다고 하는 이유 –동아사이언스

중국 게임 산업 성장 증명한 ‘아르케랜드’와 ‘노아의 심장’ –한경닷컴

한중협력 발전 ISSUE

한중, 다음주 ‘샹그릴라 대화’ 때 국방장관회담 열기로 –뉴스1

조현동 외교1차관, 싱하이밍 대사 접견…“한중 교류·소통 강화” –KBS

경기도인재개발원 ‘한중 수교 30주년 기념 세미나’ 개최한다 –아시아경제

실시간  NEWS

202205_56호 재중과협 뉴스레터

The Korean Scientists and Engineers Association in Chin(在中国韩人科技协会)

]]>
http://kseach.org/ksc/archives/1771/feed 0
202205_56호 재중과협 뉴스레터 http://kseach.org/ksc/archives/1763 http://kseach.org/ksc/archives/1763#respond Tue, 10 May 2022 13:45:05 +0000 http://kseach.org/ksc/?p=1763 202205_56호 재중과협 뉴스레터

재중한인과학기술자협회(KSEACH) NEWS Letter_202205_56호

중국 경제  동향 NEWS

중국의 신에너지 발전: 주목받는 해상풍력발전 –해외시장뉴스

“중국 도시 봉쇄에 자동차 등 한국 제조업 직접 피해” –국제신문

‘코로나 충격’ 중국 공식·민간 제조업 지표 모두 26개월 만에 최저 –아주경제

중국 과학기술 ISSUE

윤석열 대통령 취임 “도약과 빠른 성장 오로지 과학·기술·혁신으로 가능…어려움 해결하려면 `보편적 `자유` 가치 공유해야” –디지털타임스

尹대통령 취임사 키워드, ‘자유·국제연대·과학기술’ –파이낸셜뉴스

주러 중국대사 “중러, 제재 어려움 해결 위해 협력 강화해야” –연합뉴스

한중협력 발전 ISSUE

중 “새 정부와 관계 발전” 강조 속…한·미 협력에 경계 –Jtbc 뉴스

시진핑, 尹대통령 방중 초청…“한중 정상 통화” –서울신문

中, 尹대통령 방중 초청…”한반도 문제 협력 강화” 제안(상보)- News1 뉴스

실시간  NEWS

202204_55호 재중과협 뉴스레터

The Korean Scientists and Engineers Association in Chin(在中国韩人科技协会)

]]>
http://kseach.org/ksc/archives/1763/feed 0
202204_55호 재중과협 뉴스레터 http://kseach.org/ksc/archives/1750 http://kseach.org/ksc/archives/1750#respond Mon, 11 Apr 2022 11:46:55 +0000 http://kseach.org/ksc/?p=1750 202204_55호 재중과협 뉴스레터

재중한인과학기술자협회(KSEACH) NEWS Letter_202204_55호

중국 경제  동향 NEWS

3월 제조업 PMI 49.5 … 중국 경제회복세 둔화 –내일신문

중국 양회를 통해 보는 세부정책 분석 –해외시장뉴스

中 최대 정치 행사 ‘양회’ 폐막…중국 증시 어디로? –아주경제

중국 과학기술 ISSUE

‘반도체 전문가’ 이종호 과기부 장관 후보자에 통신·인터넷·과학계가 바라는 것 –Bloter

중국, 과학기술 논문 질적 수준도 미국 제꼈다 –아시아경제

중국 소림사, 부동산 시장 진출…860억 투자해 상업용지 낙찰 –연합뉴스

한중협력 발전 ISSUE 

한중기업가협회-중국재한교민협회, 한중기업간 협력 계약 체결 –서울경제

安, 주한중국대사에 “한반도 안정, 한중에 도움…협력 부탁” –연합뉴스

윤석열 당선인, 오후 시진핑 주석과 통화…한중 관계 협력적 발전방안 모색 –강원일보

실시간  NEWS

202203_54호 재중과협 뉴스레터

The Korean Scientists and Engineers Association in Chin(在中国韩人科技协会)

]]>
http://kseach.org/ksc/archives/1750/feed 0
202203_54호 재중과협 뉴스레터 http://kseach.org/ksc/archives/1747 http://kseach.org/ksc/archives/1747#respond Tue, 08 Mar 2022 15:45:59 +0000 http://kseach.org/ksc/?p=1747 202203_54호 재중과협 뉴스레터

재중한인과학기술자협회(KSEACH) NEWS Letter_2108_47호

중국 경제  동향 NEWS

한은 “强달러 국면·중국경제 둔화 등으로 원화 약세 심화” -UPI뉴스

중국 장강삼각주 경제동향 및 유망산업 분석 -해외시장뉴스

‘식어가는’ 중국 성장 엔진…우크라 악재에 수출 둔화 -아주경제

중국 과학기술 ISSUE

시진핑 대관식 앞둔 中, 국방·과학 예산 늘리고 민생 부각 -국민일보

中 과학기술부 부장 “기초 연구 더욱 중시해야” -인민망 한국어판

시진핑 “중국인 밥그릇은 중국 곡식으로 채워야”…우크라 사태 속 식량안보 강조 -경향신문

한중협력 발전 ISSUE 

中외교부장 “한중, 경쟁자 아냐…협력심화해 공동발전 실현하길” -연합뉴스

中 왕이 “러시아와 관계 발전시킬 것.. 한국은 잠재력 큰 파트너” -머니투데이

한중 외교장관 화상통화…한반도 문제·우크라이나 사태 등 논의 -KBS 뉴스

실시간  NEWS

202202월간 뉴스레터 53호

The Korean Scientists and Engineers Association in China在中国韩人科技协会 

]]>
http://kseach.org/ksc/archives/1747/feed 0
202202_53호 재중과협 뉴스레터 http://kseach.org/ksc/archives/1741 http://kseach.org/ksc/archives/1741#respond Mon, 31 Jan 2022 14:46:53 +0000 http://kseach.org/ksc/?p=1741 중국 경제동향 NEWS

“중국경제 올해 5% 성장 가능…미중갈등 등 리스크도 상존” (첨부파일) 파이낸셜신문

한은 “원화 약세 이유는 원자재·중국 의존도 높은 탓” (첨부파일) 이코노미스

춘제 연휴 앞두고 부진 떨쳐낼까 (첨부파일) 아주경제

중국 과학기술 ISSUE

기술패권 뒤집을 양자기술… 중국이 미국을 위협한다 (첨부파일) 파이낸셜뉴스

美 하버드대 “중국이 10년 내 미국 이긴다” (첨부파일) 아시아경제

새포 배양육, 중국 농업으 미래가 되다 (첨부파일) 한겨레

한중협력 발전 ISSUE 

‘한중 산업장관회의’ 4년만에 열려…공급망·친환경 협력 모색 (첨부파일) 연합뉴스

시진핑, 文대통령 생일 맞아 축하 서한…”실질 협력 강화” (첨부파일) news1뉴스

“한중, 가깝지만친하지않은(近而不親) 문제시급히해결해야” (첨부파일) 중앙일보

실시간  NEWS

신종 코로나바이러스 실시간 상황 사이트: 

https://coronaboard.kr/ 

https://www.worldometers.info/coronavirus/

The Korean Scientists and Engineers Association in China(在中国韩人科技协会 )

]]>
http://kseach.org/ksc/archives/1741/feed 0
202201_52호 재중과협 뉴스레터 http://kseach.org/ksc/archives/1735 http://kseach.org/ksc/archives/1735#respond Tue, 11 Jan 2022 16:59:10 +0000 http://kseach.org/ksc/?p=1735 중국 경제동향 NEWS

중국 테마파크 산업 동향 및 트렌드 변화 (첨부파일) 해외시장뉴스

2021년 중국 정보통신(ICT) 산업 동향 (첨부파일) 해외시장뉴스

전문가에게 듣는 2022년 중국 경제 전망 (첨부파일) 해외시장뉴스

중국 과학기술 ISSUE

국방과학기술 수준 선진 16개국 중 한국 9위…일본은 8위 (첨부파일) 연합뉴스

14억 중국인이 그의 말에 ‘일희일비’…‘중난산’은 누구? (첨부파일) KBS

글로벌 혁신국가로 거듭나고 있는 중국 (첨부파일) 해외시장뉴스

한중협력 발전 ISSUE 

‘2022 환러춘제 한중우호음악회’ 개최 (첨부파일) 아주경제

“RCEP, CPTPP서 韓은 중요 파트너…올 양국협력 안정될 것” (첨부파일) 서울경제

4년 반 만에 ‘한중 전략대화’…”종전선언·올림픽·정상교류 논의” (첨부파일) News1뉴스

실시간  NEWS

신종 코로나바이러스 실시간 상황 사이트: 

https://coronaboard.kr/ 

https://www.worldometers.info/coronavirus/

The Korean Scientists and Engineers Association in China(在中国韩人科技协会 )

]]>
http://kseach.org/ksc/archives/1735/feed 0
202112_51호 재중과협 뉴스레터 http://kseach.org/ksc/archives/1695 http://kseach.org/ksc/archives/1695#respond Sun, 28 Nov 2021 12:40:44 +0000 http://kseach.org/ksc/?p=1695 중국 경제동향 NEWS

내년 중국 경제는 ‘上低下高’…정책수혜주 중심으로 접근해야 (첨부파일) 한경글로벌마켓

IMF “내년 중국 경제성장률 5.6% 전망…핵심 개혁 필요” (첨부파일) SBS

“중국도 노령화”…2025년 60세 이상 3억명 돌파 예상 (첨부파일) 초이스경제

중국 과학기술 ISSUE

과학기술로 미래 세운 ‘노무현의 꿈’을 그리다 (첨부파일) 시사저널

중국, 미국과 기술경쟁 속 ‘과학기술체제 정비 3년계획’ 승인 (첨부파일) 오피니언뉴스

미국 보란듯… 中, 아세안에 농산물 수입·기술 지원 약속 (첨부파일) 아시아타임즈

한중협력 발전 ISSUE 

中 양제츠, 장하성 주중대사 만나 한-중 협력 강화 논의 (첨부파일) news1

韓中 655개 기업 참여 ‘제4회 한중혁신대회’ 시상식 개최 (첨부파일) 서울경제

주칭다오총영사관, 다양한 한중 경제협력 사업 지원 (첨부파일) 아주경제

실시간  NEWS

신종 코로나바이러스 실시간 상황 사이트: 

https://coronaboard.kr/ 

https://www.worldometers.info/coronavirus/

The Korean Scientists and Engineers Association in China(在中国韩人科技协会 )

]]>
http://kseach.org/ksc/archives/1695/feed 0