Changeset 3730:5c45a5df9a59 for plugins/maintenance/inc/tasks/class.dc.maintenance.synchpostsmeta.php
Legend:
- Unmodified
- Added
- Removed
-
plugins/maintenance/inc/tasks/class.dc.maintenance.synchpostsmeta.php
r3340 r3730 10 10 # 11 11 # -- END LICENSE BLOCK ----------------------------------------- 12 if (!defined('DC_RC_PATH')) { return;}12 if (!defined('DC_RC_PATH')) {return;} 13 13 14 14 class dcMaintenanceSynchpostsmeta extends dcMaintenanceTask 15 15 { 16 protected $ajax= true;17 18 19 16 protected $ajax = true; 17 protected $group = 'index'; 18 protected $limit = 100; 19 protected $step_task; 20 20 21 22 23 $this->name= __('Entries metadata');24 $this->task= __('Synchronize entries metadata');25 $this->step_task= __('Next');26 $this->step= __('Synchronize entry %d to %d.');27 $this->success= __('Entries metadata synchronize done.');28 $this->error= __('Failed to synchronize entries metadata.');21 protected function init() 22 { 23 $this->name = __('Entries metadata'); 24 $this->task = __('Synchronize entries metadata'); 25 $this->step_task = __('Next'); 26 $this->step = __('Synchronize entry %d to %d.'); 27 $this->success = __('Entries metadata synchronize done.'); 28 $this->error = __('Failed to synchronize entries metadata.'); 29 29 30 31 30 $this->description = __('Synchronize all entries metadata could be useful after importing content in your blog or do bad operation on database tables.'); 31 } 32 32 33 34 35 33 public function execute() 34 { 35 $this->code = $this->synchronizeAllPostsmeta($this->code, $this->limit); 36 36 37 38 37 return $this->code ?: true; 38 } 39 39 40 41 42 43 40 public function task() 41 { 42 return $this->code ? $this->step_task : $this->task; 43 } 44 44 45 46 47 48 45 public function step() 46 { 47 return $this->code ? sprintf($this->step, $this->code - $this->limit, $this->code) : null; 48 } 49 49 50 51 52 53 50 public function success() 51 { 52 return $this->code ? sprintf($this->step, $this->code - $this->limit, $this->code) : $this->success; 53 } 54 54 55 protected function synchronizeAllPostsmeta($start=null,$limit=null)56 57 58 $rs = $this->core->con->select('SELECT COUNT(post_id) FROM '.$this->core->prefix.'post');59 55 protected function synchronizeAllPostsmeta($start = null, $limit = null) 56 { 57 // Get number of posts 58 $rs = $this->core->con->select('SELECT COUNT(post_id) FROM ' . $this->core->prefix . 'post'); 59 $count = $rs->f(0); 60 60 61 62 63 $rs = $this->core->con->select('SELECT post_id FROM '.$this->core->prefix.'post '.$req_limit, true);61 // Get posts ids to update 62 $req_limit = $start !== null && $limit !== null ? $this->core->con->limit($start, $limit) : ''; 63 $rs = $this->core->con->select('SELECT post_id FROM ' . $this->core->prefix . 'post ' . $req_limit, true); 64 64 65 66 67 $rs_meta = $this->core->con->select('SELECT meta_id, meta_type FROM '.$this->core->prefix.'meta WHERE post_id = '.$rs->post_id.' ');65 // Update posts meta 66 while ($rs->fetch()) { 67 $rs_meta = $this->core->con->select('SELECT meta_id, meta_type FROM ' . $this->core->prefix . 'meta WHERE post_id = ' . $rs->post_id . ' '); 68 68 69 70 71 72 69 $meta = array(); 70 while ($rs_meta->fetch()) { 71 $meta[$rs_meta->meta_type][] = $rs_meta->meta_id; 72 } 73 73 74 $cur = $this->core->con->openCursor($this->core->prefix.'post');75 76 $cur->update('WHERE post_id = '.$rs->post_id);77 78 74 $cur = $this->core->con->openCursor($this->core->prefix . 'post'); 75 $cur->post_meta = serialize($meta); 76 $cur->update('WHERE post_id = ' . $rs->post_id); 77 } 78 $this->core->blog->triggerBlog(); 79 79 80 81 82 80 // Return next step 81 return $start + $limit > $count ? null : $start + $limit; 82 } 83 83 }
Note: See TracChangeset
for help on using the changeset viewer.