[zopeorg-checkins] CVS: Products/ZopeOrg-NV/skins/nzo - breadcrumbs.py:1.1 bullet.gif:1.1 css_default.css:1.1 folder_contents.html:1.1 folder_factories.html:1.1 macros_repository.html:1.1 main_template.html:1.1 more.gif:1.1 personalize.py:1.1 personalize_form.html:1.1 pixel_grey.jpg:1.1 point_bckgrd2.jpg:1.1 printer_icon.gif:1.1 returnPageResults.py:1.1 search.html:1.1 search_form.html:1.1 shortBread.py:1.1 space.gif:1.1 stipple.gif:1.1 todo.txt:1.1 top_bckgrd.jpg:1.1 top_logo.gif:1.1 truncate.py:1.1 xmlrequestlib.js:1.1

Paul Everitt paul at zope.com
Wed May 15 14:45:39 EDT 2002


Update of /cvs-zopeorg/Products/ZopeOrg-NV/skins/nzo
In directory cvs.zope.org:/tmp/cvs-serv22171

Added Files:
	breadcrumbs.py bullet.gif css_default.css folder_contents.html 
	folder_factories.html macros_repository.html 
	main_template.html more.gif personalize.py 
	personalize_form.html pixel_grey.jpg point_bckgrd2.jpg 
	printer_icon.gif returnPageResults.py search.html 
	search_form.html shortBread.py space.gif stipple.gif todo.txt 
	top_bckgrd.jpg top_logo.gif truncate.py xmlrequestlib.js 
Log Message:
first addition

=== Added File Products/ZopeOrg-NV/skins/nzo/breadcrumbs.py ===
## Script (Python) "breadcrumbs"
##bind container=container
##bind context=context
##bind namespace=
##bind script=script
##bind subpath=traverse_subpath
##parameters=include_root=1
##title=Return breadcrumbs
##
from string import join

result = []
portal_url = context.portal_url()

if int(include_root):
    result.append( { 'id'      : 'root'
                   , 'title'   : 'Home' # context.portal_properties.title()
                   , 'url'     : portal_url
                   }
                 )

relative = context.portal_url.getRelativeContentPath( context )


portal = context.portal_url.getPortalObject()

for i in range( len( relative ) ):
    now = relative[ :i+1 ]
    obj = portal.restrictedTraverse( now )
    if not now[ -1 ] == 'talkback':
        result.append( { 'id'      : now[ -1 ]
                       , 'title'   : obj.Title()
                       , 'url'     : portal_url + '/' + join( now, '/' )
                       }
                    )

return result


=== Added File Products/ZopeOrg-NV/skins/nzo/bullet.gif ===
  <Binary-ish file>

=== Added File Products/ZopeOrg-NV/skins/nzo/css_default.css ===
/* ----------------------------------------- */
/* Body CSS */
/* ----------------------------------------- */

BODY, TD, TH  {
	font-family : Verdana, Arial, Geneva, Helvetica, sans-serif ; 
	font-size: 0.9em;
        scrollbar-face-color: #E2E2E2;
        scrollbar-shadow-color: #FFFFFF;
        scrollbar-highlight-color: #FFFFFF;
        scrollbar-3dlight-color: #727bb2;
        scrollbar-darkshadow-color: #727bb2;
        scrollbar-track-color: #FFFFFF;
        scrollbar-arrow-color: #727bb2;
}

H1{
	font-size : 1.3em;
	font-weight : bold;
	color: black;
	margin-bottom: 1px;	
}

H2 {
	font-size : 1.2em;
	font-weight : bold;
}

H3 {
	font-size : 0.8em;
}


/* ----------------------------------------- */
/* Top Navigation Bar */
/* ----------------------------------------- */

#TOP_NAVIG {
/*	font-size : 10pt; */
	color : #FFFFFF;
	text-align : right;
}

#TOP_NAVIG INPUT {
	FONT-FAMILY: Verdana, Arial, Geneva, Helvetica, sans-serif; 
	FONT-SIZE: 11px;
	BORDER-BOTTOM: #CCCCCC 1px solid; 
	BORDER-LEFT: #CCCCCC 1px solid; 
	BORDER-RIGHT: #CCCCCC 1px solid; 
	BORDER-TOP: #CCCCCC 1px solid;
	height: 18px;
}

#TOP_NAVIG A {
	text-decoration : none;
	color : white;
}

#TOP_NAVIG A:HOVER {
	/*text-decoration : underline;*/
	color : #FF9900;
}

#TOP_NAVIG A:ACTIVE {
	text-decoration : underline;
	color : #FF9900;
}

#TOP_NAVIG TD {
/*	font-size : 9pt; */
	font-size: smaller;
	color : #FFFFFF;
	text-align : right;
}

/* ----------------------------------------- */
/* User Bar */
/* ----------------------------------------- */

#USER_BAR {
/*	font-size : 8pt; */
	font-size: smaller;
	color : #326699;
	text-align : right;
	margin-bottom : 3pt;
}

#USER_BAR A {
	text-decoration : none;
	color : #326699;
}


#USER_BAR A:HOVER {
	/*text-decoration : underline;*/
	color : #FF9900;
}

#USER_BAR A:ACTIVE {
	text-decoration : none;
	color : #FF9900;
	/*font-weight : bold;*/
}

/* ----------------------------------------- */
/* Actions Bar */
/* ----------------------------------------- */

#ACTIONS_BAR {
/*	font-size : 8pt; */
	font-size: smaller;
	color : #326699;
	text-align : right;
	margin-bottom : 3pt;
}

#ACTIONS_BAR A {
	text-decoration : none;
	color : #326699;
}

#ACTIONS_BAR A:HOVER {
	/*text-decoration : underline;*/
	color : #FF9900;

}

#ACTIONS_BAR A:ACTIVE {
	text-decoration : none;
	color : #FF9900;
	/*font-weight : bold;*/
}

/* ----------------------------------------- */
/* Sidemenu and news area         */
/* ----------------------------------------- */


#NEWS {
/*        font-size : 9pt; */
	/* rr font-size: ; */
	color: black;
    background-color: #F0F0F0;
    padding-left: 3px;
    padding-right: 3px;
}

#NEWS A {
	text-decoration : none;
	color : #326699;
}

#NEWS A:HOVER {
	/*text-decoration : underline;*/
	color : #FF9900;
}

#NEWS A:ACTIVE {
	color : #FF9900;
}

#newsarea H1 {
	font-size: 1.3em;
	color : #326699;
	text-align : left;
	margin-bottom: 1px;
  border-bottom: solid 0.05em #cccccc;
}

#newsarea H1 A {
	/*font-size: 1.3em;*/
	color : #326699;
	text-align : right;
	margin-bottom: 1px;
	text-decoration : none;
}

#newsarea H1 A:HOVER {
	/*font-size: 1.3em;*/
	color : #FF9900;
	text-align : right;
	margin-bottom: 1px;
	text-decoration : none;
	font-weight : bold;
}


.newsheadline, .newsdate {
  font-size: 0.9em;
}

/* ----------------------------------------- */
/* Side Menu */
/* ----------------------------------------- */

#SIDE_MENU {
	font-size: smaller;
	text-align : left;
}

#SIDE_MENU H1 A {
	color: #326699;
}

#SIDE_MENU A {
	text-decoration : none;
	color : black;
}

#SIDE_MENU A:HOVER {
	text-decoration: underline;
}

#SIDE_MENU A:ACTIVE {
/*	color : black; */
}

#SIDE_MENU H1 {
	font-size: 1.2em;
	text-align : left;
        border-bottom: solid 0.05em #326699;
}

#SIDE_MENU H1 A {
	/*font-size: 1.3em;*/
	/*color : #326699;*/
	text-align : right;
	/*margin-bottom: 1px;
	text-decoration : none;*/
}

#SIDE_MENU H1 A:HOVER {
	/*font-size: 1.3em;*/
	color : #FF9900;
	/*text-align : right;
	margin-bottom: 1px;
	text-decoration : none;
	font-weight : bold;*/
}

/* ----------------------------------------- */
/* Footer  Menu Bar */
/* ----------------------------------------- */

#FOOTER_MENU {
/*	font-size : 8pt; */
	font-size: smaller;
	color : white;
	text-align : center;
}


#FOOTER_MENU A{
	/*text-decoration : none;*/
	color : #FF9900;
}

#FOOTER_MENU A:HOVER{
	/*text-decoration : underline;*/
	color : #FF9900;
}

#FOOTER_MENU A:ACTIVE {
	text-decoration : underline;
	color : #FF9900;
} 

