Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Z
Zope
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Kirill Smelkov
Zope
Commits
c2f76353
Commit
c2f76353
authored
May 10, 2000
by
Amos Latteier
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Added ZopeTutorial to CVS.
parent
47c1bd01
Changes
9
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
1596 additions
and
0 deletions
+1596
-0
lib/python/Products/ZopeTutorial/CHANGES.txt
lib/python/Products/ZopeTutorial/CHANGES.txt
+97
-0
lib/python/Products/ZopeTutorial/TutorialTopic.py
lib/python/Products/ZopeTutorial/TutorialTopic.py
+245
-0
lib/python/Products/ZopeTutorial/__init__.py
lib/python/Products/ZopeTutorial/__init__.py
+178
-0
lib/python/Products/ZopeTutorial/glossary.stx
lib/python/Products/ZopeTutorial/glossary.stx
+142
-0
lib/python/Products/ZopeTutorial/lessonView.dtml
lib/python/Products/ZopeTutorial/lessonView.dtml
+40
-0
lib/python/Products/ZopeTutorial/tutorial.stx
lib/python/Products/ZopeTutorial/tutorial.stx
+825
-0
lib/python/Products/ZopeTutorial/tutorialAdd.dtml
lib/python/Products/ZopeTutorial/tutorialAdd.dtml
+43
-0
lib/python/Products/ZopeTutorial/tutorialNav.dtml
lib/python/Products/ZopeTutorial/tutorialNav.dtml
+25
-0
lib/python/Products/ZopeTutorial/version.txt
lib/python/Products/ZopeTutorial/version.txt
+1
-0
No files found.
lib/python/Products/ZopeTutorial/CHANGES.txt
0 → 100644
View file @
c2f76353
Zope Tutorial 1.0a6
Bug Fixes
* Rearranged things a bit for 2.2 release.
* Improved missing cookie behavior.
* Improved descriptions of management screen navigation.
* Many typos and nits fixed in lessons and examples.
Known Limitations
* Requires Zope 2.1.6 or higher.
* Works better with HTTP cookies.
Zope Tutorial 1.0a5
Features
* Changed the way examples are installed. Now the examples are
installed by adding a Zope object. This resolves a lot of security
issues.
* Added some preliminary API docs, and an API documentation
infrastructure.
Bug Fixes
* Miscellaneous restructuring and fixing.
Known Limitations
* Requires Zope 2.1.6 or higher.
* Requires HTTP cookies.
Zope Tutorial 1.0a4
Features
* Added an introduction.
* Improved installation location and verification.
Bug Fixes
* More information about how to navigate between management
screens.
* Many typos fixed thanks to Karl Ulbrich.
Known Bugs
* Requires Zope 2.1.6 or higher.
Zope Tutorial 1.0a3
Features
* Glossary greatly improved and linked into lessons.
Bug Fixes
* Install now correctly sets up gadfly database.
* Some DTML typos fixed thanks to Didier Georgieff.
Known Bugs
* Requires Zope 2.1.6 or higher.
Zope Tutorial 1.0a2
Features
* Improved PRE formatting. Examples now look nice.
* Improved examples navigation, no longer requires Javascript.
* Added more information to the glossary.
* Added feedback link.
Bug Fixes
* Grammar and typo fixes.
Known Bugs
* Requires Zope 2.1.6 or higher.
Zope Tutorial 1.0a1
Initial preview release.
\ No newline at end of file
lib/python/Products/ZopeTutorial/TutorialTopic.py
0 → 100644
View file @
c2f76353
##############################################################################
#
# Zope Public License (ZPL) Version 1.0
# -------------------------------------
#
# Copyright (c) Digital Creations. All rights reserved.
#
# This license has been certified as Open Source(tm).
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions are
# met:
#
# 1. Redistributions in source code must retain the above copyright
# notice, this list of conditions, and the following disclaimer.
#
# 2. Redistributions in binary form must reproduce the above copyright
# notice, this list of conditions, and the following disclaimer in
# the documentation and/or other materials provided with the
# distribution.
#
# 3. Digital Creations requests that attribution be given to Zope
# in any manner possible. Zope includes a "Powered by Zope"
# button that is installed by default. While it is not a license
# violation to remove this button, it is requested that the
# attribution remain. A significant investment has been put
# into Zope, and this effort will continue if the Zope community
# continues to grow. This is one way to assure that growth.
#
# 4. All advertising materials and documentation mentioning
# features derived from or use of this software must display
# the following acknowledgement:
#
# "This product includes software developed by Digital Creations
# for use in the Z Object Publishing Environment
# (http://www.zope.org/)."
#
# In the event that the product being advertised includes an
# intact Zope distribution (with copyright and license included)
# then this clause is waived.
#
# 5. Names associated with Zope or Digital Creations must not be used to
# endorse or promote products derived from this software without
# prior written permission from Digital Creations.
#
# 6. Modified redistributions of any form whatsoever must retain
# the following acknowledgment:
#
# "This product includes software developed by Digital Creations
# for use in the Z Object Publishing Environment
# (http://www.zope.org/)."
#
# Intact (re-)distributions of any official Zope release do not
# require an external acknowledgement.
#
# 7. Modifications are encouraged but must be packaged separately as
# patches to official Zope releases. Distributions that do not
# clearly separate the patches from the original work must be clearly
# labeled as unofficial distributions. Modifications which do not
# carry the name Zope may be packaged in any form, as long as they
# conform to all of the clauses above.
#
#
# Disclaimer
#
# THIS SOFTWARE IS PROVIDED BY DIGITAL CREATIONS ``AS IS'' AND ANY
# EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
# PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL DIGITAL CREATIONS OR ITS
# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
# USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
# SUCH DAMAGE.
#
#
# This software consists of contributions made by Digital Creations and
# many individuals on behalf of Digital Creations. Specific
# attributions are listed in the accompanying credits file.
#
##############################################################################
import
OFS.Folder
from
HelpSys.HelpTopic
import
TextTopic
from
Globals
import
HTML
,
HTMLFile
,
MessageDialog
import
DateTime
import
DocumentTemplate
import
StructuredText
import
string
,
re
pre_pat
=
re
.
compile
(
r'<PRE>(.+?)</PRE>'
,
re
.
DOTALL
)
tutorialExamplesFile
=
'ZopeTutorialExamples.zexp'
class
TutorialTopic
(
TextTopic
):
"""
A Tutorial Help Topic
"""
def
__init__
(
self
,
id
,
title
,
text
):
self
.
id
=
id
self
.
title
=
title
text
=
str
(
StructuredText
.
HTML
(
text
))
self
.
obj
=
HTML
(
pre_pat
.
sub
(
clean_pre
,
text
))
index_html
=
HTMLFile
(
'lessonView'
,
globals
())
def
lessonURL
(
self
,
id
,
REQUEST
):
"""
URL of the examples for a lesson
"""
try
:
return
'%s/lesson%d'
%
(
REQUEST
[
'tutorialExamplesURL'
],
id
)
except
KeyError
:
return
""
def
tutorialShowLesson
(
self
,
id
,
REQUEST
):
"""
Navigate management frame to a given lesson's screen.
"""
url
=
self
.
lessonURL
(
id
,
REQUEST
)
if
not
url
:
return
"""
\
<p class="warning">
Zope cannot find the tutorial examples.
You should install the tutorial examples before
continuing. Choose "Zope Tutorial" from the product
add list in the Zope management screen to install
the examples.
</p>
<p class="warning">
If you have already installed the tutorial, you can either
follow along manually, or reinstall the tutorial examples.
Note: make sure that you have cookies turned on in your browser.
</p>
"""
return
"""
\
<SCRIPT LANGUAGE="javascript">
<!--
window.open("%s/manage_main", "manage_main");
//-->
</SCRIPT>
<p class="information">
<a href="%s/manage_main" target="manage_main"
onClick="javascript:window.open("%s/manage_main", "manage_main").focus()"
>Show lesson examples</a> in another window.
</p>"""
%
(
url
,
url
,
url
)
def
apiLink
(
self
,
klass
,
REQUEST
):
"""
Returns the URL to a API documentation for a given class.
"""
names
=
string
.
split
(
klass
,
'.'
)
url
=
"%s/Control_Panel/Products/%s/Help/%s.py#%s"
%
(
REQUEST
[
'SCRIPT_NAME'
],
names
[
0
],
names
[
1
],
names
[
2
])
return
'<a href="%s">API Documentation</a>'
%
url
tutorialNavigation
=
HTMLFile
(
'tutorialNav'
,
globals
())
addTutorialForm
=
HTMLFile
(
'tutorialAdd'
,
globals
())
def
addTutorial
(
self
,
id
,
REQUEST
=
None
,
RESPONSE
=
None
):
"""
Install tutorial examples.
"""
ob
=
OFS
.
Folder
.
Folder
()
ob
.
id
=
id
ob
.
title
=
'Zope Tutorial Examples'
id
=
self
.
_setObject
(
id
,
ob
)
folder
=
getattr
(
self
,
id
)
# work around old Zope bug in importing
try
:
folder
.
manage_importObject
(
tutorialExamplesFile
)
except
:
folder
.
_p_jar
=
self
.
Destination
().
_p_jar
folder
.
manage_importObject
(
tutorialExamplesFile
)
# acquire REQUEST if necessary
if
REQUEST
is
None
:
REQUEST
=
self
.
REQUEST
# Set local roles on examples
changeOwner
(
folder
,
REQUEST
[
'AUTHENTICATED_USER'
])
# Run lesson setup methods -- call Setup.setup methods in lesson folders
examples
=
folder
.
examples
for
lesson
in
examples
.
objectValues
():
if
hasattr
(
lesson
,
'Setup'
):
lesson
.
Setup
.
setup
(
lesson
.
Setup
,
REQUEST
)
if
RESPONSE
is
not
None
:
e
=
(
DateTime
.
DateTime
(
'GMT'
)
+
365
).
rfc822
()
RESPONSE
.
setCookie
(
'tutorialExamplesURL'
,
folder
.
absolute_url
()
+
'/examples'
,
path
=
'/'
,
expires
=
e
)
RESPONSE
.
redirect
(
folder
.
absolute_url
()
+
'/examples'
)
def
changeOwner
(
obj
,
owner
):
"""
Recursively changes the Owner of an object and all its subobjects.
"""
for
user
,
roles
in
obj
.
get_local_roles
():
if
'Owner'
in
roles
:
obj
.
manage_delLocalRoles
([
user
])
break
obj
.
manage_setLocalRoles
(
owner
.
getUserName
(),
[
'Owner'
])
for
subobj
in
obj
.
objectValues
():
changeOwner
(
subobj
,
owner
)
def
clean_pre
(
match
):
"""
Reformat a pre tag to get rid of extra indentation
and extra blank lines.
"""
lines
=
string
.
split
(
match
.
group
(
1
),
'
\
n
'
)
nlines
=
[]
min_indent
=
None
for
line
in
lines
:
indent
=
len
(
line
)
-
len
(
string
.
lstrip
(
line
))
if
min_indent
is
None
or
indent
<
min_indent
:
if
string
.
strip
(
line
):
min_indent
=
indent
for
line
in
lines
:
nlines
.
append
(
line
[
min_indent
:])
while
1
:
if
not
string
.
strip
(
nlines
[
0
]):
nlines
.
pop
(
0
)
else
:
break
while
1
:
if
not
string
.
strip
(
nlines
[
-
1
]):
nlines
.
pop
()
else
:
break
return
"<PRE>%s</PRE>"
%
string
.
join
(
nlines
,
'
\
n
'
)
lib/python/Products/ZopeTutorial/__init__.py
0 → 100644
View file @
c2f76353
##############################################################################
#
# Zope Public License (ZPL) Version 1.0
# -------------------------------------
#
# Copyright (c) Digital Creations. All rights reserved.
#
# This license has been certified as Open Source(tm).
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions are
# met:
#
# 1. Redistributions in source code must retain the above copyright
# notice, this list of conditions, and the following disclaimer.
#
# 2. Redistributions in binary form must reproduce the above copyright
# notice, this list of conditions, and the following disclaimer in
# the documentation and/or other materials provided with the
# distribution.
#
# 3. Digital Creations requests that attribution be given to Zope
# in any manner possible. Zope includes a "Powered by Zope"
# button that is installed by default. While it is not a license
# violation to remove this button, it is requested that the
# attribution remain. A significant investment has been put
# into Zope, and this effort will continue if the Zope community
# continues to grow. This is one way to assure that growth.
#
# 4. All advertising materials and documentation mentioning
# features derived from or use of this software must display
# the following acknowledgement:
#
# "This product includes software developed by Digital Creations
# for use in the Z Object Publishing Environment
# (http://www.zope.org/)."
#
# In the event that the product being advertised includes an
# intact Zope distribution (with copyright and license included)
# then this clause is waived.
#
# 5. Names associated with Zope or Digital Creations must not be used to
# endorse or promote products derived from this software without
# prior written permission from Digital Creations.
#
# 6. Modified redistributions of any form whatsoever must retain
# the following acknowledgment:
#
# "This product includes software developed by Digital Creations
# for use in the Z Object Publishing Environment
# (http://www.zope.org/)."
#
# Intact (re-)distributions of any official Zope release do not
# require an external acknowledgement.
#
# 7. Modifications are encouraged but must be packaged separately as
# patches to official Zope releases. Distributions that do not
# clearly separate the patches from the original work must be clearly
# labeled as unofficial distributions. Modifications which do not
# carry the name Zope may be packaged in any form, as long as they
# conform to all of the clauses above.
#
#
# Disclaimer
#
# THIS SOFTWARE IS PROVIDED BY DIGITAL CREATIONS ``AS IS'' AND ANY
# EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
# PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL DIGITAL CREATIONS OR ITS
# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
# USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
# SUCH DAMAGE.
#
#
# This software consists of contributions made by Digital Creations and
# many individuals on behalf of Digital Creations. Specific
# attributions are listed in the accompanying credits file.
#
##############################################################################
import
TutorialTopic
import
App.Common
import
os.path
import
string
import
os
import
stat
from
DateTime
import
DateTime
from
urllib
import
quote_plus
from
StructuredText.StructuredText
import
html_quote
import
re
from
HelpSys
import
APIHelpTopic
def
initialize
(
context
):
# abuse registerClass to get a tutorial constructor
# in the product add list
context
.
registerClass
(
None
,
meta_type
=
'Zope Tutorial'
,
permission
=
'Add Documents, Images, and Files'
,
constructors
=
(
TutorialTopic
.
addTutorialForm
,
TutorialTopic
.
addTutorial
),
)
# create tutorial help topics
lesson_path
=
os
.
path
.
join
(
App
.
Common
.
package_home
(
globals
()),
'tutorial.stx'
)
glossary_path
=
os
.
path
.
join
(
App
.
Common
.
package_home
(
globals
()),
'glossary.stx'
)
help
=
context
.
getProductHelp
()
# test to see if nothing has changed since last registration
if
help
.
lastRegistered
is
not
None
and
\
help
.
lastRegistered
>=
DateTime
(
os
.
stat
(
lesson_path
)[
stat
.
ST_MTIME
]):
return
help
.
lastRegistered
=
DateTime
()
# delete old help topics
for
id
in
help
.
objectIds
(
'Help Topic'
):
help
.
_delObject
(
id
)
# create glossary
text
=
open
(
glossary_path
).
read
()
text
=
term_pat
.
sub
(
defineTerm
,
text
)
glossary
=
TutorialTopic
.
TutorialTopic
(
'glossary'
,
'Zope Tutorial Glossary'
,
text
)
# create lessons
f
=
open
(
lesson_path
)
lines
=
[]
id
=
0
while
1
:
line
=
f
.
readline
()
if
(
string
.
strip
(
line
)
and
string
.
find
(
line
,
' '
)
!=
0
)
or
line
==
''
:
# new topic
if
lines
:
id
=
id
+
1
topic_id
=
'topic_%d'
%
id
text
=
string
.
join
(
lines
[
1
:],
''
)
text
=
term_pat
.
sub
(
glossaryTerm
,
text
)
topic
=
TutorialTopic
.
TutorialTopic
(
topic_id
,
string
.
strip
(
lines
[
0
]),
text
)
context
.
registerHelpTopic
(
topic_id
,
topic
)
lines
=
[
line
]
else
:
lines
.
append
(
line
)
if
line
==
''
:
break
f
.
close
()
# register glossary last
context
.
registerHelpTopic
(
'glossary'
,
glossary
)
# Glossary functions
# ----------------
term_pat
=
re
.
compile
(
r'\
[([^
\]])+?\
]
')
terms=[]
def glossaryTerm(match):
"""
A linked glossary term
"""
name=match.group(1)
if name in terms:
return """<a href="../glossary#%s">%s</a>""" % \
(quote_plus(name), html_quote(name))
return """[%s]""" % name
def defineTerm(match):
"""
Define a glossary term
"""
name=match.group(1)
terms.append(name)
return """<a name="%s"></a>\n\n<strong>%s</strong>""" % \
(quote_plus(name), html_quote(name))
lib/python/Products/ZopeTutorial/glossary.stx
0 → 100644
View file @
c2f76353
Glossary
For general information about Zope <a
href="http://www.zope.org/SiteIndex/searchForm" target="_blank">search</a> Zope.org.
For Zope documentation try the <a href="http://zdp.zope.org" target="_blank">Zope
Documentation Project</a> site and the <a
href="http://www.zope.org/Documentation" target="_blank">documentation area</a> on Zope.org.
[DTML] -- A tag-based reporting language, like ASP
or PHP. It allows you to perform operations on Zope objects and insert the
results in web pages.
For more information on DTML see the <a
href="http://www.zope.org/Documentation/Guides/DTML" target="_blank">DTML
Reference</a>.
[DTML Document] -- A Zope object for a web page.
You can use DTML tags in a DTML document.
For more information on DTML Documents see the <a
href="http://www.zope.org/Documentation/Guides/ZCMG-HTML/ZCMG.9.2.html"
target="_blank">Zope Content Manager's Guide</a>.
<dtml-var "apiLink('OFSP'+'.DTMLDocument.DTMLDocument', REQUEST)">
[DTML Method] -- A Zope object that holds a piece of content that can
be inserted into a web page. You can use DTML tags in a DTML Method.
For more information on DTML Methods see the <a
href="http://www.zope.org/Documentation/Guides/ZCMG-HTML/ZCMG.9.1.html"
target="_blank">Zope Content Manager's Guide</a>.
<dtml-var "apiLink('OFSP'+'.DTMLMethod.DTMLMethod', REQUEST)">
[Delete] -- Remove an object from the current Folder. Unlike Cut, this
does not place a copy of the object in the clipboard.
[Folder] -- A Zope object that contains other Zope objects. You can
move objects between Folders by cutting and pasting them. You can
add new objects to Folders with the product add list.
For more information on Folders see the <a
href="http://www.zope.org/Documentation/Guides/ZCMG-HTML/ZCMG.8.2.html"
target="_blank">Zope Content Manager's Guide</a>.
[Cut] -- Remove a Zope object from its current location and place it
in the clipboard.
[Copy] -- Copy a Zope object to the clipboard.
[Database Connection] -- A Zope object to connect to a relational
database.
For more information on Database Connections see the <a
href="http://www.zope.org/Documentation/Guides/ZSQL-HTML/ZSQL.1.3.html"
target="_blank">SQL Method User's Guide</a>.
[<dtml-call>] -- A DTML tag that allows your to perform an
action without inserting anything into a web page.
For more information on <dtml-call> tag see the <a
href="http://www.zope.org/Documentation/Guides/DTML-HTML/DTML.11.html"
target="_blank">DTML Reference</a>.
[<dtml-if>] -- A DTML tag that allows you to conditionally insert
objects into a DTML Document or DTML Method.
For more information on <dtml-if> tag see the <a
href="http://www.zope.org/Documentation/Guides/DTML-HTML/DTML.7.html"
target="_blank">DTML Reference</a>.
[<dtml-in>] -- A DTML tag that allows you to loop over a sequence
of objects.
For more information on <dtml-in> tag see the <a
href="http://www.zope.org/Documentation/Guides/DTML-HTML/DTML.8.html"
target="_blank">DTML Reference</a>.
[<dtml-var>] -- A DTML tag that allows you to insert objects
into a DTML Document or DTML Method.
For more information on <dtml-var> tag see the <a
href="http://www.zope.org/Documentation/Guides/DTML-HTML/DTML.6.html"
target="_blank">DTML Reference</a>.
[<dtml-sendmail>] -- A DTML tag that sends email.
For more information on <dtml-sendmail> tag see the <a
href="http://www.zope.org/Documentation/Guides/DTML-HTML/DTML.17.html"
target="_blank">DTML Reference</a>.
[Mail Host] -- A Zope object that allows you to send email.
Use the <dtml-sendmail> tag to send email.
[Paste] -- Insert the objects from the clipboard into the current Folder.
[Image] -- A Zope object for a picture.
For more information on Images see the <a
href="http://www.zope.org/Documentation/Guides/ZCMG-HTML/ZCMG.8.4.html"
>Zope Content Manager's Guide</a>.
<dtml-var "apiLink('OFSP'+'.Image.Image', REQUEST)">
[HTTP Cookies] -- Cookies allow you to record information in a visitor's
browser. This is commonly used to provide personalization for a web site.
[id] -- All Zope objects have an identifier known as the id. The id is a
short string that contains letters and numbers, spaces, underscores, dashes,
commas and tildes. Here are some example ids: 'index.html', 'My Page',
'item-12'.
[index_html] -- The name of the default Zope object in a Folder.
When you view a Folder the index_html object will be displayed
unless you specify otherwise. This is just like the 'index.html'
or 'default.htm' default web page with a normal web server.
[product add list] -- The list of addable objects. Select an object
from the product add list to create a new object in the current
Folder.
[Properties] -- Properties contain small pieces of content.
[standard_html_header] -- The standard Zope header object. By
convention this object displays an HTML header.
[standard_html_footer] -- The standard Zope footer object. By
convention this object displays an HTML footer.
[title] -- Most Zope objects can have titles. Titles are optional
one line descriptions.
[Undo] -- Allows you to recover from mistakes by undoing a
transaction.
[ZSQL Method] -- A Zope object to get data into or out of a relational
database.
For more information on ZSQL Methods see the <a
href="http://www.zope.org/Documentation/Guides/ZSQL-HTML/ZSQL.1.4.html"
target="_blank">SQL Method User's Guide</a>.
\ No newline at end of file
lib/python/Products/ZopeTutorial/lessonView.dtml
0 → 100644
View file @
c2f76353
<dtml-var standard_html_header>
<style type="text/css">
PRE {
background-color : #FFFFAA;
border : thin solid;
white-space : pre;
padding-bottom : 10pt;
padding-left : 10pt;
padding-right : 10pt;
padding-top : 10pt;
}
.feedback {
font-size: 9pt;
}
.warning {
font-size: 9pt;
font-weight: bold;
color: red;
}
.information {
font-size: 9pt;
font-weight: bold;
}
</style>
<dtml-var obj>
<dtml-unless "id=='glossary'">
<hr>
<dtml-var tutorialNavigation>
</dtml-unless>
<p class="feedback">Comments on this lesson?
<a href="mailto:docs@digicool.com?subject=<dtml-var title>">Email feedback</a>.
</p>
<dtml-var standard_html_footer>
\ No newline at end of file
lib/python/Products/ZopeTutorial/tutorial.stx
0 → 100644
View file @
c2f76353
This diff is collapsed.
Click to expand it.
lib/python/Products/ZopeTutorial/tutorialAdd.dtml
0 → 100644
View file @
c2f76353
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
<HTML
lang=
"en"
>
<HEAD>
<TITLE>
Add Zope Tutorial
</TITLE>
</HEAD>
<BODY
BGCOLOR=
"#FFFFFF"
LINK=
"#000099"
VLINK=
"#555555"
>
<H2>
Add Zope Tutorial
</H2>
<P>
This tutorial show you the basics of using Zope. You will
learn how to create and manage Zope resources by builting
a web site devoted to tracking Elvis sightings. Each lesson
includes working examples in Zope that allow you to learn
by hands on experimentation.
</P><P>
The tutorial assumes that you are familiar with basic Internet
technologies such as
<a
href=
"http://www.w3.org/MarkUp/Guide/"
>
HTML
</a>
,
URLs, and web browers.
</P>
<FORM
ACTION=
"addTutorial"
METHOD=
"POST"
>
<TABLE
CELLSPACING=
"2"
>
<TR>
<TD
ALIGN=
"LEFT"
VALIGN=
"TOP"
>
<STRONG>
Id
</STRONG>
</TD>
<TD
ALIGN=
"LEFT"
VALIGN=
"TOP"
>
<INPUT
TYPE=
"TEXT"
NAME=
"id"
SIZE=
"40"
>
</TD>
</TR>
<TR>
<TD></TD>
<TD>
<BR><INPUT
TYPE=
"SUBMIT"
VALUE=
" Add "
>
</TD>
</TR>
</TABLE>
</FORM>
</BODY>
</HTML>
lib/python/Products/ZopeTutorial/tutorialNav.dtml
0 → 100644
View file @
c2f76353
<dtml-call "REQUEST.set('ids', aq_parent.objectIds())">
<dtml-call "ids.remove('glossary')">
<dtml-call "REQUEST.set('i', ids.index(id))">
<table width="100%" border="0" padding="0" spacing="0">
<tr valign="top"><td width="50%" align="right">
<dtml-if "i > 0">
<form action="../<dtml-var "ids[i-1]">">
<input type="submit" value=" < Back ">
</form>
</dtml-if>
</td>
<td width="50%">
<dtml-unless hide_next>
<dtml-if "i < _.len(ids) -1 ">
<form action="../<dtml-var "ids[i+1]">">
<input type="submit" value=" Next > ">
</form>
</dtml-if>
</dtml-unless>
</td></tr></table>
\ No newline at end of file
lib/python/Products/ZopeTutorial/version.txt
0 → 100644
View file @
c2f76353
Zope Tutorial 1.0a5
\ No newline at end of file
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment