echo forum_htmlencode($ext_data['extension']['description']); ?> </p> </div> </div> </div> <?php // Setup an array of warnings to display in the form $form_warnings = array(); $forum_page['num_items'] = 0; foreach ($ext_data['extension']['note'] as $cur_note) { if ($cur_note['attributes']['type'] == 'install') { $form_warnings[] = '<li>' . forum_htmlencode($cur_note['content']) . '</li>'; } } if (version_compare(clean_version($forum_config['o_cur_version']), clean_version($ext_data['extension']['maxtestedon']), '>')) { $form_warnings[] = '<li>' . $lang_admin_ext['Maxtestedon warning'] . '</li>'; } if (!empty($form_warnings)) { ?> <div class="ct-box warn-box"> <p class="important"><strong><?php echo $lang_admin_ext['Install note']; ?> </strong></p> <ol class="info-list"> <?php echo implode("\n\t\t\t\t\t", $form_warnings) . "\n"; ?> </ol> </div>
function validate_manifest($xml_array, $folder_name) { global $lang_admin_ext, $forum_config; $errors = array(); $return = ($hook = get_hook('xm_fn_validate_manifest_start')) ? eval($hook) : null; if ($return != null) { return; } if (!isset($xml_array['extension']) || !is_array($xml_array['extension'])) { $errors[] = $lang_admin_ext['extension root error']; } else { $ext = $xml_array['extension']; if (!isset($ext['attributes']['engine'])) { $errors[] = $lang_admin_ext['extension/engine error']; } else { if ($ext['attributes']['engine'] != '1.0') { $errors[] = $lang_admin_ext['extension/engine error2']; } } if (!isset($ext['id']) || $ext['id'] == '') { $errors[] = $lang_admin_ext['extension/id error']; } if ($ext['id'] != $folder_name) { $errors[] = $lang_admin_ext['extension/id error2']; } if (!isset($ext['title']) || $ext['title'] == '') { $errors[] = $lang_admin_ext['extension/title error']; } if (!isset($ext['version']) || $ext['version'] == '' || preg_match('/[^a-z0-9\\- \\.]+/i', $ext['version'])) { $errors[] = $lang_admin_ext['extension/version error']; } if (!isset($ext['description']) || $ext['description'] == '') { $errors[] = $lang_admin_ext['extension/description error']; } if (!isset($ext['author']) || $ext['author'] == '') { $errors[] = $lang_admin_ext['extension/author error']; } if (!isset($ext['minversion']) || $ext['minversion'] == '') { $errors[] = $lang_admin_ext['extension/minversion error']; } if (isset($ext['minversion']) && version_compare(clean_version($forum_config['o_cur_version']), clean_version($ext['minversion']), '<')) { $errors[] = sprintf($lang_admin_ext['extension/minversion error2'], $ext['minversion']); } if (!isset($ext['maxtestedon']) || $ext['maxtestedon'] == '') { $errors[] = $lang_admin_ext['extension/maxtestedon error']; } if (isset($ext['note'])) { foreach ($ext['note'] as $note) { if (!isset($note['content']) || $note['content'] == '') { $errors[] = $lang_admin_ext['extension/note error']; } if (!isset($note['attributes']['type']) || $note['attributes']['type'] == '') { $errors[] = $lang_admin_ext['extension/note error2']; } } } if (isset($ext['hooks']) && is_array($ext['hooks'])) { if (!isset($ext['hooks']['hook']) || !is_array($ext['hooks']['hook'])) { $errors[] = $lang_admin_ext['extension/hooks/hook error']; } else { foreach ($ext['hooks']['hook'] as $hook) { if (!isset($hook['content']) || $hook['content'] == '') { $errors[] = $lang_admin_ext['extension/hooks/hook error']; } if (!isset($hook['attributes']['id']) || $hook['attributes']['id'] == '') { $errors[] = $lang_admin_ext['extension/hooks/hook error2']; } if (isset($hook['attributes']['priority']) && (!ctype_digit($hook['attributes']['priority']) || $hook['attributes']['priority'] < 0 || $hook['attributes']['priority'] > 10)) { $errors[] = $lang_admin_ext['extension/hooks/hook error3']; } $tokenized_hook = token_get_all('<?php ' . $hook['content']); $last_element = array_pop($tokenized_hook); if (is_array($last_element) && $last_element[0] == T_INLINE_HTML) { $errors[] = $lang_admin_ext['extension/hooks/hook error4']; } } } } } ($hook = get_hook('xm_fn_validate_manifest_end')) ? eval($hook) : null; return $errors; }