/* ----------------------------------------- */
/* Top Slogan CSS */
/* ----------------------------------------- */

.SLOGAN {
/*  font-size: 10pt; */
  color : #326699;
  text-align: left;
}

/* ----------------------------------------- */
/* News Box CSS */
/* ----------------------------------------- */

#NEWS_BOX {
/*  font-size: 8pt; */
  font-size: smaller;
  text-align: left;
}


#contentarea h1 {
  font-size: 1.3em; /*larger;*/
  color : #326699;
  text-align : left;
  margin-bottom: 1px;
  border-bottom: solid 0.05em #cccccc;
}

.subitems {
  font-size: smaller;
  margin: 0.9em;
}

.newsheadline {  
  font-weight: bold; 
  color: #336699; 
  margin-top: 0px; 
  margin-bottom: 0px
}

/* ----------------------------------------- */
/* added from sitemap.html */
/* ----------------------------------------- */
.sectiongroup {
  margin-top: 2em;
  margin-bottom: 2em;
}

.sectiontitle {
  width: 100%;
	font-size: large;
	background-color: #cccccc;
}

.sectionitems li {
  list-style-type: none;
}



=== Added File Products/ZopeOrg-NV/skins/nzo/folder_contents.html ===
<html metal:use-macro="here/main_template/macros/master">
<body metal:fill-slot="main">
      <div tal:condition="python: not(here.portal_membership.checkPermission('List folder contents', here))">

        <span tal:define="redirect python: request.RESPONSE.redirect(here.absolute_url())">

        </span>
      </div>

      <form action="" method="POST"
            tal:attributes="action here/absolute_url">
        <table width="100%" id="FolderContents"
               cellpadding="2" cellspacing="0"
               tal:define="b_start string:0;b_start request/b_start | b_start; filterString python: request.get('folderfilter', ''); filter python: here.decodeFolderFilter(filterString); items python: here.listFolderContents(contentFilter=filter); Batch python:modules['ZTUtils'].Batch; global batch python:Batch(items, 30, int(b_start), orphan=0)">

<thead>

<tr>
 <td colspan="3">
      <div style="padding-top: 12px"
           tal:condition="python: here.portal_membership.checkPermission('List folder contents', here, 'aq_parent')"
           tal:define="upNav python: hasattr(here.aq_parent, 'portal_url'); upID python: here.aq_parent.getId()">
      <span tal:condition="upNav|nothing">
        <a href="../folder_contents">
          <img tal:attributes="src python: here.portal_url() + '/UpFolder_icon.gif'"
               src="" alt="[Link]" border="0" /></a>
      </span>

         
      <span tal:condition="upNav">Up to 
      <a href="../folder_contents" tal:content="upID">Up ID</a>
      </span>

      <span tal:condition="python: not(upNav)">Root</span>
            </div>

  </td>
</tr>

<tr style="background-color: #CCCCCC">
  <td style="background-color: #CCCCCC">&nbsp;</td>
  <td style="background-color: #CCCCCC"><strong>Type</strong>&nbsp;</td>
  <td style="background-color: #CCCCCC"><strong>Id (Title)</strong></td>
  <td style="background-color: #CCCCCC"><strong>Size</strong></td>
  <td style="background-color: #CCCCCC"><strong>Last Modified</strong></td>
</tr>
</thead>

<tbody>
<tr align="top" tal:repeat="item batch">
  <td align="left" width="5" nowrap="NOWRAP"
      tal:define="folderish item/isPrincipiaFolderish; portalish item/isPortalContent|nothing; global methodID python: folderish and 'folder_contents' or (portalish and 'view' or ''); global icon item/getIcon|item/icon|nothing">

    <input type="checkbox" name="ids:list" value="" id=""
           tal:attributes="value item/getId; id python: 'cb_' + item.getId()" />
  </td>

  <td align="center">
    <span tal:condition="icon">
    <a href=""
       tal:attributes="href python: item.getId() + '/' + methodID">
    <img src="" alt="" border="0"
         tal:attributes="src python: here.portal_url() + '/' + icon; alt item/Type|nothing" /></a>
    </span>
  </td>
  <td>
     <a href=""
        tal:attributes="href python: item.getId() + '/' + methodID">
     <span tal:replace="item/getId">ID</span>
     <span tal:condition="item/Title"
           tal:replace="python: '(' + item.Title() + ')'">(Title)</span></a>
	     </td>

  <td tal:content="string: ${item/get_size} bytes"
      tal:on-error="python: None">7,000 bytes</td>

  <td tal:content="item/Date">2001-12-01 01:23:44</td>

</tr>
</tbody>
</table>
</form>

<div>
  <span tal:define="p batch/previous|nothing"
        tal:condition="p">
  <a href=""
     tal:attributes="href string:folder_contents?b_start=${p/previous/first}">
     Previous Items</a>
  </span>

  <span tal:define="n batch/next|nothing" tal:condition="n">
  <a href=""
     tal:attributes="href string:folder_contents?b_start=${n/next/first}">Next Items</a>
  </span>
</div>


</body>
</html>



=== Added File Products/ZopeOrg-NV/skins/nzo/folder_factories.html ===
<html metal:use-macro="here/main_template/macros/master"
      tal:define="utool nocall:here/portal_url;
                  mtool here/portal_membership;
                  atool here/portal_actions;
                  wtool here/portal_workflow;
                  portal_object utool/getPortalObject;
                  portal_title portal_object/Title;
                  object_title here/Title;
                  portal_url here/portal_url;
                  member mtool/getAuthenticatedMember;
                  isAnon mtool/isAnonymousUser;
                  actions python: atool.listFilteredActionsFor( here );
                  user_actions actions/user;
    object_actions actions/object;
    folder_actions actions/folder;
    workflow_actions actions/workflow;
                 ">
<head>

  <title tal:define="ob_title here/Title; portal_title container/title"
         tal:content="string:${portal_title}: ${ob_title}">New Zope.org</title>

  <link href="css_default.css" rel="stylesheet"
        type="text/css"
        tal:attributes="href here/css_default.css/absolute_url" />

  <span tal:replace="structure here/xmlrequestlib.js"></span>

</head>

<body bgcolor="#FFFFFF" leftmargin="0" topmargin="0"
      marginwidth="0" marginheight="0"
      tal:define="uname python: isAnon and 'Guest' or member.getUserName()">

<div id="TOP_NAVIG">
  <table width="100%" background="top_bckgrd.jpg" border="0" cellspacing="0" cellpadding="0">
    <tr>
      <td width="201" valign="top">
      <div align="left">
 <a href="#" tal:attributes="href portal_url"><img src="top_logo.gif" width="201" height="54" border="0" /></a></div></td>

      <form action="search" method="get"
            tal:define="portal_url here/portal_url"
            tal:attributes="action string:${portal_url}/search">
      <td background="top_bckgrd.jpg"> <a href="#"
    tal:attributes="href here/portal_url">Home</a> |
         <a href="#"
            tal:attributes="href string:${portal_url}/sitemap.html">Site map</a> |
         <a href="#"
            tal:attributes="href string:${portal_url}/help.html">Help</a> |
         <a href="#"
            tal:attributes="href string:${portal_url}/search.html">Search</a>
        <input type="text" name="SearchableText" value="Type your search here" size="20" onfocus="this.value='';" />
        <input type="submit" name="Submit" value="Go" /> &nbsp;
      </td>
      </form>
    </tr>
  </table>
</div>

<table width="100%" border="0" cellspacing="0" cellpadding="0">
  <tr>
    <td bgcolor="#CCCCCC" class="SLOGAN">&nbsp;The website for the Zope Community</td>
    <td bgcolor="#CCCCCC">

      <div id="USER_BAR">
           Username:&nbsp;&nbsp;<span tal:content="uname">Guest</span>&nbsp;&nbsp;
        <span tal:repeat="action user_actions">
        <a href="" tal:attributes="href action/url"
           tal:content="action/name">Login</a><span
    tal:condition="not: repeat/action/end">&nbsp;|&nbsp;</span>
        </span>
        <span tal:condition="nothing"><a href="join_form">Join</a></span>&nbsp;
      </div>

    </td>
  </tr>
  <tr>
    <td bgcolor="#BBBBBB" height="1"></td>
    <td bgcolor="#BBBBBB" height="1"></td>
  </tr>

  <tr bgcolor="#666666">
    <td colspan="2" bgcolor="#666666"><!--
    Disabled for now. Waiting for feedback on the new byline, then we should
    remove this. <dreamcatcher>
        <div id="ACTIONS_BAR" metal:use-macro="container/macros_repository/macros/actions_bar">
        <span>
        <a href="">Edit</a>&nbsp;|&nbsp;
        </span>

        <span>
        <a href="">Edit</a>&nbsp;|&nbsp;
        </span>

        <span>
        <a href="">Edit</a>&nbsp;
        </span>

        </div>
