Student projects/Admin page cleanup
Apologies for the mess on this page. I'll sort it out soon.
Right now, I'm trying to work on a more "logical" reorganization of the settings accessible via the admin page and simultaneously coding the PHP for the hierarchy (as a block) and for processing the XML file. Slowly getting there... Please use the talk page to leave me any comments, I'll be checking it regularly.
Key Project Tasks
- (almost done -- 1 issue remaining) Design XML DTD
- (almost done -- 3 issues remaining) Design new admin block
- (in progress) Reorganize and port Moodle admin settings to XML
- (not yet started) Code script for displaying and accepting input from new admin interface (based on XML)
- (not yet started) Build a per-user bookmarking system for admin settings
- Redo the user management interface
- Code the necessary PHP to highlight changed settings after an upgrade
Current Admin Layout (from 1.5)
This'll be updated soon. I'm working with 1.6 now.
Admin
- Configuration
- Variables
- Interface
- lang (select)
- langmenu (select)
- langlist (text)
- langcache (select)
- locale (text)
- timezone (select)
- country (select)
- framename (text)
- themelist (text)
- allowuserthemes (select)
- allowcoursethemes (select)
- allowuserblockhiding (select)
- showblocksonmodpages (select)
- tabselectedtofront (select)
- Security
- displayloginfailures
- notifyloginfailures
- notifyloginthreshold
- secureforms
- loginhttps
- runclamonupload
- pathtoclam
- quarantinedir
- clamfailureonupload
- Operating System
- gdversion
- dbsessions
- sessiontimeout
- sessioncookie
- zip
- unzip
- pathtodu
- slasharguments
- proxyhost
- proxyport
- Maintenance
- longtimenosee
- deleteunconfirmed
- loglifetime
- Mail
- smtphosts
- smtpuser
- smtppass
- noreplyaddress
- digestmailtime
- allowemailaddresses
- denyemailaddresses
- User
- sitepolicy
- fullnamedisplay
- extendedusernamechars
- autologinguests
- Permissions
- teacherassignteachers
- allowunenroll
- allusersaresitestudents
- showsiteparticipantlist
- forcelogin
- forceloginforprofiles
- opentogoogle
- maxbytes
- messaging
- allowobjectembed
- Miscellaneous
- maxeditingtime
- debug
- perfdebug
- enablerssfeeds
- Interface
- Site Settings
- Full site name
- Short name for site
- Front page description
- Front page format
- Include a topic section
- News items to show
- Your word for teacher
- Your word for teachers
- Your word for student
- Your word for students
- Themes
- Select a theme
- Language
- Update language pack from moodle.org
- Check for missing strings
- Edit strings (per file)
- Edit help documents
- Modules
- Hide/show (per module)
- Delete (per module)
- Specific settings (per module)
- Blocks
- Hide/show (per block)
- Multiple (per block)
- Delete (per block)
- Settings (per block)
- Filters
- Active/Inactive filters (and order)
- Text cache lifetime
- Filter uploaded files
- Filter all strings
- Backup
- Include modules
- Metacourse
- Users
- Logs
- User files
- Course files
- Messages
- Keep x files
- Schedule SMTWTFS
- Time to execute
- Save to
- Editor Settings
- htmleditor
- editorbackgroundcolor
- editorfontfamily
- editorfontsize
- editorkillword
- aspellpath
- editorspelling
- fonts in editor's dropdown menu
- editorhidebuttons (hidden buttons)
- Calendar
- adminsseeall
- startwday
- weekenddays
- upcoming_lookahead
- upcoming_maxevents
- timezones
- timezone update/import
- Maintenance Mode
- enable/disable
- message
- Variables
- Users
- Authentication
- (still looking into the different authentication methods)
- Edit User Accounts
- browse/edit/delete/add/search/alphasort users
- Add a New User
- (links to 'edit profile' for a new user)
- Upload Users
- import file
- Enrolments
- (still looking into different methods of enrolment)
- Enrol Students
- links to different courses (chosen via plain list) in admin mode
- Assign Teachers
- links through course cateogries to choose a course
- Assign Creators
- list to select from existing users
- Assign Admins
- list to select from existing users
- Authentication
- Courses
- shows course categories
- add/view/move/rename/delete catgories
- add a new course
- delete a course/other tasks (double-check what exactly they are)
- Logs
- live logs
- filter by date/site/participant/activity
- Site Files
- upload a file
- rename/delete/move to folder/delete files
- make a folder
- Environment
- evaluates current server environment for future moodle versions
Proposed Structure
Alrighty, here's the deal for how this is organized: I'm proposing a 2-or-3-level hierarchy for the reorganization. However, this list only contains what I'm calling "final" top-level categories. The stuff under the top-level categories isn't yet organized into second- and third-level categories; it's just a list of items from the "Current Structure" list.
- User Interface
- variables\interface
- variables\user\sitepolicy
- variables\user\fullnamedisplay
- site settings
- themes
- language
- editor settings
- calendar (except calendar\adminsseeall)
- site files
- Server Interface (a.k.a. backend)
- variables\maintenance
- variables\operating system
- variables\mail
- variables\user\extendedusernamechars
- variables\user\autologinguests (this might be better placed in security/auth)
- variables\miscellaneous
- test for future versions
- Authentication & Security
- variables\security
- variables\permissions
- calendar\adminsseeall
- user management (to be completely redone)
- Maintenance & Auditing
- backups
- maintenance mode
- logs
- Course Management
- to be worked out
- Plug-in Management
- filters
- blocks
- modules
- Bookmarks (per admin user)
Random Ideas
- I mentioned (in my proposal) using XML to store the hierarchy. I still think this is ideal (after all, XML seems to lend itself to hierarchical data), but I think there are a few ways to expand this. Notably, along with the settings, we can store
- whether a setting should appear on the initial (installation) config page (granted, this'll require a rewrite or modification of the initial config page)
- if a new setting has been set to the default because of an upgrade, then we can have a config page that appears when upgrading which shows only the flagged, new variables (i.e. those that were set to defaults)
- Site settings and editor settings could be grouped together (but I won't jumble up settings between the two of them; they'll just have the same parent in the hierarchy).
- Logs and Site Files sections look good as-is... probably won't make very many changes there
- Will try to improve on course administration interface (ideas to come soon)
- (Sort of) redo the user management interface so that we can get rid of the "Assign Teachers", "Assign Admins", etc. options on the main admin page (i.e. have a single link to a "User Management Interface" and do everything else from there.
- Group Modules, Filters, and Blocks (and other 16 types of plugins) under a top-level category called Plug-Ins (similar to the way it's done on moodle.org)
- Will probably use the PHP SimpleXML extension for reading XML files; variable data will be stored in current locations, not in XML, thus no XML changes will be made by PHP
Random Questions
- There are no settings for specific filters? They're only active or inactive? A: There can be, just none have any yet.
- When it comes to the hierarchical menu, I mentioned JavaScript-based... custom-written or is there already some sort of open source framework for collapsible JavaScript hierarchies? A: Settled -- I've already custom-written a JS hierarchy
- Anyone mind if I rewrite the user management pages? I'm thinking a single interface to do everything with regards to users. (details soon to be posted at Student projects/Admin page cleanup/User management interface)
- XML Schema or DTD?
- Are there changes to the admin section between the MOODLE_15_STABLE and MOODLE_16 interface? Which should I be working with primarily? A: Yup, use MOODLE_16.
Links
- Get back to the Student Projects listing.
- You can get my official SoC app here.
- My sample moodle setups are here for 1.5 and here for 1.6.
- A beta hierarchy script (actually, a PHP hierarchy object) that I created for this is available here.
- Useful link for me to learn about module programming.