/** * Shows the autotag permission form * * @param string $autotag_id ID of group to edit * @return string HTML for group editor * */ function ATP_edit($autotag_id = '') { global $_TABLES, $_CONF, $_USER, $LANG01, $LANG_ACCESS, $LANG_ADMIN, $LANG_AM, $MESSAGE, $LANG28, $VERBOSE; USES_lib_admin(); $retval = ''; $form_url = ''; $token = SEC_createToken(); $admin_list = new Template($_CONF['path_layout'] . 'admin/autotag/'); $admin_list->set_file('admin', 'autotag_perm.thtml'); $menu_arr = array(array('url' => $_CONF['site_admin_url'] . '/autotag.php', 'text' => 'Autotag List'), array('url' => $_CONF['site_admin_url'] . '/index.php', 'text' => $LANG_ADMIN['admin_home'])); $retval .= COM_startBlock($LANG01['autotag_perms'], '', COM_getBlockTemplate('_admin_block', 'header')); $retval .= ADMIN_createMenu($menu_arr, $LANG_AM['autotagpermmsg'], $_CONF['layout_url'] . '/images/icons/autotag.png'); $retval .= COM_endBlock(COM_getBlockTemplate('_admin_block', 'footer')); $header_arr = array(array('text' => $LANG_AM['allowed'], 'field' => 'usage_allowed', 'sort' => false, 'align' => 'left'), array('text' => $LANG_AM['namespace'], 'field' => 'usage_namespace', 'sort' => true, 'align' => 'left'), array('text' => $LANG_AM['operation'], 'field' => 'usage_operation', 'sort' => true, 'align' => 'left')); $text_arr = array('has_menu' => false, 'title' => $LANG_AM['autotag'] . ': ' . $autotag_id, 'help_url' => '', 'no_data' => 'No data to display', 'form_url' => ''); $defsort_arr = array('field' => 'usage_namespace', 'direction' => 'asc'); $form_arr = array(); $options = array(); $extra = array(); $tagUsage = PLG_collectAutotagUsage(); $sql = "SELECT * FROM {$_TABLES['autotag_perm']} JOIN {$_TABLES['autotag_usage']} ON "; $sql .= "{$_TABLES['autotag_perm']}.autotag_id = {$_TABLES['autotag_usage']}.autotag_id "; $sql .= "WHERE {$_TABLES['autotag_perm']}.autotag_id = '" . DB_escapeString($autotag_id) . "' ORDER BY usage_namespace ASC"; $result = DB_query($sql); $autoTagPerms = array(); while ($row = DB_fetchArray($result)) { $autoTagPerms[] = $row['autotag_name'] . '.' . $row['usage_namespace'] . '.' . $row['usage_operation']; $autotagPermissions[] = $row; } $autoTags = PLG_collectTags(); foreach ($autoTags as $autotag_name => $namespace) { if ($autotag_name != $autotag_id) { continue; } foreach ($tagUsage as $usage) { $allowed = 1; // default is to allow $needle = $autotag_name . '.' . $usage['namespace'] . '.' . $usage['usage']; $pointer = array_search($needle, $autoTagPerms); if ($pointer !== FALSE) { $allowed = $autotagPermissions[$pointer]['autotag_allowed']; } $final[$needle] = array('usage_id' => $needle, 'autotag_name' => $autotag_name, 'usage_namespace' => $usage['namespace'], 'usage_operation' => $usage['usage'], 'usage_allowed' => $allowed); } } $FinalList = ADMIN_listArray('autotag-list', 'AT_getListField', $header_arr, $text_arr, $final, $defsort_arr, '', $extra, $options, $form_arr); $admin_list->set_var('admin_list', $FinalList); $admin_list->set_var('input_csrf_token', CSRF_TOKEN); $admin_list->set_var('var_token', $token); $admin_list->set_var('var_autotag_id', $autotag_id); $retval .= $admin_list->parse('output', 'admin'); return $retval; }
/** * List available plugins * * @return string formatted list of plugins * */ function PLUGINS_list($token) { global $_CONF, $_TABLES, $LANG32, $LANG_ADMIN, $_IMAGE_TYPE, $data_arr; USES_lib_admin(); $T = new Template($_CONF['path_layout'] . 'admin/plugins/'); $T->set_file('admin-list', 'plugin_list.thtml'); $T->set_var('block_start', COM_startBlock($LANG32[5], '', COM_getBlockTemplate('_admin_block', 'header'))); $menu_arr = array(array('url' => $_CONF['site_admin_url'], 'text' => $LANG_ADMIN['admin_home'])); $T->set_var('admin_menu', ADMIN_createMenu($menu_arr, $LANG32[11], $_CONF['layout_url'] . '/images/icons/plugins.' . $_IMAGE_TYPE)); $T->set_var('upload_form', PLUGINS_showUploadForm($token)); // show the plugin upload form $data_arr = array(); PLUGINS_loadPlugins($data_arr); // installed plugins PLUGINS_loadNewPlugins($data_arr); // uninstalled/new plugins $defsort_arr = array('field' => 'pi_name', 'direction' => 'asc'); $header_arr = array(array('text' => $LANG32[78], 'field' => 'control', 'align' => 'center', 'width' => '40px'), array('text' => $LANG32[16], 'field' => 'pi_name', 'sort' => true), array('text' => $LANG32[36], 'field' => 'version', 'align' => 'center', 'nowrap' => true, 'width' => '75px'), array('text' => $LANG32[83], 'field' => 'info', 'align' => 'center', 'width' => '40px'), array('text' => $LANG32[84], 'field' => 'bundled', 'align' => 'center', 'width' => '40px', 'sort' => true), array('text' => $LANG32[27], 'field' => 'pi_homepage', 'nowrap' => true, 'width' => '150px', 'sort' => true), array('text' => $LANG32[18], 'field' => 'pi_gl_version', 'align' => 'center', 'width' => '75px', 'sort' => true), array('text' => $LANG32[79], 'field' => 'unplug', 'align' => 'center', 'width' => '40px')); $text_arr = array('form_url' => $_CONF['site_admin_url'] . '/plugins.php'); $options_arr = array(); // set security token and plugin enable/disable indicator $form_arr = array('top' => '<input type="hidden" name="' . CSRF_TOKEN . '" value="' . $token . '"/>', 'bottom' => '<input type="hidden" name="pluginenabler" value="true"/>'); $T->set_var('plugin_list', ADMIN_listArray('plugins', 'PLUGINS_getListField', $header_arr, $text_arr, $data_arr, $defsort_arr, '', $token, $options_arr, $form_arr)); $T->set_var('block_end', COM_endBlock(COM_getBlockTemplate('_admin_block', 'footer'))); $retval = $T->parse('output', 'admin-list'); return $retval; }
/** * Common function used in Admin scripts to display a list of items (old version) * * @param string $fieldfunction Name of a function used to display the list item row details * @param array $header_arr array of header fields with sortables and table fields * @param array $text_arr array with different text strings * @param array $data_arr array with sql query data - array of list records * @param array $options_arr array of options - used for check-all feature * @param array $form_arr optional extra forms at top or bottom * @param string $extra additional values passed to fieldfunction * @return string HTML output of function * */ function ADMIN_simpleList($fieldfunction, $header_arr, $text_arr, $data_arr, $options_arr = '', $form_arr = '', $extra = '') { // these are not used by simpleList - initialize to prevent E_ALL issues $defsort_arr = array('field' => 0, 'direction' => 'ASC'); $filter = ''; $retval = ADMIN_listArray('simpleList', $fieldfunction, $header_arr, $text_arr, $data_arr, $defsort_arr, $filter, $extra, $options_arr, $form_arr); return $retval; }