--></td>
  </tr>

  <tr>
    <td bgcolor="#78797D" height="1"></td>
    <td bgcolor="#78797D" height="1"></td>
  </tr>


</table>


<table width="100%" border="0" cellspacing="0" cellpadding="7">
  <tr>
    <td valign="top" nowrap width="120">
        <div id="SIDE_MENU">

          <h1><a href="#">About Zope</a></h1>
          <a href="#">What is Zope?</a><br />
          <a href="#">News</a><br />
          <a href="#">Awards</a><br />
          <a href="#">Getting started</a><br />
          <a href="#">Report bugs</a><br />
          <a href="#">About Zope.org</a><br />
          <br />

          <h1><a href="#">Documentation</a></h1>
          <a href="#">References</a><br />
          &nbsp; <a href="#">API</a>, <a href="#">ZPT</a>, <a href="#">DTML</a><br />
          <a href="#">The Zope Book</a><br />
          <a href="#">Developer Guide</a><br />
          <a href="#">Administrator Guide</a><br />
          <a href="#">Articles</a><br />
          <a href="#">How-To's</a><br />
          <a href="#">Books in print</a><br />
          <br />

          <h1><a href="#">Download</a></h1>
          <a href="#">Zope</a><br />
          <a href="#">Products by category</a><br />
          <a href="#">All products</a><br />
          <br />

          <h1><a href="#">Projects</a></h1>
          <a href="#">Zope 3</a><br />
          <a href="#">New zope.org</a><br />
          <a href="#">ZMI</a><br />
          <br />


          <h1><a href="#">Community</a></h1>
          <a href="#">Mailing lists</a><br />
          <a href="#">IRC</a><br />
          <a href="#">Zope User Groups</a><br />
          <a href="#">Zope links</a><br />
          <br />

          <h1><a href="#">Business</a></h1>
          <a href="#">Zope Corporation</a><br />
          <a href="#">Solution Providers</a><br />
          <a href="#">Hosting</a> <br />
          <a href="#">Marketing Zope</a><br />


        </div>
    </td>

    <td background="point_bckgrd2.jpg" width="1">&nbsp;</td>
    <td valign="top">
      <div id="Breadcrumbs">
        Location: <!-- <a tal:attributes="href here/portal_url">Home</a> -->
          <span tal:replace="structure python:here.shortBread(include_root=1)">
			    </span>
        <!--
          <span
           tal:repeat="step python:here.breadcrumbs(include_root=0)">&gt;
           <a tal:attributes="href step/url"
              tal:content="step/id"
              tal:omit-tag="not:step/url">
              step
           </a>
            
          </span>
       -->
          <!--
                      XXtal:replace="structure python:here.shortBread(include_root=0)">
          -->
      </div>
      <div tal:condition="python:not isAnon"
           tal:define="getIcon python:hasattr(here, 'getIcon') and here.getIcon();
                     icon python:getIcon or getattr(here, 'icon', '');
                     typ python:getattr(here, 'Type', '');
                     objID python:here.truncID( here.getId(), size=25 )">

  <div id="objectinfo">
  <h2 id="desktoptitle"><img tal:condition="icon" src=""
                             tal:attributes="src icon; alt typ">&nbsp;<span
    tal:content="here/Title" tal:omit-tag="">Job Jar For Future Projects</span></h2>
  </div>

    <div>
    By <a href=""
          tal:attributes="href python:mtool.getHomeUrl(here.Creator())"
          tal:content="here/Creator">Some Author</a>
        (updated <span tal:replace="here/ModificationDate">2001-09-17 14:29:59</span> )
    </div>

    <div id="objectactions"
         tal:condition="python:not isAnon and (len( object_actions ) &gt; 1 or len( folder_actions ) &gt; 1 or len( workflow_actions ) &gt; 1)">


      <span tal:repeat="action object_actions"
            tal:omit-tag=""><a href=""
    tal:attributes="href action/url"
    tal:content="action/name">View</a><span
    tal:condition="not:repeat/action/end" tal:omit-tag="">&nbsp;|</span></span>
      <span tal:repeat="action folder_actions"
            tal:omit-tag=""><a href=""
    tal:attributes="href action/url"
    tal:content="action/name">Edit</a><span
    tal:condition="not:repeat/action/end" tal:omit-tag="">&nbsp;|</span></span>

      <span tal:condition="workflow_actions"
            class="ObjectStatus" tal:omit-tag="">Status: <span
    tal:replace="python: wtool.getInfoFor(here,'review_state','')">Private</span></span>
      <span tal:repeat="action workflow_actions"
            tal:omit-tag=""><a href="content_submit_form"
    tal:attributes="href action/url"
    tal:content="action/name">Submit</a><span
    tal:condition="not:repeat/action/end" tal:omit-tag="">&nbsp;|</span></span>
    </div>
</div>
      <div metal:fill-slot="main">
<div tal:condition="python: not(here.portal_membership.checkPermission('Access contents information', here))">
  <span tal:define="dummy here/unauthRedirect"></span>
</div>
<h1>Add Content</h1>
<form action="invokeFactory" method="POST">

<table width="100%">

<tr valign="top">
  <td><strong>ID</strong></td>
  <td colspan="2" class="TextField">
       <input type="text" name="id" size="20">
       <input type="submit" value="Add"> </td>
</tr>

<tr valign="top" tal:repeat="item here/allowedContentTypes">
  <td align="left" width="2%" nowrap><input type="radio"
    name="type_name" value="" id=""
    tal:attributes="value item/getId; id string:cb_${repeat/item/number}" />
  </td>
  <td align="left"><strong><label for=""
    tal:attributes="for string:cb_${repeat/item/number}"
    tal:content="item/Type"></label></strong>
  </td>
  <td align="left" tal:content="item/Description"></td>
</tr>

</table>
</form>

</div>
    </td>
  </tr>
</table>
<table align="center" border="0" cellspacing="0" cellpadding="0" width="100%" style="margin-top: 2em;margin-bottom: 2em">
<tr>
<td align="center">
  <a href="#">Privacy policy</a> | <a href="#">Feedback
              to this page's author</a> | <a href="#">Feedback about Zope.org</a>
              | <a href="#">DTML Source</a>
</td>
</tr>
</table>

<table align="center" border="1" style="font-size: 1em"
       cellspacing="0" cellpadding="2">
<caption style="font-weight: bold">Temporary Area -- The Bug Box</caption>
  <tr>
  <td>
  <table align="center" border="0" cellspacing="0" cellpadding="4">
  <tr>
    <td tal:condition="python:isAnon">
      <form tal:condition="python:isAnon" name="fLogin"
            action="http://collector.zope.org/logged_in"
            method="post">
        <table class="FormLayout">
          <tr>
            <td align="right" valign="top">
              <strong>Name:</strong>
            </td>
            <td align="left" valign="top">
              <input type="TEXT" name="__ac_name" size="20" value="">
            </td>
          </tr>
          <tr>
            <td align="right" valign="top">
              <strong>Password:</strong>
            </td>
            <td align="left" valign="top">
              <input type="PASSWORD" name="__ac_password" size="20">
            </td>
          </tr>
          <tr valign="top" align="left">
            <td>&nbsp;</td>
            <td>
              <input type="checkbox" name="__ac_persistent" value="1" checked id="cb_remember" />
              <label for="cb_remember">Remember my name.</label>
            </td>
          </tr>
          <tr>
            <td align="left" valign="top">&nbsp;</td>
            <td align="left" valign="top">
              <input type="button" name="submit" value=" Login " onclick="doLogin()">
              <input type="button" name="cookies" value=" Cookies " onclick="alert(document.cookie)">
            </td>
          </tr>
        </table>
      </form>
    </td>
    <td>
      <form name="fCollector" action="http://collector.zope.org/ZopeOrg/collector_add_issue" method="POST">
	<table cellspacing="0" colspacing="0" border="0">
	<tr>
	<td align="right">
	      <strong>Category:</strong>
	</td>
	<td>
		<select name="topic">
	        <option value="content">content</option>
		<option value="skin">skin</option>
		<option value="functionality">functionality</option>
		<option value="navigation">navigation</option>
		<option value="migration machinery">migration machinery</option>
		<option value="SoftwareProduct">SoftwareProduct</option>
		</select>
	</td>
	<td rowspan="3">
	      	<strong>Description:</strong><br />
		<textarea name="description" rows="5" cols="35"></textarea>
	</td>
	</tr>
	<tr>
	<td align="right">
		<strong>Title:</strong> 
	</td>
	<td>
		<input type="text" name="title" value="" size="20" />
	</td>
	</tr>
	<tr>
	<td align="right">
	      	<strong>Email:</strong> 
	</td>
	<td>
		<input type="text" name="submitter_email" size="20" value="paul at zope.com" />
	</td>
	</tr>
	<tr>
	<td align="right">
	     	<input type="button" value="Add" />
	</td>
	<td colspan="2">	
	      	<input type="button" value="Add and Confirm" onclick="addCollectorIssue();" />
	</td>
	</tr>
	</table>
      </form>
    </td>
  </tr>
  </table>
 </td>
 </tr>
  <tr>
    <td align="center">
      <span style="font-size: small">
      <a href="#">Collector Login</a> &nbsp;
