/
home
/
vianto5
/
cititower.mx
/
wp-content
/
plugins
/
sitepress-multilingual-cms
/
classes
/
ATE
/
/home/vianto5/cititower.mx/wp-content/plugins/sitepress-multilingual-cms/classes/ATE
mkdir
upload
Name
Size
Mode
Actions
API/
-
0755
rm
auto-translate/
-
0755
rm
Download/
-
0755
rm
Hooks/
-
0755
rm
JobSender/
-
0755
rm
LanguageMapping/
-
0755
rm
Loader/
-
0755
rm
Log/
-
0755
rm
models/
-
0755
rm
proxies/
-
0755
rm
REST/
-
0755
rm
Retranslation/
-
0755
rm
Retry/
-
0755
rm
Review/
-
0755
rm
sitekey/
-
0755
rm
Sync/
-
0755
rm
TranslateEverything/
-
0755
rm
UpdateTranslation/
-
0755
rm
ATEDashboardLoader.php
2631
0644
edit
dl
rm
class-wpml-tm-ams-ate-factories.php
852
0644
edit
dl
rm
class-wpml-tm-ams-translator-activation-records.php
1049
0644
edit
dl
rm
class-wpml-tm-ams-users.php
578
0644
edit
dl
rm
class-wpml-tm-ate-ams-endpoints.php
14474
0644
edit
dl
rm
class-wpml-tm-ate-job.php
229
0644
edit
dl
rm
class-wpml-tm-ate-jobs.php
4367
0644
edit
dl
rm
class-wpml-tm-ate-status.php
922
0644
edit
dl
rm
class-wpml-tm-ate.php
2798
0644
edit
dl
rm
JobRecord.php
783
0644
edit
dl
rm
JobRecords.php
4416
0644
edit
dl
rm
Jobs.php
7791
0644
edit
dl
rm
Loader.php
9009
0644
edit
dl
rm
NoCreditPopup.php
1759
0644
edit
dl
rm
ReturnedJobs.php
1299
0644
edit
dl
rm
StatusBar.php
1146
0644
edit
dl
rm
StatusIcons.php
1752
0644
edit
dl
rm
SyncLock.php
526
0644
edit
dl
rm
TranslateEverything.php
4118
0644
edit
dl
rm
Edit:
/home/vianto5/cititower.mx/wp-content/plugins/sitepress-multilingual-cms/classes/ATE/JobRecords.php
(4416B)
<?php namespace WPML\TM\ATE; use Exception; use WPML\Collect\Support\Collection; use WPML\FP\Fns; use WPML\FP\Lst; use WPML_TM_ATE_API_Error; use WPML_TM_Editors; class JobRecords { const FIELD_ATE_JOB_ID = 'ate_job_id'; const FIELD_IS_EDITING = 'is_editing'; /** @var \wpdb $wpdb */ private $wpdb; /** @var Collection $jobs */ private $jobs; public function __construct( \wpdb $wpdb ) { $this->wpdb = $wpdb; $this->jobs = wpml_collect( [] ); } /** * This method will retrieve data from the ATE job ID. * Beware of the returned data shape which is not standard. * * @param int $ateJobId * * @return array|null */ public function get_data_from_ate_job_id( $ateJobId ) { $ateJobId = (int) $ateJobId; $this->warmCache( [], [ $ateJobId ] ); $job = $this->jobs->first( function( JobRecord $job ) use ( $ateJobId ) { return $job->ateJobId === $ateJobId; } ); if ( $job ) { /** @var JobRecord $job */ return [ 'wpml_job_id' => $job->wpmlJobId, 'ate_job_data' => [ 'ate_job_id' => $job->ateJobId, ], ]; } return null; } /** * @param int $wpmlJobId * @param array $ateJobData */ public function store( $wpmlJobId, array $ateJobData ) { $ateJobData['job_id'] = (int) $wpmlJobId; $this->warmCache( [ $wpmlJobId ] ); $job = $this->jobs->get( $wpmlJobId ); if ( ! $job ) { $job = new JobRecord(); $job->wpmlJobId = (int) $wpmlJobId; } if ( isset( $ateJobData[ self::FIELD_ATE_JOB_ID ] ) ) { $job->ateJobId = $ateJobData[ self::FIELD_ATE_JOB_ID ]; } $this->persist( $job ); } /** * @param JobRecord $job */ public function persist( JobRecord $job ) { $this->jobs->put( $job->wpmlJobId, $job ); $this->wpdb->update( $this->wpdb->prefix . 'icl_translate_job', [ 'editor_job_id' => $job->ateJobId ], [ 'job_id' => $job->wpmlJobId ], [ '%d' ], [ '%d' ] ); } /** * This method will load in-memory the required jobs. * * @param array $wpmlJobIds * @param array $ateJobIds */ public function warmCache( array $wpmlJobIds, array $ateJobIds = [] ) { $wpmlJobIds = wpml_collect( $wpmlJobIds )->reject( $this->isAlreadyLoaded( 'wpmlJobId' ) )->toArray(); $ateJobIds = wpml_collect( $ateJobIds )->reject( $this->isAlreadyLoaded( 'ateJobId' ) )->toArray(); $where = []; if ( $wpmlJobIds ) { $where[] = 'job_id IN(' . wpml_prepare_in( $wpmlJobIds, '%d' ) . ')'; } if ( $ateJobIds ) { $where[] = 'editor_job_id IN(' . wpml_prepare_in( $ateJobIds, '%d' ) . ')'; } if ( ! $where ) { return; } $whereHasJobIds = implode( ' OR ', $where ); $rows = $this->wpdb->get_results( " SELECT job_id, editor_job_id FROM {$this->wpdb->prefix}icl_translate_job WHERE editor = '" . WPML_TM_Editors::ATE . "' AND ({$whereHasJobIds}) " ); foreach ( $rows as $row ) { $job = new JobRecord( $row ); $this->jobs->put( $job->wpmlJobId, $job ); } } /** * @param $idPropertyName * * @return \Closure */ private function isAlreadyLoaded( $idPropertyName ) { $loadedIds = $this->jobs->pluck( $idPropertyName )->values()->toArray(); return Lst::includes( Fns::__, $loadedIds ); } /** * @param int $wpmlJobId * * @return int */ public function get_ate_job_id( $wpmlJobId ) { return $this->get( $wpmlJobId )->ateJobId; } /** * @param int $wpmlJobId * * @return bool */ public function is_editing_job( $wpmlJobId ) { return $this->get( $wpmlJobId )->isEditing(); } /** * @param $wpmlJobId * * @return JobRecord */ public function get( $wpmlJobId ) { if ( ! $this->jobs->has( $wpmlJobId ) ) { $this->warmCache( [ (int) $wpmlJobId ] ); } /** @var null|JobRecord $job */ $job = $this->jobs->get( $wpmlJobId ); if ( ! $job || ! $job->ateJobId ) { $this->restoreJobDataFromATE( $wpmlJobId ); $job = $this->jobs->get( $wpmlJobId, new JobRecord() ); } return $job; } /** * This method will try to recover the job data from ATE server, * and persist it in the local repository. * * @param int $wpmlJobId */ private function restoreJobDataFromATE( $wpmlJobId ) { $data = apply_filters( 'wpml_tm_ate_job_data_fallback', [], $wpmlJobId ); if ( $data ) { try { $this->store( $wpmlJobId, $data ); } catch ( Exception $e ) { $error_log = new WPML_TM_ATE_API_Error(); $error_log->log( $e->getMessage() ); } } } }
Save
cmd:
run