diff --git a/action.php b/action.php index 86fd7d5..a0ad89d 100644 --- a/action.php +++ b/action.php @@ -202,8 +202,10 @@ function handle_revisions(&$event, $param) { $member = null; foreach($event->data->_content as $key => $ref) { - if($ref['_elem'] == 'opentag' && $ref['_tag'] == 'div' && $ref['class'] == 'li') { - $member = $key; + if(isset($ref['_elem']) && isset($ref['_tag']) && isset($ref['class'])) { + if($ref['_elem'] == 'opentag' && $ref['_tag'] == 'div' && $ref['class'] == 'li') { + $member = $key; + } } if($member && $ref['_elem'] == 'tag' && @@ -228,35 +230,39 @@ function handle_recent(&$event, $param) { $member = null; foreach($event->data->_content as $key => $ref) { - if($ref['_elem'] == 'opentag' && $ref['_tag'] == 'div' && $ref['class'] == 'li') { - $member = $key; - } + if(isset($ref['_elem']) && isset($ref['_tag']) && isset($ref['class'])) { + if($ref['_elem'] == 'opentag' && $ref['_tag'] == 'div' && $ref['class'] == 'li') { + $member = $key; + } - if($member && $ref['_elem'] == 'opentag' && - $ref['_tag'] == 'a' && $ref['class'] == 'diff_link'){ - $name = $ref['href']; - $name = explode('?', $name); - $name = explode('&', $name[1]); - $usename = null; - foreach($name as $n) { - $fields = explode('=', $n); - if($fields[0] == 'id') { - $usename = $fields[1]; - break; + if($member && $ref['_elem'] == 'opentag' && + $ref['_tag'] == 'a' && $ref['class'] == 'diff_link'){ + $name = $ref['href']; + $name = explode('?', $name); + $name = explode('&', $name[1]); + $usename = null; + foreach($name as $n) { + $fields = explode('=', $n); + if($fields[0] == 'id') { + $usename = $fields[1]; + break; + } } - } - if($usename) { - if($this->hlp->in_namespace($this->getConf('apr_namespaces'), $usename)) { - $meta = p_get_metadata($usename); - - if($meta['approval'][$meta['last_change']['date']]) { - $event->data->_content[$member]['class'] = 'li approved_revision'; - }else{ - $event->data->_content[$member]['class'] = 'li unapproved_revision'; + if($usename) { + if($this->hlp->in_namespace($this->getConf('apr_namespaces'), $usename)) { + $meta = p_get_metadata($usename); + + if ( isset ( $meta['last_change']['date'] ) ) { + if($meta['approval'][$meta['last_change']['date']]) { + $event->data->_content[$member]['class'] = 'li approved_revision'; + }else{ + $event->data->_content[$member]['class'] = 'li unapproved_revision'; + } + } } - } + } + $member = null; } - $member = null; } } return true;