View open reports for:
<a href="#">All</a>
<a href="#">Design</a>
<a href="#">System</a>
<a href="#">Search</a>
<a href="#">Content</a>
<a href="#">Documentation</a>
<a href="#">Products</a>
</span>
</td>
</tr>
</table>

<div align="center">&copy; 2002
<a href="http://www.zope.com/">Zope Corporation</a> All rights reserved.
</div>

</body>
</html>



=== Added File Products/ZopeOrg-NV/skins/nzo/macros_repository.html ===
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
<html xmlns:metal="http://xml.zope.org/namespaces/metal">
<head>
  <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body>

<div id="ACTIONS_BAR" tal:condition="not: isAnon"
     metal:define-macro="actions_bar">

        <span tal:repeat="action object_actions">
        <a href="" tal:attributes="href action/url"
           tal:content="action/name">Edit</a><span
    tal:condition="not: repeat/action/end">&nbsp;|&nbsp;</span>
        </span>

 &nbsp;&nbsp;

        <span tal:repeat="action folder_actions">
        <a href="" tal:attributes="href action/url"
           tal:content="action/name">Edit</a><span
    tal:condition="not: repeat/action/end">&nbsp;|&nbsp;</span>
        </span>

 &nbsp;&nbsp;

        <span tal:repeat="action workflow_actions">
        <a href="" tal:attributes="href action/url"
           tal:content="action/name">Edit</a><span
    tal:condition="not: repeat/action/end">&nbsp;|&nbsp;</span>
        </span>

</div>


<!-- start byline - new action_box -->

<div metal:define-macro="byline"
     tal:condition="python:not isAnon"
     tal:define="getIcon python:hasattr(here, 'getIcon') and here.getIcon();
                     icon python:getIcon or getattr(here, 'icon', '');
                     typ python:getattr(here, 'Type', '');
                     objID python:here.truncID( here.getId(), size=25 )">

  <div id="objectinfo">
  <h2 id="desktoptitle"><img tal:condition="icon" src=""
                             tal:attributes="src icon; alt typ">&nbsp;<span
    tal:content="here/Title" tal:omit-tag="">Job Jar For Future Projects</span></h2>
  </div>

    <div>
    By <a href=""
          tal:attributes="href python:mtool.getHomeUrl(here.Creator())"
          tal:content="here/Creator">Some Author</a>
        (updated <span tal:replace="here/ModificationDate">2001-09-17 14:29:59</span> )
    </div>

    <div id="objectactions"
         tal:condition="python:not isAnon and (len( object_actions ) &gt; 1 or len( folder_actions ) &gt; 1 or len( workflow_actions ) &gt; 1)">


      <span tal:repeat="action object_actions"
            tal:omit-tag=""><a href=""
    tal:attributes="href action/url"
    tal:content="action/name">View</a><span
    tal:condition="not:repeat/action/end" tal:omit-tag="">&nbsp;|</span></span>
      <span tal:repeat="action folder_actions"
            tal:omit-tag=""><a href=""
    tal:attributes="href action/url"
    tal:content="action/name">Edit</a><span
    tal:condition="not:repeat/action/end" tal:omit-tag="">&nbsp;|</span></span>

      <span tal:condition="workflow_actions"
            class="ObjectStatus" tal:omit-tag="">Status: <span
    tal:replace="python: wtool.getInfoFor(here,'review_state','')">Private</span></span>
      <span tal:repeat="action workflow_actions"
            tal:omit-tag=""><a href="content_submit_form"
    tal:attributes="href action/url"
    tal:content="action/name">Submit</a><span
    tal:condition="not:repeat/action/end" tal:omit-tag="">&nbsp;|</span></span>
    </div>
</div>

<!-- end byline - new action_box -->

<table align="center" border="1" style="font-size: 1em"
       cellspacing="0" cellpadding="2"
       metal:define-macro="bugbox">
<caption style="font-weight: bold">Temporary Area -- The Bug Box</caption>
  <tr>
  <td>
  <table align="center" border="0" cellspacing="0" cellpadding="4">
  <tr>
    <td tal:condition="python:isAnon">
      <form tal:condition="python:isAnon" name="fLogin"
            action="http://collector.zope.org/logged_in"
            method="post">
        <table class="FormLayout">
          <tr>
            <td align="right" valign="top">
              <strong>Name:</strong>
            </td>
            <td align="left" valign="top">
              <input type="TEXT" name="__ac_name" size="20" value="">
            </td>
          </tr>
          <tr>
            <td align="right" valign="top">
              <strong>Password:</strong>
            </td>
            <td align="left" valign="top">
              <input type="PASSWORD" name="__ac_password" size="20">
            </td>
          </tr>
          <tr valign="top" align="left">
            <td>&nbsp;</td>
            <td>
              <input type="checkbox" name="__ac_persistent" value="1" checked id="cb_remember" />
              <label for="cb_remember">Remember my name.</label>
            </td>
          </tr>
          <tr>
            <td align="left" valign="top">&nbsp;</td>
            <td align="left" valign="top">
              <input type="button" name="submit" value=" Login " onclick="doLogin()">
              <input type="button" name="cookies" value=" Cookies " onclick="alert(document.cookie)">
            </td>
          </tr>
        </table>
      </form>
    </td>
    <td>
      <form name="fCollector" action="http://collector.zope.org/ZopeOrg/collector_add_issue" method="POST">
	<table cellspacing="0" colspacing="0" border="0">
	<tr>
	<td align="right">
	      <strong>Category:</strong>
	</td>
	<td>
		<select name="topic">
	        <option value="content">content</option>
		<option value="skin">skin</option>
		<option value="functionality">functionality</option>
		<option value="navigation">navigation</option>
		<option value="migration machinery">migration machinery</option>
		<option value="SoftwareProduct">SoftwareProduct</option>
		</select>
	</td>
	<td rowspan="3">
	      	<strong>Description:</strong><br />
		<textarea name="description" rows="5" cols="35"></textarea>
	</td>
	</tr>
	<tr>
	<td align="right">
		<strong>Title:</strong> 
	</td>
	<td>
		<input type="text" name="title" value="" size="20" />
	</td>
	</tr>
	<tr>
	<td align="right">
	      	<strong>Email:</strong> 
	</td>
	<td>
		<input type="text" name="submitter_email" size="20" value="paul at zope.com" />
	</td>
	</tr>
	<tr>
	<td align="right">
	     	<input type="button" value="Add" />
	</td>
	<td colspan="2">	
	      	<input type="button" value="Add and Confirm" onclick="addCollectorIssue();" />
	</td>
	</tr>
	</table>
      </form>
    </td>
  </tr>
  </table>
 </td>
 </tr>
  <tr>
    <td align="center">
      <span style="font-size: small">
      <a href="#">Collector Login</a> &nbsp;
View open reports for:
<a href="#">All</a>
<a href="#">Design</a>
<a href="#">System</a>
<a href="#">Search</a>
<a href="#">Content</a>
<a href="#">Documentation</a>
<a href="#">Products</a>
</span>
</td>
</tr>
</table>

<div align="center" metal:define-macro="copyright">&copy; 2002
<a href="http://www.zope.com/">Zope Corporation</a> All rights reserved.
</div>
</body>
</html>


=== Added File Products/ZopeOrg-NV/skins/nzo/main_template.html ===
<html metal:define-macro="master"
      tal:define="utool nocall:here/portal_url;
                  mtool here/portal_membership;
                  atool here/portal_actions;
                  wtool here/portal_workflow;
                  portal_object utool/getPortalObject;
                  portal_title portal_object/Title;
                  object_title here/Title;
                  portal_url here/portal_url;
                  member mtool/getAuthenticatedMember;
                  isAnon mtool/isAnonymousUser;
                  actions python: atool.listFilteredActionsFor( here );
                  user_actions actions/user;
  		  uname python: isAnon and 'Guest' or member.getUserName();
    object_actions actions/object;
    folder_actions actions/folder;
    workflow_actions actions/workflow;
                 "
