Files
doitinpoland.com/wp-content/plugins/wpml-translation-management/classes/tp-client/tp-rest-objects/wpml-tp-service.php
2023-09-12 21:41:04 +02:00

726 lines
14 KiB
PHP

<?php
/**
* @link https://git.onthegosystems.com/tp/translation-proxy/wikis/translation_services
*/
class WPML_TP_Service extends WPML_TP_REST_Object implements Serializable {
/**
* @var int
*/
public $id;
/**
* @var string
*/
public $logo_url;
/** @var string */
public $logo_preview_url;
/**
* @var string
*/
public $name;
/**
* @var string
*/
public $description;
/**
* @var string
*/
public $doc_url;
/**
* @var bool
*/
public $tms;
/**
* @var bool
*/
public $partner;
/**
* @var stdClass
*/
public $custom_fields;
/**
* @var array
* @deprecated
*/
public $custom_fields_data;
/**
* @var bool
* @deprecated
*/
public $requires_authentication;
/**
* @var stdClass
*/
public $rankings;
/**
* @var bool
*/
public $has_language_pairs;
/**
* @var string
*/
public $url;
/** @var string */
public $project_details_url;
/** @var string */
public $add_language_pair_url;
/** @var string */
public $custom_text_url;
/** @var string */
public $select_translator_iframe_url;
/** @var string */
public $translator_contact_iframe_url;
/** @var string */
public $quote_iframe_url;
/** @var bool */
public $has_translator_selection;
/** @var int */
public $project_name_length;
/** @var string */
public $suid;
/** @var bool */
public $notification;
/** @var bool */
public $preview_bundle;
/** @var bool */
public $deadline;
/** @var bool */
public $oauth;
/** @var string */
public $oauth_url;
/** @var int */
public $default_service;
/** @var bool */
public $translation_feedback;
/** @var string */
public $feedback_forward_method;
/** @var int */
public $last_refresh;
/** @var string */
public $popup_message;
/** @var string */
public $how_to_get_credentials_desc;
/** @var string */
public $how_to_get_credentials_url;
/** @var string */
public $client_create_account_page_url;
/** bool */
public $redirect_to_ts;
/** @var \stdClass[] */
public $countries = [];
public function __construct( stdClass $object = null ) {
parent::__construct( $object );
$this->set_custom_fields_data();
$this->set_requires_authentication();
}
/**
* @return int
*/
public function get_id() {
return $this->id;
}
/**
* @return string
*/
public function get_logo_url() {
return $this->logo_url;
}
public function get_logo_preview_url() {
return $this->logo_preview_url;
}
/**
* @return string
*/
public function get_name() {
return $this->name;
}
/**
* @return string
*/
public function get_description() {
return $this->description;
}
/**
* @return string
*/
public function get_doc_url() {
return $this->doc_url;
}
/**
* @return string
*/
public function get_tms() {
return $this->tms;
}
/**
* @return bool
*/
public function is_partner() {
return $this->partner;
}
/**
* @param bool $partner
*/
public function set_partner( $partner ) {
$this->partner = $partner;
}
/**
* @return array
*/
public function get_custom_fields() {
$custom_fields = array();
/** @TODO: This is odd. It appears that if it's the active service then it's
* stored with an extra custom_fields property eg. $this->custom_fields->custom_fields
* It looks like we call the api to get the custom field when we activate the service and store
* it directly here
*/
if ( is_object( $this->custom_fields ) && isset( $this->custom_fields->custom_fields ) ) {
$custom_fields = $this->custom_fields->custom_fields;
} elseif ( isset( $this->custom_fields ) ) {
$custom_fields = $this->custom_fields;
}
return $custom_fields;
}
/**
* @return array
*/
public function get_custom_fields_data() {
return $this->custom_fields_data;
}
/**
* @return bool
*/
public function get_requires_authentication() {
return $this->requires_authentication;
}
/**
* @return bool
*/
public function get_url() {
return $this->url;
}
/**
* @return bool
*/
public function get_has_language_pairs() {
return (bool) $this->has_language_pairs;
}
/**
* @return stdClass
*/
public function get_rankings() {
return $this->rankings;
}
/**
* @return string
*/
public function get_popup_message() {
return $this->popup_message;
}
/**
* @param int $id
*/
public function set_id( $id ) {
$this->id = (int) $id;
}
/**
* @param string $logo_url
*/
public function set_logo_url( $logo_url ) {
$this->logo_url = $logo_url;
}
/**
* @param string $logo_preview_url
*/
public function set_logo_preview_url( $logo_preview_url ) {
$this->logo_preview_url = $logo_preview_url;
}
/**
* @param string $url
*/
public function set_url( $url ) {
$this->url = $url;
}
/**
* @param string $name
*/
public function set_name( $name ) {
$this->name = $name;
}
/**
* @param string $description
*/
public function set_description( $description ) {
$this->description = $description;
}
/**
* @param string $doc_url
*/
public function set_doc_url( $doc_url ) {
$this->doc_url = $doc_url;
}
/**
* @param bool $tms
*/
public function set_tms( $tms ) {
$this->tms = (bool) $tms;
}
/**
* @param stdClass $rankings
*/
public function set_rankings( $rankings ) {
$this->rankings = $rankings;
}
/**
* @param stdClass $custom_fields
*/
public function set_custom_fields( $custom_fields ) {
$this->custom_fields = $custom_fields;
}
/**
* @param string $popup_message
*/
public function set_popup_message( $popup_message ) {
$this->popup_message = $popup_message;
}
public function set_custom_fields_data() {
global $sitepress;
$active_service = $sitepress->get_setting( 'translation_service' );
if ( isset( $active_service->custom_fields_data, $active_service->id ) && $this->id === $active_service->id ) {
$this->custom_fields_data = $active_service->custom_fields_data;
}
}
public function set_requires_authentication() {
$this->requires_authentication = (bool) $this->custom_fields;
}
/**
* @param bool $value
*/
public function set_has_language_pairs( $value ) {
$this->has_language_pairs = (bool) $value;
}
/**
* @return string
*/
public function get_project_details_url() {
return $this->project_details_url;
}
/**
* @param string $project_details_url
*/
public function set_project_details_url( $project_details_url ) {
$this->project_details_url = $project_details_url;
}
/**
* @return string
*/
public function get_add_language_pair_url() {
return $this->add_language_pair_url;
}
/**
* @param string $add_language_pair_url
*/
public function set_add_language_pair_url( $add_language_pair_url ) {
$this->add_language_pair_url = $add_language_pair_url;
}
/**
* @return string
*/
public function get_custom_text_url() {
return $this->custom_text_url;
}
/**
* @param string $custom_text_url
*/
public function set_custom_text_url( $custom_text_url ) {
$this->custom_text_url = $custom_text_url;
}
/**
* @return string
*/
public function get_select_translator_iframe_url() {
return $this->select_translator_iframe_url;
}
/**
* @param string $select_translator_iframe_url
*/
public function set_select_translator_iframe_url( $select_translator_iframe_url ) {
$this->select_translator_iframe_url = $select_translator_iframe_url;
}
/**
* @return string
*/
public function get_translator_contact_iframe_url() {
return $this->translator_contact_iframe_url;
}
/**
* @param string $translator_contact_iframe_url
*/
public function set_translator_contact_iframe_url( $translator_contact_iframe_url ) {
$this->translator_contact_iframe_url = $translator_contact_iframe_url;
}
/**
* @return string
*/
public function get_quote_iframe_url() {
return $this->quote_iframe_url;
}
/**
* @param string $quote_iframe_url
*/
public function set_quote_iframe_url( $quote_iframe_url ) {
$this->quote_iframe_url = $quote_iframe_url;
}
/**
* @return bool
*/
public function get_has_translator_selection() {
return $this->has_translator_selection;
}
/**
* @param bool $has_translator_selection
*/
public function set_has_translator_selection( $has_translator_selection ) {
$this->has_translator_selection = (bool) $has_translator_selection;
}
/**
* @return int
*/
public function get_project_name_length() {
return $this->project_name_length;
}
/**
* @param int $project_name_length
*/
public function set_project_name_length( $project_name_length ) {
$this->project_name_length = (int) $project_name_length;
}
/**
* @return string
*/
public function get_suid() {
return $this->suid;
}
/**
* @param string $suid
*/
public function set_suid( $suid ) {
$this->suid = $suid;
}
/**
* @return bool
*/
public function get_notification() {
return $this->notification;
}
/**
* @param bool $notification
*/
public function set_notification( $notification ) {
$this->notification = (bool) $notification;
}
/**
* @return bool
*/
public function get_preview_bundle() {
return $this->preview_bundle;
}
/**
* @param bool $preview_bundle
*/
public function set_preview_bundle( $preview_bundle ) {
$this->preview_bundle = (bool) $preview_bundle;
}
/**
* @return bool
*/
public function get_deadline() {
return $this->deadline;
}
/**
* @param bool $deadline
*/
public function set_deadline( $deadline ) {
$this->deadline = (bool) $deadline;
}
/**
* @return bool
*/
public function get_oauth() {
return $this->oauth;
}
/**
* @param bool $oauth
*/
public function set_oauth( $oauth ) {
$this->oauth = (bool) $oauth;
}
/**
* @return string
*/
public function get_oauth_url() {
return $this->oauth_url;
}
/**
* @param string $oauth_url
*/
public function set_oauth_url( $oauth_url ) {
$this->oauth_url = $oauth_url;
}
/**
* @return int
*/
public function get_default_service() {
return $this->default_service;
}
/**
* @param int $default_service
*/
public function set_default_service( $default_service ) {
$this->default_service = (int) $default_service;
}
/**
* @return bool
*/
public function get_translation_feedback() {
return $this->translation_feedback;
}
/**
* @param bool $translation_feedback
*/
public function set_translation_feedback( $translation_feedback ) {
$this->translation_feedback = (bool) $translation_feedback;
}
/**
* @return string
*/
public function get_feedback_forward_method() {
return $this->feedback_forward_method;
}
/**
* @param string $feedback_forward_method
*/
public function set_feedback_forward_method( $feedback_forward_method ) {
$this->feedback_forward_method = $feedback_forward_method;
}
/** @return null|int */
public function get_last_refresh() {
return $this->last_refresh;
}
/** @param int */
public function set_last_refresh( $timestamp ) {
$this->last_refresh = $timestamp;
}
/** @return null|string */
public function get_how_to_get_credentials_desc() {
return $this->how_to_get_credentials_desc;
}
/** @param string */
public function set_how_to_get_credentials_desc( $desc ) {
$this->how_to_get_credentials_desc = $desc;
}
/** @return null|string */
public function get_how_to_get_credentials_url() {
return $this->how_to_get_credentials_url;
}
/** @param string */
public function set_how_to_get_credentials_url( $url ) {
$this->how_to_get_credentials_url = $url;
}
/** @return null|string */
public function get_client_create_account_page_url() {
return $this->client_create_account_page_url;
}
/** @param string */
public function set_client_create_account_page_url( $url ) {
$this->client_create_account_page_url = $url;
}
/**
* @return mixed
*/
public function get_redirect_to_ts() {
return $this->redirect_to_ts;
}
/**
* @param mixed $redirect_to_ts
*/
public function set_redirect_to_ts( $redirect_to_ts ) {
$this->redirect_to_ts = $redirect_to_ts;
}
/**
* @return stdClass[]
*/
public function get_countries() {
return $this->countries;
}
/**
* @param stdClass[] $countries
*/
public function set_countries( array $countries ) {
$this->countries = $countries;
}
public function serialize() {
return serialize( get_object_vars( $this ) );
}
public function unserialize( $serialized ) {
$simple_array = unserialize( $serialized );
foreach ( $simple_array as $property => $value ) {
if ( property_exists( $this, $property ) ) {
$this->$property = $value;
}
}
}
/**
* @return array
*/
protected function get_properties() {
return [
'id' => 'id',
'logo_url' => 'logo_url',
'logo_preview_url' => 'logo_preview_url',
'url' => 'url',
'name' => 'name',
'description' => 'description',
'doc_url' => 'doc_url',
'tms' => 'tms',
'partner' => 'partner',
'custom_fields' => 'custom_fields',
'custom_fields_data' => 'custom_fields_data',
'requires_authentication' => 'requires_authentication',
'has_language_pairs' => 'has_language_pairs',
'rankings' => 'rankings',
'popup_message' => 'popup_message',
'project_details_url' => 'project_details_url',
'add_language_pair_url' => 'add_language_pair_url',
'custom_text_url' => 'custom_text_url',
'select_translator_iframe_url' => 'select_translator_iframe_url',
'translator_contact_iframe_url' => 'translator_contact_iframe_url',
'quote_iframe_url' => 'quote_iframe_url',
'has_translator_selection' => 'has_translator_selection',
'project_name_length' => 'project_name_length',
'suid' => 'suid',
'notification' => 'notification',
'preview_bundle' => 'preview_bundle',
'deadline' => 'deadline',
'oauth' => 'oauth',
'oauth_url' => 'oauth_url',
'default_service' => 'default_service',
'translation_feedback' => 'translation_feedback',
'feedback_forward_method' => 'feedback_forward_method',
'last_refresh' => 'last_refresh',
'how_to_get_credentials_desc' => 'how_to_get_credentials_desc',
'how_to_get_credentials_url' => 'how_to_get_credentials_url',
'client_create_account_page_url' => 'client_create_account_page_url',
'redirect_to_ts?' => 'redirect_to_ts',
'countries' => 'countries',
];
}
}