How should we implement a plone educational portal ?
D K <chidochipotle-/[email protected]> Tue, 13 May 2003 10:51:31 -0700 (PDT)
| Newsgroups | gmane.comp.web.zope.plone.educational |
|---|---|
| Message-ID | <[email protected]> |
Hi:
I'm trying to do a Plone customized for educational settings tand here is how I plan to do it. I conceive tree main parts to work in:
1.- Educational types
2.- Site Structure
3.- Queries
The main result of having all these part created should lead to the following scenario:
After installing Plone the admin can quickly customize it's Edu-Plone to with all the institution information and create form that would generate several pages ( e.g. Main, Research, History, Courses, Contact, etcÂ…). Then the Faculty can quickly create his pages: research, courses, projects and other types of informal educational pages like FAQ's, howtos, blogs. Finally the student, can create quickly his homepages, with similar pages as the faculty like Main Page, Research, Bio.
1.- Educational types:
The Educational types (a form you would fill and then stored to be viewed) would be a Plone object that gill give structure to the information by comprising the fields of a particular object useful in educational settings. For example
A.- Main homepage:
The homepage of an educational institution will have
a Institution Name
b Institution Intro
c Institution Picture
d Institution Address.
The user would fill this fields and boom he would have his main portal page (a substitution of the default index_html wellcome) done.
B.- A more interesting type is one that would be used repetitively like the teacher homepage:
a Teacher Name
b Teacher Intro
c Teacher Picture
d Teacher Courses
e Teacher Research.
Now you can send your imagination to fly but the question is how to do this:
There are two main ways you can create this Types thought archetypes (check how-to) thought TTWtypes (check how-to). The main different is TTWtypes are -very easy- to create and you don't have to make ANY code all is done thought a web interface with a product called formulator, archetypes are more flexible but you have to code. Don't hesitate to play with TTWtypes they are VERY rewarding.
Just a problem the default template for TTWtypes and archetypes: they are very generalized theus they render "ugly" webpages, that are hard to read.
Lot's of work will be needed to create custom templates based on ttw_view and ttw_edit and base_view and base_edit to have decent looking webpages.
2.- Site Structure.
The site structure can be easily created with a simple script, for example create a python script. The following script gives an idea of how to create folder from a script, very simple stuff. Sorry for the Spanish namesÂ….
# Example code:
# Import a standard function, and get the HTML request and response objects.
from Products.PythonScripts.standard import html_quote
request = container.REQUEST
RESPONSE = request.RESPONSE
# Investigacion
context.invokeFactory(id='Investigacion', title='Investigación', type_name='Folder')
folder_investigacion=getattr(context,'Investigacion')
folder_investigacion.invokeFactory(id='Proyectos', type_name='Folder')
folder_investigacion.invokeFactory(id='Publicaciones', type_name='Folder')
context.invokeFactory(id='Ensenanza', title="Eseñanza", type_name='Folder')
folder_ensenanza=getattr(context,'Ensenanza')
folder_ensenanza.invokeFactory(id='Cursos', type_name='Folder')
context.invokeFactory(id='Directorio', type_name='Folder')
folder_directorio=getattr(context,'Directorio')
context.invokeFactory(id='Eventos', type_name='Folder')
folder_eventos=getattr(context,'Eventos')
context.invokeFactory(id='Contacto', type_name='Folder')
folder_contacto=getattr(context,'Contacto')
folder_contacto.invokeFactory(id='index_html', type_name='Contacto')
# Return a string identifying this script.
print "This is the", script.meta_type, '"%s"' % script.getId(),
if script.title:
print "(%s)" % html_quote(script.title),
print "in", container.absolute_url()
return printed
3. And finally you will have to make some automatic pages, for example a page that would give the research of a site would search all the projects created by the different researchers and then create a page:
It would be a template with something like
python:request.get('news', here.portal_catalog.searchResults(meta_type='Reseach Project'
, sort_on='Date'
, sort_order='reverse'
, review_state='published'
, subject='Headline'));"
Check the http://plone.org/Members/CMYanko/myWiki/NewsItem to see how this works.
I could go on writing and writing but I don't want to make this e-mail to long. I just want to open the topic on:
What would be the concrete architecture and concrete mechanisms you can use to
create the Plone Educational portal ?
Daniel
---------------------------------
Do you Yahoo!?
The New Yahoo! Search - Faster. Easier. Bingo.