>
<head>

  <title tal:define="ob_title here/Title; portal_title container/title"
         tal:content="string:${portal_title}: ${ob_title}">New Zope.org</title>

  <link href="css_default.css" rel="stylesheet" type="text/css"
        tal:attributes="href here/css_default/absolute_url" />

</head>

<body bgcolor="#FFFFFF" leftmargin="0" topmargin="0" marginwidth="0" marginheight="0">

<div id="TOP_NAVIG">
  <table width="100%" background="top_bckgrd.jpg" border="0" cellspacing="0" cellpadding="0">
    <tr>
      <td width="201" valign="top">
      <div align="left">
 <a href="#" tal:attributes="href portal_url"><img src="top_logo.gif"
           width="201" height="54" border="0" /></a></div></td>

      <form action="search" method="get"
            tal:define="portal_url here/portal_url"
     tal:attributes="action string:${portal_url}/search">
      <td background="top_bckgrd.jpg"> <a href="#"
         tal:attributes="href portal_url">Home</a> |
         <a href="#" tal:attributes="href string:${portal_url}/sitemap.html">Site map</a> |
         <a href="#" tal:attributes="href string:${portal_url}/help.html">Help</a> |
         <a href="#" tal:attributes="href string:${portal_url}/search.html">Search</a>
        <input type="text" name="SearchableText" value="Type your search here"
        size="20" onfocus="this.value='';" />
        <input type="submit" name="Submit" value="Go" /> &nbsp;
      </td>
      </form>
    </tr>
  </table>
</div>

<table width="100%" border="0" cellspacing="0" cellpadding="0">
  <tr>
    <td bgcolor="#CCCCCC" class="SLOGAN">&nbsp;The website for the Zope Community</td>
    <td bgcolor="#CCCCCC">

      <div id="USER_BAR">
           Username:&nbsp;&nbsp;<span tal:content="uname">Guest</span>&nbsp;&nbsp;
        <span tal:repeat="action user_actions">
        <a href="" tal:attributes="href action/url"
           tal:content="action/name">Login</a><span tal:condition="not: repeat/action/end">&nbsp;|&nbsp;</span>
        </span>
        <span tal:condition="nothing"><a href="join_form">Join</a></span>&nbsp;
      </div>

    </td>
  </tr>
  <tr>
    <td bgcolor="#BBBBBB" height="1"></td>
    <td bgcolor="#BBBBBB" height="1"></td>
  </tr>

  <tr bgcolor="#666666">
    <td colspan="2" bgcolor="#666666"><!--
    Disabled for now. Waiting for feedback on the new byline, then we should
    remove this. <dreamcatcher>
        <div id="ACTIONS_BAR" metal:use-macro="container/macros_repository/macros/actions_bar">
        <span>
        <a href="">Edit</a>&nbsp;|&nbsp;
        </span>

        <span>
        <a href="">Edit</a>&nbsp;|&nbsp;
        </span>

        <span>
        <a href="">Edit</a>&nbsp;
        </span>

        </div>
--></td>
  </tr>

  <tr>
    <td bgcolor="#78797D" height="1"></td>
    <td bgcolor="#78797D" height="1"></td>
  </tr>


</table>


<table width="100%" border="0" cellspacing="0" cellpadding="7">
  <tr>
    <td valign="top" nowrap width="120">
        <div id="SIDE_MENU">

          <h1><a href="#">About Zope</a></h1>
          <a href="#">What is Zope?</a><br />
          <a href="#">News</a><br />
          <a href="#">Awards</a><br />
          <a href="#">Getting started</a><br />
          <a href="#">Report bugs</a><br />
          <a href="#">About Zope.org</a><br />
          <br />

          <h1><a href="#">Documentation</a></h1>
          <a href="#">References</a><br />
          &nbsp; <a href="#">API</a>, <a href="#">ZPT</a>, <a href="#">DTML</a><br />
          <a href="#">The Zope Book</a><br />
          <a href="#">Developer Guide</a><br />
          <a href="#">Administrator Guide</a><br />
          <a href="#">Articles</a><br />
          <a href="#">How-To's</a><br />
          <a href="#">Books in print</a><br />
          <br />

          <h1><a href="#">Download</a></h1>
          <a href="#">Zope</a><br />
          <a href="#">Products by category</a><br />
          <a href="#">All products</a><br />
          <br />

          <h1><a href="#">Projects</a></h1>
          <a href="#">Zope 3</a><br />
          <a href="#">New zope.org</a><br />
          <a href="#">ZMI</a><br />
          <br />


          <h1><a href="#">Community</a></h1>
          <a href="#">Mailing lists</a><br />
          <a href="#">IRC</a><br />
          <a href="#">Zope User Groups</a><br />
          <a href="#">Zope links</a><br />
          <br />

          <h1><a href="#">Business</a></h1>
          <a href="#">Zope Corporation</a><br />
          <a href="#">Solution Providers</a><br />
          <a href="#">Hosting</a> <br />
          <a href="#">Marketing Zope</a><br />


        </div>
    </td>

    <td background="point_bckgrd2.jpg" width="1">&nbsp;</td>
    <td valign="top">
      <div id="Breadcrumbs">
        Location: 
          <span tal:replace="structure python:here.shortBread(include_root=1)">
			    <a href="#">Bread</a> > <a href="#">Crumbs</a></span>
      </div>
      <div metal:use-macro="container/macros_repository/macros/byline">Byline</div>
      <div metal:define-slot="main">


<TABLE width="100%" border=0 cellspacing="0" cellpadding="0">
  <TBODY>
  <TR>
    <TD  id="contentarea" valign="top">
      <H1><img height=11 src="bullet.gif" width=13 />Spotlight on...<br /></H1>

      <h2>Using Zope With Amaya<br />
      <span style="font-size: small">By Michel Pelletier 21 August, 2001</span></h2>
      <p>Zope is an object-oriented web application server that
      is managed through a web interface. This interface allows
      you to add and manipulate Zope objects. Zope's managment
      interface is one of its most powerful features, but there
      is one area where using Zope's managment interface is
      difficult: editing templates.  <img src="more.gif"
      width="42" height="13" align="absbottom" /></p>

      <H1><img height=11 src="bullet.gif" width="13" />What is Zope?</H1>

      <p>Zope is an open source application server for building
      content management solutions such as publishing sites,
      intranet, portals, and custom applications. The Zope
      community consists of hundreds of companies and thousands
      of developers all over the world, working on building
      the platform and Zope applications. <br />
      <img src="more.gif" width="42" height="13" align="absbottom" />
      </p>

      <h1><img height=11 src="bullet.gif" width="13" />Info for...</h1>

      <div><a href="#">New Users</a>: New to Zope but familiar with
      website programming.

        <div class="subitems"><a href="">Intro</a>, 
            <a href="">About Python</a>, 
     <a href="">Web Programming</a> 
            <img src="more.gif" width="42" height="13" align="absbottom" />
        </div>
      </div>

      <div><a href="#">Web Masters</a>: Using Zope to make a website.

        <div class="subitems"><a href="">Using Apache</a>, 
     <a href="">Security</a>, 
     <a href="">Backup policies</a>, 
     <a href="#">DTML </a>
     <a href=""><img src="more.gif" width="42" height="13" 
     align="absbottom" border="0" /></a>
        </div>
      </div>

      <div><a href="#">Product Developers</a>: Using Zope to make
             applications.

        <div class="subitems"><a href="">Developers Guide</a>, 
     <a href="#">ZClasses</a>,
     <a href="">Unit testing</a> 
     <a href="#"><img src="more.gif" width="42" height="13" 
     align="absbottom" border="0" /></a>
        </div>
      </div>

      <div><a href="#">Zope Developers</a>: Doing the impossible,
      improving Zope.

        <div class="subitems"><a href="">Products</a>, 
     <a href="">Using CVS</a>,
     <a href="">Bug days</a> 
     <a href="#"><img src="more.gif" width="42" height="13"
     align="absbottom" border="0" /></a>
        </div>
      </div>

    </TD>

    <TD valign="top"><img src="space.gif" width="7" height="32" alt="" /></TD>
    <TD background="point_bckgrd2.jpg"><img src="space.gif" width="24" height="32" alt="" /></TD>
    <TD id="newsarea" vAlign=top width=200> 
        <H1><img height=11 src="bullet.gif" width=13 />Announcements&nbsp;<img
          src="more.gif" width="42" height="13" align="absbottom" />
        </H1>

        <p class="newsdate">2002-04-14:</p>

        <p class="newsheadline">O'Reilly Call For Papers
        Deadline&nbsp;<img src="more.gif" width="42" height="13"
        align="absbottom" /></p>

        <p class="newsdate">2002-04-13:</p>

        <p class="newsheadline">Migration to new.zope.org
        Scheduled&nbsp;<img src="more.gif" width="42" height="13"
        align="absbottom" /></p>

        <p class="newsdate">2002-04-13:</p>

        <p class="newsheadline">Lennart is Learning
        dreamweaver&nbsp;<img src="more.gif" width="42" height="13"
        align="absbottom" /></p>

        <H1><img height=11 src="bullet.gif" width=13 />News&nbsp;<img
        src="more.gif" width="42" height="13" align="absbottom" /><BR />
        <IMG height=1 src="pixel_grey.jpg" width="100%" />
        </H1>

        <p class="newsdate">2002-04-13:</p>

        <p class="newsheadline">ZPT introduction <img src="more.gif"
        width="42" height="13" align="absbottom" /></p>

        <p class="newsdate">2002-04-13:</p>

        <p class="newsheadline">Lambda Tricks <img src="more.gif"
        width="42" height="13" align="absbottom" /></p>

        <p class="newsdate">2002-04-13:</p>
 
        <p class="newsheadline">Zope on Slashdot <img src="more.gif"
        width="42" height="13" align="absbottom" /></p>

        <h1><img height=11 src="bullet.gif" width=13 />Top
        Resources&nbsp;<img src="more.gif" width="42" height="13"
        align="absbottom" /><br /><img height=1 src="pixel_grey.jpg"
        width="100%" /></h1>

        <p class="newsdate">2002-04-13 [haqa]:</p>

        <p class="newsheadline">Content Index 1.5.0 <img
        src="more.gif" width="42" height="13" align="absbottom" /></p>

        <p class="newsdate">2002-04-13 [k_vertigo]:</p>

        <p class="newsheadline">Ratings 0.3.0 <img src="more.gif"
        width="42" height="13" align="absbottom" /></p>

        <p class="newsdate">2002-04-13 [stevray]:</p>

        <p class="newsheadline">LDAP Directory Manager 0.1 <img
        src="more.gif" width="42" height="13" align="absbottom" /></p>

        <p class="newsdate">2002-04-13 [mngibso]:</p>

        <p class="newsheadline">Photo Extension 0.0.2 <img
        src="more.gif" width="42" height="13" align="absbottom" /></p>
    </TD>
  </TR>
  </TBODY>
