|
49 | 49 |
|
50 | 50 | class page_action extends tform_actions { |
51 | 51 |
|
52 | | - |
53 | | - public function onAfterUpdate() { |
| 52 | + private function getAffectedSites() { |
54 | 53 | global $app, $conf; |
55 | 54 |
|
56 | | - if(isset($this->dataRecord['update_sites']) && $this->dataRecord['update_sites'] === 'y' && $this->dataRecord['active'] === 'y') { |
57 | | - if($this->dataRecord['type'] === 'php') { |
58 | | - $rlike = $this->dataRecord['id'].'|,'.$this->dataRecord['id'].'|'.$this->dataRecord['id'].','; |
59 | | - $affected_snippets = $app->db->queryAllRecords('SELECT directive_snippets_id FROM directive_snippets WHERE required_php_snippets REGEXP ? AND type = ?', $rlike, 'apache'); |
60 | | - if(is_array($affected_snippets) && !empty($affected_snippets)) { |
61 | | - foreach($affected_snippets as $snippet) { |
62 | | - $sql_in[] = $snippet['directive_snippets_id']; |
63 | | - } |
64 | | - $affected_sites = $app->db->queryAllRecords('SELECT domain_id FROM web_domain WHERE server_id = ? AND directive_snippets_id IN ?', $conf['server_id'], $sql_in); |
| 55 | + if($this->dataRecord['type'] === 'php') { |
| 56 | + $rlike = $this->dataRecord['id'].'|,'.$this->dataRecord['id'].'|'.$this->dataRecord['id'].','; |
| 57 | + $affected_snippets = $app->db->queryAllRecords('SELECT directive_snippets_id FROM directive_snippets WHERE required_php_snippets REGEXP ? AND type = ?', $rlike, 'apache'); |
| 58 | + if(is_array($affected_snippets) && !empty($affected_snippets)) { |
| 59 | + foreach($affected_snippets as $snippet) { |
| 60 | + $sql_in[] = $snippet['directive_snippets_id']; |
65 | 61 | } |
66 | | - } elseif($this->dataRecord['type'] === 'apache' || $this->dataRecord['type'] === 'nginx') { |
67 | | - $affected_sites = $app->db->queryAllRecords('SELECT domain_id FROM web_domain WHERE server_id = ? AND directive_snippets_id = ?', $conf['server_id'], $this->dataRecord['id']); |
| 62 | + $affected_sites = $app->db->queryAllRecords('SELECT domain_id FROM web_domain WHERE server_id = ? AND directive_snippets_id IN ?', $conf['server_id'], $sql_in); |
68 | 63 | } |
| 64 | + } elseif($this->dataRecord['type'] === 'apache' || $this->dataRecord['type'] === 'nginx') { |
| 65 | + $affected_sites = $app->db->queryAllRecords('SELECT domain_id FROM web_domain WHERE server_id = ? AND directive_snippets_id = ?', $conf['server_id'], $this->dataRecord['id']); |
| 66 | + } |
| 67 | + |
| 68 | + return $affected_sites; |
| 69 | + } |
| 70 | + |
| 71 | + public function onBeforeUpdate() { |
| 72 | + global $app; |
| 73 | + |
| 74 | + $oldRecord = $app->tform->getDataRecord($this->id); |
| 75 | + |
| 76 | + if($this->dataRecord['active'] !== 'y' && $oldRecord['active'] === 'y') { |
| 77 | + $affected_sites = $this->getAffectedSites(); |
| 78 | + if(!empty($affected_sites)) { |
| 79 | + $app->tform->errorMessage .= $app->lng('error_disable_snippet_active_sites'); |
| 80 | + } |
| 81 | + } elseif($this->dataRecord['customer_viewable'] !== 'y' && $oldRecord['customer_viewable'] === 'y') { |
| 82 | + $affected_sites = $this->getAffectedSites(); |
| 83 | + if(!empty($affected_sites)) { |
| 84 | + $app->tform->errorMessage .= $app->lng('error_hide_snippet_active_sites'); |
| 85 | + } |
| 86 | + } |
| 87 | + } |
| 88 | + |
| 89 | + public function onAfterUpdate() { |
| 90 | + global $app; |
| 91 | + |
| 92 | + if(isset($this->dataRecord['update_sites']) && $this->dataRecord['update_sites'] === 'y' && $this->dataRecord['active'] === 'y') { |
| 93 | + $affected_sites = $this->getAffectedSites(); |
69 | 94 |
|
70 | 95 | if(is_array($affected_sites) && !empty($affected_sites)) { |
71 | 96 | foreach($affected_sites as $site) { |
|
0 commit comments