</TABLE>

      </div>
    </td>
  </tr>
</table>
<table align="center" border="0" cellspacing="0" cellpadding="0" width="100%" style="margin-top: 2em;margin-bottom: 2em">
<tr>
<td align="center">
  <a href="#">Privacy policy</a> | <a href="#">Feedback
              to this page's author</a> | <a href="#">Feedback about Zope.org</a>
              | <a href="#">Page Source</a>
</td>
</tr>
</table>

<div align="center" metal:use-macro="container/macros_repository/macros/bugbox">
Here goes the Bug Box
</div>

<div align="center" metal:use-macro="container/macros_repository/macros/copyright">
  Here goes the Copyright
</div>

</body>
</html>

=== Added File Products/ZopeOrg-NV/skins/nzo/more.gif ===
  <Binary-ish file>

=== Added File Products/ZopeOrg-NV/skins/nzo/personalize.py ===
## Script (Python) "personalize"
##title=Personalization Handler.
##bind namespace=_
##parameters=
REQUEST=context.REQUEST
member = context.portal_membership.getAuthenticatedMember()
member.setProperties(REQUEST)

if REQUEST.has_key('portal_skin'):
    context.portal_skins.updateSkinCookie()

qs = '/personalize_form?portal_status_message=Member+changed!.'

context.REQUEST.RESPONSE.redirect(context.portal_url() +  qs)


=== Added File Products/ZopeOrg-NV/skins/nzo/personalize_form.html ===
<html xmlns:tal="http://xml.zope.org/namespaces/tal"
      xmlns:metal="http://xml.zope.org/namespaces/metal"
      metal:use-macro="here/main_template/macros/master">
<body>
<h1>coooooollll</h1>
<div metal:fill-slot="main">
  <div tal:define="member python: here.portal_membership.getAuthenticatedMember()">
    <div class="Desktop">
      <h1> Member Preferences </h1>
      <span tal:replace="request/msg"
            tal:condition="request/msg|nothing"><hr></span>
      <p><a href="password_form">Click here</a> to change your password.</p>
     <form action="personalize" method="post">
     <table class="FormLayout">

     <tbody tal:define="props here/portal_membership/getUserSearchableAttributes"
            tal:repeat="prop props">
        <tr tal:define="property_name python: prop[0];
                        current_value python: member.getProperty(prop[0])">
            <th> <span tal:replace="python: prop[1]" /> </th>
            <td>
              <input type="text" name="" value="" size="30"
                     tal:attributes="name python: prop[0];
                                     value current_value">
            </td>
        </tr>
    </tbody>

  <tr tal:define="public_str python: member.getProperty( 'public' );
                  isPublic python: (public_str and int( public_str)) or 0">
   <th valign="top">Listed status</th>
   <td>
     <input type="radio" name="public" 
	        tal:attributes="checked isPublic"
            value="1" id="cb_listed" />
     <label for="cb_listed">Listed</label>

     <dl class="FieldHelp">
       <dd>You will show up on the public membership roster.</dd>
     </dl>


     <input type="radio" name="public" 
	        tal:attributes="checked python: not( isPublic )"
            value="0" id="cb_unlisted" />
	<label for="cb_unlisted">Unlisted</label>
     <dl class="FieldHelp">
       <dd> You will <i>not</i> show up on the public membership roster.
            Your Member folder will still be publicly accessible unless
            you change its security settings.</dd>
     </dl>
   </td>
  </tr>

  <div tal:condition="here/portal_skins | nothing">
   <tr>
    <th>Skin</th>
    <td>
     <select name="portal_skin">
        <option value=""
		  tal:define="skins python: here.portal_skins.getSkinSelections();
                      def_skin here/portal_skins/getDefaultSkin;
                      skin_pref python: member.getProperty( 'portalSkin' ) or def_skin"
		  tal:repeat="skin skins"
		  tal:attributes="value skin; selected python: skin_pref == skin"
		  tal:content="skin">
		</option>
     </select>
    </td>
   </tr>
  </div>

  <tr>
   <td></td>
   <td><input type="submit" value=" Change "></td>
  </tr>
 </table>
</form>

</div>
</div>
</div>
</body>
</html>



=== Added File Products/ZopeOrg-NV/skins/nzo/pixel_grey.jpg ===
  <Binary-ish file>

=== Added File Products/ZopeOrg-NV/skins/nzo/point_bckgrd2.jpg ===
  <Binary-ish file>

=== Added File Products/ZopeOrg-NV/skins/nzo/printer_icon.gif ===
  <Binary-ish file>

=== Added File Products/ZopeOrg-NV/skins/nzo/returnPageResults.py ===
## Script (Python) "returnPageResults"
##bind container=container
##bind context=context
##bind namespace=
##bind script=script
##bind subpath=traverse_subpath
##parameters=batch, maxPages=10
##title=
##
# Return page calculation from batch result
#  Input
#    batch : batch of sequence from which we need to return page result
#    maxPages: The maximum amount of page links to be shown
#  Output
#    List with dictionaries as record, containing:
#      batch: the batch to which the page refers
#      active: if the batch is the current batch displayed
#      index: repition number of the page, starting from 0
#      number: index of the page + 1
     

result = []
rangeLimit = int(maxPages) / 2

# check if we have enough pages to the right
count=0
tmpbatch = batch
highPage = rangeLimit
while (tmpbatch.next) and (count < highPage):
  tmpbatch = tmpbatch.next
  count +=1

# go to first page
lowPage = rangeLimit
lowPage += (highPage - count) +1

count=1
tmpbatch = batch
while (tmpbatch.previous) and (count < lowPage):
  tmpbatch = tmpbatch.previous
  count +=1

# create pages list

batches = []

page = {}
page['active'] = tmpbatch.start == batch.start
page['index'] = tmpbatch.start / batch.size
page['number'] = tmpbatch.start / batch.size +1 
page['batch'] = tmpbatch
result.append(page)

count=1
while (tmpbatch.next) and (count < maxPages):
  tmpbatch=tmpbatch.next
  count +=1
  page = {}
  page['active'] = tmpbatch.start == batch.start
  page['index'] = tmpbatch.start / batch.size
  page['number'] = tmpbatch.start / batch.size +1 
  page['batch'] = tmpbatch
  result.append(page)

return result


=== Added File Products/ZopeOrg-NV/skins/nzo/search.html ===
<html xmlns:tal="http://xml.zope.org/namespaces/tal"
      xmlns:metal="http://xml.zope.org/namespaces/metal"
      metal:use-macro="here/main_template/macros/master">
<body>
<div metal:fill-slot="main">

  <table style="margin-top: 1em;margin-bottom: 1em" border="0" 
         cellpadding="0" cellspacing="0"
         tal:define="global results python:here.doFormSearch( REQUEST=request );
                     global pss modules/Products.PythonScripts.standard">
  <tr>
    <form method="get" action="#"
          tal:attributes="action string: ${portal_url}/search">
    <td valign="top">You searched for:</td>
    <td style="padding-left: 0.5em">
        <input type="text" name="SearchableText" size="25"
               value="Type your search here ..." 
               tal:attributes="value request/SearchableText" />
        <input type="submit" name="Submit" value="Search Zope.org" /><br />
    </td>
    </form>
  </tr>
  <tr>
    <td colspan="2">
      <a href="#">Advanced Search</a>&nbsp;&nbsp;
      <a href="#">Search Tips</a>&nbsp;&nbsp;
      <a href="#">Top Searches</a>
    </td>
  </tr>
  </table>

  <table border="0" width="100%" style="color: white;background-color: blue">
  <tr>
    <td>Searching Zope.org for <span style="font-weight: bold" 
      tal:content="request/SearchableText">search term</span></td>
    <td style="text-align: right">Results 1-10 of <span 
     tal:replace="python:pss.thousands_commas(len(results))">290</span>.</td>
  </tr>
  </table>

  <div style="margin-top: 1em" 
       tal:define="b_start python:0;b_start request/b_start | b_start;
	           Batch python:modules['ZTUtils'].Batch;
	           global batch python:Batch(results, 10, b_start, orphan=1);
                ">

    <div tal:repeat="hit batch">

      <div style="margin-top: 1em"
           tal:define="objURL python: hit.getURL() + '/view'">

      <div>
      <span tal:condition="hit/getIcon|nothing">
        <a href="" tal:attributes="href objURL"><img 
           src="" border="0" alt="" title=""
           tal:define="alt hit/Type"
           tal:attributes="src hit/getIcon; alt alt; title alt" /></a></span>

        <a href="" tal:attributes="href objURL"><span 
           tal:condition="hit/Title" 
           tal:content="hit/Title">Title</span><span 
           tal:condition="not:hit/Title" 
           tal:content="hit/getURL"></span></a>
      </div>

      <div tal:condition="hit/Description">
        Description: 
        <span tal:content="python: here.truncate(hit.Description,150)">Description</span>
      </div>

      <div tal:condition="hit/Subject">
        Related subjects:
        <span tal:repeat="this_subject hit/Subject">
        <a href="#" tal:content="this_subject">somesubject</a> 
        </span>
      </div>

      <div style="font-size: x-small">
        <span style="color: #008000" tal:content="hit/getURL">http://some.url/</span> - 

        <span tal:replace="python: pss.thousands_commas(hit.get_size()) + ' bytes'"
	      tal:on-error="python: None"> 7,200 bytes</span> - 

        <span tal:content="hit/Date">12-Apr-2002</span>
      </div>

    </div>
  </div>

  <div tal:condition="not:results"
       tal:replace="string:There are no items matching your specified criteria"></div>

<!--- commented out, remove when final
    <p class="Desktop" tal:define="mq python:modules['ZTUtils'].make_query"
                       tal:omit-tag="">
    <span tal:define="p batch/previous" tal:condition="p">
    <a href=""
       tal:attributes="href python: '?' + mq( request.form, b_start=p.first )"
       >Previous <span tal:replace="p/length">n</span> items</a>
    </span>&nbsp;&nbsp;
    <span tal:define="n batch/next" tal:condition="n">
    <a href=""
       tal:attributes="href python: '?' + mq( request.form, b_start=n.first )"       
       >Next <span tal:replace="n/length">n</span> items</a>
    </span> 
    </p>
-->

  </div>


<!-- Result Page Batches (Tom) --->

<table style="margin-top: 1em;margin-bottom: 1em" border="0" 
       cellpadding="0" cellspacing="0"
       width="1%"
       align="center">
  <tr>
    <td colspan="2" nowrap>

<font size=-1>Result&nbsp;Page:&nbsp;</font>

<span tal:define="b_start request/b_start |python:0;
                  batch python:modules['ZTUtils'].Batch(results, size=10, start=b_start, orphan=1);
                  previous python:batch.previous;
                  next python:batch.next;
		  mq python:modules['ZTUtils'].make_query;
                  global pages python:here.returnPageResults(batch,10)">

    <span tal:define="p batch/previous" tal:condition="p">
    <a href=""
       tal:attributes="href python: '?' + mq( request.form, b_start=p.first )">Previous</a>
    </span>

    <span tal:repeat="page pages" tal:omit-tag="">              
      <a tal:condition="not:page/active"
         tal:define="x page/batch" tal:content="page/number"
         tal:attributes="href python: '?' + mq( request.form, b_start=x.first )"
         href="page_url">X</a>
      <span tal:condition="page/active"
            tal:content="page/number" tal:omit-tag="">X</span>
    </span>

    <span tal:define="n batch/next" tal:condition="n">
    <a href=""
       tal:attributes="href python: '?' + mq( request.form, b_start=n.first )">Next</a>
    </span> 

</span>

    </td>
  </tr>
</table>

<!--- End Result Page Batches --->

<br />

<table style="margin-top: 1em;margin-bottom: 1em" border="0" 
       cellpadding="3" cellspacing="0"
       width="1%"
       align="center">
  <tr>
<form method="get" action="#"
      tal:attributes="action string: ${portal_url}/search">
    <td valign="top" nowrap>You searched for:</td>
    <td style="padding-left: 0.5em" nowrap>
        <input type="text" name="SearchableText" size="25"
               value="Type your search here ..." 
               tal:attributes="value request/SearchableText" />
        <input type="submit" name="Submit" value="Search Zope.org" /><br />
    </td>
</form>
  </tr>
  <tr>
    <td colspan="2">
      <a href="search_form">Advanced Search</a>&nbsp;&nbsp;
      <a href="#">Search Tips</a>&nbsp;&nbsp;
      <a href="#">Top Searches</a>
    </td>
  </tr>
</table>
</div>

</body>
</html>

=== Added File Products/ZopeOrg-NV/skins/nzo/search_form.html ===
<html xmlns:tal="http://xml.zope.org/namespaces/tal"
      xmlns:metal="http://xml.zope.org/namespaces/metal"
      metal:use-macro="here/main_template/macros/master">
<body>
<div metal:fill-slot="main">

<div class="Desktop">

<h1>Search <span tal:replace="here/Title" /></h1>

<form action="search"
      tal:attributes="action string:${here/portal_url}/search"
>

<table class="FormLayout">


 <tr tal:condition="python: here.portal_membership.checkPermission('Review portal content', here)">
  <th> Review Status
  </th>
  <td>
   <select name="review_state" size="3" multiple>
    <option value="" selected>-- any --</option>
    <option>private</option>
    <option>pending</option>
    <option>published</option>
   </select>
   <dl class="FieldHelp">
    <dd> As a reviewer, you may search for items based on their
         review state.  If you wish to constrain results to items
         in certain states, select them from this list.
    </dd>
   </dl>
  </td>
 </tr>
 
 <tr valign="top">
  <th> Full Text
  </th>
  <td>
    <input name="SearchableText" size="40">
   <dl class="FieldHelp">
    <dd> For a simple text search, enter your search term
         here.  Multiple words may be found by combining
         them with <b>AND</b> and <b>OR</b>.  This will
         find text in items' contents, title and
         description.
    </dd>
   </dl>
  </td>
 </tr>

 <tr>
  <th>Title
  </th>
  <td>
   <input name="Title" size="20">
  </td>
 </tr>

 <tr valign="top">
  <th>Subject</th>
  <td tal:define="items python: here.portal_catalog.uniqueValuesFor('Subject')">
   <select name="Subject:list" multiple size="5">
    <option value="" selected>-- any --</option>
    <option value=""
		    tal:repeat="item items"
		    tal:attributes="value item"
		    tal:content="item">
      </option>
    </select>
  </td>
 </tr>

 <tr>
  <th> Description
  </th>
  <td>
   <input name="Description" size="20">
   <dl class="FieldHelp">
    <dd> You may also search the items' descriptions and
         titles specifically.  Multiple words may be found
         by combining them with <b>AND</b> and <b>OR</b>.
    </dd>
   </dl>
  </td>
 </tr>

 <tr>
  <th> Find new items since...
  </th>
  <td tal:define="today python: here.ZopeTime().earliestTime();
			      mtool here/portal_membership;
                  member python:mtool.getAuthenticatedMember();
                  lastLogin member/last_login_time|nothing;
	              yesterday python:(today-1).Date();
	              lastWeek python:(today-7).Date();
	              lastMth python:(today-31).Date();
                 ">
   <select name="created:date">
    <option value="1970/01/01 00:00:00 GMT">Ever</option>
	<option value=""
	        tal:condition="python:not(here.portal_membership.isAnonymousUser())"
			tal:attributes="value lastLogin">Last login</option>
    <option value=""
			tal:attributes="value yesterday">Yesterday</option>
    <option value=""
			tal:attributes="value lastWeek">Last week</option>
    <option value=""
			tal:attributes="value lastMth">Last month</option>
   </select>
   <input type="hidden" name="created_usage" value="range:min">
   <dl class="FieldHelp">
    <dd> You may find only recent items by selecting a time-frame.
    </dd>
   </dl>
  </td>
 </tr>

 <tr>
  <th> Item type
  </th>
  <td tal:define="items python: here.portal_types.listContentTypes()" >
   <select name="Type:list" multiple size="5">
    <option value="" selected>-- any --</option>
    <option value=""
		    tal:repeat="item items"
		    tal:attributes="value item"
		    tal:content="item"></option>
    </select> 
   <dl class="FieldHelp">
    <dd> You may limit your results to particular kinds of
         items by selecting them above.  To find all kinds
         of items, do not select anything.
    </dd>
   </dl>
  </td>
 </tr>

 <tr>
  <th> Creator
  </th>
  <td>
   <input name="Creator" size="20">

   <dl class="FieldHelp">
    <dd> To find items by a particular user only, enter
         their username above.  Note that you must enter
         their username <i>exactly</i>.
    </dd>
   </dl>
  </td>
 </tr>

 <tr>
  <td><br></td>
  <td>
    <input type="submit" value="Search">
  </td>
 </tr>
</table>
</form>

</div>
</div>
</body>
</html>





=== Added File Products/ZopeOrg-NV/skins/nzo/shortBread.py ===
## Script (Python) "shortBread"
##bind container=container
##bind context=context
##bind namespace=
##bind script=script
##bind subpath=traverse_subpath
##parameters=include_root=1
##title=
##
#init vars
len_titulo = 0
link = ''

#Caminho() is a list of the Breadcrumb objects
#items = request.PARENTS[0].Caminho()
items = context.breadcrumbs(include_root)

#tam_disp is the max size of the breadcrumbs link
tam_disp = 90

#this is the medium size of the breadcrumbs, counting the "..." and a space
#at the end
media = int((tam_disp-(4*len(items))) / len(items))

#return items
#here we walk through the breadcrumbs list
#and cut the title of the breadcrumb to "media" if it exceeds
#if it is shorter than media, we add to the available space
for i in range(len(items)-1):
  item = items[i]
  titel_or_id = item['title'] or item['id']
  if len_titulo < tam_disp:
    if len(titel_or_id)> media:
      link = "%s<a href='%s' class='link1' title='%s'>%s...</a>&nbsp;&gt;&nbsp;" % (link, item['url'], titel_or_id,titel_or_id[:media])
      len_titulo += (media + 8)
    else:
      link = "%s<a href='%s' class='link1' title='%s'>%s</a>&nbsp;&gt;&nbsp;" % (link, item['url'], titel_or_id, titel_or_id)
      len_titulo += (len(titel_or_id) + 4)

#the last item gets all the space left to fill "tam_disp"
item = items[-1]
titel_or_id = item['title'] or item['id']
resto = tam_disp - len_titulo
if len(titel_or_id)>resto:
  link = "%s<a href='%s' class='link1' title='%s'>%s...</a>" % (link,item['url'], titel_or_id, titel_or_id[:resto])
else:
  link = "%s<a href='%s' class='link1' title='%s'>%s</a>" % (link,item['url'], titel_or_id, titel_or_id)

#the result is a string comprising all the breadcrumbs
#with the respective links and titles.
return link


=== Added File Products/ZopeOrg-NV/skins/nzo/space.gif ===
  <Binary-ish file>

=== Added File Products/ZopeOrg-NV/skins/nzo/stipple.gif ===
  <Binary-ish file>

=== Added File Products/ZopeOrg-NV/skins/nzo/todo.txt ===

Pending

  o Make the byline not appear on "wrong" pages (e.g. home page,
  section pages, folder_contents, folder_factory, etc.)  It should
  only appear when the page is "content".  Perhaps we should check for
  the presence of "description" as the test?

  o Speed up the rendering for anonymous pages by moving all CMF
  action stuff into a macro that is only defined and used when not
  isAnon

  o Join and friends don't work if you aren't doing LDAP

  o The right hand margin needs a lot of work

  o Change H1 to use :before and border-bottom, to avoid using the
  images in the text all the time

  o Breadcrumbs shouldn't appear on home page, right?

  o Overing over "About Zope" in the left margin gives a double underline

  o Refactor the CSS.  A lot of this has been inherited from one
  person to another.  We *really* don't need so many duplicate
  declarations of H1 and the like.

  o Settle the font issues (larger vs. stating a size)

  o Use em everywhere instead of px or pt on font-size!

  o Fix link hover (underline, etc.) to make consistent

  o On folder_contents, if there are not contents, don't display the
  column headings or buttons

  o The second actions box (the one that appears when you are logged
  in seems to be getting lost in the byline

  o Should section home pages be shown with [more...] at the end of
  the list, [more...] after the H1, or simply make the title a
  hyperlink?

  o Resolve the "more..." icon mess (on same line, in headings)

  o Better emphasize Python in the skin (and local_html)
  
  o Some of the H1s appear weird under NS4

Done

=== Added File Products/ZopeOrg-NV/skins/nzo/top_bckgrd.jpg ===
  <Binary-ish file>

=== Added File Products/ZopeOrg-NV/skins/nzo/top_logo.gif ===
  <Binary-ish file>

=== Added File Products/ZopeOrg-NV/skins/nzo/truncate.py ===
## Script (Python) "truncate"
##bind container=container
##bind context=context
##bind namespace=
##bind script=script
##bind subpath=traverse_subpath
##parameters=some_string, size
##title=
##
if len(some_string) > size:
    return some_string[:size] + '...'
else:
   return some_string


=== Added File Products/ZopeOrg-NV/skins/nzo/xmlrequestlib.js ===
<script type="text/javascript">
function collectorCheckAdded()
{

  alert("Current State:" +p.readyState);
  if (p.readyState != 4)
    return;

  alert("Collector Issue Added");

}

function checkForLogin()
{

  alert("Current State:" +p.readyState);
  if (p.readyState != 4)
    return;

  alert("Login Response Received");

}

function addCollectorIssue() {
  var p;
  alert("Creating XMLHttpRequest");
  try {
    p = new XMLHttpRequest();
  } catch (e) {
    p = new ActiveXObject("Msxml2.XMLHTTP");
  }
  alert("Setting onreadystatechange");
  p.onreadystatechange = collectorCheckAdded;


  alert("Opening URL");
  p.open( "GET", "http://collector.zope.org/ZopeOrg/collector_add_issue?topic=" + document.fCollector.topic.options[document.fCollector.topic.selectedIndex].value + "&title=" + document.fCollector.title.value + "&submitter_email=" + document.fCollector.submitter_email.value + "&description=" + document.fCollector.description.value + "&version_info=&security_related=&importance=medium&classification=bug");

  alert("going to send:" + p.readyState);
  p.send( null );
  alert("after send():" + p.readyState);
}

function doLogin() {
  var p;
  try {
    p = new XMLHttpRequest();
  } catch (e) {
    p = new ActiveXObject("Msxml2.XMLHTTP");
  }
  alert("Setting onreadystatechange");
  p.onreadystatechange = checkForLogin;

  p.open( "GET", "/ZopeOrg/logged_in?__ac_name=" + document.fLogin.__ac_name.value + "&__ac_password=" + document.fLogin.__ac_password.value );

  p.send( null );

}
</script>





More information about the zopeorg-checkins mailing list