(file) Return to TWikiDocumentation.html CVS log (file) (dir) Up to [RizwankCVS] / geekymedia_web / twiki

   1 rizwank 1.1 <html><head>
   2             <title>TWikiDocumentation</title>
   3             </head><body bgcolor="#ffffff">
   4             <h1><a name="TWiki_Reference_Manual_30_Oct_20"> </a><a name="_TWiki_Reference_Manual_30_Oct_2"> </a>  TWiki Reference Manual (30 Oct 2004 $Rev: 1794 $) </h1>
   5             <p />
   6             <script type="text/javascript">
   7             <!--
   8             function dblclick() { window.scrollTo(0,0) }
   9             if (document.layers) { document.captureEvents(Event.ONDBLCLICK); }
  10             document.ondblclick=dblclick; 
  11             -->
  12             </script>
  13             <p />
  14             This page contains all documentation topics as one long, complete reference sheet.<br />
  15             <strong><em>Doubleclick anywhere</em></strong> to return to the top of the page.
  16             <p />
  17             Note - if you are reading this at twiki.org, then you are reading about the most recent code under development.<br />
  18             If you want to read about the features on your local TWiki, then you should read the documentation there!
  19             <p />
  20             <div class="twikiToc">
  21             <ul>
  22 rizwank 1.1 <li> <a href="#TWiki_System_Requirements">TWiki System Requirements</a>
  23             <ul>
  24             <li> <a href="#Server_Requirements">Server Requirements</a>
  25             </li>
  26             <li> <a href="#Client_Requirements">Client Requirements</a>
  27             </li>
  28             <li> <a href="#Known_Issues">Known Issues</a>
  29             </li>
  30             </ul>
  31             </li>
  32             <li> <a href="#TWiki_Installation_Guide">TWiki Installation Guide</a>
  33             <ul>
  34             <li> <a href="#Standard_Installation">Standard Installation</a>
  35             <ul>
  36             <li> <a href="#Step_1_Create_Configure_the_Dire">Step 1: Create &amp; Configure the Directories</a>
  37             <ul>
  38             <li> <a href="#Aletrnative_Step_1_Create_Config">Aletrnative Step 1: Create &amp; Configure the Directories for Non-Root Accounts</a>
  39             </li>
  40             </ul>
  41             </li>
  42             <li> <a href="#Step_2_Set_File_Permissions">Step 2: Set File Permissions</a>
  43 rizwank 1.1 </li>
  44             <li> <a href="#Step_3_Edit_the_Configuration_Fi">Step 3: Edit the Configuration Files</a>
  45             </li>
  46             <li> <a href="#Step_4_Internationalisation_Setu">Step 4: Internationalisation Setup (Optional)</a>
  47             <ul>
  48             <li> <a href="#Trouble_with_I18N">Trouble with I18N? </a>
  49             </li>
  50             </ul>
  51             </li>
  52             <li> <a href="#Step_5_Configure_Site_Wide_Email">Step 5: Configure Site-Wide Email Preferences</a>
  53             </li>
  54             <li> <a href="#Step_6_Finish_Up_from_Your_Brows">Step 6: Finish Up from Your Browser</a>
  55             </li>
  56             </ul>
  57             </li>
  58             <li> <a href="#Additional_Server_Level_Options">Additional Server-Level Options</a>
  59             <ul>
  60             <li> <a href="#Enabling_Authentication_of_Users">Enabling Authentication of Users</a>
  61             </li>
  62             <li> <a href="#WYSIWYG_Editor">WYSIWYG Editor</a>
  63             </li>
  64 rizwank 1.1 </ul>
  65             </li>
  66             <li> <a href="#TWiki_File_System_Info">TWiki File System Info</a>
  67             </li>
  68             </ul>
  69             </li>
  70             <li> <a href="#Windows_Install_Cookbook">Windows Install Cookbook </a>
  71             <ul>
  72             <li> <a href="#Introduction">Introduction</a>
  73             </li>
  74             <li> <a href="#Summary">Summary</a>
  75             </li>
  76             <li> <a href="#Recent_updates">Recent updates</a>
  77             </li>
  78             <li> <a href="#Scope">Scope</a>
  79             <ul>
  80             <li> <a href="#Alternatives">Alternatives </a>
  81             </li>
  82             </ul>
  83             </li>
  84             <li> <a href="#Checking_versions">Checking versions</a>
  85 rizwank 1.1 </li>
  86             <li> <a href="#Pre_requisites_and_upgrades">Pre-requisites and upgrades</a>
  87             <ul>
  88             <li> <a href="#Text_editing">Text editing</a>
  89             </li>
  90             </ul>
  91             </li>
  92             <li> <a href="#The_Unix_Windows_Environment">The Unix/Windows Environment</a>
  93             <ul>
  94             <li> <a href="#The_Cygwin_environment">The Cygwin environment</a>
  95             </li>
  96             <li> <a href="#The_Apache_environment">The Apache environment</a>
  97             </li>
  98             <li> <a href="#The_Perl_environment">The Perl environment</a>
  99             </li>
 100             </ul>
 101             </li>
 102             <li> <a href="#Installing_Components">Installing Components</a>
 103             <ul>
 104             <li> <a href="#TWiki_part_1">TWiki (part 1)</a>
 105             </li>
 106 rizwank 1.1 <li> <a href="#Apache">Apache</a>
 107             </li>
 108             <li> <a href="#Cygwin_Unix_tools_Perl_and_RCS">Cygwin, Unix tools, Perl and RCS</a>
 109             </li>
 110             <li> <a href="#TWiki_part_2">TWiki (part 2)</a>
 111             </li>
 112             </ul>
 113             </li>
 114             <li> <a href="#Configuring_components">Configuring components</a>
 115             <ul>
 116             <li> <a href="#Configuring_Apache">Configuring Apache</a>
 117             </li>
 118             <li> <a href="#Configuring_TWiki">Configuring TWiki</a>
 119             </li>
 120             </ul>
 121             </li>
 122             <li> <a href="#Editing_the_CGI_scripts">Editing the CGI scripts</a>
 123             <ul>
 124             <li> <a href="#Perl_module_installation">Perl module installation</a>
 125             <ul>
 126             <li> <a href="#CPAN_The_Hard_Way">CPAN: The Hard Way</a>
 127 rizwank 1.1 </li>
 128             </ul>
 129             </li>
 130             <li> <a href="#Re_locking_RCS_files">Re-locking RCS files</a>
 131             </li>
 132             <li> <a href="#Email_setup">Email setup</a>
 133             </li>
 134             </ul>
 135             </li>
 136             <li> <a href="#Testing_your_TWiki_installation">Testing your TWiki installation</a>
 137             <ul>
 138             <li> <a href="#Troubleshooting">Troubleshooting </a>
 139             </li>
 140             <li> <a href="#Permissions">Permissions</a>
 141             </li>
 142             </ul>
 143             </li>
 144             <li> <a href="#Next_Steps">Next Steps</a>
 145             <ul>
 146             <li> <a href="#Improved_authentication">Improved authentication </a>
 147             </li>
 148 rizwank 1.1 <li> <a href="#Improved_performance">Improved performance</a>
 149             </li>
 150             </ul>
 151             </li>
 152             <li> <a href="#Format_of_filenames">Format of filenames</a>
 153             </li>
 154             <li> <a href="#Credits">Credits</a>
 155             </li>
 156             </ul>
 157             </li>
 158             <li> <a href="#TWiki_Upgrade_Guide">TWiki Upgrade Guide</a>
 159             <ul>
 160             <li> <a href="#Overview">Overview</a>
 161             </li>
 162             <li> <a href="#Upgrade_Requirements">Upgrade Requirements</a>
 163             </li>
 164             <li> <a href="#Major_Changes_Compared_to_TWiki">Major Changes Compared to TWiki 01-Feb-2003</a>
 165             </li>
 166             <li> <a href="#Automated_Upgrade_Procedure_from">Automated Upgrade Procedure from 01-Feb-2003 to 01-Sep-2004 Release</a>
 167             </li>
 168             <li> <a href="#Manual_Upgrade_Procedure_from_01">Manual Upgrade Procedure from 01-Feb-2003 to 01-Sep-2004 Release</a>
 169 rizwank 1.1 </li>
 170             <li> <a href="#Known_Issues">Known Issues</a>
 171             </li>
 172             </ul>
 173             </li>
 174             <li> <a href="#TWiki_User_Authentication">TWiki User Authentication</a>
 175             <ul>
 176             <li> <a href="#Authentication_Options">Authentication Options</a>
 177             <ul>
 178             <li> <a href="#Partial_Authentication">Partial Authentication</a>
 179             </li>
 180             </ul>
 181             </li>
 182             <li> <a href="#TWiki_Username_vs_Login_Username">TWiki Username vs. Login Username</a>
 183             </li>
 184             <li> <a href="#Changing_Passwords">Changing Passwords</a>
 185             </li>
 186             </ul>
 187             </li>
 188             <li> <a href="#TWiki_Access_Control">TWiki Access Control</a>
 189             <ul>
 190 rizwank 1.1 <li> <a href="#An_Important_Control_Considerati">An Important Control Consideration</a>
 191             </li>
 192             <li> <a href="#Authentication_vs_Access_Control">Authentication vs. Access Control</a>
 193             </li>
 194             <li> <a href="#Users_and_Groups">Users and Groups</a>
 195             <ul>
 196             <li> <a href="#Managing_Users">Managing Users</a>
 197             </li>
 198             <li> <a href="#Managing_Groups">Managing Groups</a>
 199             </li>
 200             </ul>
 201             </li>
 202             <li> <a href="#Restricting_Write_Access">Restricting Write Access</a>
 203             <ul>
 204             <li> <a href="#Deny_Editing_by_Topic">Deny Editing by Topic</a>
 205             </li>
 206             <li> <a href="#Deny_Editing_by_Web">Deny Editing by Web</a>
 207             </li>
 208             </ul>
 209             </li>
 210             <li> <a href="#Restricting_Rename_Access">Restricting Rename Access</a>
 211 rizwank 1.1 <ul>
 212             <li> <a href="#Deny_Renaming_by_Topic">Deny Renaming by Topic</a>
 213             </li>
 214             <li> <a href="#Deny_Renaming_by_Web">Deny Renaming by Web</a>
 215             </li>
 216             </ul>
 217             </li>
 218             <li> <a href="#Restricting_Read_Access">Restricting Read Access</a>
 219             <ul>
 220             <li> <a href="#Deny_Viewing_by_Topic">Deny Viewing by Topic</a>
 221             </li>
 222             <li> <a href="#Deny_Viewing_by_Web">Deny Viewing by Web</a>
 223             <ul>
 224             <li> <a href="#Obfuscate_Webs">Obfuscate Webs</a>
 225             </li>
 226             <li> <a href="#Authenticate_all_Webs_and_Restri">Authenticate all Webs and Restrict Selected Webs</a>
 227             </li>
 228             <li> <a href="#Authenticate_and_Restricting_Sel">Authenticate and Restricting Selected Webs Only</a>
 229             </li>
 230             </ul>
 231             </li>
 232 rizwank 1.1 </ul>
 233             </li>
 234             <li> <a href="#Hiding_Control_Settings">Hiding Control Settings</a>
 235             </li>
 236             <li> <a href="#The_SuperAdminGroup">The SuperAdminGroup</a>
 237             </li>
 238             </ul>
 239             </li>
 240             <li> <a href="#TWiki_Text_Formatting">TWiki Text Formatting</a>
 241             <ul>
 242             <li> <a href="#TWiki_Editing_Shorthand">TWiki Editing Shorthand</a>
 243             </li>
 244             <li> <a href="#Using_HTML">Using HTML</a>
 245             <ul>
 246             <li> <a href="#HTML_and_TWiki_Usability">HTML and TWiki Usability</a>
 247             </li>
 248             <li> <a href="#TWiki_HTML_Rendering">TWiki HTML Rendering</a>
 249             </li>
 250             <li> <a href="#TWiki_and_JavaScript">TWiki and JavaScript</a>
 251             </li>
 252             </ul>
 253 rizwank 1.1 </li>
 254             <li> <a href="#Hyperlinks">Hyperlinks</a>
 255             <ul>
 256             <li> <a href="#Internal_Links">Internal Links</a>
 257             </li>
 258             <li> <a href="#External_Links">External Links</a>
 259             </li>
 260             </ul>
 261             </li>
 262             <li> <a href="#TWiki_Variables">TWiki Variables</a>
 263             </li>
 264             <li> <a href="#TWikiPlugin_Formatting_Extension">TWikiPlugin Formatting Extensions</a>
 265             </li>
 266             <li> <a href="#Common_Editing_Errors">Common Editing Errors</a>
 267             </li>
 268             </ul>
 269             </li>
 270             <li> <a href="#TWiki_Variables">TWiki Variables</a>
 271             <ul>
 272             <li> <a href="#Predefined_Variables">Predefined Variables</a>
 273             <ul>
 274 rizwank 1.1 <li> <a href="#ATTACHURL_full_URL_for_attachmen">ATTACHURL -- full URL for attachments in the current topic</a>
 275             </li>
 276             <li> <a href="#ATTACHURLPATH_path_of_the_attach">ATTACHURLPATH -- path of the attachment URL of the current topic</a>
 277             </li>
 278             <li> <a href="#BASETOPIC_base_topic_where_an_IN">BASETOPIC -- base topic where an INCLUDE started</a>
 279             </li>
 280             <li> <a href="#BASEWEB_base_web_where_an_INCLUD">BASEWEB -- base web where an INCLUDE started</a>
 281             </li>
 282             <li> <a href="#DISPLAYTIME_display_time">DISPLAYTIME -- display time</a>
 283             </li>
 284             <li> <a href="#DISPLAYTIME_format_formatted_dis">DISPLAYTIME{"format"} -- formatted display time</a>
 285             </li>
 286             <li> <a href="#ENCODE_string_encodes_a_string">ENCODE{"string"} -- encodes a string</a>
 287             </li>
 288             <li> <a href="#FORMFIELD_format_renders_a_field">FORMFIELD{"format"} -- renders a field in the form attached to some topic</a>
 289             </li>
 290             <li> <a href="#GMTIME_GM_time">GMTIME -- GM time</a>
 291             </li>
 292             <li> <a href="#GMTIME_format_formatted_GM_time">GMTIME{"format"} -- formatted GM time</a>
 293             </li>
 294             <li> <a href="#HOMETOPIC_home_topic_in_each_web">HOMETOPIC -- home topic in each web</a>
 295 rizwank 1.1 </li>
 296             <li> <a href="#HTTP_HOST_environment_variable">HTTP_HOST -- environment variable</a>
 297             </li>
 298             <li> <a href="#ICON_type_small_icon_of_common_a">ICON{"type"} -- small icon of common attachment types</a>
 299             </li>
 300             <li> <a href="#INCLUDE_page_include_other_topic">INCLUDE{"page"} -- include other topics or web pages</a>
 301             </li>
 302             <li> <a href="#INCLUDINGTOPIC_name_of_topic_tha">INCLUDINGTOPIC -- name of topic that includes current topic</a>
 303             </li>
 304             <li> <a href="#INCLUDINGWEB_web_that_includes_c">INCLUDINGWEB -- web that includes current topic</a>
 305             </li>
 306             <li> <a href="#MAINWEB_name_of_Main_web">MAINWEB -- name of Main web</a>
 307             </li>
 308             <li> <a href="#METASEARCH_special_search_of_met">METASEARCH -- special search of meta data</a>
 309             </li>
 310             <li> <a href="#NOTIFYTOPIC_name_of_the_notify_t">NOTIFYTOPIC -- name of the notify topic</a>
 311             </li>
 312             <li> <a href="#PLUGINVERSION_the_version_of_the">PLUGINVERSION -- the version of the TWiki Plugin API</a>
 313             </li>
 314             <li> <a href="#PLUGINVERSION_name_the_version_o">PLUGINVERSION{"name"} -- the version of an installed Plugin</a>
 315             </li>
 316 rizwank 1.1 <li> <a href="#PUBURL_the_base_URL_of_attachmen">PUBURL -- the base URL of attachments</a>
 317             </li>
 318             <li> <a href="#PUBURLPATH_the_base_URL_path_of">PUBURLPATH -- the base URL path of attachments</a>
 319             </li>
 320             <li> <a href="#REMOTE_ADDR_environment_variable">REMOTE_ADDR -- environment variable</a>
 321             </li>
 322             <li> <a href="#REMOTE_PORT_environment_variable">REMOTE_PORT -- environment variable</a>
 323             </li>
 324             <li> <a href="#REMOTE_USER_environment_variable">REMOTE_USER -- environment variable</a>
 325             </li>
 326             <li> <a href="#REVINFO_revision_information_of">REVINFO -- revision information of current topic</a>
 327             </li>
 328             <li> <a href="#REVINFO_format_formatted_revisio">REVINFO{"format"} -- formatted revision information of topic</a>
 329             </li>
 330             <li> <a href="#SCRIPTURL_script_URL_of_TWiki">SCRIPTURL -- script URL of TWiki</a>
 331             </li>
 332             <li> <a href="#SCRIPTURLPATH_script_URL_path_of">SCRIPTURLPATH -- script URL path of TWiki</a>
 333             </li>
 334             <li> <a href="#SCRIPTSUFFIX_script_suffix">SCRIPTSUFFIX -- script suffix</a>
 335             </li>
 336             <li> <a href="#SEARCH_text_search_content">SEARCH{"text"} -- search content</a>
 337 rizwank 1.1 </li>
 338             <li> <a href="#SERVERTIME_server_time">SERVERTIME -- server time</a>
 339             </li>
 340             <li> <a href="#SERVERTIME_format_formatted_serv">SERVERTIME{"format"} -- formatted server time</a>
 341             </li>
 342             <li> <a href="#SPACEDTOPIC_topic_name_spaced_an">SPACEDTOPIC -- topic name, spaced and encoded</a>
 343             </li>
 344             <li> <a href="#STARTINCLUDE_start_position_of_t">STARTINCLUDE -- start position of topic text if included</a>
 345             </li>
 346             <li> <a href="#STATISTICSTOPIC_name_of_statisti">STATISTICSTOPIC -- name of statistics topic</a>
 347             </li>
 348             <li> <a href="#STOPINCLUDE_end_position_of_topi">STOPINCLUDE -- end position of topic text if included</a>
 349             </li>
 350             <li> <a href="#TOC_table_of_contents_of_current">TOC -- table of contents of current topic</a>
 351             </li>
 352             <li> <a href="#TOC_Topic_table_of_contents">TOC{"Topic"} -- table of contents</a>
 353             </li>
 354             <li> <a href="#TOPIC_name_of_current_topic">TOPIC -- name of current topic</a>
 355             </li>
 356             <li> <a href="#TOPICLIST_format_topic_index_of">TOPICLIST{"format"} -- topic index of a web</a>
 357             </li>
 358 rizwank 1.1 <li> <a href="#TWIKIWEB_name_of_TWiki_documenta">TWIKIWEB -- name of TWiki documentation web</a>
 359             </li>
 360             <li> <a href="#URLPARAM_name_get_value_of_a_URL">URLPARAM{"name"} -- get value of a URL parameter</a>
 361             </li>
 362             <li> <a href="#USERNAME_your_login_username">USERNAME -- your login username</a>
 363             </li>
 364             <li> <a href="#VAR_NAME_web_Web_get_a_preferenc">VAR{"NAME" web="Web"} -- get a preference value from another web </a>
 365             </li>
 366             <li> <a href="#WEB_name_of_current_web">WEB -- name of current web</a>
 367             </li>
 368             <li> <a href="#WEBLIST_format_index_of_all_webs">WEBLIST{"format"} -- index of all webs</a>
 369             </li>
 370             <li> <a href="#WEBPREFSTOPIC_name_of_web_prefer">WEBPREFSTOPIC -- name of web preferences topic</a>
 371             </li>
 372             <li> <a href="#WIKIHOMEURL_site_home_URL">WIKIHOMEURL -- site home URL</a>
 373             </li>
 374             <li> <a href="#WIKINAME_your_Wiki_username">WIKINAME -- your Wiki username</a>
 375             </li>
 376             <li> <a href="#WIKIPREFSTOPIC_name_of_site_wide">WIKIPREFSTOPIC -- name of site-wide preferences topic</a>
 377             </li>
 378             <li> <a href="#WIKITOOLNAME_name_of_your_TWiki">WIKITOOLNAME -- name of your TWiki site</a>
 379 rizwank 1.1 </li>
 380             <li> <a href="#WIKIUSERNAME_your_Wiki_username">WIKIUSERNAME -- your Wiki username with web prefix</a>
 381             </li>
 382             <li> <a href="#WIKIUSERSTOPIC_name_of_topic_lis">WIKIUSERSTOPIC -- name of topic listing all registers users</a>
 383             </li>
 384             <li> <a href="#WIKIVERSION_the_version_of_the_i">WIKIVERSION -- the version of the installed TWiki engine</a>
 385             </li>
 386             </ul>
 387             </li>
 388             <li> <a href="#Preferences_Variables">Preferences Variables</a>
 389             </li>
 390             <li> <a href="#Setting_Preferences">Setting Preferences</a>
 391             </li>
 392             <li> <a href="#Creating_Custom_Variables">Creating Custom Variables</a>
 393             </li>
 394             </ul>
 395             </li>
 396             <li> <a href="#File_Attachments">File Attachments</a>
 397             <ul>
 398             <li> <a href="#What_Are_Attachments_Good_For">What Are Attachments Good For?</a>
 399             <ul>
 400 rizwank 1.1 <li> <a href="#Document_Management_System">Document Management System</a>
 401             </li>
 402             <li> <a href="#File_Sharing">File Sharing</a>
 403             </li>
 404             <li> <a href="#Web_Authoring">Web Authoring</a>
 405             </li>
 406             </ul>
 407             </li>
 408             <li> <a href="#Uploading_Files">Uploading Files</a>
 409             </li>
 410             <li> <a href="#Downloading_Files">Downloading Files</a>
 411             </li>
 412             <li> <a href="#Moving_Attachment_Files">Moving Attachment Files</a>
 413             </li>
 414             <li> <a href="#Deleting_Attachments">Deleting Attachments</a>
 415             </li>
 416             <li> <a href="#Linking_to_Attached_Files">Linking to Attached Files</a>
 417             </li>
 418             <li> <a href="#File_Attachment_Contents_Table">File Attachment Contents Table</a>
 419             </li>
 420             <li> <a href="#File_Attachment_Controls">File Attachment Controls</a>
 421 rizwank 1.1 </li>
 422             <li> <a href="#Known_Issues">Known Issues</a>
 423             </li>
 424             </ul>
 425             </li>
 426             <li> <a href="#TWiki_Forms">TWiki Forms</a>
 427             <ul>
 428             <li> <a href="#Overview">Overview</a>
 429             </li>
 430             <li> <a href="#Defining_a_Form_Template">Defining a Form Template</a>
 431             <ul>
 432             <li> <a href="#Form_Template_Elements">Form Template Elements</a>
 433             </li>
 434             <li> <a href="#Defining_a_Form_in_One_Topic">Defining a Form in One Topic</a>
 435             </li>
 436             <li> <a href="#Defining_a_Form_with_Multiple_To">Defining a Form with Multiple Topics</a>
 437             </li>
 438             </ul>
 439             </li>
 440             <li> <a href="#Enabling_Forms_by_Web">Enabling Forms by Web</a>
 441             </li>
 442 rizwank 1.1 <li> <a href="#Including_Forms_in_New_Topics">Including Forms in New Topics</a>
 443             </li>
 444             <li> <a href="#Setting_Up_Multiple_Form_Options">Setting Up Multiple Form Options</a>
 445             </li>
 446             <li> <a href="#Form_Data_Storage">Form Data Storage</a>
 447             </li>
 448             <li> <a href="#Using_Form_Data">Using Form Data</a>
 449             </li>
 450             <li> <a href="#Main_Changes_from_Category_Table">Main Changes from Category Tables</a>
 451             <ul>
 452             <li> <a href="#Importing_Category_Table_Data">Importing Category Table Data</a>
 453             </li>
 454             </ul>
 455             </li>
 456             <li> <a href="#Using_Forms_For_Settings">Using Forms For Settings</a>
 457             </li>
 458             </ul>
 459             </li>
 460             <li> <a href="#TWiki_Templates">TWiki Templates</a>
 461             <ul>
 462             <li> <a href="#Overview">Overview</a>
 463 rizwank 1.1 </li>
 464             <li> <a href="#Major_changes_from_the_previous">Major changes from the previous template system</a>
 465             </li>
 466             <li> <a href="#How_Template_Variables_Work">How Template Variables Work</a>
 467             </li>
 468             <li> <a href="#Types_of_Template">Types of Template</a>
 469             <ul>
 470             <li> <a href="#Master_Templates">Master Templates</a>
 471             </li>
 472             <li> <a href="#HTML_Page_Templates">HTML Page Templates</a>
 473             </li>
 474             <li> <a href="#Template_Topics">Template Topics</a>
 475             <ul>
 476             <li> <a href="#Edit_Template_Topics_and_Variabl">Edit Template Topics and Variable Expansion</a>
 477             </li>
 478             <li> <a href="#Template_Topics_in_Action">Template Topics in Action</a>
 479             </li>
 480             </ul>
 481             </li>
 482             </ul>
 483             </li>
 484 rizwank 1.1 <li> <a href="#Templates_by_Example">Templates by Example</a>
 485             <ul>
 486             <li> <a href="#Base_template_oopsbase_tmpl">Base template oopsbase.tmpl</a>
 487             </li>
 488             <li> <a href="#Test_template_oopstest_tmpl">Test template oopstest.tmpl</a>
 489             </li>
 490             <li> <a href="#Sample_screen_shot_of_oopstest_t">Sample screen shot of oopstest.tmpl</a>
 491             </li>
 492             </ul>
 493             </li>
 494             <li> <a href="#Known_Issues">Known Issues</a>
 495             </li>
 496             </ul>
 497             </li>
 498             <li> <a href="#TWiki_Skins">TWiki Skins</a>
 499             <ul>
 500             <li> <a href="#Overview">Overview</a>
 501             </li>
 502             <li> <a href="#Defining_Skins">Defining Skins</a>
 503             </li>
 504             <li> <a href="#Variables_in_Skins">Variables in Skins</a>
 505 rizwank 1.1 <ul>
 506             <li> <a href="#The_Go_Box_and_Navigation_Box">The "Go" Box and Navigation Box</a>
 507             </li>
 508             </ul>
 509             </li>
 510             <li> <a href="#Using_Cascading_Style_Sheets">Using Cascading Style Sheets</a>
 511             </li>
 512             <li> <a href="#Attachment_Tables">Attachment Tables</a>
 513             </li>
 514             <li> <a href="#Packaging_and_Publishing_Skins">Packaging and Publishing Skins</a>
 515             </li>
 516             <li> <a href="#Browsing_Installed_Skins">Browsing Installed Skins</a>
 517             </li>
 518             <li> <a href="#Activating_Skins">Activating Skins</a>
 519             </li>
 520             </ul>
 521             </li>
 522             <li> <a href="#TWiki_Formatted_Search_Results">TWiki Formatted Search Results</a>
 523             <ul>
 524             <li> <a href="#Syntax">Syntax</a>
 525             </li>
 526 rizwank 1.1 <li> <a href="#Examples">Examples</a>
 527             <ul>
 528             <li> <a href="#Bullet_list_showing_topic_name_a">Bullet list showing topic name and summary</a>
 529             </li>
 530             <li> <a href="#Table_showing_form_field_values">Table showing form field values of topics with a form</a>
 531             </li>
 532             <li> <a href="#Extract_some_text_from_a_topic_u">Extract some text from a topic using regular expression</a>
 533             </li>
 534             <li> <a href="#Nested_Search">Nested Search</a>
 535             </li>
 536             <li> <a href="#Most_recently_changed_pages">Most recently changed pages</a>
 537             </li>
 538             <li> <a href="#Search_with_conditional_output">Search with conditional output</a>
 539             </li>
 540             <li> <a href="#Embedding_search_forms_to_return">Embedding search forms to return a formatted result</a>
 541             </li>
 542             </ul>
 543             </li>
 544             </ul>
 545             </li>
 546             <li> <a href="#TWiki_Meta_Data">TWiki Meta Data</a>
 547 rizwank 1.1 <ul>
 548             <li> <a href="#Overview">Overview</a>
 549             </li>
 550             <li> <a href="#Meta_Data_Syntax">Meta Data Syntax</a>
 551             </li>
 552             <li> <a href="#Meta_Data_Specifications">Meta Data Specifications</a>
 553             <ul>
 554             <li> <a href="#META_TOPICINFO">META:TOPICINFO</a>
 555             </li>
 556             <li> <a href="#META_TOPICMOVED">META:TOPICMOVED</a>
 557             </li>
 558             <li> <a href="#META_TOPICPARENT">META:TOPICPARENT</a>
 559             </li>
 560             <li> <a href="#META_FILEATTACHMENT">META:FILEATTACHMENT</a>
 561             </li>
 562             <li> <a href="#META_FORM">META:FORM</a>
 563             </li>
 564             <li> <a href="#META_FIELD">META:FIELD</a>
 565             </li>
 566             <li> <a href="#Recommended_Sequence">Recommended Sequence</a>
 567             </li>
 568 rizwank 1.1 </ul>
 569             </li>
 570             <li> <a href="#Viewing_Meta_Data_in_Page_Source">Viewing Meta Data in Page Source</a>
 571             </li>
 572             <li> <a href="#Rendering_Meta_Data">Rendering Meta Data</a>
 573             </li>
 574             <li> <a href="#Known_Issues">Known Issues</a>
 575             </li>
 576             </ul>
 577             </li>
 578             <li> <a href="#TWiki_Plugins">TWiki Plugins</a>
 579             <ul>
 580             <li> <a href="#Overview">Overview</a>
 581             </li>
 582             <li> <a href="#Preinstalled_Plugins">Preinstalled Plugins</a>
 583             </li>
 584             <li> <a href="#Installing_Plugins">Installing Plugins</a>
 585             <ul>
 586             <li> <a href="#On_Site_Pretesting">On-Site Pretesting</a>
 587             </li>
 588             <li> <a href="#Checking_that_Plugins_are_Workin">Checking that Plugins are Working on a Live Server</a>
 589 rizwank 1.1 </li>
 590             <li> <a href="#A_Note_on_Plugin_Performance">A Note on Plugin Performance</a>
 591             </li>
 592             </ul>
 593             </li>
 594             <li> <a href="#Managing_Plugins">Managing Plugins</a>
 595             <ul>
 596             <li> <a href="#Setting_Preferences">Setting Preferences</a>
 597             </li>
 598             <li> <a href="#Listing_Active_Plugins">Listing Active Plugins</a>
 599             </li>
 600             </ul>
 601             </li>
 602             <li> <a href="#The_TWiki_Plugin_API">The TWiki Plugin API</a>
 603             <ul>
 604             <li> <a href="#Available_Core_Functions">Available Core Functions</a>
 605             </li>
 606             <li> <a href="#Predefined_Hooks">Predefined Hooks</a>
 607             </li>
 608             <li> <a href="#Hints_on_Writing_Fast_Plugins">Hints on Writing Fast Plugins</a>
 609             </li>
 610 rizwank 1.1 <li> <a href="#Plugin_Version_Detection">Plugin Version Detection</a>
 611             </li>
 612             </ul>
 613             </li>
 614             <li> <a href="#Creating_Plugins">Creating Plugins</a>
 615             <ul>
 616             <li> <a href="#The_DefaultPlugin_Alternative">The DefaultPlugin Alternative</a>
 617             </li>
 618             <li> <a href="#Anatomy_of_a_Plugin">Anatomy of a Plugin</a>
 619             </li>
 620             <li> <a href="#Creating_the_Perl_Module">Creating the Perl Module </a>
 621             </li>
 622             <li> <a href="#Writing_the_Documentation_Topic">Writing the Documentation Topic</a>
 623             </li>
 624             <li> <a href="#Packaging_for_Distribution">Packaging for Distribution</a>
 625             </li>
 626             <li> <a href="#Publishing_for_Public_Use">Publishing for Public Use</a>
 627             </li>
 628             </ul>
 629             </li>
 630             <li> <a href="#Recommended_Storage_of_Plugin_Da">Recommended Storage of Plugin Data</a>
 631 rizwank 1.1 <ul>
 632             <li> <a href="#Where_to_store_Plugin_Internal_D">Where to store Plugin Internal Data</a>
 633             </li>
 634             <li> <a href="#Where_to_Store_Data_for_Topics_u">Where to Store Data for Topics using the Plugin</a>
 635             </li>
 636             </ul>
 637             </li>
 638             </ul>
 639             </li>
 640             <li> <a href="#TWiki_Func_Module_Documentation">TWiki::Func Module Documentation</a>
 641             <ul>
 642             <li> <a href="#Description">Description</a>
 643             </li>
 644             <li> <a href="#Functions_CGI_Environment">Functions: CGI Environment</a>
 645             <ul>
 646             <li> <a href="#getSessionValue_key_value">getSessionValue( $key ) ==&gt; $value</a>
 647             </li>
 648             <li> <a href="#setSessionValue_key_value_result">setSessionValue( $key, $value ) ==&gt; $result</a>
 649             </li>
 650             <li> <a href="#getSkin_skin">getSkin( ) ==&gt; $skin</a>
 651             </li>
 652 rizwank 1.1 <li> <a href="#getUrlHost_host">getUrlHost( ) ==&gt; $host</a>
 653             </li>
 654             <li> <a href="#getScriptUrl_web_topic_script_ur">getScriptUrl( $web, $topic, $script ) ==&gt; $url</a>
 655             </li>
 656             <li> <a href="#getScriptUrlPath_path">getScriptUrlPath( ) ==&gt; $path</a>
 657             </li>
 658             <li> <a href="#getViewUrl_web_topic_url">getViewUrl( $web, $topic ) ==&gt; $url</a>
 659             </li>
 660             <li> <a href="#getOopsUrl_web_topic_template_pa">getOopsUrl( $web, $topic, $template, $param1, $param2, $param3, $param4 ) ==&gt; $url</a>
 661             </li>
 662             <li> <a href="#getPubUrlPath_path">getPubUrlPath( ) ==&gt; $path</a>
 663             </li>
 664             <li> <a href="#getCgiQuery_query">getCgiQuery( ) ==&gt; $query</a>
 665             </li>
 666             <li> <a href="#writeHeader_query">writeHeader( $query )</a>
 667             </li>
 668             <li> <a href="#redirectCgiQuery_query_url">redirectCgiQuery( $query, $url )</a>
 669             </li>
 670             </ul>
 671             </li>
 672             <li> <a href="#Functions_Preferences">Functions: Preferences</a>
 673 rizwank 1.1 <ul>
 674             <li> <a href="#extractParameters_attr_params">extractParameters( $attr ) ==&gt; %params</a>
 675             </li>
 676             <li> <a href="#extractNameValuePair_attr_name_v">extractNameValuePair( $attr, $name ) ==&gt; $value</a>
 677             </li>
 678             <li> <a href="#getPreferencesValue_key_web_valu">getPreferencesValue( $key, $web ) ==&gt; $value</a>
 679             </li>
 680             <li> <a href="#getPluginPreferencesValue_key_va">getPluginPreferencesValue( $key ) ==&gt; $value</a>
 681             </li>
 682             <li> <a href="#getPreferencesFlag_key_web_value">getPreferencesFlag( $key, $web ) ==&gt; $value</a>
 683             </li>
 684             <li> <a href="#getPluginPreferencesFlag_key_fla">getPluginPreferencesFlag( $key ) ==&gt; $flag</a>
 685             </li>
 686             <li> <a href="#getWikiToolName_name">getWikiToolName( ) ==&gt; $name</a>
 687             </li>
 688             <li> <a href="#getMainWebname_name">getMainWebname( ) ==&gt; $name</a>
 689             </li>
 690             <li> <a href="#getTwikiWebname_name">getTwikiWebname( ) ==&gt; $name</a>
 691             </li>
 692             </ul>
 693             </li>
 694 rizwank 1.1 <li> <a href="#Functions_User_Handling_and_Acce">Functions: User Handling and Access Control</a>
 695             <ul>
 696             <li> <a href="#getDefaultUserName_loginName">getDefaultUserName( ) ==&gt; $loginName</a>
 697             </li>
 698             <li> <a href="#getWikiName_wikiName">getWikiName( ) ==&gt; $wikiName</a>
 699             </li>
 700             <li> <a href="#getWikiUserName_text_wikiName">getWikiUserName( $text ) ==&gt; $wikiName</a>
 701             </li>
 702             <li> <a href="#wikiToUserName_wikiName_loginNam">wikiToUserName( $wikiName ) ==&gt; $loginName</a>
 703             </li>
 704             <li> <a href="#userToWikiName_loginName_dontAdd">userToWikiName( $loginName, $dontAddWeb ) ==&gt; $wikiName</a>
 705             </li>
 706             <li> <a href="#isGuest_flag">isGuest( ) ==&gt; $flag</a>
 707             </li>
 708             <li> <a href="#permissionsSet_web_flag">permissionsSet( $web ) ==&gt; $flag</a>
 709             </li>
 710             <li> <a href="#checkAccessPermission_type_wikiN">checkAccessPermission( $type, $wikiName, $text, $topic, $web ) ==&gt; $flag</a>
 711             </li>
 712             </ul>
 713             </li>
 714             <li> <a href="#Functions_Content_Handling">Functions: Content Handling</a>
 715 rizwank 1.1 <ul>
 716             <li> <a href="#webExists_web_flag">webExists( $web ) ==&gt; $flag</a>
 717             </li>
 718             <li> <a href="#topicExists_web_topic_flag">topicExists( $web, $topic ) ==&gt; $flag</a>
 719             </li>
 720             <li> <a href="#getRevisionInfo_theWebName_theTo">getRevisionInfo($theWebName, $theTopic, $theRev, $attachment ) ==&gt; ( $date, $user, $rev, $comment ) </a>
 721             </li>
 722             <li> <a href="#checkTopicEditLock_web_topic_oop">checkTopicEditLock( $web, $topic ) ==&gt; ( $oopsUrl, $loginName, $unlockTime )</a>
 723             </li>
 724             <li> <a href="#setTopicEditLock_web_topic_lock">setTopicEditLock( $web, $topic, $lock ) ==&gt; $oopsUrl</a>
 725             </li>
 726             <li> <a href="#readTopicText_web_topic_rev_igno">readTopicText( $web, $topic, $rev, $ignorePermissions ) ==&gt; $text</a>
 727             </li>
 728             <li> <a href="#saveTopicText_web_topic_text_ign">saveTopicText( $web, $topic, $text, $ignorePermissions, $dontNotify ) ==&gt; $oopsUrl</a>
 729             </li>
 730             <li> <a href="#getPublicWebList_webs">getPublicWebList( ) ==&gt; @webs</a>
 731             </li>
 732             <li> <a href="#getTopicList_web_topics">getTopicList( $web ) ==&gt; @topics</a>
 733             </li>
 734             </ul>
 735             </li>
 736 rizwank 1.1 <li> <a href="#Functions_Rendering">Functions: Rendering</a>
 737             <ul>
 738             <li> <a href="#expandCommonVariables_text_topic">expandCommonVariables( $text, $topic, $web ) ==&gt; $text</a>
 739             </li>
 740             <li> <a href="#renderText_text_web_text">renderText( $text, $web ) ==&gt; $text</a>
 741             </li>
 742             <li> <a href="#internalLink_pre_web_topic_label">internalLink( $pre, $web, $topic, $label, $anchor, $createLink ) ==&gt; $text</a>
 743             </li>
 744             <li> <a href="#search_text_text_text">search text( $text ) ==&gt; $text</a>
 745             </li>
 746             <li> <a href="#formatTime_time_format_timezone">formatTime( $time, $format, $timezone ) ==&gt; $text</a>
 747             </li>
 748             <li> <a href="#formatGmTime_time_format_text">formatGmTime( $time, $format ) ==&gt; $text</a>
 749             </li>
 750             </ul>
 751             </li>
 752             <li> <a href="#Functions_File_I_O">Functions: File I/O</a>
 753             <ul>
 754             <li> <a href="#getDataDir_dir">getDataDir( ) ==&gt; $dir</a>
 755             </li>
 756             <li> <a href="#getPubDir_dir">getPubDir( ) ==&gt; $dir</a>
 757 rizwank 1.1 </li>
 758             <li> <a href="#readTopic_web_topic_meta_text">readTopic( $web, $topic ) ==&gt; ( $meta, $text )</a>
 759             </li>
 760             <li> <a href="#readTemplate_name_skin_text">readTemplate( $name, $skin ) ==&gt; $text</a>
 761             </li>
 762             <li> <a href="#readFile_filename_text">readFile( $filename ) ==&gt; $text</a>
 763             </li>
 764             <li> <a href="#saveFile_filename_text">saveFile( $filename, $text )</a>
 765             </li>
 766             <li> <a href="#writeWarning_text">writeWarning( $text )</a>
 767             </li>
 768             <li> <a href="#writeDebug_text">writeDebug( $text )</a>
 769             </li>
 770             </ul>
 771             </li>
 772             <li> <a href="#Functions_System_and_I18N_relate">Functions: System and I18N related</a>
 773             <ul>
 774             <li> <a href="#getRegularExpression_regexName_p">getRegularExpression( $regexName ) ==&gt; $pattern</a>
 775             </li>
 776             <li> <a href="#checkDependencies_moduleName_dep">checkDependencies( $moduleName, $dependenciesRef ) ==&gt; $error</a>
 777             </li>
 778 rizwank 1.1 </ul>
 779             </li>
 780             <li> <a href="#Copyright_and_License">Copyright and License</a>
 781             </li>
 782             </ul>
 783             </li>
 784             <li> <a href="#TWiki_Site_Tools">TWiki Site Tools</a>
 785             <ul>
 786             <li> <a href="#WebNotify_Recent_Changes_Alert">WebNotify Recent Changes Alert</a>
 787             <ul>
 788             <li> <a href="#Configuring_Outgoing_Mail">Configuring Outgoing Mail</a>
 789             </li>
 790             <li> <a href="#Setting_the_Automatic_Email_Sche">Setting the Automatic Email Schedule</a>
 791             </li>
 792             </ul>
 793             </li>
 794             <li> <a href="#WebStatistics_Site_Usage_Log">WebStatistics Site Usage Log</a>
 795             <ul>
 796             <li> <a href="#Configuring_for_Automatic_Operat">Configuring for Automatic Operation</a>
 797             </li>
 798             <li> <a href="#Generating_Statistics_Manually_b">Generating Statistics Manually by URL</a>
 799 rizwank 1.1 </li>
 800             <li> <a href="#Log_File_Details">Log File Details</a>
 801             </li>
 802             </ul>
 803             </li>
 804             <li> <a href="#WebSearch">WebSearch</a>
 805             <ul>
 806             <li> <a href="#WebChanges">WebChanges</a>
 807             </li>
 808             <li> <a href="#WebIndex">WebIndex</a>
 809             </li>
 810             </ul>
 811             </li>
 812             </ul>
 813             </li>
 814             <li> <a href="#Managing_Topics">Managing Topics</a>
 815             <ul>
 816             <li> <a href="#Overview">Overview</a>
 817             </li>
 818             <li> <a href="#How_to_Rename_Move_Delete_a_Topi">How to Rename/Move/Delete a Topic</a>
 819             </li>
 820 rizwank 1.1 <li> <a href="#Deleted_Topics_How_to_Clear_the">Deleted Topics: How to Clear the Trash</a>
 821             </li>
 822             <li> <a href="#Redirecting_from_an_Old_Topic">Redirecting from an Old Topic</a>
 823             </li>
 824             <li> <a href="#How_Rename_Move_Works">How Rename/Move Works</a>
 825             <ul>
 826             <li> <a href="#How_Referring_Topics_Are_Found">How Referring Topics Are Found</a>
 827             </li>
 828             <li> <a href="#Effect_of_User_Access_Settings">Effect of User Access Settings</a>
 829             </li>
 830             </ul>
 831             </li>
 832             <li> <a href="#Special_Considerations">Special Considerations</a>
 833             </li>
 834             <li> <a href="#Known_Issues">Known Issues</a>
 835             </li>
 836             </ul>
 837             </li>
 838             <li> <a href="#Managing_Webs">Managing Webs</a>
 839             <ul>
 840             <li> <a href="#Overview">Overview</a>
 841 rizwank 1.1 </li>
 842             <li> <a href="#Choose_Web_Template">Choose Web Template</a>
 843             </li>
 844             <li> <a href="#Adding_a_New_Web">Adding a New Web</a>
 845             </li>
 846             <li> <a href="#Renaming_or_Deleting_a_Web">Renaming or Deleting a Web</a>
 847             <ul>
 848             <li> <a href="#Renaming_the_MAINWEB">Renaming the MAINWEB</a>
 849             </li>
 850             </ul>
 851             </li>
 852             </ul>
 853             </li>
 854             <li> <a href="#Manage_Users">Manage Users</a>
 855             <ul>
 856             <li> <a href="#Authentication_and_Access_Contro">Authentication and Access Control</a>
 857             </li>
 858             <li> <a href="#Register_User">Register User</a>
 859             </li>
 860             <li> <a href="#Change_Reset_and_Install_Passwor">Change, Reset and Install Passwords</a>
 861             </li>
 862 rizwank 1.1 <li> <a href="#Removing_User_Accounts">Removing User Accounts</a>
 863             </li>
 864             </ul>
 865             </li>
 866             <li> <a href="#Appendix_A_TWiki_Filesystem">Appendix A: TWiki Filesystem</a>
 867             <ul>
 868             <li> <a href="#Who_and_What_is_This_Good_For">Who and What is This Good For?</a>
 869             </li>
 870             <li> <a href="#Directory_Structure">Directory Structure</a>
 871             </li>
 872             <li> <a href="#File_Descriptions">File Descriptions</a>
 873             <ul>
 874             <li> <a href="#Files_in_twiki_code">Files in <code>twiki</code></a>
 875             </li>
 876             <li> <a href="#Files_in_twiki_bin_code">Files in <code>twiki/bin</code></a>
 877             </li>
 878             <li> <a href="#Files_under_twiki_lib_code">Files under <code>twiki/lib</code></a>
 879             </li>
 880             <li> <a href="#Files_under_twiki_pub_code">Files under <code>twiki/pub</code></a>
 881             </li>
 882             <li> <a href="#Files_under_twiki_data_code">Files under <code>twiki/data</code></a>
 883 rizwank 1.1 </li>
 884             <li> <a href="#Files_in_twiki_templates_code">Files in <code>twiki/templates</code></a>
 885             </li>
 886             </ul>
 887             </li>
 888             <li> <a href="#TWiki_File_System_Snapshot">TWiki File System Snapshot</a>
 889             </li>
 890             </ul>
 891             </li>
 892             <li> <a href="#Appendix_B_TWiki_CSS">Appendix B: TWiki CSS</a>
 893             <ul>
 894             <li> <a href="#Who_should_read_this_document">Who should read this document?</a>
 895             </li>
 896             <li> <a href="#Naming_conventions">Naming conventions</a>
 897             </li>
 898             <li> <a href="#CSS_classes">CSS classes</a>
 899             <ul>
 900             <li> <a href="#Classes_from_core_code">Classes from core code</a>
 901             </li>
 902             <li> <a href="#Classes_from_Plugins">Classes from Plugins</a>
 903             </li>
 904 rizwank 1.1 </ul>
 905             </li>
 906             <li> <a href="#Going_further">Going further</a>
 907             </li>
 908             </ul>
 909             </li>
 910             <li> <a href="#Appendix_C_Encode_URLs_With_UTF8">Appendix C: Encode URLs With UTF8 </a>
 911             <ul>
 912             <li> <a href="#Current_Status">Current Status</a>
 913             </li>
 914             <li> <a href="#Details_of_Implementation">Details of Implementation</a>
 915             </li>
 916             <li> <a href="#Testing_and_Limitation">Testing and Limitation</a>
 917             </li>
 918             </ul>
 919             </li>
 920             <li> <a href="#Appendix_D_TWiki_Development_Tim">Appendix D: TWiki Development Timeline</a>
 921             <ul>
 922             <li> <a href="#01_Sep_2004_Release_Cairo">01-Sep-2004 Release (Cairo)</a>
 923             </li>
 924             <li> <a href="#01_Feb_2003_Release_Beijing">01-Feb-2003 Release (Beijing)</a>
 925 rizwank 1.1 </li>
 926             <li> <a href="#01_Dec_2001_Release_Athens">01-Dec-2001 Release (Athens)</a>
 927             </li>
 928             <li> <a href="#01_Sep_2001_Release">01-Sep-2001 Release</a>
 929             </li>
 930             <li> <a href="#01_Dec_2000_Release">01-Dec-2000 Release</a>
 931             </li>
 932             <li> <a href="#01_May_2000_Release">01-May-2000 Release</a>
 933             </li>
 934             <li> <a href="#01_Sep_1999_Release">01-Sep-1999 Release</a>
 935             </li>
 936             <li> <a href="#01_Jul_1999_Release">01-Jul-1999 Release</a>
 937             </li>
 938             <li> <a href="#1998_Releases">1998 Releases</a>
 939             </li>
 940             <li> <a href="#Dev_Flow">Dev Flow</a>
 941             </li>
 942             </ul>
 943             </li>
 944             </ul>
 945             </div>
 946 rizwank 1.1 <p />
 947             <strong><em>Note:</em></strong> Read the most up to date version of this document at <a href="" target="_top">http://TWiki.org/cgi-bin/view/TWiki/TWikiDocumentation</a>
 948             <p />
 949             <strong><em>Related Topics:</em></strong> <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/TWikiSite">TWikiSite</a>, <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/TWikiHistory">TWikiHistory</a>, <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/TWikiPlannedFeatures">TWikiPlannedFeatures</a>, <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/TWikiEnhancementRequests">TWikiEnhancementRequests</a>
 950             <p />
 951             <hr />
 952             <p />
 953             <h1><a name="TWiki_System_Requirements"> </a> TWiki System Requirements </h1>
 954             <p />
 955             <em>Server and client requirements for TWiki 01-Sep-2004</em>
 956             <p />
 957             Low client and server requirements are core features that keep TWiki widely deployable, particularly across a range of browser platforms and versions.
 958             <p />
 959             <h2><a name="Server_Requirements"> </a> Server Requirements </h2>
 960             <p />
 961             TWiki is written in Perl 5, uses a number of shell commands, and requires <a href="http://www.gnu.org/software/rcs/rcs.html" target="_top">RCS (Revision Control System)</a>, a GNU Free Software package. TWiki is developed in a basic Linux/Apache environment. It also works with Microsoft Windows, and should have no problem on any other platform that meets the requirements.
 962             <p />
 963             <table border="1" cellspacing="0" cellpadding="1"> <tr><th bgcolor="#99CCCC"> <strong>Resource</strong> </th><th bgcolor="#99CCCC"> <strong>Required Server Environment *</strong> </th></tr>
 964             <tr><td>  Perl  </td><td>  5.005_03 or higher (5.6.1 recommended, 5.8.x does work in most cases, but see <a href="http://twiki.org/cgi-bin/view/Codev.IssuesWithPerl5dot8" title="'Codev.IssuesWithPerl5dot8' on TWiki.org">TWiki:Codev.IssuesWithPerl5dot8</a>)  </td></tr>
 965             <tr><td>  Non-standard Perl modules  </td><td>  &#8226; Unix: <code>Net::SMTP</code> (or <code>sendmail</code>) <br />&#8226; Windows: <code>Net::SMTP</code>, <code>MIME::Base64</code>, <code>Digest::SHA1</code> <br />&#8226; Internationalisation: <code>Unicode::MapUTF8</code> &nbsp; <font size="-1">(only for non-ISO-8859-1 sites using <a href="http://twiki.org/cgi-bin/view/Codev.EncodeURLsWithUTF8" title="'Codev.EncodeURLsWithUTF8' on TWiki.org">TWiki:Codev.EncodeURLsWithUTF8</a> with Perl 5.6 or lower)</font>  </td></tr>
 966             <tr><td>  RCS  </td><td>  5.7 or higher (including GNU <code>diff</code>) <br /> Optional, but the all-Perl RCS replacement is not currently recommended for live sites - see <a href="http://twiki.org/cgi-bin/view/Codev.RcsLite" title="'Codev.RcsLite' on TWiki.org">TWiki:Codev.RcsLite</a>  </td></tr>
 967 rizwank 1.1 <tr><td>  GNU <code>diff</code>  </td><td>  GNU <code>diff</code> 2.7 or higher is required when not using the all-Perl RcsLite.  <br /> Install on PATH if not included with RCS (check version with <code>diff -v</code>)  <br /> Must be the version used by RCS, to avoid problems with binary attachments - RCS may have hard-coded path to <code>diff</code>  </td></tr>
 968             <tr><td>  Other external programs  </td><td>  <code>fgrep, egrep</code>  </td></tr>
 969             <tr><td>  Cron/scheduler  </td><td>  &#8226; Unix: <code>cron</code> <br />&#8226; Windows: <code>cron</code> equivalents  </td></tr>
 970             <tr><td>  Web server  </td><td>  Apache 1.3 is well supported; Apache 2.0 is <strong>not</strong> recommended yet (see <a href="http://twiki.org/cgi-bin/view/Codev.IssuesWithApache2dot0" title="'Codev.IssuesWithApache2dot0' on TWiki.org">TWiki:Codev.IssuesWithApache2dot0</a>). <br /> For other servers, CGI support, authentication, extended path info required; also, the <code>register</code> script is likely to need significant changes  </td></tr>
 971             </table>
 972             <p />
 973             <img src="./pub/TWiki/TWikiDocGraphics/warning.gif" border="0" alt="ALERT!" width="16" height="16" /> <strong>*</strong> <em>Current documentation mainly covers Linux and Apache installations. See <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/WindowsInstallCookbook">WindowsInstallCookbook</a> for a Windows installation guide.  See <a href="http://twiki.org/cgi-bin/view/Codev.TWikiOn" title="'Codev.TWikiOn' on TWiki.org">TWiki:Codev.TWikiOn</a> for help with installation on various platforms including Unix, MacOS X, Apache <code>mod_perl</code>, web hosts, etc.</em>
 974             <p />
 975             <a name="ClientRequirements"></a>
 976             <h2><a name="Client_Requirements"> </a> Client Requirements </h2>
 977             <p />
 978             The TWiki <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/TWikiInstallationGuide">standard installation</a> has extremely low browser requirements:
 979             <p />
 980             <ul>
 981             <li> HTML 3.2 compliant
 982             </li>
 983             <li> generates XHTML 1.0 pages that are compatible with HTML 3.2
 984             </li>
 985             <li> minimal use of JavaScript in the user interface (degrades gracefully)
 986             </li>
 987             <li> no cookies
 988 rizwank 1.1 </li>
 989             <li> no CSS (if the <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/ClassicSkin">ClassicSkin</a> is used)
 990             </li>
 991             </ul>
 992             <p />
 993             You can easily add functionality, by customizing <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/TWikiTemplates">TWikiTemplates</a>, for one, while tailoring the browser requirements to your situation. 
 994             <p />
 995             <h2><a name="Known_Issues"> </a> Known Issues </h2>
 996             <p />
 997             <ul>
 998             <li> The <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/TWikiPlugins">TWikiPlugins</a> feature currently does not have compatibility guidelines for developers. Plugins can require just about anything -  browser-specific functions, stylesheets (CSS), Java applets, cookies, specific Perl modules,... - check the individual Plugin specs.
 999             <ul>
1000             <li> <img src="./pub/TWiki/TWikiDocGraphics/help.gif" border="0" alt="HELP" width="16" height="16" /> Plugins included in the TWiki distribution do not add requirements.
1001             </li>
1002             </ul>
1003             </li>
1004             </ul>
1005             <p />
1006             -- <a href="http://twiki.org/cgi-bin/view/Main.MikeMannix" title="'Main.MikeMannix' on TWiki.org">TWiki:Main.MikeMannix</a> - 12 Jan 2002 <br />
1007             -- <a href="http://twiki.org/cgi-bin/view/Main.PeterThoeny" title="'Main.PeterThoeny' on TWiki.org">TWiki:Main.PeterThoeny</a> - 15 Aug 2004
1008             <p />
1009 rizwank 1.1 <p />
1010             <p />
1011             <hr />
1012             <p />
1013             <h1><a name="TWiki_Installation_Guide"> </a> TWiki Installation Guide </h1>
1014             <p />
1015             <em>Installation instructions for the TWiki 01-Sep-2004 production release.</em>
1016             <p />
1017             <em>If you are reading this on your own TWiki installation, please get the latest installation guide (<a href="http://twiki.org/cgi-bin/view/TWiki.TWikiInstallationGuide" title="'TWiki.TWikiInstallationGuide' on TWiki.org">TWiki:TWiki.TWikiInstallationGuide</a>), as this often has important updates to resolve installation issues.</em>
1018             <p />
1019             These installation steps are based on the <strong>Apache</strong> web server on <strong>Linux</strong>. TWiki runs on other web servers and Unix systems, and should be fine with any web server and OS that meet the <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/TWikiSystemRequirements">system requirements</a>.  Official documentation for platforms other than Linux is somewhat limited, so <em>please check</em> the topics listed below, they include some important tips for HP-UX, Solaris, OS/390, and many other platforms.
1020             <p />
1021             <ul>
1022             <li> For Unix or Linux, check <a href="http://twiki.org/cgi-bin/view/Codev/TWikiOnUnix" title="'Codev/TWikiOnUnix' on TWiki.org">TWiki:Codev/TWikiOnUnix</a> (install your own RCS, <code>diff</code> and <code>grep</code> tools if in doubt!) and <a href="http://twiki.org/cgi-bin/view/Codev/TWikiOnLinux" title="'Codev/TWikiOnLinux' on TWiki.org">TWiki:Codev/TWikiOnLinux</a>.
1023             </li>
1024             <li> For Windows, check the <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/WindowsInstallCookbook">WindowsInstallCookbook</a>. 
1025             </li>
1026             <li> For MacOS X, check <a href="http://twiki.org/cgi-bin/view/Codev/TWikiOnMacOSX" title="'Codev/TWikiOnMacOSX' on TWiki.org">TWiki:Codev/TWikiOnMacOSX</a>. 
1027             </li>
1028             <li> To install TWiki on SourceForge, for use on a software development project, read <a href="http://twiki.org/cgi-bin/view/Codev/TWikiOnSourceForge" title="'Codev/TWikiOnSourceForge' on TWiki.org">TWiki:Codev/TWikiOnSourceForge</a>
1029             </li>
1030 rizwank 1.1 <li> For other platforms, see <a href="http://twiki.org/cgi-bin/view/Codev/TWikiOn" title="'Codev/TWikiOn' on TWiki.org">TWiki:Codev/TWikiOn</a>, and search the <a href="http://twiki.org/cgi-bin/view/Codev" title="'Codev' on TWiki.org">TWiki:Codev</a> and <a href="http://twiki.org/cgi-bin/view/Support" title="'Support' on TWiki.org">TWiki:Support</a> webs for other installation notes.
1031             </li>
1032             <li> If you need help, ask a question in the <a href="http://twiki.org/cgi-bin/view/Support" title="'Support' on TWiki.org">TWiki:Support</a> web
1033             </li>
1034             </ul>
1035             <p />
1036             <a name="StandardInstallation"></a>
1037             <h2><a name="Standard_Installation"> </a> Standard Installation </h2>
1038             <p />
1039             Download the TWiki 01-Sep-2004 distribution in Unix ZIP format from <a href="http://TWiki.org/download.html" target="_top">http://TWiki.org/download.html</a>. Please review the <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/AdminSkillsAssumptions">AdminSkillsAssumptions</a> before you install TWiki.
1040             <p />
1041             <h3><a name="Step_1_Create_Configure_the_Dire"> </a> Step 1: Create &amp; Configure the Directories </h3>
1042             <p />
1043             <img src="./pub/TWiki/TWikiDocGraphics/warning.gif" border="0" alt="ALERT!" width="16" height="16" /> <strong>NOTE:</strong> <em>If you don't have access to your Web server configuration files - for example, if you're installing on an ISP-hosted account, or you don't have administrator privileges on your intranet server - use the <a class="twikiAnchorLink" href="#StepOneB">alternative Step 1</a> instead.</em>
1044             <p />
1045             <ul>
1046             <li> Create directory <code>/home/httpd/twiki</code> and <a href="http://www.info-zip.org/pub/infozip/UnZip.html" target="_top">unzip</a> the TWiki distribution into this directory.
1047             </li>
1048             <li> The <code>twiki/bin</code> directory of TWiki must be set as a cgi-bin directory. Add <code>/home/httpd/twiki/bin</code> to file <code>httpd.conf</code> (typcially located in <code>/etc/httpd/</code>) with only <code>ExecCGI</code> option.
1049             </li>
1050             <li> The <code>twiki/pub</code> directory of TWiki must be set so that it is visible as a URL. Add <code>/home/httpd/twiki</code> to file <code>httpd.conf</code> with normal access options (copy from <code>/home/httpd/html</code> ).
1051 rizwank 1.1 </li>
1052             <li> Now add <code>ScriptAlias</code> for <code>/twiki/bin</code> and <code>Alias</code> for <code>/twiki</code> to file <code>httpd.conf</code> .
1053                  <br /> <img src="./pub/TWiki/TWikiDocGraphics/warning.gif" border="0" alt="ALERT!" width="16" height="16" /> <strong>NOTE:</strong> The <code>ScriptAlias</code> <strong><em>must</em></strong> come before the <code>Alias</code>, otherwise, Apache will fail to correctly set up <code>/twiki/bin/</code>, by treating it as just another subdirectory of the <code>/twiki/</code> alias.
1054             </li>
1055             <li> The <code>twiki/data</code> and <code>twiki/templates</code> directories should be set so that they are <strong>not</strong> visible as URLs. Add them to <code>httpd.conf</code> with <code>deny from all</code>.
1056             </li>
1057             </ul>
1058             <p />
1059             <blockquote style="background-color:#F5F5F5">
1060             <strong>Example <code>httpd.conf</code> entries:</strong>
1061              <pre> ScriptAlias /twiki/bin/ "/home/httpd/twiki/bin/"
1062              Alias /twiki/ "/home/httpd/twiki/"
1063              &lt;Directory "/home/httpd/twiki/bin"&gt;
1064                 Options +ExecCGI
1065                 SetHandler cgi-script
1066                 Allow from all
1067              &lt;/Directory&gt;
1068              &lt;Directory "/home/httpd/twiki/pub"&gt;
1069                 Options FollowSymLinks +Includes
1070                 AllowOverride None
1071                 Allow from all
1072 rizwank 1.1  &lt;/Directory&gt;
1073              &lt;Directory "/home/httpd/twiki/data"&gt;
1074                 deny from all
1075              &lt;/Directory&gt;
1076              &lt;Directory "/home/httpd/twiki/templates"&gt;
1077                 deny from all
1078              &lt;/Directory&gt;</pre>
1079             </blockquote>
1080             <p />
1081             <ul>
1082             <li> Restart Apache by <code>service httpd restart</code> (or as appropriate to your flavor of UNIX or Linux, e.g. <code>apachectl restart</code>).
1083             </li>
1084             <li> Test that the <code>twiki/bin</code> directory is CGI-enabled by trying visiting it in your browser:
1085             <ul>
1086             <li> Enter the URL for the <code>bin</code> directory, <code>http://yourdomain.com/twiki/bin/</code>
1087             </li>
1088             <li> Your settings are OK if you get a message like <code>"Forbidden. You don't have permission to access /twiki/bin/ on this server"</code>.
1089             </li>
1090             <li> Settings are NOT correct if you get something like <code>"Index of /twiki/bin"</code> - recheck your <code>httpd.conf</code> file. 
1091             </li>
1092             </ul>
1093 rizwank 1.1 </li>
1094             </ul>
1095             <p />
1096             <ul>
1097             <li> <em>Go directly to <a class="twikiAnchorLink" href="#StepTwo">Step 2</a>...</em>
1098             </li>
1099             </ul>
1100             <p />
1101             <a name="StepOneB"></a>        
1102             <h4><a name="Aletrnative_Step_1_Create_Config"> </a> Aletrnative Step 1: Create &amp; Configure the Directories for Non-Root Accounts </h4>
1103             <p />
1104             To install TWiki on a system where you don't have Unix/Linux root (administrator) privileges, for example, on a hosted Web account or an intranet server administered by someone else: 
1105             <p />
1106             <ul>
1107             <li> Download and unzip TWiki on your local PC
1108             </li>
1109             <li> Using the table below, create a directory structure on your host server
1110             </li>
1111             <li> Upload the TWiki files by FTP (transfer as <em>text</em> except for the image files in <code>pub</code>)
1112             </li>
1113             </ul>
1114 rizwank 1.1 <blockquote>
1115             <table border="1" cellspacing="0" cellpadding="1"> <tr><th bgcolor="#99CCCC"> <strong>TWiki dir:</strong> </th><th bgcolor="#99CCCC"> <strong>What it is:</strong> </th><th bgcolor="#99CCCC"> <strong>Where to copy:</strong> </th><th bgcolor="#99CCCC"> <strong>Example:</strong> </th></tr>
1116             <tr><td>  <code>twiki</code>  </td><td>  start-up pages  </td><td>  root TWiki dir  </td><td>  <code>/home/smith/twiki/</code>  </td></tr>
1117             <tr><td>  <code>twiki/bin</code>  </td><td>  CGI bin  </td><td>  CGI-enabled dir  </td><td>  <code>/home/smith/twiki/bin</code>  </td></tr>
1118             <tr><td>  <code>twiki/lib</code>  </td><td>  library files  </td><td>  same level as <code>twiki/bin</code>  </td><td>  <code>/home/smith/twiki/lib</code>  </td></tr>
1119             <tr><td>  <code>twiki/pub</code>  </td><td>  public files  </td><td>  htdoc enabled dir  </td><td>  <code>/home/smith/twiki/pub</code>  </td></tr>
1120             <tr><td>  <code>twiki/data</code>  </td><td>  topic data  </td><td>  dir secure from public access  </td><td>  <code>/home/smith/twiki/data</code>  </td></tr>
1121             <tr><td>  <code>twiki/templates</code>  </td><td>  web templates  </td><td>  dir secure from public access  </td><td>  <code>/home/smith/twiki/templates</code>  </td></tr>
1122             </table>
1123             </blockquote>
1124             <p />
1125             <strong><em>Note:</em></strong> Don't worry if you are not able to put the <code>twiki/lib</code> directory at the same level as the <code>twiki/bin</code> directory (e.g. because CGI <code>bin</code> directories can't be under your home directory and you don't have root access). You can create this directory elsewhere and configure the <code>/twiki/bin/setlib.cfg</code> file (done in Step 3)
1126             <p />
1127             <a name="StepTwo"></a>
1128             <h3><a name="Step_2_Set_File_Permissions"> </a> Step 2: Set File Permissions </h3>
1129             <p />
1130             <ul>
1131             <li> Make sure Perl 5 and the Perl CGI library are installed on your system. The default location of Perl is <code>/usr/bin/perl</code>. If it's elsewhere, change the path to Perl in the first line of each script in the <code>twiki/bin</code> directory, or create a symbolic link from <code>/usr/bin/perl</code>.
1132             <ul>
1133             <li> <strong>IMPORTANT:</strong>
1134             <ul>
1135 rizwank 1.1 <li> On ISP-hosted accounts (and some intranet servers), Perl CGI scripts may require a <code>.cgi</code> extension to run. Some systems need <code>.pl</code>, the regular Perl extension. Rename all <code>twiki/bin</code> scripts if necessary.
1136             </li>
1137             <li> Alternatively, you might try creating a file <code>twiki/bin/.htaccess</code> that contains the single line <code>SetHandler cgi-script</code>, which tells Apache to treat all files in this directory as CGI scripts.
1138             </li>
1139             </ul>
1140             </li>
1141             </ul>
1142             </li>
1143             <li> Set the file permission of all Perl scripts in the <code>twiki/bin</code> directory as executable to <code>-rwxr-xr-x</code> (755).
1144             </li>
1145             <li> To be able to edit the Perl scripts and <code>.tmpl</code> files it is necessary to <code>chown</code> and <code>chgrp -R twiki</code> so all the files have the owner you want.
1146             </li>
1147             <li> <img src="./pub/TWiki/TWikiDocGraphics/help.gif" border="0" alt="HELP" width="16" height="16" /> This Guide assumes user <code>nobody</code> ownership for all files manipulated by the CGI scripts (executed by the Web server), and user <code>twiki</code> for all other files. You can: 
1148             <ul>
1149             <li> replace <code>nobody</code> with another user if your server executes scripts under a different name (ex: default for Debian is <code>www-data</code>).
1150             <ul>
1151             <li> <img src="./pub/TWiki/TWikiDocGraphics/tip.gif" border="0" alt="TIP" width="16" height="16" /> <strong>HINT:</strong> Run the <code>testenv</code> script from your browser: <code>http://yourdomain.com/twiki/bin/testenv</code>. It will show you the user name of the CGI scripts, a table listing all CGI environment variables, and a test of your <code>twiki/lib/TWiki.cfg</code> configuration file (you'll configure that in a minute).
1152             </li>
1153             </ul>
1154             </li>
1155             <li> replace user <code>twiki</code> with your own username
1156 rizwank 1.1 </li>
1157             </ul>
1158             </li>
1159             <li> Set permissions manually.
1160             <ul>
1161             <li> Set the permission of all <strong>files</strong> below <code>twiki/data</code> so that they are writable by user <code>nobody</code>. A simple way is to <code>chmod</code> them to <code>-rw-rw-r--</code> (664) and to <code>chown</code> them to <code>nobody</code>.
1162             </li>
1163             <li> Set the permission of the <code>twiki/data</code> <strong>directory</strong> and its <strong>subdirectories</strong> so that files in there are writable by user <code>nobody</code>. A simple way is to chmod them to <code>drwxrwxr-x</code> (775) and to <code>chown</code> them to <code>nobody</code>.
1164             </li>
1165             <li> Set the permission of the <code>twiki/pub</code> directory and all its subdirectories so that files in there are writable by user <code>nobody</code>. A simple way is to <code>chmod</code> them to <code>drwxrwxr-x</code> (775) and to <code>chown</code> them to <code>nobody</code>.
1166             </li>
1167             <li> <img src="./pub/TWiki/TWikiDocGraphics/help.gif" border="0" alt="HELP" width="16" height="16" /> The <code>twiki/data/*/*.txt,v</code> RCS repository files in the installation package are locked by user <code>nobody</code>. If your CGI scripts are <strong><em>not</em></strong> running as user <code>nobody</code>, it's not possible to check in files (you'll see that the revision number won't increase after saving a topic). In this case, you need to unlock all repository files (check the RCS man pages) and lock them with a different user, such as <code>www-data</code>, or delete them all - new files will be automatically created the first time each topic is edited. You have two options to change ownership of the RCS lock user:
1168             <ul>
1169             <li> Run the <code>testenv</code> script from your browser; in the <font color="#996633"> <strong>Fix</strong> </font> line you can <u>relock</u> all the rcs files <strong>(recommended)</strong>
1170             </li>
1171             <li> Alternatively, run this in your shell: <br />
1172                        <code>cd twiki/data</code> <br />
1173                        <code>find . -name *,v -exec perl -pi~ -e '$. &lt;= 10 &amp;&amp; s/nobody:/www-data:/ ' {} \;</code> <br />
1174                        This will create <code>*,v~</code> backup files which you should remove after verification: <br />
1175                        <code>find . -name *,v~ -exec rm -f {} \;</code>
1176             </li>
1177 rizwank 1.1 </ul>
1178             </li>
1179             </ul>
1180             </li>
1181             </ul>
1182             <p />
1183             <p />
1184             <h3><a name="Step_3_Edit_the_Configuration_Fi"> </a> Step 3: Edit the Configuration Files </h3>
1185             <p />
1186             <ul>
1187             <li> Edit the file <code>/twiki/bin/setlib.cfg</code>
1188             <ul>
1189             <li> Set <code>$twikiLibPath</code> to the absolute file path of your <code>/twiki/lib</code> as seen by the web server.
1190             </li>
1191             <li> <img src="./pub/TWiki/TWikiDocGraphics/warning.gif" border="0" alt="ALERT!" width="16" height="16" /> <strong><em>Attention:</em></strong> Do <strong>not</strong> leave it as a relative <code>"../lib"</code> path or Plugins might fail to initialize properly
1192             </li>
1193             <li> You can also edit <code>$localPerlLibPath</code> if you are not root and need to install additional CPAN modules, but can't update the main Perl installation files on the server.  Just set this variable to the full pathname to your local lib directory, typically under your home directory. 
1194             </li>
1195             <li> <img src="./pub/TWiki/TWikiDocGraphics/warning.gif" border="0" alt="ALERT!" width="16" height="16" /> <strong><em>Attention:</em></strong> If you are running TWiki on Apache 2.0 on Unix you might experience cgi scripts to hang forever. This is a known Apache 2.0 bug. See details and woraround in the <code>setlib.cfg</code> file.
1196             </li>
1197             </ul>
1198 rizwank 1.1 </li>
1199             <li> Edit the file <code>twiki/lib/TWiki.cfg</code>, setting the variables to your needs.
1200             <ul>
1201             <li> Set the file extension in the <code>$scriptSuffix</code> variable to <code>cgi</code> or <code>pl</code> if required.
1202             </li>
1203             <li> RCS - revision control system to store revision of topics and attachments.  You can use RCS executables or a version of RCS written in Perl, note that as the time of writing (Apr 2002) the Perl version has not been widely tested, so if you want to put up a live site the RCS executables are recommended. 
1204             <ul>
1205             <li> Set <code>$storeTopicImpl = "RcsWrap";</code> for the RCS executables and make sure RCS is installed. Set <code>$rcsDir</code> in <code>twiki/lib/TWiki.cfg</code> to match the location of your RCS binaries. You can check this by issuing the command <code>rcs</code> at the prompt, it should result in something like <code>"rcs: no input file"</code>.  
1206             <ul>
1207             <li> Check that you have GNU <code>diff</code>, by typing <code>diff -v</code> - an error indicates you have a non-GNU diff, so install the GNU <code>diffutils</code> package and make sure that <code>diff</code> is on the PATH used by TWiki (see <code>$safeEnvPath</code> in the <code>TWiki.cfg</code> file).
1208             </li>
1209             </ul>
1210             </li>
1211             <li> Set <code>$storeTopicImpl = "RcsLite";</code> for the Perl based RCS
1212             </li>
1213             </ul>
1214             </li>
1215             </ul>
1216             </li>
1217             <li> <strong>Security issue:</strong> Directories <code>twiki/data</code> , <code>twiki/templates</code> and all their subdirectories should be set so that they are <strong><em>not</em></strong> visible through URLs. (Alternatively, move the directories to a place where they are not visible, and change the variables in <code>twiki/lib/TWiki.cfg</code> accordingly)
1218             </li>
1219 rizwank 1.1 <li> Test your settings by running the <code>testenv</code> script from your browser: <code>http://yourdomain.com/twiki/bin/testenv</code>. Check if your <code>twiki/lib/TWiki.cfg</code> configuration file settings are correct.
1220             </li>
1221             </ul>
1222             <p />
1223             <p />
1224             <h3><a name="Step_4_Internationalisation_Setu"> </a> Step 4: Internationalisation Setup (Optional) </h3>
1225             <p />
1226             By default, TWiki is configured to support US ASCII letters (no accents) in <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/WikiWord">WikiWords</a>, and ISO-8859-1 (Western European) characters in page contents.  If that's OK for you, skip this step.
1227             <p />
1228             If your Wiki will be used by non-English speakers, TWiki can be configured for Internationalisation ('I' followed by 18 letters, then 'N', or <em>I18N</em>).  Specifically, TWiki will support suitable accented characters in <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/WikiWord">WikiWords</a> (as well as languages such as Japanese or Chinese in which <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/WikiWord">WikiWords</a> do not apply), and will support virtually any character set in the contents of pages.  <strong><em>NOTE:</em></strong> TWiki does not currently support UTF-8, so you are advised <strong>not</strong> to use this - however, improved UTF-8 support is under development, see <a href="http://twiki.org/cgi-bin/view/Codev/ProposedUTF8SupportForI18N" title="'Codev/ProposedUTF8SupportForI18N' on TWiki.org">TWiki:Codev/ProposedUTF8SupportForI18N</a>.
1229             <p />
1230             To configure internationalisation suppport:
1231             <ol>
1232             <li> Edit the <code>TWiki.cfg</code> file's Internationalisation section to set the <code>$useLocale</code> parameter to <code>1</code>.  TWiki will now use the I18N parameters set in the rest of this section.
1233             </li>
1234             <li> Type the Unix/Linux command <code>locale -a</code> to find a suitable 'locale' for your use of TWiki.  A locale that includes a dot followed by a character set is recommended, e.g. <code>pl_PL.ISO-8859-2</code> for Poland.  Consult your system administrator if you are not sure which locale to use.
1235             </li>
1236             <li> In <code>TWiki.cfg</code>, set the <code>$siteLocale</code> parameter to your chosen locale, e.g. <code>pl_PL.ISO-8859-2</code> for Poland. 
1237             </li>
1238             <li> Check your setup using <code>testenv</code> (download the latest <code>testenv</code> from <a href="http://twiki.org/cgi-bin/view/Support/SupportGuidelines" title="'Support/SupportGuidelines' on TWiki.org">TWiki:Support/SupportGuidelines</a> if possible) - this provides some diagnostics for I18N setup, and in particular checks that your locale can be used successfully.
1239             </li>
1240 rizwank 1.1 <li> <em>(For upgrade of TWiki I18N sites only:)</em> If you were using <a href="http://twiki.org/cgi-bin/view/Codev.TWikiRelease01Feb2003" title="'Codev.TWikiRelease01Feb2003' on TWiki.org">TWiki:Codev.TWikiRelease01Feb2003</a> support for I18N, and are using Internet Explorer or Opera, you should re-configure your browser so that it sends URLs encoded with UTF-8 (supported since <a href="http://twiki.org/cgi-bin/view/Codev.TWikiRelease01Sep2004" title="'Codev.TWikiRelease01Sep2004' on TWiki.org">TWiki:Codev.TWikiRelease01Sep2004</a>).  If you are doing a new installation of TWiki, you can ignore this step - no browser reconfiguration is needed for TWiki Release 01-Sep-2004).
1241             <ul>
1242             <li> Internet Explorer 5.0 or higher: in  <em>Tools | Options | Advanced</em>, check 'always send URLs as UTF-8', then close all IE windows and restart IE. 
1243             </li>
1244             <li> Opera 6.x or higher: in <em>Preferences | Network | International Web Addresses</em>, check 'encode all addresses with UTF-8'.
1245             </li>
1246             <li> <strong><em>NOTE:</em></strong> This does not mean that TWiki supports UTF-8 as a site character set.
1247             </li>
1248             </ul>
1249             </li>
1250             <li> Try out your TWiki by creating pages in the Sandbox web that use international characters in <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/WikiWord">WikiWords</a> and checking that searching, <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/WebIndex">WebIndex</a>, Ref-By and other features are working OK.
1251             </li>
1252             </ol>
1253             <p />
1254             <h4><a name="Trouble_with_I18N"> </a><a name="Trouble_with_I18N_"> </a> Trouble with I18N?  </h4>
1255             <p />
1256             If international characters in <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/WikiWord">WikiWords</a> do not seem to work, and you are on Perl 5.6 or higher, you may need to set the <code>TWiki.cfg</code> parameter <code>$localeRegexes</code> to 0 - this disables some features but enables TWiki to work even if your system has locales that do not work.  Then, set the <code>$upperNational</code> and <code>$lowerNational</code> parameters to the valid upper and lower case accented letters for your locale. 
1257             <ul>
1258             <li> <strong><em>NOTE:</em></strong> You will need to do the above workaround for Windows based servers (whether using Cygwin or ActiveState Perl), since Perl locales are not working on Windows as of Feb 2004.
1259             </li>
1260             </ul>
1261 rizwank 1.1 <p />
1262             If international characters in <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/WikiWord">WikiWords</a> aren't working, and you are on Perl 5.005 with working locales, keep <code>$useLocale</code> set to 1 and set <code>$localeRegexes</code> to 0, then set <code>$upperNational</code> and <code>$lowerNational</code> - if <code>testenv</code> generates the lists of characters for you, your locales are working so there is no need to set <code>$localeRegexes</code> to 0 in this case.  See the comments in <code>TWiki.cfg</code> for more information.
1263             <p />
1264             <h3><a name="Step_5_Configure_Site_Wide_Email"> </a> Step 5: Configure Site-Wide Email Preferences </h3>
1265             <p />
1266             <ul>
1267             <li> Edit the <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/TWikiPreferences">TWikiPreferences</a> topic in the TWiki web (by pointing your browser to http://yourdomain.com/twiki/bin/view/TWiki/TWikiPreferences) to set the <code>WIKIWEBMASTER</code> email address, and other email settings required for registration and <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/WebChangesAlert">WebChangesAlert</a> to work:
1268             <ul>
1269             <li> <code>WIKIWEBMASTER</code> should be set to the email address of the TWiki administrator
1270             </li>
1271             <li> <code>SMTPMAILHOST</code> is typically set on Windows or other non-Unix/Linux systems, where <code>sendmail</code> or similar is not available.  When this is set and the Perl module <code><b>Net::SMTP</b></code> is installed, TWiki will connect to this SMTP server (e.g. <code>mail.yourdomain.com</code>) to send email for user registration and <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/WebChangesAlert">WebChangesAlerts</a>.  If you do have a sendmail-type program, leave <code>SMTPMAILHOST</code> unset so that the external sendmail program is used instead (defined by <code><b>$mailProgram</b></code> in <code><b>TWiki.cfg</b></code>).
1272             </li>
1273             <li> <code>SMTPSENDERHOST</code> is optional, and set to the domain name sending the email (e.g. <code>twiki.yourdomain.com</code>). For use where the SMTP server requires that you identify the TWiki server sending mail. If not set, <code><b>Net::SMTP</b></code> will guess it for you. 
1274             </li>
1275             </ul>
1276             </li>
1277             <li> You may want to set up other <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/TWikiPreferences">TWikiPreferences</a> later on.
1278             </li>
1279             <li> To enable the <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/WebChangesAlert">WebChangesAlerts</a> (email notifications) you need to read about cron in the topic <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/TWikiSiteTools">TWikiSiteTools</a>.
1280             </li>
1281             </ul>
1282 rizwank 1.1 <p />
1283             <h3><a name="Step_6_Finish_Up_from_Your_Brows"> </a> Step 6: Finish Up from Your Browser </h3>
1284             <p />
1285             <ul>
1286             <li> Point your Web browser at <code>http://yourdomain.com/twiki/bin/view</code> and start TWiki-ing away!
1287             <ul>
1288             <li> <img src="./pub/TWiki/TWikiDocGraphics/tip.gif" border="0" alt="TIP" width="16" height="16" /> Or, point to <code>http://yourdomain.com/twiki/</code> to get the pre-TWiki <code>index.html</code> page, with a link to the <code>view</code> script. Customize this page if you want a public intro screen with a login link, instead of immediately calling up the .htaccess login dialog by going directly to <code>view</code>.
1289             </li>
1290             </ul>
1291             </li>
1292             <li> Edit the <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/WebPreferences">WebPreferences</a> topic in each web, if necessary: set individual <code>WEBCOPYRIGHT</code> messages, and other preferences.
1293             </li>
1294             <li> Enable email notification of topic changes - <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/TWikiSiteTools">TWikiSiteTools</a> has more. 
1295             </li>
1296             <li> Edit the <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/WebNotify">WebNotify</a> topic in all webs and add the users you want to notify.
1297             </li>
1298             <li> You can add new <code>%VARIABLES%</code>. Define site-level variables in the <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/TWikiPreferences">TWikiPreferences</a> topic. See also: <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/TWikiVariables">TWikiVariables</a>.
1299             </li>
1300             </ul>
1301             <p />
1302             That's it for the standard installation of TWiki. Read on for server-level customization options.
1303 rizwank 1.1 <p />
1304             <h2><a name="Additional_Server_Level_Options"> </a> Additional Server-Level Options </h2>
1305             <p />
1306             With your new TWiki installation up and running, you can manage most aspects of your site from the browser interface. Only a few functions require access to the server file system, via Telnet or FTP. You can make these server-level changes during installation, and at any time afterwards.
1307             <p />
1308             <a name="AuthenticationOfUsers"></a>
1309             <h3><a name="Enabling_Authentication_of_Users"> </a> Enabling Authentication of Users </h3>
1310             <p />
1311             <ul>
1312             <li> If TWiki is installed on a non-authenticated server - not using SSL - and you'd like to authenticate users:
1313             <ol>
1314             <li> <strong>Rename</strong> file <code>.htaccess.txt</code> in the <code>twiki/bin</code> directory to <code>.htaccess</code> and change it to your needs. The comment at the top of the file explains what need to be done, basically replace <code>!FILE_path_to_TWiki!</code> and <code>!URL_path_to_TWiki!</code> with paths specific to your installation. <em>For the details of how this file works, consult the HTTP server documentation (for Apache server: <a href="http://www.apache.org/docs/mod/directives.html">[1]</a>, <a href="http://systems.mcs.kent.edu/info/web_help/htaccess/">[2]</a>)</em>.
1315             <ul>
1316             <li> <img src="./pub/TWiki/TWikiDocGraphics/warning.gif" border="0" alt="ALERT!" width="16" height="16" /> <strong>NOTE:</strong> If you had to add a <code>.cgi</code> or <code>.pl</code> file extension to the <code>bin</code> scripts, make sure to do the same for <code>edit</code>, <code>view</code>, <code>preview</code>, and all the other script names in <code>.htaccess</code>. 
1317             </li>
1318             <li> <img src="./pub/TWiki/TWikiDocGraphics/help.gif" border="0" alt="HELP" width="16" height="16" /> The browser should ask for login name and password when you click on the <u>Edit</u> link. In case <code>.htaccess</code> does not have the desired effect, you need to enable it: Add "AllowOverride All" to the Directory <a href=http://httpd.apache.org/docs/mod/core.html#directory>[3]</a> section of <code>access.conf</code> for your <code>twiki/bin</code> directory. 
1319             <ul>
1320             <li> <strong>This applies only if you have root access:</strong> on hosted accounts, you shouldn't have this problem - otherwise, email tech support.
1321             </li>
1322             </ul>
1323             </li>
1324 rizwank 1.1 <li> <img src="./pub/TWiki/TWikiDocGraphics/warning.gif" border="0" alt="ALERT!" width="16" height="16" /> <strong>NOTE:</strong> In the TWiki distribution package, the <code>twiki/data/.htpasswd.txt</code> file contains a guest user account.  Only remove the guest user if you do not want to allow guest logins.
1325             </li>
1326             </ul>
1327             </li>
1328             <li> TWiki now supports several Password file format/encoding methods for Apache. Once you know what method is used by your Appache server, you can configure TWiki to create compatible .htpasswd entries by editing the <code>$htpasswdFormatFamily</code>, <code>$htpasswdEncoding</code> and <code>$htpasswdFilename</code> in the TWiki.cfg file. The supported options are htpasswd:plain, htpasswd:crypt, htpasswd:sha1, htdigest:md5
1329             </li>
1330             <li> <strong>Copy</strong> the <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/TWikiRegistrationPub">TWikiRegistrationPub</a> topic to <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/TWikiRegistration">TWikiRegistration</a>, overwriting old version of TWikiRegistration. Do that by either editing the topics in theTWiki web, or by renaming the <code>.txt</code> and <code>.txt,v</code> files in the <code>twiki/data/TWiki</code> directory.
1331             </li>
1332             </ol>
1333             </li>
1334             <li> Customization:
1335             <ul>
1336             <li> You can customize the registration form by deleting or adding input tags. The <code>name=""</code> parameter of the input tags must start with: <code>"Twk0..."</code> (if this is an optional entry), or <code>"Twk1..."</code> (if this is a required entry). This ensures that the fields are carried over into the user home page correctly.
1337             </li>
1338             <li> You can customize the default user home page in <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/NewUserTemplate">NewUserTemplate</a>. The same variables get expanded as in the <a class="twikiAnchorLink" href="http://TWiki.org/cgi-bin/view/TWiki/TWikiTemplates#Template_Topics">template topics</a>
1339             </li>
1340             </ul>
1341             </li>
1342             <li> Register yourself in the <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/TWikiRegistration">TWikiRegistration</a> topic.
1343             <ul>
1344             <li> <img src="./pub/TWiki/TWikiDocGraphics/warning.gif" border="0" alt="ALERT!" width="16" height="16" /> <strong>NOTE:</strong> When a user registers, a new line with the username and encrypted password is added to the <code>data/.htpasswd</code> file.
1345 rizwank 1.1 </li>
1346             </ul>
1347             </li>
1348             <li> Create a new topic to check if authentication works.
1349             </li>
1350             <li> Edit the <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/Main/TWikiAdminGroup">TWikiAdminGroup</a> topic in the <a href="http://twiki.org/cgi-bin/view/Main" title="'Main' on TWiki.org">TWiki:Main</a> web to include users with system administrator status.
1351             </li>
1352             <li> Edit the <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/TWikiPreferences">TWikiPreferences</a> topic in the <a href="http://twiki.org/cgi-bin/view/TWiki" title="'TWiki' on TWiki.org">TWiki:TWiki</a> web to set access privileges.
1353             </li>
1354             <li> Edit the <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/WebPreferences">WebPreferences</a> topic in each web, if necessary: set access priviliges.
1355             </li>
1356             </ul>
1357             <p />
1358             <h3><a name="WYSIWYG_Editor"> </a> WYSIWYG Editor </h3>
1359             <p />
1360             At this time, TWiki does not ship with an "what you see is what you get" editor. Here are your options for setting up WYSIWYG editing in TWiki:
1361             <ul>
1362             <li> <a href="http://twiki.org/cgi-bin/view/Codev/IntegrateHtmlAreaEditor" title="'Codev/IntegrateHtmlAreaEditor' on TWiki.org">TWiki:Codev/IntegrateHtmlAreaEditor</a> describes how to integrate an HTML editor.
1363             </li>
1364             <li> <a href="http://twiki.org/cgi-bin/view/Codev/KupuForTWiki" title="'Codev/KupuForTWiki' on TWiki.org">TWiki:Codev/KupuForTWiki</a> covers a feature in development that lets you edit TWiki pages in a WYSIWYG editor, and it saves in the TWiki markup format.
1365             </li>
1366 rizwank 1.1 </ul>
1367             <p />
1368             <img src="./pub/TWiki/TWikiDocGraphics/warning.gif" border="0" alt="ALERT!" width="16" height="16" /> <strong>NOTE:</strong> User home topics are located in the TWiki.Main web - don't try to move them or create them in other webs. From any other web, user signatures have to point to TWiki.Main web, using a <code>Main.UserName</code> or <code>%MAINWEB%.UserName</code> format. (The <code>%MAINWEB%</code> variable is an advantage if you ever change the Main web name, but the standard <code>Main.UserName</code> is easier for users to enter, which is the bottom line!)
1369             <p />
1370             <h2><a name="TWiki_File_System_Info"> </a> TWiki File System Info </h2>
1371             <p />
1372             See <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/AppendixFileSystem">Appendix A: TWiki File System</a> for an installed system snapshot and descriptions of all files in the TWiki 01-Sep-2004 distribution.
1373             <p />
1374             -- <a href="http://twiki.org/cgi-bin/view/Main/PeterThoeny" title="'Main/PeterThoeny' on TWiki.org">TWiki:Main/PeterThoeny</a> - 29 Aug 2004 <br />
1375             -- <a href="http://twiki.org/cgi-bin/view/Main/MikeMannix" title="'Main/MikeMannix' on TWiki.org">TWiki:Main/MikeMannix</a> - 16 May 2002
1376             <p />
1377             <p />
1378             <hr />
1379             <p />
1380             <h1><a name="Windows_Install_Cookbook"> </a> Windows Install Cookbook  </h1>
1381             <p />
1382             <h2><a name="Introduction"> </a> Introduction </h2>
1383             <p />
1384             This cookbook is intended to get you up and running with TWiki on Windows quickly, with as few problems as possible.  The 'cookbook' approach is simply to restrict the many choices that someone installing TWiki must make, so that a reasonably well-defined procedure can be followed - new users can simply follow the steps, while experts can use this as more of a guideline. 
1385             <p />
1386             <ul>
1387 rizwank 1.1 <li> <strong><em>NOTE</em></strong>: This cookbook is not 100% complete (e.g. it doesn't cover authentication setup described by existing documentation), but it has been used successfully for over a year now - it is quite accurate and should get you started if you follow the instructions.  Please provide feedback in <a href="http://twiki.org/cgi-bin/view/Codev.WindowsInstallCookbookComments" title="'Codev.WindowsInstallCookbookComments' on TWiki.org">TWiki:Codev.WindowsInstallCookbookComments</a>.  
1388             </li>
1389             <li> <strong><em>NOTE</em></strong>: You will get the best results from following this cookbook <strong>exactly</strong>, using the same directories, etc - however, if you really do need to vary things, it should be fairly obvious what to do.
1390             </li>
1391             </ul>
1392             <p />
1393             -- <span class="twikiNewLink" style='background : #FFFFCE;'><font color="#0000FF">RichardDonkin</font><a href="http://TWiki.org/cgi-bin/edit/Main/RichardDonkin?topicparent=TWiki.TWikiDocumentation"><sup>?</sup></a></span> - 24 Feb 2002
1394             <p />
1395             <h2><a name="Summary"> </a> Summary </h2>
1396             <p />
1397             <img src="./pub/TWiki/TWikiDocGraphics/new.gif" border="0" alt="NEW" width="28" height="8" /> - See <strong><a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/WindowsInstallSummary">WindowsInstallSummary</a></strong> for a concise summary of the whole cookbook.
1398             <p />
1399             <h2><a name="Recent_updates"> </a> Recent updates </h2>
1400             <p />
1401             <ul>
1402             <li> 28 Jun 2004 - updated to reflect experiences installing beta20040507 on Windows NT
1403             </li>
1404             <li> 2 Jun 2003 - updated to include setting <code>HOME</code> since this is not always picked up by Cygwin
1405             </li>
1406             <li> 30 Apr 2003 - New issue with Perl 5.8 found, added warning not to use Perl 5.8
1407             </li>
1408 rizwank 1.1 <li> 02 Mar 2003 - updated to restrict <code>register</code> script edits to Dec 2001 release
1409             </li>
1410             <li> 30 Nov 2002 - added <code>binutils</code> to list of Cygwin packages, and added warning not to use Apache 2.0
1411             </li>
1412             <li> 20 Nov 2002 - update to avoid <a href="http://twiki.org/cgi-bin/view/Support.InstallDigestSHA1Fails" title="'Support.InstallDigestSHA1Fails' on TWiki.org">TWiki:Support.InstallDigestSHA1Fails</a> when installing Digest::SHA1 on Windows 2000
1413             </li>
1414             <li> 12 Nov 2002 - setting <code>SMTPMAILHOST</code> for user registration and notification
1415             </li>
1416             <li> Older changes are in <a href="http://twiki.org/cgi-bin/view/TWiki.WindowsInstallCookbookHistory" title="'TWiki.WindowsInstallCookbookHistory' on TWiki.org">TWiki:TWiki.WindowsInstallCookbookHistory</a>
1417             </li>
1418             </ul>
1419             <p />
1420             <h2><a name="Scope"> </a> Scope </h2>
1421             <p />
1422             This document covers installation of the TWiki <strong>01-Sep-2004</strong> production release (<a href="http://twiki.org/cgi-bin/view/Codev/TWikiRelease01Sep2004" title="'Codev/TWikiRelease01Sep2004' on TWiki.org">TWiki:Codev/TWikiRelease01Sep2004</a>) in the following environment - if you want to use a different environment, feel free to use this as a guideline only.
1423             <p />
1424             <table border="1" cellspacing="0" cellpadding="1"> <tr><th bgcolor="#99CCCC"> <strong>Component</strong> </th><th bgcolor="#99CCCC"> <strong>Name, version</strong> </th><th bgcolor="#99CCCC"> <strong>Comment</strong> </th></tr>
1425             <tr><td>  Operating System  </td><td>  Windows 2000  </td><td>  Should also work for Windows NT  </td></tr>
1426             <tr><td>  Web Server  </td><td>  Apache 1.3.27  </td><td>  Windows-specific security holes fixed in this build <br />(check latest version at <a href="http://httpd.apache.org" target="_top">http://httpd.apache.org</a>, but <strong>don't</strong> use Apache 2.0 yet)  </td></tr>
1427             <tr><td>  Unix tools  </td><td>  Cygwin 1.3.9  </td><td>  Simplest way to get a whole set of required tools  </td></tr>
1428             <tr><td>  Perl </td><td>  Cygwin perl-5.6.1-2  </td><td>  Comes with Cygwin, <strong>don't</strong> use Perl 5.8.0 yet  </td></tr>
1429 rizwank 1.1 <tr><td>  RCS  </td><td>  Cygwin rcs-5.7-2  </td><td>  Comes with Cygwin, includes a file corruption bugfix  </td></tr>
1430             </table>
1431             <p />
1432             Why this choice of packages?  Because I've tried them, and they work well, without requiring a complicated setup... In particular, Apache is the commonest choice for TWiki on Unix/Linux, Cygwin Perl is very close to Unix Perl, and the Cygwin RCS is regularly updated, with a recent TWiki-relevant bug fix in Feb 2002.   Cygwin also lets you install the Unix tools, Perl and RCS in a single step, saving quite a lot of time.
1433             <p />
1434             More recent minor versions should be OK, but they can introduce bugs.  
1435             <p />
1436             <img src="./pub/TWiki/TWikiDocGraphics/new.gif" border="0" alt="NEW" width="28" height="8" /> Major version upgrades, such as Apache 2.0 and Perl 5.8, are <strong>very likely</strong> to cause problems - for example, Apache 2.0 is unable to authenticate users created by the current TWiki user registration script (due to a feature being removed in 2.0, see  <a href="http://twiki.org/cgi-bin/view/Support.FailedAuthenticationWithApache2OnWinNT" title="'Support.FailedAuthenticationWithApache2OnWinNT' on TWiki.org">TWiki:Support.FailedAuthenticationWithApache2OnWinNT</a>).  Similarly, Perl 5.8 may introduce issues due to its Unicode features and has caused problems due to a bug in <code>CGI.pm</code>.  Even though the Apache group says that Apache 2.0 is the best version, that's not true for TWiki at present.  For more information, see <a href="http://twiki.org/cgi-bin/view/Codev.IssuesWithApache2dot0" title="'Codev.IssuesWithApache2dot0' on TWiki.org">TWiki:Codev.IssuesWithApache2dot0</a> and <a href="http://twiki.org/cgi-bin/view/Codev.IssuesWithPerl5dot8" title="'Codev.IssuesWithPerl5dot8' on TWiki.org">TWiki:Codev.IssuesWithPerl5dot8</a>.
1437             <p />
1438             <h3><a name="Alternatives"> </a> Alternatives  </h3>
1439             The following Windows operating systems have been tested following the instructions given here:
1440             <ul>
1441             <li> Windows NT, 98 and ME all work fine with minor tweaks
1442             </li>
1443             <li> Windows XP works in theory, but see the Apache site for details of XP-related bugs, and other packages' sites for any peculiarities of XP.  Please report any XP installations on <a href="http://twiki.org/cgi-bin/view/Codev.TWikiOnWindowsKnownConfigurations" title="'Codev.TWikiOnWindowsKnownConfigurations' on TWiki.org">TWiki:Codev.TWikiOnWindowsKnownConfigurations</a>, and comment at <a href="http://twiki.org/cgi-bin/view/Codev.WindowsInstallCookbookComments" title="'Codev.WindowsInstallCookbookComments' on TWiki.org">TWiki:Codev.WindowsInstallCookbookComments</a>.
1444             </li>
1445             </ul>
1446             <p />
1447             There are doubtless other combinations of components that may work - in particular:
1448             <ul>
1449             <li> <a href="http://twiki.org/cgi-bin/view/Codev.ActiveState" title="'Codev.ActiveState' on TWiki.org">TWiki:Codev.ActiveState</a> Perl involves only minor changes to <code>TWiki.cfg</code>, and is probably a simpler choice if you need an easy way to install mod_perl (see <a href="http://twiki.org/cgi-bin/view/Codev.ModPerl" title="'Codev.ModPerl' on TWiki.org">TWiki:Codev.ModPerl</a>).  <a href="http://twiki.org/cgi-bin/view/Codev.ActiveState" title="'Codev.ActiveState' on TWiki.org">TWiki:Codev.ActiveState</a> Perl can be substituted without too much hassle, and in fact the same <code>TWiki.cfg</code> can be used for both <a href="http://twiki.org/cgi-bin/view/Codev.ActiveState" title="'Codev.ActiveState' on TWiki.org">TWiki:Codev.ActiveState</a> and Cygwin Perl.  
1450 rizwank 1.1 </li>
1451             <li> Using a different web server is certainly possible, but the setup required for each webserver varies greatly (see <a href="http://twiki.org/cgi-bin/view/Codev.TWikiOnWindows" title="'Codev.TWikiOnWindows' on TWiki.org">TWiki:Codev.TWikiOnWindows</a> for pages about specific web servers).  You may find it easiest to get a working system with Apache and then switch over to another web server.
1452             </li>
1453             </ul>
1454             <p />
1455             Covering the whole range of additional possibilities, particularly web servers, would make this cookbook too complex, and is best handled as a separate activity.  
1456             <p />
1457             For improved performance on Windows through using <code>mod_perl</code>, you may want to try <a href="http://twiki.org/cgi-bin/view/Codev.WindowsModPerlInstallCookbook" title="'Codev.WindowsModPerlInstallCookbook' on TWiki.org">TWiki:Codev.WindowsModPerlInstallCookbook</a>.
1458             <p />
1459             <h2><a name="Checking_versions"> </a> Checking versions </h2>
1460             <p />
1461             If you already have some of these add-ons installed, here's how to check the versions - this assumes you have <a href="http://twiki.org/cgi-bin/view/Codev.CygWin" title="'Codev.CygWin' on TWiki.org">TWiki:Codev.CygWin</a> already installed:
1462             <p />
1463             <pre>
1464                $ <i>: Cygwin DLL version is the number in 1.3.x format</i>
1465                $ uname -r
1466                $ less c:/<i>your-apache-dir</i>/Announcement
1467                $ perl -v
1468                $ rcs -V
1469             </pre>
1470             <p />
1471 rizwank 1.1 If you have an older version of any component, do yourself a favour and <strong>upgrade it</strong> as part of the install process.
1472             <p />
1473             <h2><a name="Pre_requisites_and_upgrades"> </a> Pre-requisites and upgrades </h2>
1474             You will need to have local administrator rights and be comfortable with Windows administration.
1475             <p />
1476             This cookbook is intended for a clean install, i.e. none of these components are already installed.  However, since Cygwin and Apache's installation process is fairly upgrade-friendly, upgrades should work as well - take backups of all your data and config files first, though!
1477             <a name="TextEditing"></a>
1478             <h3><a name="Text_editing"> </a> Text editing </h3>
1479             Editing Cygwin files should be done with an editor that can handle Unix file format (see the Cygwin binary mode section below). The installation process suggests:
1480             <ul>
1481             <li> <code>nano</code>, a very simple text editor, installed optionally during Cygwin installation. Always launch <code>nano</code> with the -w command-line option to turn off wrapping of long lines.
1482             </li>
1483             <li> <code>vi</code>, a more sophisticated editor that should be familiar to most UNIX users
1484             </li>
1485             </ul>
1486             These both non-GUI editors, but if you prefer to use a GUI editor you should install PFE, a freeware editor that supports Unix format files.  PFE is available on <a href="http://download.cnet.com/downloads/0-4003619-100-904159.html?tag=st.dl.10001-103-1.lst-7-1.904159" target="_top">download.com</a> and <a href="http://www.simtel.net/pub/dl/11983.shtml" target="_top">Simtel</a>.
1487             <p />
1488             Another good <a href="http://twiki.org/cgi-bin/view/Codev.OpenSource" title="'Codev.OpenSource' on TWiki.org">TWiki:Codev.OpenSource</a> editor is SciTE (aka WSciTE), available at <a href="http://www.scintilla.org/SciTE.html" target="_top">http://www.scintilla.org/SciTE.html</a>.
1489             <p />
1490             <h2><a name="The_Unix_Windows_Environment"> </a> The Unix/Windows Environment </h2>
1491             <p />
1492 rizwank 1.1 It's a little known fact that you can use pathnames such as <code><b>c:/apache</b></code> almost everywhere in Windows - try it in a File Open dialogue box.  The main exception is the Windows "DOS" command line shell - here, you must use double quotes around forward slashes, e.g. <code>dir "c:/apache"</code> will work fine.
1493             <p />
1494             The reason this matters is that <code><b>'\'</b></code> is a special character to Perl and other tools, so it's much easier to use <code><b>'/'</b></code> everywhere.  
1495             <p />
1496             <h3><a name="The_Cygwin_environment"> </a> The Cygwin environment </h3>
1497             <p />
1498             <a href="http://twiki.org/cgi-bin/view/Codev.CygWin" title="'Codev.CygWin' on TWiki.org">TWiki:Codev.CygWin</a> is a Unix-like environment for Windows - many of its tools support the <code>c:/apache</code> format, but it also provides a more Unixlike syntax, e.g. <code>/usr/bin/rcs.exe</code>, because some Unix tools ported onto Cygwin only support the Unix format.
1499             <p />
1500             When you launch a Cygwin shell, your existing PATH variable is translated from the Windows format to the Unix format, and the ';' separators in the Windows PATH are changed into ':' separators as required by Unix.  A Cygwin tool (e.g. Cygwin Perl or Cygwin RCS) will always use the Unix PATH format, and will accept Unix format pathnames.
1501             <p />
1502             <h3><a name="The_Apache_environment"> </a> The Apache environment </h3>
1503             <p />
1504             Apache runs as a native Windows process and has nothing to do with Cygwin (at least the version used in this cookbook doesn't).  Hence it supports c:/ pathnames in its config files and the first line of Perl CGI scripts.
1505             <p />
1506             If you need to use spaces in file names (not recommended), put double quotes around the file name in the <code>httpd.conf</code> file. There have been some security-related bugs in Apache with long pathnames, which are a bit more likely if you use spaces, so it's best to just avoid long names and using spaces.
1507             <p />
1508             <h3><a name="The_Perl_environment"> </a> The Perl environment </h3>
1509             <p />
1510             Once Perl has been launched by Apache, it is in Cygwin mode, and so is everything it launches, including <code>ls</code>, <code>egrep</code>, and the RCS tools that it (typically) launches with the <code>bash</code> shell.
1511             <p />
1512             If you need to use spaces in file names (not recommended), you <em>may</em> be able to put double quotes around the file name in the <code>TWiki.cfg</code> file - however, it's not clear whether all the TWiki code would work with this.
1513 rizwank 1.1 <p />
1514             <h2><a name="Installing_Components"> </a> Installing Components </h2>
1515             <p />
1516             Enough background, let's get on with the installation.
1517             <p />
1518             <h3><a name="TWiki_part_1"> </a><a name="TWiki_part_1_"> </a> TWiki (part 1) </h3>
1519             <p />
1520             Head to <a href="http://twiki.org" target="_top">http://twiki.org</a>, click the download link, and fill in the form to request a URL for download. You'll get an automated email, which should arrive by the time you need it.
1521             <p />
1522             <h3><a name="Apache"> </a> Apache </h3>
1523             <em>Steps 1 and 2 can be shortcut by opening the self-installing executable on the Apache website that installs Apache 1.3.x. The painful details below are mainly helpful when detecting where things are going wrong.....</em>
1524             <p />
1525             <strong>1. Download Apache</strong>
1526             <ul>
1527             <li> Check at <a href="http://httpd.apache.org/" target="_top">http://httpd.apache.org/</a> for any security announcements
1528             </li>
1529             <li> Check the latest 1.3.x version number on <a href="http://www.apache.org/dist/httpd/Announcement.html" target="_top">this page</a>
1530             </li>
1531             <li> Find a local mirror using <a href="http://www.apache.org/dyn/closer.cgi" target="_top">http://www.apache.org/dyn/closer.cgi</a> - choose httpd, then binaries, then win32
1532             </li>
1533             <li> The file to download is <code><b>apache_1.3.X-win32-x86-no_src.msi</b></code> where 'X' is 20 or higher 
1534 rizwank 1.1 <ul>
1535             <li> Note that this is a Microsoft Installer format file (.MSI)
1536             </li>
1537             </ul>
1538             </li>
1539             </ul>
1540             <p />
1541             <ul>
1542             <li> <strong><em>NOTE</em></strong>: If you are using Windows NT, download the .MSI installer (<code><b>instmsi.exe</b></code>) from the <a href="http://httpd.apache.org/dist/httpd/binaries/win32/" target="_top">Apache Win32 download page</a> - this enables you to install .MSI files.  You may need to update the .MSI Installer if you have an old version under NT.
1543             </li>
1544             <li> <strong><em>NOTE</em></strong>: The Apache package itself requires a download of around 2 MB, and up to 10 MB of free disk space once installed
1545             </li>
1546             </ul>
1547             <p />
1548             <strong>2. Install Apache</strong>
1549             <ul>
1550             <li> Double-click the .MSI file to run the installer
1551             </li>
1552             <li> Specify <code><b>c:\</b></code> as the installation directory - this actually installs Apache into <code><b>c:\apache</b></code> (if you specify <code>c:\apache</code>, it installs into <code>c:\apache\Apache</code>).  <em>Putting Apache into <code>c:\Program Files</code> is not recommended for easy editing of Apache config files from Cygwin.</em>  
1553             </li>
1554             <li> On Windows NT/2000 you can choose to run Apache as a service or as a normal program - see the Apache docs for details.  
1555 rizwank 1.1 <ul>
1556             <li> <strong><em>NOTE</em></strong>: Needs a bit more detail here... See the excellent documents about <a href="http://httpd.apache.org/docs/windows.html" target="_top">Installing Apache on Windows</a> and <a href="http://httpd.apache.org/docs/win_service.html" target="_top">Running Apache as a Windows NT/2000 service</a>.
1557             </li>
1558             </ul>
1559             </li>
1560             </ul>
1561             <p />
1562             <strong>3. Test Apache</strong>
1563             <ul>
1564             <li> If necessary, start apache, by selecting 'Start' from the 'Start-&gt;Programs-&gt;Apache...-&gt;Control Apache Server' menu.
1565             </li>
1566             <li> Point your browser at <a href="http://yourdomain.com/" target="_top">http://yourdomain.com/</a> to see the Apache intro page.
1567             </li>
1568             </ul>
1569             <p />
1570             Congratulations, you now have a working web server! 
1571             <p />
1572             To restart Apache after changing its config, type:
1573             <p />
1574             <ul>
1575             <li> <code>apache -k restart</code> for standalone Apache process running in another window
1576 rizwank 1.1 </li>
1577             <li> <code>apache -k restart -n apache</code> for Apache running as a Win2000 service (-n gives name of service)
1578             </li>
1579             </ul>
1580             <p />
1581             Another useful command is <code>apache -k stop</code>.
1582             <p />
1583             <h3><a name="Cygwin_Unix_tools_Perl_and_RCS"> </a> Cygwin, Unix tools, Perl and RCS </h3>
1584             <p />
1585             <strong>4. Install Cygwin</strong>
1586             <p />
1587             Head to <a href="http://cygwin.com" target="_top">http://cygwin.com</a>, and click the <img src="./pub/TWiki/WindowsInstallCookbook/cygwin-icon.gif" alt="cygwin-icon.gif"  width="21" height="21"  /> <strong><em>Install or update now!</em></strong> link.  Save the <code>setup.exe</code> in a directory, e.g.  <code>c:\download\cygwin-dist</code>. 
1588             <p />
1589             Now run the Cygwin <code>setup.exe</code> file - this will also install Perl and RCS in one fell swoop.
1590             <ul>
1591             <li> Choose Internet install
1592             </li>
1593             <li> On first page, accept the defaults (be sure that the <strong><em>default text file type is Unix</em></strong> to avoid problems with attachment uploads, and specify 'install for all users')
1594             </li>
1595             <li> Select <code>c:\download\cygwin-dist</code> as the local package directory, and suitable proxy settings, then pick a local mirror site
1596             </li>
1597 rizwank 1.1 <li> In the package list screen, hit the <strong>View</strong> button until you get an alphabetical list that says <strong>Full</strong> to the right of the button.
1598             </li>
1599             <li> Leave the radio button on <strong>Curr</strong> (Current)
1600             <ul>
1601             <li> The Current column shows what's installed on your system (if anything)
1602             </li>
1603             </ul>
1604             </li>
1605             <li> For each package, make sure the <strong>New</strong> column in the installer has a version number under it. If it says 'Skip' or 'Keep' (meaning it's already installed), single-click that word until a version number is shown.  Make sure you select the following packages - <em>in recent Cygwin setups you will have to select Perl 5.6.1 explicitly</em>:
1606             <ul>
1607             <li> <code>bash</code> 
1608             </li>
1609             <li> <code>binutils</code> 
1610             </li>
1611             <li> <code>diffutils</code>
1612             </li>
1613             <li> <code>gcc</code>
1614             </li>
1615             <li> <code>grep</code>
1616             </li>
1617             <li> <code>gzip</code>
1618 rizwank 1.1 </li>
1619             <li> <code>make</code>
1620             </li>
1621             <li> <code>nano</code> (or <code>vim</code> if you prefer the vi editor)
1622             </li>
1623             <li> <code>ncftp</code>
1624             </li>
1625             <li> <code>pcre</code>
1626             </li>
1627             <li> <code>perl</code> (5.6.1-2 or higher, but <strong>not</strong> 5.8.0)
1628             </li>
1629             <li> <code>rcs</code>  (5.7-2 or higher)
1630             </li>
1631             <li> <code>tar</code>
1632             </li>
1633             <li> <code>textutils</code>
1634             </li>
1635             <li> <code>unzip</code>
1636             </li>
1637             <li> <code>w32api</code>
1638             </li>
1639 rizwank 1.1 <li> <code>wget</code> (optional, useful for Perl install and <a href="http://twiki.org/cgi-bin/view/Codev.ReadWriteOfflineWiki" title="'Codev.ReadWriteOfflineWiki' on TWiki.org">TWiki:Codev.ReadWriteOfflineWiki</a>)
1640             </li>
1641             <li> NOTE: Do <strong>not</strong> include <code>lynx</code> if you are upgrading from an older Cygwin installation (to avoid annoying DLL messages) - if you want Lynx, read the <a href="http://cygwin.com/faq/faq.html#SEC32" target="_top">Cygwin FAQ entry</a> and upgrade <code>libncurses5</code>.
1642             </li>
1643             </ul>
1644             </li>
1645             <li> Hit Next to do the installation.  
1646             <ul>
1647             <li> <strong><em>NOTE</em></strong>: The mandatory packages require a download of about 12 MB - about half of this is Perl, which would be necessary even without Cygwin, and most of the rest is <code>gcc</code>, which is required for simple installation of Perl modules that use the C language.  A default installation of Cygwin 1.5.10, plus required packages, needs around 150 MB of free disk space.
1648             </li>
1649             <li> <strong><em>NOTE</em></strong>: The installer keeps a local copy of downloaded files, so it's easy to re-install without re-downloading.  
1650             </li>
1651             </ul>
1652             </li>
1653             <li> Let the installer create the shortcuts suggested
1654             </li>
1655             <li> You can always come back and re-run the installer again later if you missed anything.
1656             </li>
1657             </ul>
1658             <p />
1659             Environment setup:
1660 rizwank 1.1 <p />
1661             <ul>
1662             <li> Set the <code>HOME</code> environment variable to <code>c:\cygwin\home\YOURUSER</code>, where <code>YOURUSER</code> is your userid, e.g. <code>jsmith</code> or <code>administrator</code>.
1663             <ul>
1664             <li> Windows NT, XP and 2000: Go into Control Panel, double-click the System icon, and select Advanced, then click Environment Variables.  Under User Variables, click <em>New...</em>.  Now type <code>HOME</code> (must be upper case) as the variable name, and <code>c:\cygwin\home\YOURUSER</code> as the value, and hit OK.
1665             </li>
1666             <li> Windows 98 and ME - add to AUTOEXEC.BAT and reboot
1667             </li>
1668             </ul>
1669             </li>
1670             <li> You can also  set <code>TEMP</code> to <code>c:\temp</code> at this point, if you prefer this to editing the Cygwin <code>~/.profile</code> file.  (<code>HOME</code> can't be set in the <code>~/.profile</code> file.)
1671             </li>
1672             <li> Create the <code>c:\cygwin\home\YOURUSER</code> directory
1673             </li>
1674             </ul>
1675             <p />
1676             <strong>5. Test Cygwin</strong>
1677             <ul>
1678             <li> Launch the desktop icon - this runs the <code>bash</code> shell, which has command line editing features
1679             <ul>
1680             <li> Use the cursor up key to recall previous commands - normal PC editing keys can then be used to edit a command
1681 rizwank 1.1 </li>
1682             <li> TIP: When typing a directory or file name, hit the TAB key after the first few letters of the name - <code>bash</code> will 'complete' the name.  If <code>bash</code> beeps at you, hit TAB again to see the files/directories that match the name so far, and type a bit more before hitting TAB.  This saves a lot of time!
1683             </li>
1684             </ul>
1685             </li>
1686             <li> Type <code>rcs -V</code> - you should see the RCS version, 5.7
1687             </li>
1688             <li> Type <code>perl -v</code> - you should see cygwin mentioned in the first line, and the Perl version, 5.6.1
1689             </li>
1690             <li> Type <code>grep home /etc/passwd</code> - you should see some output.
1691             </li>
1692             </ul>
1693             <p />
1694             The <a href="http://cygwin.com/cygwin-ug-net/cygwin-ug-net.html" target="_top">Cygwin User Guide</a> is well worth reading for some background on how Cygwin works.
1695             <p />
1696             <strong>6. Configure Cygwin for binary mode</strong>
1697             <ul>
1698             <li> <strong><em>This is very important - omitting this step leads to a partially working system that corrupts RCS files</em></strong> - without this, Cygwin tools (including Perl and RCS) will add unwanted carriage returns (Ctrl/M, '\r') to files in an attempt to translate between the Windows and Unix text file formats (Unix text files only use line feeds ('\n').
1699             <ul>
1700             <li> This has been a great time sink, causing numerous subtle problems - see <a href="http://twiki.org/cgi-bin/view/Codev.CookbookLineEndingProblems" title="'Codev.CookbookLineEndingProblems' on TWiki.org">TWiki:Codev.CookbookLineEndingProblems</a>
1701             </li>
1702 rizwank 1.1 </ul>
1703             </li>
1704             <li> Stay in the Cygwin (bash) shell, and type the following (use only forward slashes, i.e. '/'):
1705             </li>
1706             </ul>
1707             <pre>
1708                $ <b>mkdir /twiki /c c:/twiki</b>
1709                $ <b>mount -b -s c:/twiki /twiki</b>
1710                $ <b>mount -b -s c:/ /c</b>
1711                $ <b>mount -b -c /cygdrive</b>
1712                $ <b>mount</b>
1713                Device              Directory           Type         Flags
1714                C:\cygwin\bin       /usr/bin            system       binmode
1715                C:\cygwin\lib       /usr/lib            system       binmode
1716                C:\cygwin           /                   system       binmode
1717                c:\twiki            /twiki              system       binmode
1718                c:                  /c                  system       binmode
1719             </pre>
1720             <ul>
1721             <li> This configures <code>/twiki</code> (known as a 'mount point') to map onto <code>c:/twiki</code> and for that directory tree to always be in binary mode, and does the same for <code>/c</code>, mapping it onto <code>c:/</code>. The last-but-one command sets binary as the default for any unmounted drives (e.g. <code>z:/</code>, aka <code>/cygdrive/z</code>).
1722             </li>
1723 rizwank 1.1 <li> It is <strong>very important</strong> that all lines in the output of <code>mount</code> say 'binmode' under Flags
1724             <ul>
1725             <li> If the lines for <code>C:\cygwin</code> directories do not, you should uninstall and then re-install Cygwin to ensure that binary attachment uploads will work.
1726             </li>
1727             </ul>
1728             </li>
1729             <li> You can now refer to files using Unix paths, e.g. <code>/twiki/bin/view</code> or <code>/c/apache/Announcement</code> - see the <a href="http://www.cygwin.com/cygwin-ug-net/using.html" target="_top">Cygwin documentation</a> for more details on this.
1730             </li>
1731             <li> Now test this, still using the Cygwin shell:
1732             <ul>
1733             <li> Type <code><b>cd /twiki</b></code>
1734             </li>
1735             <li> Type <code><b>echo hi &gt;t</b></code> 
1736             </li>
1737             <li> Type <code><b>cat -v t</b></code> - you should see <code><b>hi</b></code> as the output
1738             </li>
1739             <li> If you see filename errors, your <strong>mounts did not work</strong> for some reason - check your typing
1740             </li>
1741             <li> If you see <code><b>hi^M</b></code> as output, <strong>your /twiki directory is not in binary mode</strong>
1742             </li>
1743             <li> Clean up by doing <code>rm t</code>
1744 rizwank 1.1 </li>
1745             </ul>
1746             </li>
1747             </ul>
1748             <p />
1749             This setup is written to the Windows registry, so there's no need to put these commands into a <code>.profile</code> file.  For more information on binary vs text mode, see this <a href="http://cygwin.com/cygwin-ug-net/using-textbinary.html" target="_top">User Guide section</a> and this <a href="http://cygwin.com/faq/faq.html#SEC54" target="_top">FAQ entry</a>.
1750             <p />
1751             <h3><a name="TWiki_part_2"> </a><a name="TWiki_part_2_"> </a> TWiki (part 2) </h3>
1752             <p />
1753             <strong>7. Download TWiki</strong>
1754             <p />
1755             Download the latest TWiki release from <a href="http://twiki.org/" target="_top">http://twiki.org/</a> and save it in the <code>c:/twiki</code> directory.
1756             <p />
1757             <strong>8. Install TWiki</strong>
1758             <p />
1759             Unzip the ZIP file under <code>c:/twiki</code> using <a href="http://www.winzip.com/" target="_top">WinZip</a>, or by going into Cygwin and doing the following - you can hit the <code>TAB</code> key to complete filenames after you've typed the first part:
1760             <pre>
1761                $ <b>cd /twiki</b>
1762                $ <b>unzip TWiki20011201.zip</b>
1763             </pre>
1764             <p />
1765 rizwank 1.1 <h2><a name="Configuring_components"> </a> Configuring components </h2>
1766             <p />
1767             Now that all the components are installed, you need to configure them.
1768             <p />
1769             <h3><a name="Configuring_Apache"> </a> Configuring Apache </h3>
1770             <p />
1771             The setup given here is fairly simple, in that it allows only TWiki to be served by the web server.  For more complex setups, you can investigate the Alias and ScriptAlias commands that are left commented out in this configuration. 
1772             <p />
1773             <ul>
1774             <li> <strong><em>NOTE</em></strong>: This needs reviewing for security holes and to ensure nothing is missed, though this config does work.
1775             </li>
1776             </ul>
1777             <p />
1778             <strong>1. Configure Apache (part 1)</strong>
1779             <p />
1780             Using a suitable text editor (see #TextEditing, above) edit <code>c:/apache/conf/httpd.conf</code> as follows - this tells Apache where TWiki lives, and removes the need to tinker with the Windows environment settings.
1781             <ul>
1782             <li> Note the trailing '/' characters in various places - they are important!
1783             </li>
1784             </ul>
1785             <p />
1786 rizwank 1.1 <ul>
1787             <li> Create the <code>c:\temp</code> directory, by typing <code>mkdir c:\temp</code> in a DOS command line window
1788             </li>
1789             <li> Edit the following lines, some of which already exist in the file:
1790             </li>
1791             </ul>
1792             <p />
1793             <pre>
1794             # Change this to point to the Apache administrator (e.g. you)
1795             ServerAdmin you@yourdomain.com
1796             
1797             # Replaces DocumentRoot "C:/apache/htdocs"
1798             DocumentRoot "C:/twiki"
1799             
1800             # Replaces &lt;Directory "C:/apache/htdocs"&gt;
1801             &lt;Directory "C:/twiki"&gt;
1802             
1803             </pre>
1804             <p />
1805             <ul>
1806             <li> Add the following lines - the Alias and ScriptAlias lines can be omitted in this setup
1807 rizwank 1.1 </li>
1808             </ul>
1809             <p />
1810             <pre>
1811             # Alias /twiki/ "C:/twiki/"
1812             # ScriptAlias /twiki/bin/ "C:/twiki/bin/"
1813             &lt;Directory  "C:/twiki/bin/"&gt;
1814                 # RD: Changed None to All in next line, to enable .htaccess
1815                 AllowOverride All
1816                 Allow From All
1817                 Options  ExecCGI
1818                 SetHandler cgi-script
1819             &lt;/Directory&gt;
1820             
1821             # Environment setup required to run Apache as service or as a
1822             # standalone process.
1823             &lt;IfModule mod_env.c&gt;
1824                # Adjust TZ for your server timezone, e.g. EST5EDT - put the non-daylight-savings
1825                # timezone code first (e.g. EST or GMT), followed by the number of hours that it's behind GMT 
1826                # during non-daylight-savings time (use '-5' for timezones in advance of GMT).
1827                SetEnv TZ GMT0BST
1828 rizwank 1.1    SetEnv RCSINIT -x,v/
1829                # Adjust TEMP and TMP for your server and create directories if necessary
1830                SetEnv TEMP c:/temp
1831                SetEnv TMP c:/temp
1832                SetEnv LOGNAME system
1833                SetEnv HOME c:/twiki
1834             &lt;/IfModule&gt;
1835             </pre>
1836             <p />
1837             <strong>2. Configure Apache (part 2)</strong>
1838             <p />
1839             Add an AddHandler line to the <code><b>&lt;IfModule mod_mime.c&gt;</b></code> section of <code>httpd.conf</code> - this removes the need to rename all the TWiki CGI scripts later in the installation.  
1840             <ul>
1841             <li> Note the trailing '.' on the AddHandler line.
1842             </li>
1843             </ul>
1844             <pre>
1845             #
1846             # Document types
1847             #
1848             &lt;IfModule mod_mime.c&gt;
1849 rizwank 1.1     # TWiki setup - avoid renaming scripts
1850                 AddHandler cgi-script .
1851             ...
1852             </pre>
1853             <p />
1854             <h3><a name="Configuring_TWiki"> </a> Configuring TWiki </h3>
1855             <p />
1856             <strong>3. Configure TWiki</strong>
1857             <p />
1858             Edit the TWiki config file, <code>c:/twiki/lib/TWiki.cfg</code> (or in Cygwin terms, <code>/twiki/lib/TWiki.cfg</code>) as follows:
1859             <p />
1860             <ul>
1861             <li> <strong><em>NOTE</em></strong>: It should be possible to use <code>c:/twiki</code> format pathnames for Cygwin, given the above binmode setup, but I have not tested this fully - a Cygwin Perl test script does generate binary mode files in this configuration, so it should work with RCS as well (really need a small RCS file corruption test case).  Watch out for RCS file corruption carefully if you do try <code>c:/twiki</code> pathnames with Cygwin, and do report your experiences... 
1862             </li>
1863             <li> <strong><em>NOTE</em></strong>: Some recent versions of Cygwin (e.g. 1.3.10) seem to create 'symbolic links' from <code>fgrep</code> and <code>egrep</code> to <code>grep</code>, requiring the settings for these commands to point directly to <code>grep</code> (with suitable flags to provide <code>fgrep</code> and <code>egrep</code> behaviour).
1864             </li>
1865             </ul>
1866             <p />
1867             <pre>
1868             # variables that need to be changed when installing on a new server:
1869             # ==================================================================
1870 rizwank 1.1 #                   http://TWiki.org/ : link of TWiki icon in upper left corner :
1871             $wikiHomeUrl      = <b>"http://yourdomain.com/bin/view"</b>;
1872             #                   Host of TWiki URL :    (Example "http://myhost.com:123")
1873             $defaultUrlHost   = <b>"http://yourdomain.com"</b>;
1874             #                   /cgi-bin : cgi-bin path of TWiki URL:
1875             $scriptUrlPath    = <b>"/bin"</b>;
1876             #                   ./pub : Public data path of TWiki URL (root of attachments) :
1877             $pubUrlPath       = <b>"/pub"</b>;
1878             
1879             # NOTE: Next three settings should be valid absolute pathnames using Cygwin; if using
1880             # <a href="http://twiki.org/cgi-bin/view/Codev.ActiveState" title="'Codev.ActiveState' on TWiki.org">TWiki:Codev.ActiveState</a> Perl, use z:/twiki format pathnames if your TWiki directory is not on C:.
1881             
1882             #                   Public data directory, must match $pubUrlPath :
1883             $pubDir           = <b>"/twiki/pub"</b>;
1884             #                   Template directory :
1885             $templateDir      = <b>"/twiki/templates"</b>;
1886             #                   Data (topic files) root directory :
1887             $dataDir          = <b>"/twiki/data"</b>;
1888             
1889             ....
1890             
1891 rizwank 1.1 #                   Set ENV{'PATH'} explicitly for taint checks ( #!perl -T option ) :
1892             #                   (Note: PATH environment variable is not changed if set to "")
1893             
1894             # On Windows, $safeEnvPath needs only one component, the directory where RCS is installed
1895             # - used by 'rcsdiff' to run 'co' program, so PATH must be correct.
1896             
1897             # Unix/Linux setting:
1898             # $safeEnvPath      = "/bin:/usr/bin";
1899             
1900             # Using Cygwin perl, so can use Unix-like paths, with ':' as separator.
1901             # Note that /usr/bin and /bin are identical due to default /usr/bin mount
1902             # in Cygwin.  Must NOT use 'c:/foo' type paths, as ':' is taken as separator
1903             # meaning that 'c' is interpreted as a pathname, giving Perl taint error.
1904             $safeEnvPath      = <b>"/bin"</b>;
1905             
1906             # If using ActiveState perl, use Windows paths instead
1907             # $safeEnvPath      = "c:/cygwin/bin";
1908             
1909             ...
1910             
1911             #                   RCS directory (find out by 'which rcs') :
1912 rizwank 1.1 $rcsDir           = <b>"c:/cygwin/bin"</b>;
1913             
1914             ...
1915             
1916             #                   Unix egrep command :
1917             $egrepCmd         = <b>"/bin/grep -E"</b>;
1918             #                   Unix fgrep command :
1919             $fgrepCmd         = <b>"/bin/grep -F"</b>;
1920             </pre>
1921             <p />
1922             For the cookbook install using Cygwin Perl, there's no more <code>TWiki.cfg</code> editing to be done, so you can get onto the next section.  
1923             <p />
1924             <ul>
1925             <li> For <a href="http://twiki.org/cgi-bin/view/Codev.ActiveState" title="'Codev.ActiveState' on TWiki.org">TWiki:Codev.ActiveState</a> Perl, you need to make these additional edits further down the file - this is the only place where backslashes are needed.  (See <a href="http://twiki.org/cgi-bin/view/Codev.CookbookActivePerlSetup" title="'Codev.CookbookActivePerlSetup' on TWiki.org">TWiki:Codev.CookbookActivePerlSetup</a> for some extra Perl setup that should remove the need for these edits.)
1926             </li>
1927             </ul>
1928             <p />
1929             <pre>
1930             #                   NOTE: When using ActiveState Perl, you must specify
1931             #                   a full Windows-style pathname, using '\\' for backslashes,
1932             #                   for the ls, egrep and fgrep commands, because Cygwin's shell
1933 rizwank 1.1 #                   is not used - forward slashes are OK in Windows everywhere
1934             #                   except in the cmd.exe shell. Drive letters are OK - e.g.
1935             #                   'c:\\foo\\ls' will work.  When using Cygwin perl, just
1936             #                   use the default '/bin/ls' type settings.
1937             #
1938             #                   Unix ls command :
1939             $lsCmd            = "c:\\cygwin\\bin\\ls";
1940             #                   Unix egrep command :
1941             $egrepCmd         = "c:\\cygwin\\bin\\grep";
1942             #                   Unix fgrep command :
1943             $fgrepCmd         = "c:\\cygwin\\bin\\grep";
1944             </pre>
1945             <p />
1946             <h2><a name="Editing_the_CGI_scripts"> </a> Editing the CGI scripts </h2>
1947             <p />
1948             <strong>4. Editing the Shebang lines</strong>
1949             <p />
1950             Now to edit the curiously named 'shebang lines' at the top of the TWiki CGI scripts. This is required so the Apache server knows what interpreter (perl) to use with the scripts.
1951             <ul>
1952             <li> You <strong>must</strong> use the Cygwin shell to do this (unless you are a Perl expert) - <strong>don't use</strong> the Windows command shell, cmd.exe (aka DOS Prompt)      
1953             </li>
1954 rizwank 1.1 <li> Then do the following, which quickly edits the 19 or so files, using Perl - the important lines are in bold.
1955             </li>
1956             <li> Type the Perl line <strong>very carefully</strong>
1957             <ul>
1958             <li> If you do mis-type the <code><b>perl</b></code> line, you can restore from the <code>.backup</code> directory and re-run the command, as it will only edit the original files, not the backups with '~' suffixes.
1959             </li>
1960             </ul>
1961             </li>
1962             </ul>
1963             <p />
1964             <pre>
1965             $ <b>cd /twiki/bin</b>
1966             
1967             $ ls
1968             attach   geturl         oops     rdiff     save        testenv  viewfile
1969             changes  installpasswd  passwd   register  search      upload
1970             edit     mailnotify     preview  rename    statistics  view
1971             
1972             $ <b>mkdir .backup </b>
1973             $ <b>cp * .backup</b>
1974             
1975 rizwank 1.1 $ head -1 view
1976             #!/usr/bin/perl -wT
1977             
1978             $ <b>perl -pi~ -e 's;#!/usr/bin/perl;#!c:/cygwin/bin/perl;' *[a-z]</b>
1979             
1980             $ <b>head -1 view</b>
1981             #!c:/cygwin/bin/perl -wT
1982             
1983             $ ls
1984             attach    geturl          oops      rdiff      save         testenv   viewfile~
1985             attach~   geturl~         oops~     rdiff~     save~        testenv~  view~
1986             changes   installpasswd   passwd    register   search       upload
1987             changes~  installpasswd~  passwd~   register~  search~      upload~
1988             edit      mailnotify      preview   rename     statistics   view
1989             edit~     mailnotify~     preview~  rename~    statistics~  viewfile
1990             
1991             </pre>
1992             <p />
1993             If for some reason the edit goes wrong, just type <code>cp .backup/* .</code> (while within the <code>bin</code> directory) to restore the original distribution files.  Use <code>ls -a</code> to see the <code>.backup</code> directory, and <code>ls -a .backup</code> to view its contents. 
1994             <p />
1995             Optional step: you can do <code>'rm *~'</code> to clean out the backups made by Perl, but that's not essential as all the original files cannot be executed.  If you do this, <strong>type the command very carefully</strong>, as a space after the '*' will wipe out all files in this directory!
1996 rizwank 1.1 <p />
1997             <strong>5. Minor changes to TWiki scripts</strong>
1998             <p />
1999             <strong><em>TWiki Dec 2001 release only - fixed in Feb 2003 release</em></strong>
2000             <p />
2001             If using the Dec 2001 release, you now need to make some minor edits to files in the <code>c:/twiki/bin</code> directory, using a suitable editor (remember to use <code>nano -w filename</code> if you prefer <code>nano</code> to <code>vi</code> - or just use the Windows <a class="twikiAnchorLink" href="#Pre_requisites_and_upgrades">PFE editor</a>).
2002             <p />
2003             <ul>
2004             <li> Edit the <code>register</code> script in <code>/twiki/bin</code> - change line 200 to read as follows (insert the <code><b>MIME::Base64::</b></code> part):
2005             </li>
2006             </ul>
2007             <p />
2008             <pre>
2009                      return $user . ':{SHA}' . <b>MIME::Base64::</b>encode_base64(Digest::SHA1::sha1($passwd));
2010             </pre>
2011             <p />
2012             <ul>
2013             <li> If you are using <a href="http://twiki.org/cgi-bin/view/Codev.ActiveState" title="'Codev.ActiveState' on TWiki.org">TWiki:Codev.ActiveState</a> Perl, you also need to update <code>testenv</code>, see <a href="http://twiki.org/cgi-bin/view/Codev.CookbookActivePerlTestenv" title="'Codev.CookbookActivePerlTestenv' on TWiki.org">TWiki:Codev.CookbookActivePerlTestenv</a>
2014             </li>
2015             </ul>
2016             <p />
2017 rizwank 1.1 <h3><a name="Perl_module_installation"> </a> Perl module installation </h3>
2018             <p />
2019             <strong>6. Installing required Perl modules</strong>
2020             <p />
2021             Some additional Perl modules are needed, above and beyond the standard modules installed with Cygwin.  Fortunately, there is an automated tool that makes it easy to do this - it's called <code>cpan</code>, and goes to the Perl module archive site, <a href="http://www.cpan.org/" target="_top">http://www.cpan.org/</a>, to download all required modules, and then build and install them.
2022             <p />
2023             <strong><em>Note:</em></strong> if you are unable to get <code>cpan</code> working in your environment, don't panic; you can still install the modules manually. In this case, follow the instructions in <a class="twikiAnchorLink" href="#CPANTheHardWay">CPAN: The Hard Way</a>.
2024             <p />
2025             First of all, you need to get the <code>cpan</code> tool configured and working - this is only necessary once.  From the Cygwin shell, type the following (putting the <code>export</code> command in <code>~/.profile</code> is recommended to make this setting persistent).  Without the TEMP variable, some modules may fail to install on Windows 2000 and higher.
2026             <pre>
2027             $ <b>export TEMP=/c/temp</b>
2028             $ <b>cpan</b>
2029             </pre>
2030             <i>Lots of questions about configuration and preferences - just hit Enter until you 
2031             get to the questions about mirror sites, but answer the questions about FTP proxies etc
2032              if you are behind a proxy-based firewall.  The CPAN tool will fetch a series of files, 
2033             some quite large, as part of this setup process, so be patient...</i>
2034             <p />
2035             <strong><em>NOTE</em></strong>: If you are behind a non-proxy-based firewall that requires the use of passive FTP, the initial downloads of files using Net::FTP may appear to hang - just wait 5 or more minutes, however, and the CPAN tool should eventually hit on <code>ncftpget</code>, which is part of Cygwin and does work OK.  If this doesn't work and you are behind a typical NAT-based firewall, try doing the following at the Cygwin shell before running <code>cpan</code> - this forces Net::FTP to use passive FTP, letting it get through such firewalls:
2036             <pre>
2037             $ <b>export FTP_PASSIVE=1</b>
2038 rizwank 1.1 </pre>
2039             If this works, add this line to your <code>~/.profile</code> file for future use.
2040             <p />
2041             Once some initial files are downloaded, you are asked to select your continent and country, and then mirror sites - just type the number of the mirror sites you want to use (pick a few in case one is down):
2042             <pre>
2043             ...
2044             (28) Turkey
2045             (29) Ukraine
2046             (30) United Kingdom
2047             
2048             Select your country (or several nearby countries) [] 30
2049             
2050             (1) ftp://cpan.teleglobe.net/pub/CPAN
2051             (2) ftp://ftp.clockerz.net/pub/CPAN/
2052             (3) ftp://ftp.demon.co.uk/pub/CPAN/
2053             (4) ftp://ftp.flirble.org/pub/languages/perl/CPAN/
2054             (5) ftp://ftp.mirror.ac.uk/sites/ftp.funet.fi/pub/languages/perl/CPAN/
2055             (6) ftp://ftp.plig.org/pub/CPAN/
2056             (7) ftp://mirror.uklinux.net/pub/CPAN/
2057             (8) ftp://sunsite.doc.ic.ac.uk/packages/CPAN/
2058             (9) ftp://usit.shef.ac.uk/pub/packages/CPAN/
2059 rizwank 1.1 Select as many URLs as you like,
2060             put them on one line, separated by blanks [] 4 7 8
2061             
2062             Enter another URL or RETURN to quit: []
2063             New set of picks:
2064               ftp://ftp.flirble.org/pub/languages/perl/CPAN/
2065               ftp://mirror.uklinux.net/pub/CPAN/
2066               ftp://sunsite.doc.ic.ac.uk/packages/CPAN/
2067             
2068             </pre>
2069             <p />
2070             Eventually, you'll get to the <code>cpan</code> installer's shell prompt, where you need to install a few modules - the tool will do all the work for you.  
2071             <ul>
2072             <li> <strong><em>NOTE</em></strong>: You will need to have previously installed the Cygwin <code>make</code> and <code>gcc</code> packages, which are required by the CPAN installer (<code>gcc</code> is required for modules that include C language code) - you can install them now by launching Cygwin's <code>setup.exe</code> from <code>c:/download/cygwin-dist</code> (no need to exit the CPAN installer).
2073             </li>
2074             </ul>
2075             <p />
2076             <pre>
2077             cpan shell -- CPAN exploration and modules installation (v1.59_54)
2078             cpan> <b>install Net::SMTP</b>
2079             <i>May already be installed - if it is, try 'force install', since it's useful to be able to set
2080 rizwank 1.1 firewall and passive FTP configuration when using Net::FTP.  <b>Make sure you answer 'Y' to the question 
2081             about whether you want to configure this package.</b></i>
2082             cpan> <b>install Digest::SHA1</b>
2083             <i>Lots of output about how CPAN finds, builds and installs the module - watch for 
2084             any errors, though it should work fine if you have installed the Cygwin packages listed above (particularly 'gcc' and 'make').</i>
2085             cpan> <b>install MIME::Base64</b>
2086             <i>May already be installed.</i>
2087             
2088             </pre>
2089             <p />
2090             <a name="CPANTheHardWay"></a>
2091             <h4><a name="CPAN_The_Hard_Way"> </a> CPAN: The Hard Way </h4>
2092             If you find that <code>cpan</code> doesn't work for you, perhaps because you are behind an uncooperative corporate firewall, you may have to fall back on installing modules manually. In this case, you need to read the <a href="http://www.cpan.org/modules/INSTALL.html" target="_top">CPAN INSTALL page</a> and visit the <a href="http://www.cpan.org/" target="_top">CPAN search site</a> to search for each module you require. Usually installation simply involves downloading the module distribution into a temporary directory and unpacking it (a <code>.tar.gz</code> or <code>.tgz</code> file is unpacked using <code>tar zxvf <i>file</i></code>). Then do the following:
2093             <pre>
2094             $ perl Makefile.PL
2095             $ make
2096             $ make test
2097             $ make install
2098             </pre>
2099             The <code>make test</code> step should <strong>not</strong> be skipped - for example, one known problem is with the <code>Digest::SHA1</code> module on Windows NT, which does not pass its tests and does not work. This causes problems with password encoding. In this event you can use another encoding scheme or switch to unencoded passwords. There may be other problems on the various Windows configurations, and you can save yourself a lot of time.
2100             <p />
2101 rizwank 1.1 <h3><a name="Re_locking_RCS_files"> </a> Re-locking RCS files </h3>
2102             <p />
2103             <strong>7. Re-locking files</strong>
2104             <p />
2105             First, some testing: in your browser, go to <a href="http://yourdomain.com/bin/testenv" target="_top">http://yourdomain.com/bin/testenv</a> - this provides a lot of detail, including warnings.  Write down the Apache server's userid that is given by this script - typically either 'system' or 'administrator' - I'll assume 'system' from now on.
2106             <ul>
2107             <li> If the <code>testenv</code> script doesn't work, go back and check the configuration of the Apache <code>httpd.conf</code> file, and <code>TWiki.cfg</code>.  Have a look at the Apache error log, <code>c:/apache/logs/error_log</code>, and the TWiki error log, <code>/twiki/data/log*.txt</code>.
2108             </li>
2109             </ul>
2110             <p />
2111             This 'system' user must own the locks on the RCS files, which are shipped with the lock held by 'nobody'.  The reason this matters is that no revisions will be tracked by RCS unless the Apache userid matches that of the RCS file locks.
2112             <p />
2113             You can re-lock files using <code>rcs -u</code> and <code>rcs -l</code>, but it's a painfully manual process.  Instead, just use Perl again to mass-edit all the RCS files, as follows:
2114             <ul>
2115             <li> <strong><em>NOTE</em></strong>: The 'NR &lt;= 10' part of the Perl command ensures that it only operates on the first 10 lines, to avoid editing the body of RCS files for topics that happen to include the text 'nobody:' (like this one...)
2116             </li>
2117             </ul>
2118             <p />
2119             <pre>
2120             $ <b>cd /twiki/data</b>
2121             
2122 rizwank 1.1 $ : Make a backup of all files
2123             $ <b>tar czvf all-files.tar.gz */*</b>
2124             
2125             $ : Test edit a single file to check your typing
2126             $ <b>perl -pi~~~ -e 'NR <= 10 && s/nobody:/system:/ ' Main/WebIndex.txt,v</b>
2127             
2128             $ <b>diff Main/WebIndex.txt,v Main/WebIndex.txt,v~~~</b>
2129             5c5
2130             <       system:1.2; strict;
2131             ---
2132             >       nobody:1.2; strict;
2133             
2134             $ : Now edit all the RCS files at once - use cursor-up to recall previous command
2135             $ <b>perl -pi~~~ -e 'NR <= 10 && s/nobody:/system:/ ' */*,v</b>
2136             
2137             $ : Check for any remaining files not edited
2138             $ <b>grep 'strict;$' */*,v | grep -v system</b>
2139             
2140             $ : Clean up - type this <b>very carefully</b> 
2141             $ <b>rm */*~~~</b>
2142             </pre>
2143 rizwank 1.1 <p />
2144             <ul>
2145             <li> <strong>If something goes wrong:</strong> to restore your existing files from the backup, just type <code>tar xzvf all-files.tar.gz</code> and all your files, both .txt and .txt,v, will be back as they were before the edits.
2146             </li>
2147             </ul>
2148             <p />
2149             You have now re-locked all the RCS files and are almost ready to start using TWiki!  
2150             <p />
2151             <h3><a name="Email_setup"> </a> Email setup </h3>
2152             <p />
2153             <strong>8. Email setup for notification and registration</strong>
2154             <p />
2155             You need to set the <code>SMTPMAILHOST</code> in <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/TWikiPreferences">TWikiPreferences</a> to an SMTP email host that is reachable and currently working.  Otherwise you may get a confusing message from TWiki (fixed in <a href="http://twiki.org/cgi-bin/view/Codev.TWikiRelease01Feb2003" title="'Codev.TWikiRelease01Feb2003' on TWiki.org">TWiki:Codev.TWikiRelease01Feb2003</a>) when registering new users or running <code>mailnotify</code> (for <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/WebNotify">WebNotify</a>), along the lines of:
2156             <p />
2157             <pre>
2158                Software Error: Can't call method "mail" on an undefined value at ../lib/TWiki/Net.pm line 187.
2159             </pre>
2160             <p />
2161             There are other settings to be made in <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/TWikiPreferences">TWikiPreferences</a>, e.g. the <code>WIKIWEBMASTER</code> and (probably) the <code>SMTPSENDERHOST</code> (normally your mail server or TWiki server).  See the <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/TWikiInstallationGuide">TWikiInstallationGuide</a> for more details, what's listed here is just enough to let you run the basic tests.
2162             <p />
2163             <h2><a name="Testing_your_TWiki_installation"> </a> Testing your TWiki installation </h2>
2164 rizwank 1.1 <p />
2165             It is important to test your TWiki installation before you release it to other users or put any significant data into it.
2166             <p />
2167             Here are the main things to test:
2168             <p />
2169             <ul>
2170             <li> testenv - use <code>http://yourdomain.com/bin/testenv</code> and check for warnings
2171             <ul>
2172             <li> If you are having installation trouble, download the latest <code>testenv</code> from <a href="http://twiki.org/cgi-bin/view/Codev/TWikiAlphaRelease" title="'Codev/TWikiAlphaRelease' on TWiki.org">TWiki:Codev/TWikiAlphaRelease</a> and install it in <code>c:/twiki/bin</code>. (From TWiki.org, just click CVSget:bin/testenv to get this script)
2173             </li>
2174             </ul>
2175             </li>
2176             <li> Page viewing (<code>view</code> script) - click around a few pages and make sure the links are OK
2177             </li>
2178             <li> RCS diffs (<code>rdiff</code> script) - click on the Diffs link and on the '&gt;' links at bottom of page
2179             </li>
2180             <li> Edit a page, and register as a new user - tests page creation, use of <code>register</code> script to create a new user entry in <code>/twiki/data/.htpasswd</code> (the Apache password file), ability to send email via Net::SMTP, and whether <code>SMTPMAILHOST</code> was set correctly in <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/TWikiPreferences">TWikiPreferences</a> (if it is unset it will not use Net::SMTP and will almost inevitably fail silently).
2181             <ul>
2182             <li> If you get a failure to register or send email, check the Apache error log, and that all CPAN modules were installed correctly in Step 6, <em>Installing required Perl modules</em>.
2183             </li>
2184             <li> Try typing <code>tail -30 /c/apache/logs/error_log</code> to see last 30 errors from Apache
2185 rizwank 1.1 </li>
2186             </ul>
2187             </li>
2188             <li> Edit a page - check revision increased and set to current date/time
2189             </li>
2190             <li> Edit the same page using another browser or PC, logging in as a different user - check there's a lock message (which you can override) and no double lines
2191             </li>
2192             <li> Check the Apache <code>error_log</code> file to see if there are any RCS errors so far
2193             </li>
2194             <li> Index - tests whether <code>ls</code> and <code>grep</code> are working
2195             </li>
2196             <li> Search - more tests for whether <code>ls</code> and <code>grep</code> are working
2197             </li>
2198             <li> Attachments - tests access to <code>/twiki/pub</code> directory.
2199             <ul>
2200             <li> Try a binary attachment upload and check the number of bytes in the file has not changed - if it has, see the <strong>Install Cygwin</strong> section's note on the default text file type.
2201             </li>
2202             </ul>
2203             </li>
2204             <li> Check the Apache <code>error_log</code> file again
2205             </li>
2206 rizwank 1.1 </ul>
2207             <p />
2208             <h3><a name="Troubleshooting"> </a> Troubleshooting  </h3>
2209             <p />
2210             If anything doesn't work, go back and check the configuration of the Apache <code>httpd.conf</code> file, and <code>TWiki.cfg</code>.  Have a look at the Apache error log, <code>c:/apache/logs/error_log</code>, and the TWiki error log, <code>/twiki/data/log*.txt</code>, and if necessary enable debugging on selected scripts (the commands are right at the top of each script) - the results go into <code>/twiki/data/debug.txt</code>.  There is also a <code>/twiki/data/warning.txt</code> file that contains less serious messages.
2211             <p />
2212             See <a href="http://twiki.org/cgi-bin/view/Codev.TWikiPatches" title="'Codev.TWikiPatches' on TWiki.org">TWiki:Codev.TWikiPatches</a> in case there are patches (i.e. specific code changes) for particular problems that may affect you (e.g. <a href="http://twiki.org/cgi-bin/view/Codev.ChangePasswordOnWin2K" title="'Codev.ChangePasswordOnWin2K' on TWiki.org">TWiki:Codev.ChangePasswordOnWin2K</a>).
2213             <p />
2214             If you find that the Index feature doesn't work, or topic name searches fail, you should check you have set <code>$egrepCmd</code> and <code>$fgrepCmd</code> correctly, as mentioned above.
2215             <p />
2216             <h3><a name="Permissions"> </a> Permissions </h3>
2217             <p />
2218             <a href="http://twiki.org/cgi-bin/view/Codev.CygWin" title="'Codev.CygWin' on TWiki.org">TWiki:Codev.CygWin</a> has several models for how it does security:
2219             <p />
2220             <ul>
2221             <li> By default, it only implements the Unix 'write' and 'execute' permissions bits - the former is controlled by the Windows Read-Only attribute, while the latter is automatically assigned to files named *.exe or *.com, and to files whose first line is a shebang (i.e. <code>#!/bin/something</code>).  This is what has been used for this cookbook.
2222             </li>
2223             <li> You can enable the 'ntea' or 'ntsec' models, which will increase security but are also likely to introduce permission problems.
2224             </li>
2225             </ul>
2226             <p />
2227 rizwank 1.1 I have not had any problems with TWiki permissions on Windows, unlike Linux/Unix, which is probably because I'm using the default security model for Cygwin.  If you use the other models, you may still be OK if you have local admin rights, and Apache is running as the SYSTEM user (which it uses if started as a service).  If you do have trouble in this area, see the <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/TWikiInstallationGuide">TWikiInstallationGuide</a>'s advice, some of which will apply to <a href="http://twiki.org/cgi-bin/view/Codev.CygWin" title="'Codev.CygWin' on TWiki.org">TWiki:Codev.CygWin</a>, and log any issues in <a href="http://twiki.org/cgi-bin/view/Codev.WindowsInstallCookbookComments" title="'Codev.WindowsInstallCookbookComments' on TWiki.org">TWiki:Codev.WindowsInstallCookbookComments</a>.
2228             <p />
2229             <h2><a name="Next_Steps"> </a> Next Steps </h2>
2230             <p />
2231             See the <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/TWikiInstallationGuide">TWikiInstallationGuide</a> for other setup. In particular, you'll probably want to refer to the <a class="twikiAnchorLink" href="http://TWiki.org/cgi-bin/view/TWiki/TWikiInstallationGuide#Enabling_Authentication_of_Users">section on basic authentication</a> - remember to use <code>c:/twiki</code> type filenames (i.e. Windows format) since you are using Apache for Windows.  
2232             <p />
2233             <h3><a name="Improved_authentication"> </a> Improved authentication  </h3>
2234             <p />
2235             You may want to investigate <a href="http://twiki.org/cgi-bin/view/Codev.WindowsInstallModNTLM" title="'Codev.WindowsInstallModNTLM' on TWiki.org">TWiki:Codev.WindowsInstallModNTLM</a>, which describes how to add an Apache module so that <a href="http://twiki.org/cgi-bin/view/Codev.InternetExplorer" title="'Codev.InternetExplorer' on TWiki.org">TWiki:Codev.InternetExplorer</a> users are automatically authenticated based on their Windows domain login - this avoids <a href="http://twiki.org/cgi-bin/view/Codev.GettingTheUsernameWrong" title="'Codev.GettingTheUsernameWrong' on TWiki.org">TWiki:Codev.GettingTheUsernameWrong</a> and <a href="http://twiki.org/cgi-bin/view/Codev.ForgettingPasswords" title="'Codev.ForgettingPasswords' on TWiki.org">TWiki:Codev.ForgettingPasswords</a>, which are usually very common among TWiki users.
2236             <p />
2237             As of the <a href="http://twiki.org/cgi-bin/view/Codev.TWikiRelease01Sep2004" title="'Codev.TWikiRelease01Sep2004' on TWiki.org">TWiki:Codev.TWikiRelease01Sep2004</a>, there is built in support for several apache based authentication modes. The <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/TWikiInstallationGuide">TWikiInstallationGuide</a> has step-by-step instructions. 
2238             <p />
2239             <h3><a name="Improved_performance"> </a> Improved performance </h3>
2240             <p />
2241             See <a href="http://twiki.org/cgi-bin/view/Codev.WindowsModPerlInstallCookbook" title="'Codev.WindowsModPerlInstallCookbook' on TWiki.org">TWiki:Codev.WindowsModPerlInstallCookbook</a> and <a href="http://twiki.org/cgi-bin/view/Codev.ModPerl" title="'Codev.ModPerl' on TWiki.org">TWiki:Codev.ModPerl</a> for information on installing TWiki under Apache's <code>mod_perl</code> - this is somewhat more complex and follows a different model, so it's best to get some experience with TWiki, Apache and Perl first.
2242             <p />
2243             <h2><a name="Format_of_filenames"> </a> Format of filenames </h2>
2244             <p />
2245             In your TWiki on Windows installation, it's worth remembering that:
2246             <p />
2247             <ul>
2248 rizwank 1.1 <li> Apache configuration files (e.g. the <code><b>.htaccess</b></code> file and <code><b>c:/apache/conf/httpd.conf</b></code>) always use Windows format paths, with forward slashes, e.g. <code><b>c:/twiki</b></code>
2249             </li>
2250             <li> The same is true for the first line of the TWiki Perl scripts (since this line is interpreted by Apache), e.g. <code><b>c:/cygwin/bin/perl</b></code>
2251             </li>
2252             <li> All other lines in the Perl scripts use Unix format paths, e.g. <code><b>/twiki</b></code> (using Cygwin Perl as per this cookbook)
2253             <ul>
2254             <li> If you are using <a href="http://twiki.org/cgi-bin/view/Codev.ActivePerl" title="'Codev.ActivePerl' on TWiki.org">TWiki:Codev.ActivePerl</a>, that will use Windows format paths, e.g. <code><b>c:/twiki</b></code>   
2255             </li>
2256             </ul>
2257             </li>
2258             <li> Depending on the Perl version used (Cygwin or <a href="http://twiki.org/cgi-bin/view/Codev.ActivePerl" title="'Codev.ActivePerl' on TWiki.org">TWiki:Codev.ActivePerl</a>), the TWiki.cfg file uses a mixture of Unix and Cygwin format paths - stick to the format used in the installation step for TWiki.cfg
2259             </li>
2260             <li> RCS always uses Unix format paths, e.g. <code><b>/twiki</b></code>
2261             </li>
2262             </ul>
2263             <p />
2264             <h2><a name="Credits"> </a> Credits </h2>
2265             <p />
2266             Material in this cookbook is heavily based on the enormous number of contributions in <a href="http://twiki.org/cgi-bin/view/Codev.TWikiOnWindowsArchive" title="'Codev.TWikiOnWindowsArchive' on TWiki.org">TWiki:Codev.TWikiOnWindowsArchive</a> and related topics - too many people to thank, but have a look at the contributor list to <a href="http://twiki.org/cgi-bin/view/Codev.TWikiOnWindowsArchive" title="'Codev.TWikiOnWindowsArchive' on TWiki.org">TWiki:Codev.TWikiOnWindowsArchive</a> to get an idea!  
2267             <p />
2268             People who've tested or reviewed this document and provided valuable feedback include:
2269 rizwank 1.1 <p />
2270             -- <a href="http://twiki.org/cgi-bin/view/Main.BernardFarrell" title="'Main.BernardFarrell' on TWiki.org">TWiki:Main.BernardFarrell</a> <br />
2271             -- <a href="http://twiki.org/cgi-bin/view/Main.BerndSchiffer" title="'Main.BerndSchiffer' on TWiki.org">TWiki:Main.BerndSchiffer</a> <br />
2272             -- <a href="http://twiki.org/cgi-bin/view/Main.ChrisKeith" title="'Main.ChrisKeith' on TWiki.org">TWiki:Main.ChrisKeith</a> <br />
2273             -- <a href="http://twiki.org/cgi-bin/view/Main.CrawfordCurrie" title="'Main.CrawfordCurrie' on TWiki.org">TWiki:Main.CrawfordCurrie</a> <br />
2274             -- <a href="http://twiki.org/cgi-bin/view/Main.DavideBaroncelli" title="'Main.DavideBaroncelli' on TWiki.org">TWiki:Main.DavideBaroncelli</a> <br />
2275             -- <a href="http://twiki.org/cgi-bin/view/Main.DavidLeBlanc" title="'Main.DavidLeBlanc' on TWiki.org">TWiki:Main.DavidLeBlanc</a> <br />
2276             -- <a href="http://twiki.org/cgi-bin/view/Main.JerryWard" title="'Main.JerryWard' on TWiki.org">TWiki:Main.JerryWard</a> <br />
2277             -- <a href="http://twiki.org/cgi-bin/view/Main.MartinWittmann" title="'Main.MartinWittmann' on TWiki.org">TWiki:Main.MartinWittmann</a> <br />
2278             -- <a href="http://twiki.org/cgi-bin/view/Main.MaryDeMarco" title="'Main.MaryDeMarco' on TWiki.org">TWiki:Main.MaryDeMarco</a> <br />
2279             -- <a href="http://twiki.org/cgi-bin/view/Main.MattWilkie" title="'Main.MattWilkie' on TWiki.org">TWiki:Main.MattWilkie</a> <br />
2280             -- <a href="http://twiki.org/cgi-bin/view/Main.MikeBytnar" title="'Main.MikeBytnar' on TWiki.org">TWiki:Main.MikeBytnar</a> <br />
2281             -- <a href="http://twiki.org/cgi-bin/view/Main.PeterThoeny" title="'Main.PeterThoeny' on TWiki.org">TWiki:Main.PeterThoeny</a> <br />
2282             -- <a href="http://twiki.org/cgi-bin/view/Main.RossC" title="'Main.RossC' on TWiki.org">TWiki:Main.RossC</a> <br />
2283             -- <a href="http://twiki.org/cgi-bin/view/Main.TorbenGB" title="'Main.TorbenGB' on TWiki.org">TWiki:Main.TorbenGB</a> <br />
2284             -- <a href="http://twiki.org/cgi-bin/view/Main.VictorGoh" title="'Main.VictorGoh' on TWiki.org">TWiki:Main.VictorGoh</a> <br />
2285             -- <a href="http://twiki.org/cgi-bin/view/Main.WolframJahn" title="'Main.WolframJahn' on TWiki.org">TWiki:Main.WolframJahn</a> <br />
2286             <p />
2287             <hr />
2288             <img src="./pub/TWiki/TWikiDocGraphics/warning.gif" border="0" alt="ALERT!" width="16" height="16" /> Comments welcome at <a href="http://twiki.org/cgi-bin/view/Codev.WindowsInstallCookbookComments" title="'Codev.WindowsInstallCookbookComments' on TWiki.org">TWiki:Codev.WindowsInstallCookbookComments</a>
2289             <p />
2290 rizwank 1.1 <p />
2291             <hr />
2292             <p />
2293             <h1><a name="TWiki_Upgrade_Guide"> </a> TWiki Upgrade Guide </h1>
2294             <p />
2295             <em>Upgrade from the previous TWiki 01-Feb-2003 production release to TWiki 01-Sep-2004</em>
2296             <p />
2297             <h2><a name="Overview"> </a> Overview </h2>
2298             <p />
2299             This guide describes how to upgrade from TWiki 01-Feb-2003 to TWiki 01-Sep-2004. This is a major new release. You can chose between an automated upgrade using a script or a manual update.
2300             <p />
2301             <h2><a name="Upgrade_Requirements"> </a> Upgrade Requirements </h2>
2302             <p />
2303             <ul>
2304             <li> Please review the <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/AdminSkillsAssumptions">AdminSkillsAssumptions</a> before you upgrade TWiki
2305             </li>
2306             <li> To upgrade from a 01-Feb-2003 standard installation to the latest 01-Sep-2004 TWiki Production Release, follow the instructions below
2307             </li>
2308             <li> <strong><em>NOTE:</em></strong> To upgrade from a <strong>pre-01-Feb-2003</strong> TWiki, start with <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/TWikiUpgradeTo01Feb2003">TWikiUpgradeTo01Feb2003</a>
2309             </li>
2310             <li> To upgrade from a Beta of the new release, or if you made custom modifications to the application, read through all new reference documentation, then use the procedure below as a guideline
2311 rizwank 1.1 </li>
2312             </ul>
2313             <p />
2314             <h2><a name="Major_Changes_Compared_to_TWiki"> </a><a name="Major_Changes_Compared_to_TWiki_"> </a> Major Changes Compared to TWiki 01-Feb-2003 </h2>
2315             <p />
2316             <ul>
2317             <li> Automatic upgrade script, and easier first-time installation
2318             </li>
2319             <li> Attractive new skins, using a standard set of CSS classes, and a <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/TWikiSkinBrowser">TWikiSkinBrowser</a> to help you choose
2320             </li>
2321             <li> New easier-to-use save options
2322             </li>
2323             <li> Many improvements to SEARCH
2324             </li>
2325             <li> Improved support for internationalisation
2326             </li>
2327             <li> Better topic management screens
2328             </li>
2329             <li> More pre-installed Plugins: <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/CommentPlugin">CommentPlugin</a>, <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/EditTablePlugin">EditTablePlugin</a>, <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/RenderListPlugin">RenderListPlugin</a>, <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/SlideShowPlugin">SlideShowPlugin</a>, <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/SmiliesPlugin">SmiliesPlugin</a>, <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/SpreadSheetPlugin">SpreadSheetPlugin</a>, <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/TablePlugin">TablePlugin</a>
2330             </li>
2331             <li> Improved Plugins API and more Plugin callbacks
2332 rizwank 1.1 </li>
2333             <li> Better support for different authentication methods
2334             </li>
2335             <li> Many user interface and usability improvements
2336             </li>
2337             <li> And many more enhancements, see the complete change log at <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/TWikiHistory">TWikiHistory</a>
2338             </li>
2339             </ul>
2340             <p />
2341             <p />
2342             <h2><a name="Automated_Upgrade_Procedure_from"> </a> Automated Upgrade Procedure from 01-Feb-2003 to 01-Sep-2004 Release </h2>
2343             <p />
2344             With the 01-Sep-2004 Release, for the first time, comes a helper script for upgrading from a previous version. This feature is currently at beta stage, it has only been sanity tested under Unix. It should be worth giving it a try, it won't mess up your existing
2345             TWiki installation because it leaves that untouched.
2346             <p />
2347             If you would prefer to do things manually than trust a beta script, skip to the <a class="twikiAnchorLink" href="#ManualUpgradeProcedure">manual upgrade procedure</a> below.
2348             <p />
2349             The upgrade script is called <code>"UpgradeTwiki"</code>, and is found in the root of the distribution.
2350             <p />
2351             It will:
2352             <p />
2353 rizwank 1.1 <ul>
2354             <li> Create a new TWiki installation, placing the files from the distribution there as appropriate
2355             </li>
2356             <li> Where possible, merge the changes you've made in your existing topics into the new twiki
2357             </li>
2358             <li> Where not possible, it will tell you, and you can inspect those differences manually
2359             </li>
2360             <li> Create new configuration files for the new TWiki based on your existing configuation information
2361             </li>
2362             <li> Set the permissions in the new TWiki so that it should work straight away
2363             </li>
2364             <li> Attempt to setup authentication for your new TWiki, if you are using .htaccess in the old one
2365             </li>
2366             <li> Tell you what else you need to do
2367             </li>
2368             </ul>
2369             <p />
2370             To perform the upgrade, you need to:
2371             <p />
2372             <ul>
2373             <li> Check first if there is a newer <code>UpgradeTwiki</code> script available, see <a href="http://twiki.org/cgi-bin/view/Codev.UpgradeTwiki" title="'Codev.UpgradeTwiki' on TWiki.org">TWiki:Codev.UpgradeTwiki</a>
2374 rizwank 1.1 </li>
2375             <li> Create a new directory for your new installation: Let's call this <code>distro/</code>
2376             </li>
2377             <li> Put the distribution zip file in <code>distro/</code>
2378             </li>
2379             <li> Unzip it
2380             </li>
2381             <li> Choose a directory for the new installation.  I will call this <code>new_twiki</code>.  This directory must not already exist.
2382             </li>
2383             <li> Change directory to <code>distro/</code> and run: <br />
2384                  <code>./UpgradeTwiki &lt;full path to new_twiki&gt;</code>
2385             </li>
2386             </ul>
2387             <p />
2388             Assuming all goes well, <code>UpgradeTwiki</code> will give you the final instructions.
2389             <p />
2390             There are a few points worth noting:
2391             <p />
2392             <ul>
2393             <li> <code>UpgradeTwiki</code> may not be able to merge all the changes you made in your existing TWiki into the new installation, but it will tell you which ones it couldn't deal with
2394             </li>
2395 rizwank 1.1 <li> <code>UpgradeTwiki</code> creates the new installation in a new directory tree. It makes a complete copy of all your existing data, so:
2396             <ul>
2397             <li> Clearly you need to point it to a location where there is enough space
2398             </li>
2399             <li> If you have symlinks under your <code>data/</code> directory in your existing installation, these are reproduced as actual directories in the new structure.   It is up to you to pull these sub-directories out again and re-symlink as needed
2400             </li>
2401             </ul>
2402             </li>
2403             <li> <code>UpgradeTwiki</code> doesn't deal with custom templates or Plugins, you will have to reinstall these in the new installation
2404             </li>
2405             <li> If you have done tricky stuff with $OS in your existing <code>TWiki.cfg</code> file, then you will need to manually examine the new <code>TWiki.cfg</code> file and possibly put your tricky changes in there manually
2406             </li>
2407             </ul>
2408             <p />
2409             If you use it, and would be kind enough to add your experiences to <a href="http://twiki.org/cgi-bin/view/Codev.UpgradeTwiki" title="'Codev.UpgradeTwiki' on TWiki.org">TWiki:Codev.UpgradeTwiki</a>, it would be much appreciated.  The report of your experience will help to make <code>UpgradeTwiki</code> more robust.
2410             <p />
2411             <a name="ManualUpgradeProcedure"></a>
2412             <h2><a name="Manual_Upgrade_Procedure_from_01"> </a> Manual Upgrade Procedure from 01-Feb-2003 to 01-Sep-2004 Release </h2>
2413             <p />
2414             The following steps describe the upgrade assuming that <code>$TWIKIROOT</code> is the root of your current 01-Feb-2003 release.  As written this will require some downtime.  A process for switching over without downtime is described at the end of this section.
2415             <p />
2416 rizwank 1.1 <ol>
2417             <li> <strong>Back up and prepare</strong>:
2418             <ul>
2419             <li> Back up all existing TWiki directories <code>$TWIKIROOT/bin</code>, <code>$TWIKIROOT/pub</code>, <code>$TWIKIROOT/data</code>, <code>$TWIKIROOT/templates</code>, <code>$TWIKIROOT/lib</code>
2420             </li>
2421             <li> Create a temporary directory and unpack the ZIP file there
2422             </li>
2423             </ul>
2424             </li>
2425             <li> <strong>Update files in TWiki root</strong>:
2426             <ul>
2427             <li> Overwrite all <code>*.html</code> and <code>*.txt</code> files in <code>$TWIKIROOT</code> with the new ones
2428             </li>
2429             </ul>
2430             </li>
2431             <li> <strong>Update template files</strong>:
2432             <ul>
2433             <li> Overwrite all template files in <code>$TWIKIROOT/templates</code> with the new ones
2434             <ul>
2435             <li> If you have customized your templates, make sure to merge those changes back to the new files
2436             </li>
2437 rizwank 1.1 </ul>
2438             </li>
2439             <li> If you have customized skins or loaded new skins, make sure to merge or apply those changes to the new files
2440             </li>
2441             <li> Change to <strong>view</strong> templates and skins:
2442             <ul>
2443             <li> Add <code>%BROADCASTMESSAGE%</code> somewhere on the top of the rendered HTML page (see the new <code>view.tmpl</code> for reference)
2444             </li>
2445             </ul>
2446             </li>
2447             <li> Changes to <strong>edit</strong> templates and skins:
2448             <ul>
2449             <li> Change the form action from <code>preview</code> to <code>save</code>: <br />
2450                        <code>&lt;form name="main" action="%SCRIPTURLPATH%/<b>save</b>%SCRIPTSUFFIX%/%WEB%/%TOPIC%" method="post"&gt;</code>
2451             </li>
2452             <li> Change the topic action to the following: <br />
2453                        <code>%TMPL:DEF{"topicaction"}%</code> <br />
2454                   <code>&lt;input type="submit" class="twikiSubmit" name="action" value="Cancel" id="cancel" /&gt;</code> <br />
2455                   <code>&lt;input type="submit" class="twikiSubmit" name="action" value="Preview" id="preview" /&gt;</code> <br />
2456                   <code>&lt;input type="submit" class="twikiSubmit" name="action" value="Checkpoint" id="checkpoint" /&gt;</code> <br />
2457                   <code>&lt;input type="submit" class="twikiSubmit" name="action" value="QuietSave" id="quietsave" /&gt;</code> <br />
2458 rizwank 1.1            <code>&lt;input type="submit" class="twikiSubmit" name="action" value="Save" id="save" /&gt;%TMPL:END%</code>
2459             </li>
2460             </ul>
2461             </li>
2462             </ul>
2463             </li>
2464             <li> <strong>Update script files</strong>:
2465             <ul>
2466             <li> Overwrite all script files in <code>$TWIKIROOT/bin</code> with the new ones.
2467             <ul>
2468             <li> If necessary, rename the scrips to include the required extension, e.g. <code>.cgi</code>
2469             </li>
2470             </ul>
2471             </li>
2472             <li> Edit <code>$TWIKIROOT/bin/setlib.cfg</code> and point <code>$twikiLibPath</code> to the <strong><em>absolute</em></strong> file path of <code>$TWIKIROOT/lib</code> 
2473             </li>
2474             <li> Edit your existing <code>$TWIKIROOT/bin/.htaccess</code> file to include a directive for the new <code>rdiffauth</code> script:<br />
2475                     <code>&lt;Files "rdiffauth"&gt;</code> <br />
2476                     <code>&nbsp; &nbsp; require valid-user</code> <br />
2477                     <code>&lt;/Files&gt;</code>
2478             </li>
2479 rizwank 1.1 <li> Pay attention to the file and directory permissions, the scripts need to be executable, e.g. <code>chmod 775 $TWIKIROOT/bin/*</code>
2480             <ul>
2481             <li> Certain hosted environments require a <code>755</code> (do so if you get a "Premature end of script headers" messages in the Apache error log)
2482             </li>
2483             </ul>
2484             </li>
2485             <li> For Windows hosts, make sure the correct path to the perl interpreter is changed in the first line of every script file. See also <a class="twikiAnchorLink" href="http://TWiki.org/cgi-bin/view/TWiki/WindowsInstallCookbook#Editing_the_CGI_scripts">WindowsInstallCookbook</a>
2486             </li>
2487             </ul>
2488             </li>
2489             <li> <strong>Update library files</strong>:
2490             <ul>
2491             <li> Overwrite the <code>TWiki.cfg</code> configuration file in <code>$TWIKIROOT/lib</code> with the new one
2492             </li>
2493             <li> Restore the configuration values from the backup. You typically need to configure just the ones in the section "variables that need to be changed when installing on a new server"
2494             </li>
2495             <li> Overwrite the <code>TWiki.pm</code> library in <code>$TWIKIROOT/lib</code> with the new one
2496             </li>
2497             <li> Copy and overwrite all subdirectories below <code>$TWIKIROOT/lib</code> with the new ones. Make sure to preserve any extra Plugins you might have in <code>$TWIKIROOT/lib/TWiki/Plugins</code> 
2498             </li>
2499             <li> Pay attention to the file and directory permissions, the library files should not be executable but the directory files should be, e.g. <code>chmod 664 `find -type f $TWIKIROOT/lib`</code> (for files) and <code>chmod 775 `find -type d $TWIKIROOT/lib`</code> (for directories)
2500 rizwank 1.1 </li>
2501             </ul>
2502             </li>
2503             <li> <strong>Update data files</strong>:
2504             <ul>
2505             <li> Run the <code>bin/testenv</code> script from the browser (e.g. <code>http://localhost/bin/testenv</code>) to verify if the cgi-scripts are running as user <code>nobody</code>. In case not:
2506             <ul>
2507             <li> The <code>*,v</code> RCS repository files delivered with the installation package are locked by user <code>nobody</code> and need to be changed to the user of your cgi-scripts, for example <code>www-data</code>
2508             </li>
2509             <li> Run the <code>testenv</code> script from your browser; in the <font color="#996633"> <strong>Fix</strong> </font> line you can <u>relock</u> all the rcs files <strong>(recommended)</strong>
2510             </li>
2511             <li> Alternatively, execute the shell script commands described in <a class="twikiAnchorLink" href="http://TWiki.org/cgi-bin/view/TWiki/TWikiInstallationGuide#StepTwo">TWikiInstallationGuide#StepTwo</a>
2512             </li>
2513             </ul>
2514             </li>
2515             <li> In the temporary <code>twiki/data/TWiki</code> directory where you unzipped the installation package:
2516             <ul>
2517             <li> Remove the files you do <strong>not</strong> want to upgrade: <code>InterWikis.*</code>, <code>TWikiRegistration.*</code>, <code>TWikiRegistrationPub.*</code>, <code>WebPreferences.*</code>, <code>WebStatistics.*</code> and all <code>WebTopic*</code> files
2518             </li>
2519             </ul>
2520             </li>
2521 rizwank 1.1 <li> Rename in the temporary directory the file <code>$TWIKIROOT/data/TWiki/TWikiPreferences.*</code> to <code>TWikiPreferencesSave.*</code>.
2522             </li>
2523             <li> Move all remaining <code>*.txt</code> and <code>*.txt,v</code> files from the temporary <code>data/TWiki</code> directory to your <code>$TWIKIROOT/data/TWiki</code> directory, overwriting the existing ones
2524             </li>
2525             <li> Merge your original <code>TWikiPreferencesSave.txt</code> settings into <code>$TWIKIROOT/data/TWiki/TWikiPreferences.txt</code>. Notable changes are:
2526             <ul>
2527             <li> New WIKIWEBMASTERNAME setting to avoid notifications being trapped by spam filters
2528             </li>
2529             <li> New ATTACHFILESIZELIMIT setting for maximum size of <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/FileAttachment">FileAttachments</a> in KB, 0 for no limit
2530             </li>
2531             <li> New READTOPICPREFS and TOPICOVERRIDESUSER settings to allow override Preference settings in topics
2532             </li>
2533             <li> Changed FINALPREFERENCES:
2534             <ul>
2535             <li> Set FINALPREFERENCES = PREVIEWBGIMAGE, WIKITOOLNAME, WIKIWEBMASTER, SMTPMAILHOST, SMTPSENDERHOST, ALLOWWEBMANAGE, READTOPICPREFS, TOPICOVERRIDESUSER
2536             </li>
2537             </ul>
2538             </li>
2539             </ul>
2540             </li>
2541             <li> Move the <code>data/_default</code> directory from the temporary location to your <code>$TWIKIROOT/data</code> directory
2542 rizwank 1.1 </li>
2543             <li> Make sure that the directories and files below <code>$TWIKIROOT/data</code> are writable by your cgi-script user
2544             </li>
2545             </ul>
2546             </li>
2547             <li> <strong>Adapt the other webs (all other than <code>TWiki</code> and <code>_default</code>)</strong>:
2548             <ul>
2549             <li> Add <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/WebLeftBar">WebLeftBar</a> topic. See <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/WebLeftBarExample">WebLeftBarExample</a> for a clean example, and <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/WebLeftBarCookbook">WebLeftBarCookbook</a> for more information. (<a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/WebLeftBar">WebLeftBar</a> is used by the <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/PatternSkin">PatternSkin</a> skin)
2550             </li>
2551             <li> Add <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/WebSearchAdvanced">WebSearchAdvanced</a> topic, which has this one line: <br />
2552                     <code>%INCLUDE{"%TWIKIWEB%.WebSearchAdvanced"}%</code>
2553             </li>
2554             <li> Consider changing <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/WebPreferences">WebPreferences</a> settings:
2555             <ul>
2556             <li> New NOAUTOLINK setting to prevent automatic linking of <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/WikiWord">WikiWords</a> and acronyms
2557             </li>
2558             <li> Changed FINALPREFERENCES:
2559             <ul>
2560             <li> Set FINALPREFERENCES = NOSEARCHALL, ATTACHFILESIZELIMIT, WIKIWEBMASTER, WEBCOPYRIGHT, WEBTOPICLIST, DENYWEBVIEW, ALLOWWEBVIEW, DENYWEBCHANGE, ALLOWWEBCHANGE, DENYWEBRENAME, ALLOWWEBRENAME
2561             </li>
2562             </ul>
2563 rizwank 1.1 </li>
2564             </ul>
2565             </li>
2566             </ul>
2567             </li>
2568             <li> <strong>Update pub files</strong>:
2569             <ul>
2570             <li> Move all subdirectories below <code>pub/TWiki</code> from your temporary directory into your <code>$TWIKIROOT/pub/TWiki</code> directory
2571             </li>
2572             <li> Make sure that the directories and files below <code>$TWIKIROOT/pub/TWiki</code> are writable by your cgi-script user
2573             </li>
2574             <li> Move all files in <code>pub/icn</code> directory from the temporary location to your <code>$TWIKIROOT/pub/icn</code> directory
2575             </li>
2576             </ul>
2577             </li>
2578             <li> <strong>Verify installation</strong>:
2579             <ul>
2580             <li> Execute the <code>$TWIKIROOT/bin/testenv</code> script from your browser (e.g. <code>http://localhost/bin/testenv</code>) to see if it reports any issues; address any potential problems
2581             </li>
2582             <li> Test your updated TWiki installation to see if you can view, create, edit and rename topics; upload and move attachments; register users
2583             </li>
2584 rizwank 1.1 <li> Test if the installed Plugins work as expected. You should see the list of installed Plugins in <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/WebHome">TWiki.WebHome</a>
2585             </li>
2586             </ul>
2587             </li>
2588             </ol>
2589             <p />
2590             <strong>Note:</strong> These steps assume a downtime during the time of upgrade. You could install the new version in parallel to the existing one and switch over in an instant without affecting the users. As a guideline, install the new version into <code>$TWIKIROOT/bin1</code>, <code>$TWIKIROOT/lib1</code>, <code>$TWIKIROOT/templates1</code>, <code>$TWIKIROOT/data/TWiki1</code> (from <code>data/TWiki</code>), <code>$TWIKIROOT/pub/TWiki1</code> (from <code>pub/TWiki</code>), and configure <code>TWiki.cfg</code> to point to the same data and pub directory like the existing installation. Once tested and ready to go, reconfigure <code>$TWIKIROOT/bin1/setlib.cfg</code> and <code>$TWIKIROOT/lib1/TWiki.cfg</code>, then rename <code>$TWIKIROOT/bin</code> to <code>$TWIKIROOT/bin2</code>, <code>$TWIKIROOT/bin1</code> to <code>$TWIKIROOT/bin</code>. Do the same with the <code>lib</code>, <code>templates</code> and <code>data/TWiki</code> directories.
2591             <p />
2592             <h2><a name="Known_Issues"> </a> Known Issues </h2>
2593             <p />
2594             <ul>
2595             <li> Check <a href="http://twiki.org/cgi-bin/view/Codev/KnownIssuesOfTWiki01Sep2004" title="'Codev/KnownIssuesOfTWiki01Sep2004' on TWiki.org">TWiki:Codev/KnownIssuesOfTWiki01Sep2004</a> for known issues of TWiki 01-Sep-2004 production release
2596             </li>
2597             </ul>
2598             <p />
2599             -- <a href="http://twiki.org/cgi-bin/view/Main.PeterThoeny" title="'Main.PeterThoeny' on TWiki.org">TWiki:Main.PeterThoeny</a> - 29 Aug 2004 <br />
2600             <p />
2601             <p />
2602             <p />
2603             <hr />
2604             <p />
2605 rizwank 1.1 <h1><a name="TWiki_User_Authentication"> </a> TWiki User Authentication </h1>
2606             <p />
2607             <em>TWiki site access control and user activity tracking options</em>
2608             <p />
2609             TWiki does not authenticate users internally, it depends on the <code>REMOTE_USER</code> environment variable. This variable is set when you enable Basic Authentication (.htaccess) or SSL "secure server" authentication (https protocol).
2610             <p />
2611             TWiki uses visitor identification to keep track of who made changes to topics at what time and to manage a wide range of personal site settings. This gives a complete audit trail of changes and activity.
2612             <p />
2613             <h2><a name="Authentication_Options"> </a> Authentication Options </h2>
2614             <p />
2615             No special installation steps are required if the server is already authenticated. If it isn't, you have these options for controlling user access:
2616             <ol>
2617             <li> <strong>No login at all:</strong> Forget about authentication to make your site completely public - anyone can browse and edit freely, in classic Wiki mode. All visitors are assigned the <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/Main/TWikiGuest">TWikiGuest</a> default identity, so you can't track individual user activity.
2618             <ul>
2619             <li> <strong>How:</strong> Default, no web server configuration necessary
2620             </li>
2621             </ul>
2622             </li>
2623             <li> <strong>No login to view; require login to edit:</strong> Keeping track of who changed what and when, while keeping view access unrestricted is desirable in most TWiki deployments. This option is not suitable if you need <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/TWikiAccessControl">TWikiAccessControl</a> for view restricted content since TWiki does not know who a user is when looking at content.
2624             <ul>
2625             <li> <strong>How:</strong> Use Basic Authentication to control access by protecting key scripts: <code>attach</code>, <code>edit</code>, <code>installpasswd</code>, <code>manage</code>, <code>preview</code>, <code>rename</code>, <code>save</code>, <code>upload</code>. The <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/TWikiInstallationGuide">TWikiInstallationGuide</a> has step-by-step instructions.
2626 rizwank 1.1 </li>
2627             </ul>
2628             </li>
2629             <li> <strong>No login to view <em>unless necessary</em>; require login to edit:</strong> You prefer not to bother the user with login for unrestricted content, but you need <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/TWikiAccessControl">TWikiAccessControl</a> for view restricted content. There are two ways to accomplish this:
2630             <ul>
2631             <li> <strong>How 1:</strong> Use Basic Authentication with Partial Authentication (described below)
2632             </li>
2633             <li> <strong>How 2:</strong> Use one of the Session <a href="http://twiki.org/cgi-bin/view/Plugins" title="'Plugins' on TWiki.org">TWiki:Plugins</a> where you give the user the option to login and logout.
2634             </li>
2635             </ul>
2636             </li>
2637             <li> <strong>Require login to view and edit:</strong> Most restrictive, but TWiki knows who the user is at all times. There are two ways to accomplish this:
2638             <ul>
2639             <li> <strong>How 1:</strong> Use Basic Authentication to authenticate the whole <code>twiki/bin</code> directory. Consult your web server documentation.
2640             </li>
2641             <li> <strong>How 1:</strong> Use SSL (Secure Sockets Layer; HTTPS) to authenticate and secure the whole server. Consult your web server documentation.
2642             </li>
2643             </ul>
2644             </li>
2645             </ol>
2646             <p />
2647 rizwank 1.1 <h3><a name="Partial_Authentication"> </a> Partial Authentication </h3>
2648             <p />
2649             <strong>Tracking by IP address</strong> is an experimental feature, enabled in <code>lib/TWiki.cfg</code>. It lets you combine open access to some functions, with authentication on others, with full user activity tracking:
2650             <p />
2651             <ul>
2652             <li> Normally, the <code><b>REMOTE_USER</b></code> environment variable is set for the scripts that are under authentication. If, for example, the <code><b>edit</b></code>, <code><b>save</b></code> and <code><b>preview</b></code> scripts are authenticated, but not <code><b>view</b></code>, you would get your <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/WikiName">WikiName</a> in <code><b>preview</b></code> for the <code><b>%WIKIUSERNAME%</b></code> variable, but <code><b>view</b></code> will show <code><b>TWikiGuest</b></code> instead of your WikiName.
2653             </li>
2654             <li> TWiki can be configured to remember the IP address/username pair whenever an authentication happens (edit topic, attach file). Once remembered, the non-authenticated scripts, like <code><b>view</b></code>, will show the correct username instead of <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/Main/TWikiGuest">TWikiGuest</a>.
2655             </li>
2656             <li> Enable this feature by setting the <code><b>$doRememberRemoteUser</b></code> flag in <code>TWiki.cfg</code>. TWiki then persistently stores the IP address/username pairs in the file, <code>$remoteUserFilename</code>, which is <code>"$dataDir/remoteusers.txt"</code> by default.
2657             </li>
2658             <li> Copy the <code>view</code> script to <code>viewauth</code> (or better, create a symbolic link)
2659             </li>
2660             <li> Add <code>viewauth</code> to the list of authenticated scripts in the <code>twiki/bin/.htaccess</code> file. The <code>view</code> script should not be listed in the <code>.htaccess</code> file.
2661             </li>
2662             <li> <img src="./pub/TWiki/TWikiDocGraphics/warning.gif" border="0" alt="ALERT!" width="16" height="16" /> This approach can fail if the IP address changes due to dynamically assigned IP addresses or proxy servers. 
2663             </li>
2664             </ul>
2665             <p />
2666             <strong>Quick Authentication Test</strong> - Use the %WIKIUSERNAME% variable to return your current identity:
2667             <p />
2668 rizwank 1.1 <ul>
2669             <li> You are <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/Main/TWikiGuest">TWikiGuest</a> 
2670             </li>
2671             </ul>
2672             <p />
2673             <h2><a name="TWiki_Username_vs_Login_Username"> </a> TWiki Username vs. Login Username </h2>
2674             <p />
2675             This section applies only if your TWiki site is installed on a server that is both <strong>authenticated</strong> and on an <strong>intranet</strong>.
2676             <p />
2677             TWiki internally manages two usernames: Login Username and TWiki Username.
2678             <p />
2679             <ul>
2680             <li> <strong>Login Username:</strong> When you login to the intranet, you use your existing login username, ex: <code><b>pthoeny</b></code>. This name is normally passed to TWiki by the <code><b>REMOTE_USER</b></code> environment variable, and used internally. Login Usernames are maintained by your system administrator.
2681             </li>
2682             </ul>
2683             <p />
2684             <ul>
2685             <li> <strong>TWiki Username:</strong> Your name in <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/WikiNotation">WikiNotation</a>, ex: <code><b>PeterThoeny</b></code>, is recorded when you register using <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/TWikiRegistration">TWikiRegistration</a>; doing so also generates a personal home page in the Main web.
2686             </li>
2687             </ul>
2688             <p />
2689 rizwank 1.1 TWiki can automatically map an Intranet (Login) Username to a TWiki Username, provided that the username pair exists in the <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/Main/TWikiUsers">TWikiUsers</a> topic. This is also handled automatically when you register.
2690             <p />
2691             <ul>
2692             <li> <img src="./pub/TWiki/TWikiDocGraphics/warning.gif" border="0" alt="ALERT!" width="16" height="16" /> In the original TWiki distribution, in <code><b>twiki/data</b></code>, there are two registration form topics, <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/TWikiRegistration">TWikiRegistration</a> and <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/TWikiRegistrationPub">TWikiRegistrationPub</a>. The original form includes an intranet Login Username field. For Basic Authentication, the original form is replaced by the Pub version. If you started using TWiki on Basic Authentication and want to change, you have to switch back forms for future use, and manually correct the existing entries, by editing <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/Main/TWikiUsers">TWikiUsers</a>, adding the Login Username for each member - <code>PeterThoeny - pthoeny - 01 Jan 1999</code> -  and also in the <code><b>.htpasswd</b></code> file, where you can either replace the <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/WikiName">WikiNames</a> or duplicate the entries and have both, so both usernames will work. 
2693             </li>
2694             </ul>
2695             <p />
2696             <blockquote>
2697             <strong><em>NOTE:</em></strong> <strong>To correctly enter a <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/WikiName">WikiName</a></strong> - your own or someone else's - be sure to include the Main web name in front of the Wiki username, followed by a period, and no spaces. Ex:
2698             <div align="center"> <code><b>Main.WikiUsername</b></code> or <code><b>%MAINWEB%.WikiUsername</b></code> </div>
2699             This points <code><b>WikiUser</b></code> to the TWiki.Main web, where user registration pages are stored, no matter which web it's entered in. Without the web prefix, the name appears as a <span class="twikiNewLink" style='background : #FFFFCE;'><font color="#0000FF">NewTopic</font><a href="http://TWiki.org/cgi-bin/edit/TWiki/NewTopic?topicparent=TWiki.TWikiDocumentation"><sup>?</sup></a></span> everywhere but in the Main web.
2700             </blockquote>
2701             <p />
2702             <a name="ChangingPasswords"></a>
2703             <h2><a name="Changing_Passwords"> </a> Changing Passwords </h2>
2704             <p />
2705             Change and reset passwords using forms on regular pages. Use <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/TWikiAccessControl">TWikiAccessControl</a> to restrict use as required.
2706             <p />
2707             <ul>
2708             <li> The <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/ChangePassword">ChangePassword</a> form ( <code><b>TWiki/ChangePassword</b></code> ):
2709             </li>
2710 rizwank 1.1 </ul>
2711             <p />
2712             <blockquote style="background-color:#f5f5f5">
2713             <p />
2714             <p />
2715             <strong><em>Forgot your old password?</em></strong> Then use <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/ResetPassword">ResetPassword</a> instead. Please only use ResetPassword in case you really forgot your password. Thank you.
2716             <p />
2717             <form name="passwd" action="http://TWiki.org/cgi-bin/manage/TWiki/WebHome" method="post">
2718             <table border="1" cellspacing="0" cellpadding="1"> <tr><td align="right">   Your <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/WikiName">WikiName</a>:  </td><td>  <input type="text" name="username" value="" size="40" /> <code><font color="red">**</font></code>  </td></tr>
2719             <tr><td align="right">   Old password:  </td><td>  <input type="password" name="oldpassword" size="40" /> <code><font color="red">**</font></code>  </td></tr>
2720             <tr><td align="right">   New password:  </td><td>  <input type="password" name="password" size="40" /> <code><font color="red">**</font></code>  </td></tr>
2721             <tr><td align="right">   Retype new password:  </td><td>  <input type="password" name="passwordA" size="40" /> <code><font color="red">**</font></code>  </td></tr>
2722             <tr><td align="right">   &nbsp;<input type="hidden" name="TopicName" value="ChangePassword" />  </td><td>  <input type="hidden" name="action" value="changePassword" /> <input type="submit" value=" Request password change " /> &nbsp;&nbsp; (Fields marked <code><Font color="red">**</font></code> are required)  </td></tr>
2723             </table>
2724             </form>
2725             <p />
2726             After submitting this form your password will be changed.
2727             <p />
2728             If you have questions please contact the TWiki webmaster <a href="mailto:webmaster@your.company">webmaster@your.company</a>.
2729             <p />
2730             <p />
2731 rizwank 1.1 </blockquote>
2732             <p />
2733             <ul>
2734             <li> The <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/ResetPassword">ResetPassword</a> form ( <code><b>TWiki/ResetPassword</b></code> ):
2735             </li>
2736             </ul>
2737             <p />
2738             <blockquote style="background-color:#f5f5f5">
2739             <p />
2740             <p />
2741             Please only use this <strong>ResetPassword</strong> form in case you really forgot your password. Otherwise just change it using <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/ChangePassword">ChangePassword</a>. Thank you.
2742             <p />
2743             <form name="passwd" action="http://TWiki.org/cgi-bin/passwd/Main/WebHome" method="post">
2744             <table border="1" cellspacing="0" cellpadding="1"> <tr><td align="right">   Your <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/WikiName">WikiName</a>:  </td><td>  <input type="text" name="username" value="" size="40" /> <code><font color="red">**</font></code>  </td></tr>
2745             <tr><td align="right">   New password:  </td><td>  <input type="password" name="password" size="40" /> <code><font color="red">**</font></code>  </td></tr>
2746             <tr><td align="right">   Retype new password:  </td><td>  <input type="password" name="passwordA" size="40" /> <code><font color="red">**</font></code>  </td></tr>
2747             <tr><td align="right">   &nbsp;<input type="hidden" name="TopicName" value="ResetPassword" /> <input type="hidden" name="installPasswd" value="requestReset" />  </td><td>  <input type="submit" value=" Request password reset " /> &nbsp;&nbsp; (Fields marked <code><Font color="red">**</font></code> are required)  </td></tr>
2748             </table>
2749             </form>
2750             <p />
2751             After submitting this form you will see a page with your <strong>new password</strong> appearing <strong>encrypted</strong>.
2752 rizwank 1.1 <p />
2753             You will have to e-mail this information to the Wiki webmaster, <a href="mailto:webmaster@your.company">webmaster@your.company</a>, who will set your account to use the new password.
2754             <p />
2755             <p />
2756             </blockquote>
2757             <p />
2758             -- <a href="http://twiki.org/cgi-bin/view/Main.MikeMannix" title="'Main.MikeMannix' on TWiki.org">TWiki:Main.MikeMannix</a> - 19 May 2002 <br />
2759             -- <a href="http://twiki.org/cgi-bin/view/Main.PeterThoeny" title="'Main.PeterThoeny' on TWiki.org">TWiki:Main.PeterThoeny</a> - 25 Apr 2004
2760             <p />
2761             <p />
2762             <p />
2763             <hr />
2764             <p />
2765             <p />
2766             <h1><a name="TWiki_Access_Control"> </a> TWiki Access Control </h1>
2767             <p />
2768             <em>Restricting read and write access to topics and webs, by Users and groups</em>
2769             <p />
2770             <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/TWikiAccessControl">TWikiAccessControl</a> allows you restrict access to single topics and entire webs, by individual user and by user Groups, in three areas: view; edit &amp; attach; and rename/move/delete. Access control, combined with <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/TWikiUserAuthentication">TWikiUserAuthentication</a>, lets you easily create and manage an extremely flexible, fine-grained privilege system.
2771             <p />
2772             <h2><a name="An_Important_Control_Considerati"> </a> An Important Control Consideration </h2>
2773 rizwank 1.1 <p />
2774             Open, freeform editing is the essence of <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/WikiCulture">WikiCulture</a> - what makes TWiki different and often more effective than other collaboration tools. For that reason, it is strongly recommended that decisions to restrict read or write access to a web or a topic are made with care - the more restrictions, the less Wiki in the mix. Experience shows that <em>unrestricted write access</em> works very well because:
2775             <p />
2776             <ul>
2777             <li> <strong>Peer influence</strong> is enough to ensure that only relevant content is posted.
2778             </li>
2779             </ul>
2780             <p />
2781             <ul>
2782             <li> <strong>Peer editing</strong> - the ability for anyone to rearrange all content on a page - keeps topics focussed.
2783             </li>
2784             </ul>
2785             <p />
2786             <ul>
2787             <li> In TWiki, content is transparently preserved under <strong>revision control</strong>:
2788             <ul>
2789             <li> Edits can be undone by the <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/Main/TWikiAdminGroup">TWikiAdminGroup</a> (the default administrators group; see <a class="twikiAnchorLink" href="#ManagingGroups">#ManagingGroups</a>).
2790             </li>
2791             <li> Users are encouraged to edit and refactor (condense a long topic), since there's a safety net.
2792             </li>
2793             </ul>
2794 rizwank 1.1 </li>
2795             </ul>
2796             <p />
2797             As a <strong>collaboration guideline</strong>:
2798             <p />
2799             <ul>
2800             <li> Create broad-based Groups (for more and varied input), and...
2801             </li>
2802             <li> Avoid creating view-only Users (if you can read it, you should be able to contribute to it).
2803             </li>
2804             </ul>
2805             <p />
2806             <h2><a name="Authentication_vs_Access_Control"> </a> Authentication vs. Access Control </h2>
2807             <p />
2808             <strong>Authentication:</strong> Identifies who a user is based on a login procedure. See <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/TWikiUserAuthentication">TWikiUserAuthentication</a>.
2809             <p />
2810             <strong>Access control:</strong> Restrict access to content based on users and groups once a user is identified.
2811             <p />
2812             <h2><a name="Users_and_Groups"> </a> Users and Groups </h2>
2813             <p />
2814             Access control is based on the familiar concept of Users and Groups. Users are defined by their <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/WikiName">WikiNames</a>. They can then be organized in unlimited combinations by inclusion in one or more user Groups. For convenience, Groups can also be included in other Groups. 
2815 rizwank 1.1 <p />
2816             <h3><a name="Managing_Users"> </a> Managing Users </h3>
2817             <p />
2818             A user can create an account in <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/TWikiRegistration">TWikiRegistration</a>. The following actions are performed:
2819             <p />
2820             <ul>
2821             <li> <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/WikiName">WikiName</a> and encrypted password are recorded in <code>.htpasswd</code> if authentication is enabled.
2822             </li>
2823             <li> A confirmation e-mail is sent to the user.
2824             </li>
2825             <li> A user home page with the <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/WikiName">WikiName</a> of the user is created in the Main web.
2826             </li>
2827             <li> The user is added to the <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/Main/TWikiUsers">TWikiUsers</a> topic.
2828             </li>
2829             </ul>
2830             <p />
2831             Users can be authenticated using Basic Authentication (htaccess) or SSL (secure server). In either case, <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/TWikiUserAuthentication">TWikiUserAuthentication</a> is required in order to track user identities, and use User and Group access control.
2832             <p />
2833             The default visitor name is <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/Main/TWikiGuest">TWikiGuest</a>. This is the non-authenticated user.
2834             <p />
2835             <a name="ManagingGroups"></a>
2836 rizwank 1.1 <h3><a name="Managing_Groups"> </a> Managing Groups </h3>
2837             <p />
2838             Groups are defined by group topics created in the <code><b>Main</b></code> web, like the <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/Main/TWikiAdminGroup">TWikiAdminGroup</a>. To create a new group:
2839             <ol>
2840             <li> <code><b>Edit</b></code> <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/Main/TWikiGroups">TWikiGroups</a> by entering a new topic with a name that ends in <code><b>Group</b></code>. Example:
2841             <ul>
2842             <li> <code><b>SomeGroup</b></code>
2843             </li>
2844             </ul>
2845             </li>
2846             <li> <strong>Set Preferences</strong> for two Variables in the new group topic:
2847             <ul>
2848             <li> <code><b>Set GROUP = &lt; list of Users and/or Groups &gt;</b></code>
2849             </li>
2850             <li> <code><b>Set ALLOWTOPICCHANGE = &lt; list of Users and/or Groups &gt;</b></code>
2851             </li>
2852             <li> The GROUP variable is a comma-separated list of Users and/or other Groups. Example:
2853             <ul>
2854             <li> <code><b>Set GROUP = Main.SomeUser, Main.OtherUser, Main.SomeGroup</b></code>
2855             </li>
2856             </ul>
2857 rizwank 1.1 </li>
2858             <li> ALLOWTOPICCHANGE defines who is allowed to change the group topic; it is a comma delimited list of Users and Groups. You typically want to restrict that to the members of the group itself, so it should contain the name of the topic. (This prevents Users not in the Group from editing the topic to give themselves or others access. For example, for the TWikiAdminGroup topic write:
2859             </li>
2860             <li> <code><b>Set ALLOWTOPICCHANGE = Main.TWikiAdminGroup</b></code>
2861             </li>
2862             </ul>
2863             </li>
2864             </ol>
2865             <p />
2866             <h2><a name="Restricting_Write_Access"> </a> Restricting Write Access </h2>
2867             <p />
2868             You can define who is allowed to make changes to a web or a topic. 
2869             <p />
2870             <h3><a name="Deny_Editing_by_Topic"> </a> Deny Editing by Topic </h3>
2871             <p />
2872             Denying editing of a topic also restricts file attachment; both privileges are assigned together.
2873             <ul>
2874             <li> Define one or both of these variables in a topic, preferably at the end of the page:
2875             <ul>
2876             <li> <code><b>Set DENYTOPICCHANGE = &lt; list of Users and Groups &gt;</b></code>
2877             </li>
2878 rizwank 1.1 <li> <code><b>Set ALLOWTOPICCHANGE = &lt; list of Users and Groups &gt;</b></code>
2879             </li>
2880             </ul>
2881             </li>
2882             </ul>
2883             <p />
2884             <ul>
2885             <li> DENYTOPICCHANGE defines Users or Groups that <strong>are not</strong> allowed to make changes to the topic, with a comma-delimited list. Example:
2886             <ul>
2887             <li> <code><b>Set DENYTOPICCHANGE = Main.SomeBadBoy, Main.SomeBadGirl, Main.SomeHackerGroup</b></code>
2888             </li>
2889             </ul>
2890             </li>
2891             </ul>
2892             <p />
2893             <ul>
2894             <li> ALLOWTOPICCHANGE defines Users or Groups that <strong>are</strong> allowed to make changes to the topic. It is a comma delimited list of Users and Groups. Example:
2895             <ul>
2896             <li> <code><b>Set ALLOWTOPICCHANGE = Main.SomeGoodGuy, Main.SomeGoodGirl, Main.TWikiAdminGroup</b></code>
2897             </li>
2898             </ul>
2899 rizwank 1.1 </li>
2900             </ul>
2901             <p />
2902             <ul>
2903             <li> DENYTOPICCHANGE is evaluated before ALLOWTOPICCHANGE. Access is denied if the authenticated person is in the DENYTOPICCHANGE list, or not in the ALLOWTOPICCHANGE list. Access is granted in case DENYTOPICCHANGE and ALLOWTOPICCHANGE is not defined.
2904             </li>
2905             </ul>
2906             <p />
2907             <h3><a name="Deny_Editing_by_Web"> </a> Deny Editing by Web </h3>
2908             <p />
2909             Restricting web-level editing blocks creating new topics, changing topics or attaching files.
2910             <p />
2911             <ul>
2912             <li> Define one or both of these variable in the <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/WebPreferences">WebPreferences</a> topic:
2913             <ul>
2914             <li> <code><b>Set DENYWEBCHANGE = &lt; list of Users and Groups &gt;</b></code>
2915             </li>
2916             <li> <code><b>Set ALLOWWEBCHANGE = &lt; list of Users and Groups &gt;</b></code>
2917             </li>
2918             </ul>
2919             </li>
2920 rizwank 1.1 </ul>
2921             <p />
2922             The same rules apply as for restricting topics, with these additions:
2923             <ul>
2924             <li> DENYTOPICCHANGE (in topic) overrides DENYWEBCHANGE (in WebPreferences)
2925             </li>
2926             <li> ALLOWTOPICCHANGE (in topic) overrides ALLOWWEBCHANGE (in WebPreferences)
2927             </li>
2928             </ul>
2929             <p />
2930             <h2><a name="Restricting_Rename_Access"> </a> Restricting Rename Access </h2>
2931             <p />
2932             You can define who is allowed to rename, move or delete a topic, or rename a web.
2933             <p />
2934             <h3><a name="Deny_Renaming_by_Topic"> </a> Deny Renaming by Topic </h3>
2935             <p />
2936             To allow a user to rename, move or delete a topic, they also need write (editing) permission.  They also need write access to change references in referring topics.
2937             <p />
2938             <ul>
2939             <li> Define one or both of these variables in a topic, preferably at the end of the topic:
2940             <ul>
2941 rizwank 1.1 <li> <code><b>Set DENYTOPICRENAME = &lt; list of Users and Groups &gt;</b></code>
2942             </li>
2943             <li> <code><b>Set ALLOWTOPICRENAME = &lt; list of Users and Groups &gt;</b></code>
2944             </li>
2945             </ul>
2946             </li>
2947             </ul>
2948             <p />
2949             <ul>
2950             <li> DENYTOPICCRENAME defines Users or Groups that <strong>are not</strong> allowed to rename the topic. It is a comma delimited list of Users and Groups. Example:
2951             <ul>
2952             <li> <code><b>Set DENYTOPICRENAME = Main.SomeBadBoy, Main.SomeBadGirl, Main.SomeHackerGroup</b></code>
2953             </li>
2954             </ul>
2955             </li>
2956             </ul>
2957             <p />
2958             <ul>
2959             <li> ALLOWTOPICRENAME defines Users or Groups that <strong>are</strong> allowed to rename the topic. It is a comma delimited list of Users and Groups. Example:
2960             <ul>
2961             <li> <code><b>Set ALLOWTOPICRENAME = Main.SomeGoodGuy, Main.SomeGoodGirl, Main.TWikiAdminGroup</b></code>
2962 rizwank 1.1 </li>
2963             </ul>
2964             </li>
2965             </ul>
2966             <p />
2967             <ul>
2968             <li> DENYTOPICRENAME is evaluated before ALLOWTOPICRENAME. Access is denied if the authenticated person is in the DENYTOPICRENAME list, or not in the ALLOWTOPICRENAME list. Access is granted in case DENYTOPICRENAME and ALLOWTOPICRENAME is not defined.
2969             </li>
2970             </ul>
2971             <p />
2972             <h3><a name="Deny_Renaming_by_Web"> </a> Deny Renaming by Web </h3>
2973             <p />
2974             You can define restrictions of who is allowed to rename a TWiki web.
2975             <p />
2976             <ul>
2977             <li> Define one or both of these variable in the <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/WebPreferences">WebPreferences</a> topic:
2978             <ul>
2979             <li> <code><b>Set DENYWEBRENAME = &lt; list of Users and Groups &gt;</b></code>
2980             </li>
2981             <li> <code><b>Set ALLOWWEBRENAME = &lt; list of Users and Groups &gt;</b></code>
2982             </li>
2983 rizwank 1.1 </ul>
2984             </li>
2985             </ul>
2986             <p />
2987             The same rules apply as for topics, with these additions:
2988             <ul>
2989             <li> DENYTOPICRENAME (in topic) overrides DENYWEBRENAME (in WebPreferences)
2990             </li>
2991             <li> ALLOWTOPICRENAME (in topic) overrides ALLOWWEBRENAME (in WebPreferences)
2992             </li>
2993             </ul>
2994             <p />
2995             <h2><a name="Restricting_Read_Access"> </a> Restricting Read Access </h2>
2996             <p />
2997             You can define who is allowed to see a web.
2998             <p />
2999             <h3><a name="Deny_Viewing_by_Topic"> </a> Deny Viewing by Topic </h3>
3000             <p />
3001             <img src="./pub/TWiki/TWikiDocGraphics/warning.gif" border="0" alt="ALERT!" width="16" height="16" /> Technically it is possible to restrict read access to an individual topic based on <code><b>DENYTOPICVIEW</b></code> / <code><b>ALLOWTOPICVIEW</b></code> preferences variables, provided that the view script is authenticated. However this setup is not recommended since all content is searchable within a web - a search will turn up view restricted topics.
3002             <p />
3003             <h3><a name="Deny_Viewing_by_Web"> </a> Deny Viewing by Web </h3>
3004 rizwank 1.1 <p />
3005             You can define restrictions of who is allowed to view a TWiki web. You can restrict access to certain webs to selected Users and Groups, by:
3006             <p />
3007             <ul>
3008             <li> <strong>obfuscating webs:</strong> Insecure but handy method to hide new webs until content is ready for deployment.
3009             </li>
3010             <li> <strong>authenticating all webs and restricting selected webs:</strong> Topic access in all webs is authenticated, and selected webs have restricted access.
3011             </li>
3012             <li> <strong>authenticating and restricting selected webs only:</strong> Provide unrestricted viewing access to open webs, with authentication and restriction only on selected webs.
3013             </li>
3014             </ul>
3015             <p />
3016             <h4><a name="Obfuscate_Webs"> </a> Obfuscate Webs </h4>
3017             <p />
3018             The idea is to keep a web hidden by not publishing its URL and by preventing the <code><b>all webs</b></code> search option from accessing obfuscated webs. Do so by enabling the <code><b>NOSEARCHALL</b></code> variable in <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/WebPreferences">WebPreferences</a>:
3019             <ul>
3020             <li> <code><b>Set NOSEARCHALL = on</b></code>
3021             </li>
3022             </ul>
3023             <p />
3024             This setup can be useful to hide a new web until content its ready for deployment.
3025 rizwank 1.1 <p />
3026             <img src="./pub/TWiki/TWikiDocGraphics/warning.gif" border="0" alt="ALERT!" width="16" height="16" /> <strong>Obfuscating webs is insecure</strong>, as anyone who knows the URL can access the web.
3027             <p />
3028             <h4><a name="Authenticate_all_Webs_and_Restri"> </a> Authenticate all Webs and Restrict Selected Webs </h4>
3029             <p />
3030             Use the following setup to authenticate users for topic viewing in all webs and to restrict access to selected webs:
3031             <p />
3032             <ol>
3033             <li> <strong>Restrict</strong> view access to selected Users and Groups. Set one or both of these variables in its <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/WebPreferences">WebPreferences</a> topic:
3034             <ul>
3035             <li> <code><b>Set DENYWEBVIEW = &lt; list of Users and Groups &gt;</b></code>
3036             </li>
3037             <li> <code><b>Set ALLOWWEBVIEW = &lt; list of Users and Groups &gt;</b></code>
3038             </li>
3039             <li> <strong><em>Note:</em></strong> <code>DENYWEBVIEW</code> is evaluated before <code>ALLOWWEBVIEW</code>. Access is denied if the authenticated person is in the <code>DENYWEBVIEW</code> list, or not in the <code>ALLOWWEBVIEW</code> list. Access is granted in case <code>DENYWEBVIEW</code> and <code>ALLOWWEBVIEW</code> is not defined.
3040             </li>
3041             </ul>
3042             </li>
3043             <li> <strong>Hide</strong> the web from an "all webs" search. Enable this restriction with the <code><b>NOSEARCHALL</b></code> variable in its <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/WebPreferences">WebPreferences</a> topic:
3044             <ul>
3045             <li> <code><b>Set NOSEARCHALL = on</b></code>
3046 rizwank 1.1 </li>
3047             </ul>
3048             </li>
3049             <li> <strong>Add</strong> <code><b>view</b></code> to the list of authenticated scripts in the <code>.htaccess</code> file.
3050             </li>
3051             </ol>
3052             <p />
3053             <img src="./pub/TWiki/TWikiDocGraphics/help.gif" border="0" alt="HELP" width="16" height="16" /> This method only works if the <code><b>view</b></code> script is authenticated, which means that all Users have to login, even for read-only access. (An open guest account, like <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/Main/TWikiGuest">TWikiGuest</a>, can get around this, allowing anyone to login to a common account with, for example, view-only access for public webs.) <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/TWikiInstallationGuide">TWikiInstallationGuide</a> has more on Basic Authentication, using the <code><b>.htaccess</b></code> file.
3054             <p />
3055             <h4><a name="Authenticate_and_Restricting_Sel"> </a> Authenticate and Restricting Selected Webs Only </h4>
3056             <p />
3057             Use the following setup to provide unrestricted viewing access to open webs, with authentication only on selected webs:
3058             <p />
3059             <ol>
3060             <li> <strong>Restrict</strong> view access to selected Users and Groups. Set one or both of these variables in its <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/WebPreferences">WebPreferences</a> topic:
3061             <ul>
3062             <li> <code><b>Set DENYWEBVIEW = &lt; list of Users and Groups &gt;</b></code>
3063             </li>
3064             <li> <code><b>Set ALLOWWEBVIEW = &lt; list of Users and Groups &gt;</b></code>
3065             </li>
3066             <li> <strong><em>Note:</em></strong> <code>DENYWEBVIEW</code> is evaluated before <code>ALLOWWEBVIEW</code>. Access is denied if the authenticated person is in the <code>DENYWEBVIEW</code> list, or not in the <code>ALLOWWEBVIEW</code> list. Access is granted in case <code>DENYWEBVIEW</code> and <code>ALLOWWEBVIEW</code> is not defined.
3067 rizwank 1.1 </li>
3068             </ul>
3069             </li>
3070             <li> <strong>Hide</strong> the web from an "all webs" search. Enable this restriction with the <code><b>NOSEARCHALL</b></code> variable in its <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/WebPreferences">WebPreferences</a> topic:
3071             <ul>
3072             <li> <code><b>Set NOSEARCHALL = on</b></code>
3073             </li>
3074             </ul>
3075             </li>
3076             <li> <strong>Enable</strong> the <code><b>$doRememberRemoteUser</b></code> flag in <code><b>lib/TWiki.cfg</b></code> as described in <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/TWikiUserAuthentication">TWikiUserAuthentication</a>. TWiki will now remember the IP address of an authenticated user. 
3077             </li>
3078             <li> <strong>Copy</strong> the <code><b>view</b></code> script to <code><b>viewauth</b></code> (or better, create a symbolic link) 
3079             </li>
3080             <li> <strong>Add</strong> <code><b>viewauth</b></code> to the list of authenticated scripts in the <code>.htaccess</code> file. The <code><b>view</b></code> script should not be listed in the <code>.htaccess</code> file.
3081             </li>
3082             </ol>
3083             <p />
3084             When a user accesses a web where you enabled view restriction, TWiki will redirect from the <code>view</code> script to the <code>viewauth</code> script once (this happens only if the user has never edited a topic). Doing so will ask for authentication. The <code>viewauth</code> script shows the requested topic if the user could log on and if the user is authorized to see that web.
3085             <p />
3086             <img src="./pub/TWiki/TWikiDocGraphics/warning.gif" border="0" alt="ALERT!" width="16" height="16" /> <strong>Authenticating webs is not very secure</strong>, as there is a way to circumvent the read access restriction. It can be useful in certain situations - for example, to simplify site organization and clutter, by hiding low traffic webs - but is not recommended for securing sensitive content.
3087             <p />
3088 rizwank 1.1 <p />
3089             <h2><a name="Hiding_Control_Settings"> </a> Hiding Control Settings </h2>
3090             <p />
3091             <img src="./pub/TWiki/TWikiDocGraphics/tip.gif" border="0" alt="TIP" width="16" height="16" /> To hide access control settings from normal browser viewing, place them in comment markers.
3092             <p />
3093             <style="background-color:#f5f5f5">
3094             <code>&lt;!--</code> <br />
3095             <code>&nbsp;&nbsp; * Set DENYTOPICCHANGE = Main.SomeGroup</code> <br />
3096             <code>--&gt;</code>
3097             </style>
3098             <p />
3099             <a name="SuperAdminGroup"></a>
3100             <h2><a name="The_SuperAdminGroup"> </a> The SuperAdminGroup </h2>
3101             <p />
3102             By mistyping a user or group name in the ALLOWTOPICCHANGE setting, it's possible to lock a topic so that no-one can edit it from a browser. To avoid this, you can create Web-based <strong>superusers</strong>:
3103             <ul>
3104             <li> Set the <code><b>$superAdminGroup</b></code> variable in <code><b>lib/TWiki.cfg</b></code> to the name of a group of Users who are always allowed to edit/view topics.
3105             </li>
3106             </ul>
3107             <blockquote style="background-color:#f5f5f5">
3108             <pre>
3109 rizwank 1.1 $superAdminGroup = "TWikiAdminGroup";
3110             </pre>
3111             </blockquote>
3112             <ul>
3113             <li> The default setting is not to have superusers.
3114             </li>
3115             </ul>
3116             <p />
3117             -- <a href="http://twiki.org/cgi-bin/view/Main.PeterThoeny" title="'Main.PeterThoeny' on TWiki.org">TWiki:Main.PeterThoeny</a> - 04 May 2002 <br />
3118             -- <a href="http://twiki.org/cgi-bin/view/Main.MikeMannix" title="'Main.MikeMannix' on TWiki.org">TWiki:Main.MikeMannix</a> - 12 May 2002 
3119             <p />
3120             <p />
3121             <hr />
3122             <p />
3123             <h1><a name="TWiki_Text_Formatting"> </a> TWiki Text Formatting </h1>
3124             <p />
3125             Working in TWiki is as easy as typing in text - <strong>exactly like email</strong>. You don't need to know HTML, though you can use it if you prefer. Links to topics are created automatically when you enter <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/WikiWord">WikiWords</a>. And TWiki shorthand gives you all the power of HTML with a simple coding system that takes no time to learn. It's all laid out below - refer back to this page in a pop-up window from the <strong>Edit</strong> screen.
3126             <p />
3127             <a name="TWikiShorthand"></a>
3128             <h2><a name="TWiki_Editing_Shorthand"> </a> TWiki Editing Shorthand </h2>
3129             <p />
3130 rizwank 1.1 <table border="1" cellpadding="3" cellspacing="1" bgcolor="#000000">
3131             <tr bgcolor="#ffffff">
3132             <td>
3133              <strong>Formatting Command:</strong>
3134             </td><td>
3135              <strong>Example: You write:</strong>
3136             </td><td>
3137              <strong>You get:</strong>
3138             </td>
3139             </tr>
3140             <tr bgcolor="#ffffff">
3141             <td valign="top">
3142              <strong>Paragraphs:</strong> <br />
3143              Blank lines will create new paragraphs.
3144             </td><td valign="top">
3145             <span style='background : #FFFFCC;'><font color="#990000">
3146             <pre>
3147             1st paragraph
3148             
3149             2nd paragraph
3150             </pre>
3151 rizwank 1.1 </font></span>
3152             </td><td valign="top">
3153             1st paragraph
3154             <p />
3155             2nd paragraph
3156             </td>
3157             </tr>
3158             <tr bgcolor="#ffffff">
3159             <td valign="top">
3160              <strong>Headings:</strong> <br />
3161              At least three dashes at the beginning of a line, followed by plus signs and the heading text. One plus creates a level 1 heading (most important), two pluses a level 2 heading; the maximum is level 6. <strong><em>Note:</em></strong> A Table of Content can be created automatically with the <code>%TOC%</code> variable, see <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/TWikiVariables">TWikiVariables</a>. Any heading text after <code>!!</code> is excluded from the TOC; for example, write <code>---+!! text</code> if you do not want to list a header in the TOC.
3162             </td><td valign="top">
3163             <span style='background : #FFFFCC;'><font color="#990000">
3164             <pre>
3165             ---++ Sushi
3166             
3167             ---+++ Maguro
3168             </pre>
3169             </font></span>
3170             </td><td valign="top">
3171             <h2 >Sushi</h2>
3172 rizwank 1.1 <p />
3173             <h3 >Maguro</h3>
3174             </td>
3175             </tr>
3176             <tr bgcolor="#ffffff">
3177             <td valign="top">
3178              <strong>Bold Text:</strong> <br />
3179              Words get <strong>bold</strong> by enclosing them in <code>*</code> asterisks.
3180             </td><td valign="top">
3181             <span style='background : #FFFFCC;'><font color="#990000">
3182             <pre>
3183             *Bold*
3184             </pre>
3185             </font></span>
3186             </td><td valign="top">
3187             <strong>Bold</strong>
3188             </td>
3189             </tr>
3190             <tr bgcolor="#ffffff">
3191             <td valign="top">
3192              <strong>Italic Text:</strong> <br />
3193 rizwank 1.1  Words get <em>italic</em> by enclosing them in <code>_</code> underscores.
3194             </td><td valign="top">
3195             <span style='background : #FFFFCC;'><font color="#990000">
3196             <pre>
3197             _Italic_
3198             </pre>
3199             </font></span>
3200             </td><td valign="top">
3201             <em>Italic</em>
3202             </td>
3203             </tr>
3204             <tr bgcolor="#ffffff">
3205             <td valign="top">
3206              <strong>Bold Italic:</strong> <br />
3207              Words get <em>_bold italic</em> by enclosing them in <code>_</code> double-underscores.
3208             </td><td valign="top">
3209             <span style='background : #FFFFCC;'><font color="#990000">
3210             <pre>
3211             __Bold italic__
3212             </pre>
3213             </font></span>
3214 rizwank 1.1 </td><td valign="top">
3215             <strong><em>Bold italic</em></strong>
3216             </td>
3217             </tr>
3218             <tr bgcolor="#ffffff">
3219             <td valign="top">
3220              <strong>Fixed Font:</strong> <br />
3221              Words get shown in <code>fixed font</code> by enclosing them in <code>=</code> equal signs.
3222             </td><td valign="top">
3223             <span style='background : #FFFFCC;'><font color="#990000">
3224             <pre>
3225             =Fixed font=
3226             </pre>
3227             </font></span>
3228             </td><td valign="top">
3229             <code>Fixed font</code>
3230             <p />
3231             </td>
3232             </tr>
3233             <tr bgcolor="#ffffff">
3234             <td valign="top">
3235 rizwank 1.1  <strong>Bold Fixed Font:</strong> <br />
3236              Words get shown in <code><b>bold fixed font</b></code> by enclosing them in <code><b></b></code> double equal signs.
3237             </td><td valign="top">
3238             <span style='background : #FFFFCC;'><font color="#990000">
3239             <pre>
3240             ==Bold fixed==
3241             </pre>
3242             </font></span>
3243             </td><td valign="top">
3244             <code><b>Bold fixed</b></code>
3245             </td>
3246             </tr>
3247             <tr bgcolor="#ffffff">
3248             <td valign="top">
3249              <strong><em>Note:</em></strong> Make sure there is no space between the text and the bold, italic, or other indicators (<code>* _ __ = ==</code>).
3250             </td><td valign="top">
3251             <span style='background : #FFFFCC;'><font color="#990000">
3252             <pre>
3253             _This works_,
3254             _this not _
3255             </pre>
3256 rizwank 1.1 </font></span>
3257             </td><td valign="top">
3258             <em>This works</em>,<br />
3259             _this not _
3260             </td>
3261             </tr>
3262             <tr bgcolor="#ffffff">
3263             <td valign="top">
3264              <strong>Verbatim Mode:</strong> <br />
3265              Surround code excerpts and other formatted text with <code>&lt;verbatim&gt;</code> and <code>&lt;/verbatim&gt;</code> tags. <br /> <strong><em>Note:</em></strong> Use <code>&lt;pre&gt;</code> and <code>&lt;/pre&gt;</code> tags instead if you want that HTML code is interpreted. <br /> <strong><em>Note:</em></strong> Each tag must be on a line by itself.
3266             </td><td valign="top">
3267             <span style='background : #FFFFCC;'><font color="#990000">
3268             <pre>
3269             &lt;verbatim&gt;
3270             class CatAnimal {
3271               void purr() {
3272                 &lt;code here&gt;
3273               }
3274             }
3275             &lt;/verbatim&gt;
3276             </pre>
3277 rizwank 1.1 </font></span>
3278             </td><td valign="top">
3279             <pre>
3280             class CatAnimal {
3281               void purr() {
3282                 &lt;code here&gt;
3283               }
3284             }
3285             </pre>
3286             </td>
3287             </tr>
3288             <tr bgcolor="#ffffff">
3289             <td valign="top">
3290              <strong>Separator:</strong> <br />
3291              At least three dashes at the beginning of a line.
3292             </td><td valign="top">
3293             <span style='background : #FFFFCC;'><font color="#990000">
3294             <pre>
3295             -------
3296             </pre>
3297             </font></span>
3298 rizwank 1.1 </td><td valign="top">
3299             <hr />
3300             </td>
3301             </tr>
3302             <tr bgcolor="#ffffff">
3303             <td valign="top">
3304              <strong>List Item:</strong> <br />
3305              Three spaces, an asterisk, and another space.
3306             </td><td valign="top">
3307             <span style='background : #FFFFCC;'><font color="#990000">
3308             <pre>
3309                * bullet item
3310             </pre>
3311             </font></span>
3312             </td><td valign="top">
3313             <ul>
3314             <li> bullet item
3315             </li>
3316             </ul>
3317             </td>
3318             </tr>
3319 rizwank 1.1 <tr bgcolor="#ffffff">
3320             <td valign="top">
3321              <strong>Nested List Item:</strong> <br />
3322              Six, nine, ... spaces, an asterisk, and another space.
3323             </td><td valign="top">
3324             <span style='background : #FFFFCC;'><font color="#990000">
3325             <pre>
3326                * level 1
3327                   * level 2
3328             </pre>
3329             </font></span>
3330             </td><td valign="top">
3331             <ul>
3332             <li> level 1
3333             <ul>
3334             <li> level 2
3335             </li>
3336             </ul>
3337             </li>
3338             </ul>
3339             </td>
3340 rizwank 1.1 </tr>
3341             <tr bgcolor="#ffffff">
3342             <td valign="top">
3343              <strong>Ordered List:</strong> <br />
3344              Three spaces, a number, a dot, and another space. Several types are available besides a number:
3345             <table border="1" cellspacing="0" cellpadding="1"> <tr><th bgcolor="#99CCCC"> <strong>Type</strong> </th><th bgcolor="#99CCCC"> <strong>Generated Style</strong> </th><th bgcolor="#99CCCC"> <strong>Sample Sequence</strong> </th></tr>
3346             <tr><td>  1.  </td><td>  Arabic numerals  </td><td>  1, 2, 3, 4...  </td></tr>
3347             <tr><td>  A.  </td><td>  Uppercase letters  </td><td>  A, B, C, D...  </td></tr>
3348             <tr><td>  a.  </td><td>  Lowercase letters  </td><td>  a, b, c, d...  </td></tr>
3349             <tr><td>  I.  </td><td>  Uppercase Roman Numerals  </td><td>  I, II, III, IV...  </td></tr>
3350             <tr><td>  i.  </td><td>  Lowercase Roman Numerals  </td><td>  i, ii, iii, iv...  </td></tr>
3351             </table>
3352             <p />
3353             </td><td valign="top">
3354             <span style='background : #FFFFCC;'><font color="#990000">
3355             <pre>
3356                1. Sushi
3357                1. Dim Sum
3358             
3359                A. Sushi
3360                A. Dim Sum
3361 rizwank 1.1 
3362                i. Sushi
3363                i. Dim Sum
3364             </pre>
3365             </font></span>
3366             </td><td valign="top">
3367             <ol>
3368             <li> Sushi
3369             </li>
3370             <li> Dim Sum
3371             </li>
3372             </ol>
3373             <p />
3374             <ol type="A">
3375             <li> Sushi
3376             </li>
3377             <li> Dim Sum
3378             </li>
3379             </ol>
3380             <p />
3381             <ol type="i">
3382 rizwank 1.1 <li> Sushi
3383             </li>
3384             <li> Dim Sum
3385             </li>
3386             </ol>
3387             </td>
3388             </tr>
3389             <tr bgcolor="#ffffff">
3390             <td valign="top">
3391              <strong>Definition List:</strong> <br />
3392              Three spaces, a dollar sign, the term, a colon, a space, followed by the definition.
3393             </td><td valign="top">
3394             <span style='background : #FFFFCC;'><font color="#990000">
3395             <pre>
3396                $ Sushi: Japan
3397                $ Dim Sum: S.F.
3398             </pre>
3399             </font></span>
3400             </td><td valign="top">
3401             <dl>
3402             <dt> Sushi </dt><dd> Japan
3403 rizwank 1.1 </dd>
3404             <dt> Dim Sum </dt><dd> S.F.
3405             </dd>
3406             </dl>
3407             </td>
3408             </tr>
3409             <tr bgcolor="#ffffff">
3410             <td valign="top">
3411              <strong>Table:</strong> <br />
3412              Any number of lines of text. Each line is one row of the table consisting of one or more cells. Each cell starts and ends with a vertical bar '|'. Any spaces at the beginning of a line are ignored.<br />
3413              <strong><em>Notes:</em></strong> <br />&#8226;
3414              <code>| *bold* |</code> cells are displayed as table headers.<br />&#8226;
3415              <code>| &nbsp; center-spaced &nbsp; |</code> cells are displayed center aligned.<br />&#8226;
3416              <code>| &nbsp; &nbsp; right-spaced |</code> cells are displayed right aligned.<br />&#8226;
3417              <code>| 2 colspan ||</code> cells are displayed as multi-span columns (i.e., a cell with no text spans a column).<br />&#8226;
3418              <code>|^|</code> cells with a caret indicate follow-up rows of multi-span rows (this functionality is provided by <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/TablePlugin">TablePlugin</a>).<br />&#8226;
3419              If a row contains a large amount of text, and you want it to be more readable while editing the table, split the row into multiple text lines by ending each line with a backslash character <code>'\'</code>.<br />&#8226;
3420              Table cells wrap automatically as determined by the browser.
3421             </td><td valign="top">
3422             <span style='background : #FFFFCC;'><font color="#990000">
3423             <pre>
3424 rizwank 1.1 | *L* | *C* | *R* |
3425             | A2 |  2  |  2 |
3426             | A3 |  3  |  3 |
3427             | multi span |||
3428             | A4-6 | four | four |
3429             |^| five | five |
3430             
3431             
3432             
3433             |^| six | six |
3434             </pre>
3435             </font></span>
3436             </td><td valign="top">
3437             <table border="1" cellspacing="0" cellpadding="1"> <tr><th bgcolor="#99CCCC"> <strong>L</strong> </th><th bgcolor="#99CCCC"> <strong>C</strong> </th><th bgcolor="#99CCCC"> <strong>R</strong> </th></tr>
3438             <tr><td>  A2  </td><td align="center">   2   </td><td align="right">   2  </td></tr>
3439             <tr><td>  A3  </td><td align="center">   3   </td><td align="right">   3  </td></tr>
3440             <tr><td colspan="3">  multi span  </td></tr>
3441             <tr><td>  A4-6  </td><td>  four  </td><td>  four  </td></tr>
3442             <tr><td> ^ </td><td>  five  </td><td>  five  </td></tr>
3443             <tr><td> ^ </td><td>  six  </td><td>  six  </td></tr>
3444             </table>
3445 rizwank 1.1 </td>
3446             </tr>
3447             <tr bgcolor="#ffffff">
3448             <td valign="top">
3449              <strong>WikiWord Links:</strong> <br />
3450              CapitalizedWordsStuckTogether (or <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/WikiWord">WikiWords</a>) will produce a link automatically if preceeded by whitespace or parenthesis. <br /> <strong><em>Note:</em></strong> In case you want to link to a topic in a different TWiki web write <code>Otherweb.TopicName</code>. (The link label is the the name of the web in case the is WebHome, else it is the topic name)
3451             </td><td valign="top">
3452             <span style='background : #FFFFCC;'><font color="#990000">
3453             <pre>
3454             WebNotify
3455             
3456             Main.TWikiUsers
3457             </pre>
3458             </font></span>
3459             </td><td valign="top">
3460             <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/WebNotify">WebNotify</a>
3461             <p />
3462             <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/Main/TWikiUsers">TWikiUsers</a>
3463             </td>
3464             </tr>
3465             <tr bgcolor="#ffffff">
3466 rizwank 1.1 <td valign="top">
3467             <a name="SquareBrackets"></a>
3468              <strong>Forced Links:</strong> <br />
3469              You can create a forced internal link by enclosing words in double square brackets.
3470              <br /> <strong><em>Note:</em></strong> Text within the brackets may contain optional spaces; the topic name is formed by capitalizing the initial letter and by removing the spaces; for example, <code>[[text formatting FAQ]]</code> links to topic <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/TextFormattingFAQ">TextFormattingFAQ</a>.  You can also refer to a different web and use anchors.
3471              <br /> <strong><em>Note:</em></strong> To "escape" double square brackets that would otherwise be a correct link, prefix the leading left square brackets with an exclamation point, that is, begin with <code>![[....</code>
3472             </td><td valign="top">
3473             <span style='background : #FFFFCC;'><font color="#990000">
3474             <pre>
3475             [[wiki syntax]]
3476             
3477             [[Main.TWiki users]]
3478             
3479             escaped:
3480             ![[wiki syntax]]
3481             </pre>
3482             </font></span>
3483             </td><td valign="top">
3484             <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/WikiSyntax">wiki syntax</a>
3485             <p />
3486             <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/Main/TWikiUsers">Main.TWiki users</a>
3487 rizwank 1.1 <p />
3488             escaped:
3489             [[wiki syntax]]
3490             </td>
3491             </tr>
3492             <tr bgcolor="#ffffff">
3493             <td valign="top">
3494              <strong>Specific Links:</strong> <br />
3495              Create a link where you can specify the link text and the link reference separately, using nested square brackets like <code>[[reference][text]]</code>. Internal link references (e.g. <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/WikiSyntax">WikiSyntax</a>) and external link references (e.g. <a href="http://TWiki.org/" target="_top">http://TWiki.org/</a>) are supported.
3496              <br /> <strong><em>Note:</em></strong> The same <strong><em>Forced Links</em></strong> rules apply for internal link references.
3497              <br /> <strong><em>Note:</em></strong> For external link references, you can simply use a space instead of <code>][</code> to separate the link URL from the descriptive text.
3498              <br /> <strong><em>Note:</em></strong> Anchor names can be added as well, like <code>[[WebHome#MyAnchor][go home]]</code> and <code>[[http://gnu.org/#Action][GNU Action]]</code>.
3499             </td><td valign="top">
3500             <span style='background : #FFFFCC;'><font color="#990000">
3501             <pre>
3502             [[WikiSyntax][syntax]]
3503             
3504             [[http://gnu.org][GNU]]
3505             
3506             [[http://xml.org XML]]
3507             </pre>
3508 rizwank 1.1 </font></span>
3509             </td><td valign="top">
3510             <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/WikiSyntax">syntax</a>
3511             <p />
3512             <a href="http://gnu.org" target="_top">GNU</a>
3513             <p />
3514             <a href="http://xml.org" target="_top">XML</a>
3515             </td>
3516             </tr>
3517             <tr bgcolor="#ffffff">
3518             <td valign="top">
3519              <strong>Anchors:</strong> <br />
3520              You can define a link reference inside a TWiki topic (called an anchor name) and link to that. To <strong><em>define</em></strong> an anchor write <code>#AnchorName</code> at the beginning of a line. The anchor name must be a <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/WikiWord">WikiWord</a>. To <strong><em>link to</em></strong> an anchor name use the <code>[[MyTopic#MyAnchor]]</code> syntax. You can omit the topic name if you want to link within the same topic.
3521             </td><td valign="top">
3522             <span style='background : #FFFFCC;'><font color="#990000">
3523             <pre>
3524             [[WikiWord#NotThere]]
3525             
3526             [[#MyAnchor][Jump]]
3527             
3528             #MyAnchor To here
3529 rizwank 1.1 </pre>
3530             </font></span>
3531             </td><td valign="top">
3532             <a class="twikiAnchorLink" href="http://TWiki.org/cgi-bin/view/TWiki/WikiWord#NotThere">WikiWord#NotThere</a>
3533             <p />
3534             <a class="twikiAnchorLink" href="#MyAnchor">Jump</a>
3535             <p />
3536             <a name="MyAnchor"></a> To here
3537             </td>
3538             </tr>
3539             <tr bgcolor="#ffffff">
3540             <td valign="top">
3541              <strong>Prevent a Link:</strong> <br />
3542              Prevent a <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/WikiWord">WikiWord</a> from being linked by prepending it with an exclamation point.
3543             </td><td valign="top">
3544             <span style='background : #FFFFCC;'><font color="#990000">
3545             <pre>
3546             !SunOS
3547             </pre>
3548             </font></span>
3549             </td><td valign="top">
3550 rizwank 1.1 SunOS
3551             </td>
3552             </tr>
3553             <tr bgcolor="#ffffff">
3554             <td valign="top">
3555              <strong>Disable Links:</strong> <br />
3556              You can disable automatic linking of <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/WikiWord">WikiWords</a> by surrounding text with <code>&lt;noautolink&gt;</code> and <code>&lt;/noautolink&gt;</code> tags.
3557              <br /> <strong><em>Note:</em></strong> Each tag must be on a line by itself.
3558              <br /> <strong><em>Note:</em></strong> This also works for TWiki tables, but only if you add a blank line between the end of the table and the closing <code>&lt;/noautolink&gt;</code> tag (known issue of the <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/TablePlugin">TablePlugin</a>).
3559             </td><td valign="top">
3560             <span style='background : #FFFFCC;'><font color="#990000">
3561             <pre>
3562              &lt;noautolink&gt;
3563              RedHat &amp;
3564              SuSE
3565              &lt;/noautolink&gt;
3566             </pre>
3567             </font></span>
3568             </td><td valign="top">
3569              <noautolink>
3570              RedHat &amp;
3571 rizwank 1.1  SuSE
3572              </noautolink>
3573             </td>
3574             </tr>
3575             <tr bgcolor="#ffffff">
3576             <td valign="top">
3577             <strong>Mailto: Links:</strong> <br />
3578             To create 'mailto:' links that have more descriptive link text, specify subject lines or message bodies, or omit the email address, you can write <code>[[mailto:user@domain descriptive text]]</code>.
3579             </td><td valign="top">
3580             <span style='background : #FFFFCC;'><font color="#990000">
3581             <pre>
3582             [[mailto:a@z.com Mail]]
3583             
3584             [[mailto:?subject=Hi Hi]]
3585             </pre>
3586             </font></span>
3587             </td><td valign="top">
3588             <a href="mailto:a@z.com">Mail</a>
3589             <p />
3590             <a href="mailto:?subject=Hi">Hi</a>
3591             </td>
3592 rizwank 1.1 </tr>
3593             </table>
3594             <p />
3595             <h2><a name="Using_HTML"> </a> Using HTML </h2>
3596             <p />
3597             You can use just about any HTML tag without a problem - however, there are a few usability and technical considerations to keep in mind.
3598             <p />
3599             <h3><a name="HTML_and_TWiki_Usability"> </a> HTML and TWiki Usability </h3>
3600             <p />
3601             <ul>
3602             <li> <img src="./pub/TWiki/TWikiDocGraphics/tip.gif" border="0" alt="TIP" width="16" height="16" /> <strong>TIP:</strong> On collaboration pages, it's preferable NOT to use HTML, and to use <a class="twikiAnchorLink" href="#TWikiShorthand">TWiki shorthand</a> instead - this keeps the text uncluttered and easy to edit.
3603             </li>
3604             <li> <img src="./pub/TWiki/TWikiDocGraphics/warning.gif" border="0" alt="ALERT!" width="16" height="16" /> <strong>NOTE:</strong> TWiki is designed to work with a wide range of browsers and computer platforms, holding to HTML 4.0 and XHTML 1.0 compatibility in the standard installation - adding raw HTML, particularly browser-specific tags (or any other mark-up that doesn't degrade well) will reduce compatibility.
3605             </li>
3606             <li> Recommondations when using HTML:
3607             <ul>
3608             <li> Use <a href="http://www.w3.org/TR/xhtml1/" target="_top">XHTML 1.0 Transitional</a> syntax
3609             </li>
3610             <li> Do not span a tag over more then one line
3611             </li>
3612             <li> Remove all empty lines. TWiki inserts <code>&lt;p /&gt;</code> paragraph tags on empty lines, which causes problems if done between tags that do not allow paragraph tags, like for example between table tags.
3613 rizwank 1.1 </li>
3614             </ul>
3615             </li>
3616             </ul>
3617             <p />
3618             <p />
3619             <h3><a name="TWiki_HTML_Rendering"> </a> TWiki HTML Rendering </h3>
3620             <p />
3621             <ul>
3622             <li> TWiki converts shorthand notation to XHTML 1.0 for display. To copy a fully marked-up page, simply view source in your browser and save the contents.
3623             <ul>
3624             <li> <img src="./pub/TWiki/TWikiDocGraphics/tip.gif" border="0" alt="TIP" width="16" height="16" /> If you need to save HTML frequently, you may want to check out <a href="http://twiki.org/cgi-bin/view/Plugins/GenHTMLAddon" title="'Plugins/GenHTMLAddon' on TWiki.org">TWiki:Plugins/GenHTMLAddon</a> - it will "generate a directory containing rendered versions of a set of TWiki pages together with any attached files."
3625             </li>
3626             </ul>
3627             </li>
3628             <li> <img src="./pub/TWiki/TWikiDocGraphics/warning.gif" border="0" alt="ALERT!" width="16" height="16" /> <strong>NOTE:</strong> The opening and closing angle brackets - <code><b>&lt;...&gt;</b></code> - of an HTML tag <strong><em>must be on the same line</em></strong>, or the tag will be broken.
3629             <ul>
3630             <li> This feature allows you to enter an unclosed angle bracket - as a greater than or less than symbol - and have it automatically rendered as if you had entered its HTML character, <code>&amp;lt;</code>, ex: <code><b>a &lt; b</b></code>
3631             </li>
3632             <li> <img src="./pub/TWiki/TWikiDocGraphics/tip.gif" border="0" alt="TIP" width="16" height="16" /> If you're pasting in preformatted HTML text and notice problems, check the file in a text processor with no text wrap. Also, save without hard line breaks on text wrap, in your HTML editing program. 
3633             </li>
3634 rizwank 1.1 </ul>
3635             </li>
3636             </ul>
3637             <p />
3638             <h3><a name="TWiki_and_JavaScript"> </a> TWiki and JavaScript </h3>
3639             <p />
3640             You can use JavaScript for your TWiki applications. Since TWiki rendering might interfere with JavaScript code you need to escape it with HTML comments and <code>&lt;pre&gt;</code> tags:
3641             <pre>
3642             &lt;script type="text/javascript"&gt;
3643             &lt;!-- Hide JavaScript and &lt;pre&gt; escape TWiki rendering
3644             ... put your JavaScript code here...
3645             // Stop hiding and stop &lt;/pre&gt; escaping TWiki rendering --&gt;
3646             &lt;/script&gt;
3647             </pre>
3648             <p />
3649             <h2><a name="Hyperlinks"> </a> Hyperlinks </h2>
3650             <p />
3651             Being able to create links without any formatting required is a core TWiki feature, made possible with <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/WikiWord">WikiWords</a>. New TWiki linking rules are a simple extension of the syntax that provide a new set of flexible options. 
3652             <p />
3653             <h3><a name="Internal_Links"> </a> Internal Links </h3>
3654             <p />
3655 rizwank 1.1 <ul>
3656             <li> <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/GoodStyle">GoodStyle</a> is a <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/WikiWord">WikiWord</a> that links to the GoodStyle topic located in the current TWiki web.
3657             </li>
3658             </ul>
3659             <p />
3660             <ul>
3661             <li> <span class="twikiNewLink" style='background : #FFFFCE;'><font color="#0000FF">NotExistingYet</font><a href="http://TWiki.org/cgi-bin/edit/TWiki/NotExistingYet?topicparent=TWiki.TWikiDocumentation"><sup>?</sup></a></span> is a topic waiting to be written. Create the topic by clicking on the <strong>?</strong>. (Try clicking, but then, <strong>Cancel</strong> - creating the topic would wreck this example!)
3662             </li>
3663             </ul>
3664             <p />
3665             <h3><a name="External_Links"> </a> External Links </h3>
3666             <p />
3667             <ul>
3668             <li> <code>http://...</code>, <code>https://...</code>, <code>ftp://...</code>, <code>gopher://...</code>, <code>news://...</code>, <code>file://...</code>, <code>telnet://...</code>
3669                  and <code>mailto:...@...</code> are linked automatically.
3670             </li>
3671             </ul>
3672             <p />
3673             <ul>
3674             <li> Email addresses like <code>name@domain.com</code> are linked automatically.
3675             </li>
3676 rizwank 1.1 </ul>
3677             <p />
3678             <ul>
3679             <li> <code>[[Square bracket rules]]</code> let you easily create <a class="twikiAnchorLink" href="#SquareBrackets">non-WikiWord links</a>.
3680             <ul>
3681             <li> You can also write <code>[[http://yahoo.com Yahoo home page]]</code> as an easier way of doing external links with descriptive text for the link, such as <a href="http://yahoo.com/" target="_top">Yahoo home page</a>.
3682             </li>
3683             </ul>
3684             </li>
3685             </ul>
3686             <p />
3687             <p />
3688             <h2><a name="TWiki_Variables"> </a> TWiki Variables </h2>
3689             <p />
3690             Variables are names that are enclosed in percent signs <code>%</code> that are expanded on the fly.
3691             <p />
3692             <ul>
3693             <li> <code>%TOC%</code> : Automatically generates a table of contents based on headings in a topic - see the top of this page for an example.
3694             </li>
3695             </ul>
3696             <p />
3697 rizwank 1.1 <ul>
3698             <li> <code>%WEB%</code> : The current web, is <b>TWiki</b>.
3699             </li>
3700             </ul>
3701             <p />
3702             <ul>
3703             <li> <code>%TOPIC%</code> : The current topic name, is <b>TextFormattingRules</b>.
3704             </li>
3705             </ul>
3706             <p />
3707             <ul>
3708             <li> <code>%ATTACHURL%</code> : The attachment URL of the current topic. Example usage: If you attach a file to a topic you can refer to it as <code><b>%ATTACHURL%/image.gif</b></code> to show the URL of the file or the image in your text.
3709             </li>
3710             </ul>
3711             <p />
3712             <ul>
3713             <li> <code>%INCLUDE{"SomeTopic"}%</code> : Server side include, includes another topic. The current TWiki web is the default web. Example: <code><b>%INCLUDE{"TWiki.SiteMap"}%</b></code>
3714             </li>
3715             </ul>
3716             <p />
3717             <ul>
3718 rizwank 1.1 <li> <code>%SEARCH{"sushi"}%</code> : Inline search showing the search result embedded in a topic. <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/FormattedSearch">FormattedSearch</a> gives you control over formatting, used to create web-based applications.
3719             </li>
3720             </ul>
3721             <p />
3722             <ul>
3723             <li> <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/TWikiPreferences">TWikiPreferences</a> defines site-wide variables. Among others:
3724             <ul>
3725             <li> <strong>Line break:</strong> Write <code><span style='background : #FFFFCC;'><font color="#990000">%BR%</font></span></code> to start a new line.
3726             </li>
3727             <li> <strong>Colored text:</strong> Write: <code><span style='background : #FFFFCC;'><font color="#990000"> %RED% Red %ENDCOLOR% and %BLUE% blue %ENDCOLOR% colors</font></span></code> to get: <font color="#ff0000"> Red </font> and <font color="#0000ff"> blue </font> colors.
3728             </li>
3729             <li> <strong>Documentation Graphics:</strong> Write: <code><span style='background : #FFFFCC;'><font color="#990000"> %H% Help, %T% Tip, %X% Alert</font></span></code> to get: <img src="./pub/TWiki/TWikiDocGraphics/help.gif" border="0" alt="HELP" width="16" height="16" /> Help, <img src="./pub/TWiki/TWikiDocGraphics/tip.gif" border="0" alt="TIP" width="16" height="16" /> Tip, <img src="./pub/TWiki/TWikiDocGraphics/warning.gif" border="0" alt="ALERT!" width="16" height="16" /> Alert. For more info see <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/TWikiDocGraphics">TWikiDocGraphics</a>.
3730             </li>
3731             </ul>
3732             </li>
3733             </ul>
3734             <p />
3735             <ul>
3736             <li> There are many more variables, see <strong><a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/TWikiVariables">TWikiVariables</a></strong>.
3737             </li>
3738             </ul>
3739 rizwank 1.1 <p />
3740             <ul>
3741             <li> To "escape" a variable, prefix it with an exclamation point. Write: <code><span style='background : #FFFFCC;'><font color="#990000"> !%SOMEVARIABLE% </font></span></code> to get: %SOMEVARIABLE%.
3742             </li>
3743             </ul>
3744             <p />
3745             <h2><a name="TWikiPlugin_Formatting_Extension"> </a> TWikiPlugin Formatting Extensions </h2>
3746             <p />
3747             Plugins provide additional text formatting capabilities and can extend the functionality of TWiki into many other areas. For example, the optional <a href="http://twiki.org/cgi-bin/view/Plugins/SpreadSheetPlugin" target="_top">SpreadSheetPlugin</a> lets you create a spreadsheet with the same basic notation used in TWiki tables.
3748             <p />
3749             Available Plugins are located in the <a href="http://twiki.org/cgi-bin/view/Plugins" target="_top">Plugins</a> web on TWiki.org. Currently enabled plugins on this TWiki installation, as listed by <code>%PLUGINDESCRIPTIONS%</code>:
3750             <p />
3751             <ul>
3752             <li> <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/DefaultPlugin">DefaultPlugin</a>: This plugin can be used to specify some simple custom rendering rules. It also renders depreciated <code><b>*_text_*</b></code> as <strong><em>bold italic</em></strong> text.
3753             </li>
3754             <li> <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/SpreadSheetPlugin">SpreadSheetPlugin</a>: Add spreadsheet calculation like <code>"$SUM( $ABOVE() )"</code> to tables located in TWiki topics.
3755             </li>
3756             <li> <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/CommentPlugin">CommentPlugin</a>: Allows users to quickly post comments to a page without an edit/preview/save cycle.
3757             </li>
3758             <li> <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/InterwikiPlugin">InterwikiPlugin</a>: Link <code><b>ExternalSite:Page</b></code> text to external sites based on aliases defined in the <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/InterWikis">InterWikis</a> topic
3759             </li>
3760 rizwank 1.1 <li> <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/RenderListPlugin">RenderListPlugin</a>: Render bullet lists in a variety of formats
3761             </li>
3762             <li> <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/SlideShowPlugin">SlideShowPlugin</a>: Create web based presentations based on topics with headings.
3763             </li>
3764             <li> <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/SmiliesPlugin">SmiliesPlugin</a>: Render smilies as icons, like <code>&nbsp;:-)</code> for <img src="./pub/TWiki/SmiliesPlugin/smile.gif" alt="smile" title="smile" border="0" /> or <code>&nbsp;:cool:</code> for <img src="./pub/TWiki/SmiliesPlugin/cool.gif" alt="cool!" title="cool!" border="0" />
3765             </li>
3766             </ul>
3767             <p />
3768             <p />
3769             Check on current Plugin status and settings for this site in <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/TWikiPreferences">TWikiPreferences</a>.
3770             <p />
3771             <p />
3772             <h2><a name="Common_Editing_Errors"> </a> Common Editing Errors </h2>
3773             <p />
3774             TWiki formatting rules are fairly simple to use and quick to type. However, there are some things to watch out for, taken from the <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/TextFormattingFAQ">TextFormattingFAQ</a>:
3775             <p />
3776             <ul>
3777             <li> <strong>Q:</strong> Text enclosed in angle brackets like <code>&lt;filename&gt;</code> is not displayed. How can I show it as it is?
3778             <ul>
3779             <li> <strong>A:</strong> The <code>'&lt;'</code> and <code>'&gt;'</code> characters have a special meaning in HTML, they define HTML tags. You need to escape them, so write <code>'&amp;lt;'</code> instead of <code>'&lt;'</code>, and <code>'&amp;gt;'</code> instead of <code>'&gt;'</code>. <br /> Example: Type <code>'prog &amp;lt;filename&amp;gt;'</code> to get <code>'prog &lt;filename&gt;'</code>.
3780             </li>
3781 rizwank 1.1 </ul>
3782             </li>
3783             </ul>
3784             <p />
3785             <ul>
3786             <li> <strong>Q:</strong> Why is the <code>'&amp;'</code> character sometimes not displayed?
3787             <ul>
3788             <li> <strong>A:</strong> The <code>'&amp;'</code> character has a special meaning in HTML, it starts a so called character entity, i.e. <code>'&amp;copy;'</code> is the <code>&copy;</code> copyright character. You need to escape <code>'&amp;'</code> to see it as it is, so write <code>'&amp;amp;'</code> instead of <code>'&amp;'</code>. <br /> Example: Type <code>'This &amp;amp; that'</code> to get <code>'This &amp; that'</code>.
3789             </li>
3790             </ul>
3791             </li>
3792             </ul>
3793             <p />
3794             -- <a href="http://twiki.org/cgi-bin/view/Main.MikeMannix" title="'Main.MikeMannix' on TWiki.org">TWiki:Main.MikeMannix</a> - 02 Dec 2001 <br />
3795             -- <a href="http://twiki.org/cgi-bin/view/Main.PeterThoeny" title="'Main.PeterThoeny' on TWiki.org">TWiki:Main.PeterThoeny</a> - 01 Aug 2004
3796             <p />
3797             <p />
3798             <hr />
3799             <p />
3800             <h1><a name="TWiki_Variables"> </a> TWiki Variables </h1>
3801             <p />
3802 rizwank 1.1 <em>Special text strings expand on the fly to display user data or system info</em>
3803             <p />
3804             TWikiVariables are text strings - <code>%VARIABLE%</code> - that expand into content whenever a page is rendered for viewing. <code>VARIABLES</code> are replaced by data, either user-entered or automatically generated by TWiki (like the date, or the current username). There are predefined variables, and Preference variables that you can configure. You can also define custom variables, with new names and values.
3805             <p />
3806             <strong><em>Notes:</em></strong>
3807             <ul>
3808             <li> To leave a variable unexpanded, precede it with an exclamation point, e.g. type <code>!%TOPIC%</code> to get %TOPIC%.
3809             </li>
3810             <li> Variables are expanded relative to the topic they are <em>used</em> in, not the topic they are <em>defined</em> in.
3811             </li>
3812             </ul>
3813             <p />
3814             <h2><a name="Predefined_Variables"> </a> Predefined Variables </h2>
3815             <p />
3816             Most predefined variables return values that were either set in the <code><b>lib/twiki.cfg</b></code> file, when TWiki was installed, or taken from server info (like current username, or date and time). Many of the variables let you format the appearance of the display results.
3817             <p />
3818             <ul>
3819             <li> <img src="./pub/TWiki/TWikiDocGraphics/tip.gif" border="0" alt="TIP" width="16" height="16" /> <strong>Take the time to thoroughly read through ALL preference variables.</strong> If you actively configure your site, review variables periodically. They cover a wide range of functions, and it can be easy to miss the one perfect variable for something you have in mind. For example, see <code><b>%INCLUDINGTOPIC%</b></code>, <code><b>%INCLUDE%</b></code>, and the mighty <code><b>%SEARCH%</b></code>.
3820             </li>
3821             </ul>
3822             <p />
3823 rizwank 1.1 This version of TWiki - 30 Oct 2004 $Rev: 1794 $ - expands the following variables (enclosed in <code><b>%</b></code> percent signs):
3824             <p />
3825             <p />
3826             <p />
3827             <a name="VarATTACHURL"></a>
3828             <h3><a name="ATTACHURL_full_URL_for_attachmen"> </a> ATTACHURL -- full URL for attachments in the current topic </h3>
3829             <ul>
3830             <li> Syntax: <code>%ATTACHURL%</code>
3831             </li>
3832             <li> Expands to: <code>./pub/TWiki/TWikiVariablesAtoM</code>
3833             </li>
3834             <li> Example: If you attach a file you can refer to it as <code>%ATTACHURL%/image.gif</code>
3835             </li>
3836             <li> Related: <a class="twikiAnchorLink" href="#VarATTACHURLPATH">ATTACHURLPATH</a>, <a class="twikiAnchorLink" href="#VarPUBURLPATH">PUBURLPATH</a>, <a class="twikiAnchorLink" href="#VarSCRIPTURL">SCRIPTURL</a>, <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/FileAttachment">FileAttachments</a>
3837             </li>
3838             </ul>
3839             <p />
3840             <a name="VarATTACHURLPATH"></a>
3841             <h3><a name="ATTACHURLPATH_path_of_the_attach"> </a> ATTACHURLPATH -- path of the attachment URL of the current topic </h3>
3842             <ul>
3843             <li> Syntax: <code>%ATTACHURLPATH%</code>
3844 rizwank 1.1 </li>
3845             <li> Expands to: <code>./pub/TWiki/TWikiVariablesAtoM</code>
3846             </li>
3847             <li> Related: <a class="twikiAnchorLink" href="#VarATTACHURL">ATTACHURL</a>, <a class="twikiAnchorLink" href="#VarPUBURL">PUBURL</a>, <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/FileAttachment">FileAttachments</a>
3848             </li>
3849             </ul>
3850             <p />
3851             <a name="VarBASETOPIC"></a>
3852             <h3><a name="BASETOPIC_base_topic_where_an_IN"> </a> BASETOPIC -- base topic where an INCLUDE started </h3>
3853             <ul>
3854             <li> The name of the topic where a single or nested INCLUDE started - same as <code>%TOPIC%</code> if there is no INCLUDE
3855             </li>
3856             <li> Syntax: <code>%BASETOPIC%</code>
3857             </li>
3858             <li> Related: <a class="twikiAnchorLink" href="#VarBASEWEB">BASEWEB</a>, <a class="twikiAnchorLink" href="#VarINCLUDINGTOPIC">INCLUDINGTOPIC</a>, <a class="twikiAnchorLink" href="#VarINCLUDE">INCLUDE</a>, <a class="twikiAnchorLink" href="#VarTOPIC">TOPIC</a>
3859             </li>
3860             </ul>
3861             <p />
3862             <a name="VarBASEWEB"></a>
3863             <h3><a name="BASEWEB_base_web_where_an_INCLUD"> </a> BASEWEB -- base web where an INCLUDE started </h3>
3864             <ul>
3865 rizwank 1.1 <li> The web name where the includes started, e.g. the web of the first topic of nested includes. Same as <code>%WEB%</code> in case there is no include.
3866             </li>
3867             <li> Syntax: <code>%BASEWEB%</code>
3868             </li>
3869             <li> Related: <a class="twikiAnchorLink" href="#VarBASETOPIC">BASETOPIC</a>, <a class="twikiAnchorLink" href="#VarINCLUDINGWEB">INCLUDINGWEB</a>, <a class="twikiAnchorLink" href="#VarINCLUDE">INCLUDE</a>, <a class="twikiAnchorLink" href="#VarWEB">WEB</a>
3870             </li>
3871             </ul>
3872             <p />
3873             <a name="VarDISPLAYTIME"></a>
3874             <h3><a name="DISPLAYTIME_display_time"> </a> DISPLAYTIME -- display time </h3>
3875             <ul>
3876             <li> Syntax: <code>%DISPLAYTIME%</code>
3877             </li>
3878             <li> Expands to: <code>30 Oct 2004 - 09:29</code>
3879             </li>
3880             <li> Related: <a class="twikiAnchorLink" href="#VarDISPLAYTIME2">DISPLAYTIME{"format"}</a>, <a class="twikiAnchorLink" href="#VarGMTIME">GMTIME</a>, <a class="twikiAnchorLink" href="#VarSERVERTIME">SERVERTIME</a>
3881             </li>
3882             </ul>
3883             <p />
3884             <a name="VarDISPLAYTIME2"></a>
3885             <h3><a name="DISPLAYTIME_format_formatted_dis"> </a> DISPLAYTIME{"format"} -- formatted display time </h3>
3886 rizwank 1.1 <ul>
3887             <li> Formatted time - either GMT or Local server time, depending on setting in TWiki.cfg. Same format qualifiers as <code>%GMTIME%</code>
3888             </li>
3889             <li> Syntax: <code>%DISPLAYTIME{"format"}%</code>
3890             </li>
3891             <li> Example: <code>%DISPLAYTIME{"$hou:$min"}%</code> expands to <code>09:29</code>
3892             </li>
3893             <li> Related: <a class="twikiAnchorLink" href="#VarDISPLAYTIME">DISPLAYTIME</a>, <a class="twikiAnchorLink" href="#VarGMTIME">GMTIME</a>, <a class="twikiAnchorLink" href="#VarSERVERTIME">SERVERTIME</a>
3894             </li>
3895             </ul>
3896             <p />
3897             <a name="VarENCODE"></a>
3898             <h3><a name="ENCODE_string_encodes_a_string"> </a> ENCODE{"string"} -- encodes a string </h3>
3899             <ul>
3900             <li> Syntax: <code>%ENCODE{"string"}%</code>
3901             </li>
3902             <li> Supported parameters:
3903                 <table border="1" cellspacing="0" cellpadding="1"> <tr><th bgcolor="#99CCCC"> <strong>Parameter:</strong> </th><th bgcolor="#99CCCC"> <strong>Description:</strong> </th><th bgcolor="#99CCCC"> <strong>Default:</strong> </th></tr>
3904                 <tr><td>  <code>"string"</code>  </td><td>  String to encode  </td><td>  required (can be empty)  </td></tr>
3905                 <tr><td>  <code>type="entity"</code>  </td><td>  Encode special characters into HTML entities, like a double quote into <code>&amp;#034;</code>  </td><td>  URL encoding  </td></tr>
3906                 <tr><td>  <code>type="url"</code>  </td><td>  Encode special characters for URL parameter use, like a double quote into <code>%22</code>  </td><td>  (this is the default)  </td></tr>
3907 rizwank 1.1 </table>
3908             </li>
3909             <li> Example: <code>%ENCODE{"spaced name"}%</code> expands to <code>spaced%20name</code>
3910             </li>
3911             <li> Related: <a class="twikiAnchorLink" href="#VarURLPARAM">URLPARAM</a>
3912             </li>
3913             </ul>
3914             <p />
3915             <a name="VarFORMFIELD"></a>
3916             <h3><a name="FORMFIELD_format_renders_a_field"> </a> FORMFIELD{"format"} -- renders a field in the form attached to some topic </h3>
3917             <ul>
3918             <li> Syntax: <code>%FORMFIELD{"fieldname"}%</code>
3919             </li>
3920             <li> Supported parameters:
3921                 <table border="1" cellspacing="0" cellpadding="1"> <tr><th bgcolor="#99CCCC"> <strong>Parameter:</strong> </th><th bgcolor="#99CCCC"> <strong>Description:</strong> </th><th bgcolor="#99CCCC"> <strong>Default:</strong> </th></tr>
3922                 <tr><td>  <code>"fieldname"</code>  </td><td>  The name of a <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/TWikiForms">TWiki form</a> field  </td><td>  required  </td></tr>
3923                 <tr><td>  <code>topic="..."</code>  </td><td>  Topic where form data is located. May be of the form <code>Web.TopicName</code>  </td><td>  Current topic  </td></tr>
3924                 <tr><td>  <code>format="..."</code>  </td><td>  Format string. <code>$value</code> expands to the field value  </td><td>  <code>"$value"</code>  </td></tr>
3925                 <tr><td>  <code>default="..."</code>  </td><td>  Text shown when no value is defined for the field  </td><td>  <code>""</code>  </td></tr>
3926                 <tr><td>  <code>alttext="..."</code>  </td><td>  Text shown when field is not found in the form  </td><td>  <code>""</code>  </td></tr>
3927             </table>
3928 rizwank 1.1 </li>
3929             <li> Example: <code>%FORMFIELD{"ProjectName" topic="Projects.SushiProject" default="(not set)" alttext="ProjectName field found"}%</code> 
3930             </li>
3931             <li> Related: <a class="twikiAnchorLink" href="#VarSEARCH">SEARCH</a>
3932             </li>
3933             </ul>
3934             <p />
3935             <a name="VarGMTIME"></a>
3936             <h3><a name="GMTIME_GM_time"> </a> GMTIME -- GM time </h3>
3937             <ul>
3938             <li> Syntax: <code>%GMTIME%</code>
3939             </li>
3940             <li> Expands to: <code>30 Oct 2004 - 09:29</code>
3941             </li>
3942             <li> Related: <a class="twikiAnchorLink" href="#VarDISPLAYTIME">DISPLAYTIME</a>, <a class="twikiAnchorLink" href="#VarGMTIME2">GMTIME{"format"}</a>, <a class="twikiAnchorLink" href="#VarSERVERTIME">SERVERTIME</a>
3943             </li>
3944             </ul>
3945             <p />
3946             <a name="VarGMTIME2"></a>
3947             <h3><a name="GMTIME_format_formatted_GM_time"> </a> GMTIME{"format"} -- formatted GM time </h3>
3948             <ul>
3949 rizwank 1.1 <li> Syntax: <code>%GMTIME{"format"}%</code>
3950             </li>
3951             <li> Supported variables:
3952                  <table border="1" cellspacing="0" cellpadding="1"> <tr><th bgcolor="#99CCCC"> <strong>Variable:</strong> </th><th bgcolor="#99CCCC"> <strong>Unit:</strong> </th><th bgcolor="#99CCCC"> <strong>Example</strong> </th></tr>
3953                  <tr><td>  <code>$seconds</code>  </td><td>  seconds  </td><td>  59  </td></tr>
3954                  <tr><td>  <code>$minutes</code>  </td><td>  minutes  </td><td>  59  </td></tr>
3955                  <tr><td>  <code>$hours</code>  </td><td>  hours  </td><td>  23  </td></tr>
3956                  <tr><td>  <code>$day</code>  </td><td>  day of month  </td><td>  31  </td></tr>
3957                  <tr><td>  <code>$wday</code>  </td><td>  day of the Week (Sun, Mon, Tue, Wed, Thu, Fri, Sat)  </td><td>  Thu  </td></tr>
3958                  <tr><td>  <code>$month</code>  </td><td>  month in ISO format  </td><td>  Dec  </td></tr>
3959                  <tr><td>  <code>$mo</code>  </td><td>  2 digit month  </td><td>  12  </td></tr>
3960                  <tr><td>  <code>$year</code>  </td><td>  4 digit year  </td><td>  1999  </td></tr>
3961                  <tr><td>  <code>$ye</code>  </td><td>  2 digit year  </td><td>  99  </td></tr>
3962                  <tr><td>  <code>$tz</code>  </td><td>  either "GMT" (if set to gmtime), or "Local" (if set to servertime)  </td><td>  GMT  </td></tr>
3963                  <tr><td>  <code>$iso</code>  </td><td>  ISO format timestamp  </td><td>  2004-10-30T09:29Z  </td></tr>
3964                  <tr><td>  <code>$rcs</code>  </td><td>  RCS format timestamp  </td><td>  2004/10/30 09:29:50  </td></tr>
3965                  <tr><td>  <code>$http</code>  </td><td>  E-mail &amp; http format timestamp  </td><td>  Sat, 30 Oct 2004 09:29:50 GMT  </td></tr>
3966             </table>
3967             </li>
3968             <li> Variables can be shortened to 3 characters
3969             </li>
3970 rizwank 1.1 <li> Example: <code>%GMTIME{"$day $month, $year - $hour:$min:$sec"}%</code> expands to <code>30 Oct, 2004 - 09:29:50</code>
3971             </li>
3972             <li> Related: <a class="twikiAnchorLink" href="#VarDISPLAYTIME">DISPLAYTIME</a>, <a class="twikiAnchorLink" href="#VarGMTIME">GMTIME</a>, <a class="twikiAnchorLink" href="#VarSERVERTIME">SERVERTIME</a>
3973             </li>
3974             </ul>
3975             <p />
3976             <a name="VarHOMETOPIC"></a>
3977             <h3><a name="HOMETOPIC_home_topic_in_each_web"> </a> HOMETOPIC -- home topic in each web </h3>
3978             <ul>
3979             <li> Syntax: <code>%HOMETOPIC%</code>
3980             </li>
3981             <li> Expands to: <code>WebHome</code>, renders as <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/WebHome">WebHome</a>
3982             </li>
3983             <li> Related: <a class="twikiAnchorLink" href="#VarNOTIFYTOPIC">NOTIFYTOPIC</a>, <a class="twikiAnchorLink" href="#VarSTATISTICSTOPIC">STATISTICSTOPIC</a>, <a class="twikiAnchorLink" href="#VarTOPIC">TOPIC</a>
3984             </li>
3985             </ul>
3986             <p />
3987             <a name="VarHTTPHOST"></a>
3988             <h3><a name="HTTP_HOST_environment_variable"> </a> HTTP_HOST -- environment variable </h3>
3989             <ul>
3990             <li> Syntax: <code>%HTTP_HOST%</code>
3991 rizwank 1.1 </li>
3992             <li> Expands to: ==
3993             </li>
3994             <li> Related: <a class="twikiAnchorLink" href="#VarREMOTEADDR">REMOTE_ADDR</a>, <a class="twikiAnchorLink" href="#VarREMOTEPORT">REMOTE_PORT</a>, <a class="twikiAnchorLink" href="#VarREMOTEUSER">REMOTE_USER</a>
3995             </li>
3996             </ul>
3997             <p />
3998             <a name="VarICON"></a>
3999             <h3><a name="ICON_type_small_icon_of_common_a"> </a> ICON{"type"} -- small icon of common attachment types </h3>
4000             <ul>
4001             <li> Small 16x16 pixel icon of common attachment types. Specify file type only, file name, or full path name
4002             </li>
4003             <li> Syntax: <code>%ICON{"type"}%</code>
4004             </li>
4005             <li> Samples: <img src="./pub/icn/bmp.gif" width="16" height="16" align="top" alt="" border="0" /> <code>bmp</code>, <img src="./pub/icn/doc.gif" width="16" height="16" align="top" alt="" border="0" /> <code>doc</code>, <img src="./pub/icn/bmp.gif" width="16" height="16" align="top" alt="" border="0" /> <code>gif</code>, <img src="./pub/icn/hlp.gif" width="16" height="16" align="top" alt="" border="0" /> <code>hlp</code>, <img src="./pub/icn/html.gif" width="16" height="16" align="top" alt="" border="0" /> <code>html</code>, <img src="./pub/icn/wav.gif" width="16" height="16" align="top" alt="" border="0" /> <code>mp3</code>, <img src="./pub/icn/pdf.gif" width="16" height="16" align="top" alt="" border="0" /> <code>pdf</code>, <img src="./pub/icn/ppt.gif" width="16" height="16" align="top" alt="" border="0" /> <code>ppt</code>, <img src="./pub/icn/txt.gif" width="16" height="16" align="top" alt="" border="0" /> <code>txt</code>, <img src="./pub/icn/xls.gif" width="16" height="16" align="top" alt="" border="0" /> <code>xls</code>, <img src="./pub/icn/xml.gif" width="16" height="16" align="top" alt="" border="0" /> <code>xml</code>, <img src="./pub/icn/zip.gif" width="16" height="16" align="top" alt="" border="0" /> <code>zip</code>
4006             </li>
4007             <li> Example: <code>%ICON{"pdf"}%</code> expands to <img src="./pub/icn/pdf.gif" width="16" height="16" align="top" alt="" border="0" />
4008             </li>
4009             <li> Related: <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/TWikiPreferences">TWikiPreferences</a>, <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/FileAttachment">FileAttachments</a>, <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/TWikiDocGraphics">TWikiDocGraphics</a>
4010             </li>
4011             </ul>
4012 rizwank 1.1 <p />
4013             <a name="VarINCLUDE"></a>
4014             <h3><a name="INCLUDE_page_include_other_topic"> </a> INCLUDE{"page"} -- include other topics or web pages </h3>
4015             <ul>
4016             <li> Syntax: <code>%INCLUDE{"page" ...}%</code>
4017             </li>
4018             <li> Supported parameters:
4019                <table border="1" cellspacing="0" cellpadding="1"> <tr><th bgcolor="#99CCCC"> <strong>Parameter:</strong> </th><th bgcolor="#99CCCC"> <strong>Description:</strong> </th><th bgcolor="#99CCCC"> <strong>Default:</strong> </th></tr>
4020                <tr><td>  <code>"SomeTopic"</code>  </td><td>  The name of a topic located in the current web, i.e. <code>%INCLUDE{"WebNotify"}%</code>  </td><td>  &nbsp;  </td></tr>
4021                <tr><td>  <code>"Web.Topic"</code>  </td><td>  A topic in another web, i.e. <code>%INCLUDE{"TWiki.SiteMap"}%</code>  </td><td>  &nbsp;  </td></tr>
4022                <tr><td>  <code>"http://..."</code>  </td><td>  A full qualified URL, i.e. <code>%INCLUDE{"http://twiki.org/"}%</code> <br /> <strong><em>Note</em></strong> if the URL resolves to an attachment file on the server this will <em>automatically</em> translate to a server-side include.  </td><td>  &nbsp;  </td></tr>
4023                <tr><td>  <code>pattern="..."</code>  </td><td>  A <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/RegularExpression">RegularExpression</a> pattern to include a subset of a topic or page  </td><td>  none  </td></tr>
4024                <tr><td>  <code>rev="1.2"</code>  </td><td>  Include a previous topic revision; N/A for URLs  </td><td>  top revision  </td></tr>
4025                <tr><td>  <code>warn="off"</code>  </td><td>  Warn if topic include fails: Fail silently (if <code>off</code>); output default warning (if set to <code>on</code>); else, output specific text (use <code>$topic</code> for topic name)  </td><td>  <code>%INCLUDEWARNING%</code> <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/TWikiPreferences">preferences</a> setting  </td></tr>
4026             </table>
4027             </li>
4028             <li> Related: <a class="twikiAnchorLink" href="#VarBASETOPIC">BASETOPIC</a>, <a class="twikiAnchorLink" href="#VarBASEWEB">BASEWEB</a>, <a class="twikiAnchorLink" href="#VarINCLUDINGTOPIC">INCLUDINGTOPIC</a>, <a class="twikiAnchorLink" href="#VarINCLUDINGWEB">INCLUDINGWEB</a>, <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/IncludeTopicsAndWebPages">IncludeTopicsAndWebPages</a>, <a class="twikiAnchorLink" href="#VarSTARTINCLUDE">STARTINCLUDE</a>, <a class="twikiAnchorLink" href="#VarSTOPINCLUDE">STOPINCLUDE</a>,
4029             </li>
4030             </ul>
4031             <p />
4032             <a name="VarINCLUDINGTOPIC"></a>
4033 rizwank 1.1 <h3><a name="INCLUDINGTOPIC_name_of_topic_tha"> </a> INCLUDINGTOPIC -- name of topic that includes current topic </h3>
4034             <ul>
4035             <li> The name of the topic that includes the current topic - same as <code>%TOPIC%</code> in case there is no include
4036             </li>
4037             <li> Syntax: <code>%INCLUDINGTOPIC%</code>
4038             </li>
4039             <li> Related: <a class="twikiAnchorLink" href="#VarBASETOPIC">BASETOPIC</a>, <a class="twikiAnchorLink" href="#VarINCLUDINGWEB">INCLUDINGWEB</a>, <a class="twikiAnchorLink" href="#VarINCLUDE">INCLUDE</a>, <a class="twikiAnchorLink" href="#VarTOPIC">TOPIC</a>
4040             </li>
4041             </ul>
4042             <p />
4043             <p />
4044             <a name="VarINCLUDINGWEB"></a>
4045             <h3><a name="INCLUDINGWEB_web_that_includes_c"> </a> INCLUDINGWEB -- web that includes current topic </h3>
4046             <ul>
4047             <li> The web name of the topic that includes the current topic - same as <code>%WEB%</code> if there is no INCLUDE.
4048             </li>
4049             <li> Syntax: <code>%INCLUDINGWEB%</code>
4050             </li>
4051             <li> Related: <a class="twikiAnchorLink" href="#VarBASEWEB">BASEWEB</a>, <a class="twikiAnchorLink" href="#VarINCLUDINGTOPIC">INCLUDINGTOPIC</a>, <a class="twikiAnchorLink" href="#VarINCLUDE">INCLUDE</a>, <a class="twikiAnchorLink" href="#VarWEB">WEB</a>
4052             </li>
4053             </ul>
4054 rizwank 1.1 <p />
4055             <a name="VarMAINWEB"></a>
4056             <h3><a name="MAINWEB_name_of_Main_web"> </a> MAINWEB -- name of Main web </h3>
4057             <ul>
4058             <li> The web containing <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/Main/TWikiUsers">TWikiUsers</a>, <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/Main/OfficeLocations">OfficeLocations</a> and <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/Main/TWikiGroups">TWikiGroups</a>
4059             </li>
4060             <li> Syntax: <code>%MAINWEB%</code>
4061             </li>
4062             <li> Expands to: <code>Main</code>
4063             </li>
4064             <li> Related: <a class="twikiAnchorLink" href="#VarTWIKIWEB">TWIKIWEB</a>
4065             </li>
4066             </ul>
4067             <p />
4068             <a name="VarMETASEARCH"></a>
4069             <h3><a name="METASEARCH_special_search_of_met"> </a> METASEARCH -- special search of meta data </h3>
4070             <ul>
4071             <li> Syntax: <code>%METASEARCH{...}%</code>
4072             </li>
4073             <li> Supported parameters:
4074                  <table border="1" cellspacing="0" cellpadding="1"> <tr><th bgcolor="#99CCCC"> <strong>Parameter:</strong> </th><th bgcolor="#99CCCC"> <strong>Description:</strong> </th><th bgcolor="#99CCCC"> <strong>Default:</strong> </th></tr>
4075 rizwank 1.1      <tr><td>  <code>type="topicmoved"</code>  </td><td>  What sort of search is required? <br /> <code>"topicmoved"</code> if search for a topic that may have been moved <br /> <code>"parent"</code> if searching for topics that have a specific parent i.e. its children  </td><td>  required  </td></tr>
4076                  <tr><td>  <code>web="%WEB%"</code>  </td><td>  Wiki web to search: A web, a list of webs separated by whitespace, or <code>all</code> webs.  </td><td>  current web  </td></tr>
4077                  <tr><td>  <code>topic="%TOPIC%"</code>  </td><td>  The topic the search relates to  </td><td>  current topic  </td></tr>
4078                  <tr><td>  <code>title="Title"</code>  </td><td>  Text that is prefixed to any search results  </td><td>  empty  </td></tr>
4079                  <tr><td>  <code>default="none"</code>  </td><td>  Default text shown if no search hit  </td><td>  empty  </td></tr>
4080             </table>
4081             </li>
4082             <li> Example: <code>%METASEARCH{type="topicmoved" web="%WEB%" topic="%TOPIC%" title="This topic used to exist and was moved to: "}%</code>
4083             </li>
4084             <li> Example: You may want to use this in <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/WebTopicViewTemplate">WebTopicViewTemplate</a> and <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/WebTopicNonWikiTemplate">WebTopicNonWikiTemplate</a>:<br /> <code>%METASEARCH{type="parent" web="%WEB%" topic="%TOPIC%" title="Children: "}%</code>
4085             </li>
4086             <li> Related: <a class="twikiAnchorLink" href="#VarSEARCH">SEARCH</a>
4087             </li>
4088             </ul>
4089             <p />
4090             <p />
4091             <a name="VarNOTIFYTOPIC"></a>
4092             <h3><a name="NOTIFYTOPIC_name_of_the_notify_t"> </a> NOTIFYTOPIC -- name of the notify topic </h3>
4093             <ul>
4094             <li> Syntax: <code>%NOTIFYTOPIC%</code>
4095             </li>
4096 rizwank 1.1 <li> Expands to: <code>WebNotify</code>, renders as <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/WebNotify">WebNotify</a>
4097             </li>
4098             <li> Related: <a class="twikiAnchorLink" href="#VarHOMETOPIC">HOMETOPIC</a>, <a class="twikiAnchorLink" href="#VarSTATISTICSTOPIC">STATISTICSTOPIC</a>, <a class="twikiAnchorLink" href="#VarTOPIC">TOPIC</a>
4099             </li>
4100             </ul>
4101             <p />
4102             <a name="VarPLUGINVERSION"></a>
4103             <h3><a name="PLUGINVERSION_the_version_of_the"> </a> PLUGINVERSION -- the version of the TWiki Plugin API </h3>
4104             <ul>
4105             <li> This is the <code>$TWiki::Plugins::VERSION</code> number, also indicating the version of the <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/TWikiFuncModule">TWikiFuncModule</a>
4106             </li>
4107             <li> Syntax: <code>%PLUGINVERSION{}%</code>
4108             </li>
4109             <li> Expands to: <code>1.025</code>
4110             </li>
4111             <li> Related: <a class="twikiAnchorLink" href="#VarPLUGINVERSION2">PLUGINVERSION{"name"}</a>, <a class="twikiAnchorLink" href="#VarWIKIVERSION">WIKIVERSION</a>
4112             </li>
4113             </ul>
4114             <p />
4115             <a name="VarPLUGINVERSION2"></a>
4116             <h3><a name="PLUGINVERSION_name_the_version_o"> </a> PLUGINVERSION{"name"} -- the version of an installed Plugin </h3>
4117 rizwank 1.1 <ul>
4118             <li> Syntax: <code>%PLUGINVERSION{"name"}%</code>
4119             </li>
4120             <li> Example: <code>%PLUGINVERSION{"DefaultPlugin"}%</code> expands to <code>1.021</code>
4121             </li>
4122             <li> Related: <a class="twikiAnchorLink" href="#VarPLUGINVERSION">PLUGINVERSION</a>, <a class="twikiAnchorLink" href="#VarWIKIVERSION">WIKIVERSION</a>
4123             </li>
4124             </ul>
4125             <p />
4126             <a name="VarPUBURL"></a>
4127             <h3><a name="PUBURL_the_base_URL_of_attachmen"> </a> PUBURL -- the base URL of attachments </h3>
4128             <ul>
4129             <li> Syntax: <code>%PUBURL%</code>
4130             </li>
4131             <li> Expands to: <code>./pub</code>
4132             </li>
4133             <li> Example: You can refer to a file attached to another topic with <code>%PUBURL%/%WEB%/OtherTopic/image.gif</code>
4134             </li>
4135             <li> Related: <a class="twikiAnchorLink" href="#VarATTACHURL">ATTACHURL</a>, <a class="twikiAnchorLink" href="#VarPUBURLPATH">PUBURLPATH</a>, <a class="twikiAnchorLink" href="#VarSCRIPTURL">SCRIPTURL</a>, <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/FileAttachment">FileAttachments</a>
4136             </li>
4137             </ul>
4138 rizwank 1.1 <p />
4139             <a name="VarPUBURLPATH"></a>
4140             <h3><a name="PUBURLPATH_the_base_URL_path_of"> </a><a name="PUBURLPATH_the_base_URL_path_of_"> </a> PUBURLPATH -- the base URL path of attachments </h3>
4141             <ul>
4142             <li> Syntax: <code>%PUBURLPATH%</code>
4143             </li>
4144             <li> Expands to: <code>./pub</code>
4145             </li>
4146             <li> Related: <a class="twikiAnchorLink" href="#VarATTACHURL">ATTACHURL</a>, <a class="twikiAnchorLink" href="#VarPUBURL">PUBURL</a>, <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/FileAttachment">FileAttachments</a>
4147             </li>
4148             </ul>
4149             <p />
4150             <a name="VarREMOTEADDR"></a>
4151             <h3><a name="REMOTE_ADDR_environment_variable"> </a> REMOTE_ADDR -- environment variable </h3>
4152             <ul>
4153             <li> Syntax: <code>%REMOTE_ADDR%</code>
4154             </li>
4155             <li> Expands to: ==
4156             </li>
4157             <li> Related: <a class="twikiAnchorLink" href="#VarHTTPHOST">HTTP_HOST</a>, <a class="twikiAnchorLink" href="#VarREMOTEPORT">REMOTE_PORT</a>, <a class="twikiAnchorLink" href="#VarREMOTEUSER">REMOTE_USER</a>
4158             </li>
4159 rizwank 1.1 </ul>
4160             <p />
4161             <a name="VarREMOTEPORT"></a>
4162             <h3><a name="REMOTE_PORT_environment_variable"> </a> REMOTE_PORT -- environment variable </h3>
4163             <ul>
4164             <li> Syntax: <code>%REMOTE_PORT%</code>
4165             </li>
4166             <li> Expands to: <code></code>
4167             </li>
4168             <li> Related: <a class="twikiAnchorLink" href="#VarHTTPHOST">HTTP_HOST</a>, <a class="twikiAnchorLink" href="#VarREMOTEADDR">REMOTE_ADDR</a>, <a class="twikiAnchorLink" href="#VarREMOTEUSER">REMOTE_USER</a>
4169             </li>
4170             </ul>
4171             <p />
4172             <a name="VarREMOTEUSER"></a>
4173             <h3><a name="REMOTE_USER_environment_variable"> </a> REMOTE_USER -- environment variable </h3>
4174             <ul>
4175             <li> Syntax: <code>%REMOTE_USER%</code>
4176             </li>
4177             <li> Expands to: <code></code>
4178             </li>
4179             <li> Related: <a class="twikiAnchorLink" href="#VarHTTPHOST">HTTP_HOST</a>, <a class="twikiAnchorLink" href="#VarREMOTEADDR">REMOTE_ADDR</a>, <a class="twikiAnchorLink" href="#VarREMOTEPORT">REMOTE_PORT</a>, <a class="twikiAnchorLink" href="#VarUSERNAME">USERNAME</a>, <a class="twikiAnchorLink" href="#VarWIKINAME">WIKINAME</a>, <a class="twikiAnchorLink" href="#VarWIKIUSERNAME">WIKIUSERNAME</a>
4180 rizwank 1.1 </li>
4181             </ul>
4182             <p />
4183             <a name="VarREVINFO"></a>
4184             <h3><a name="REVINFO_revision_information_of"> </a><a name="REVINFO_revision_information_of_"> </a> REVINFO -- revision information of current topic </h3>
4185             <ul>
4186             <li> Syntax: <code>%REVINFO%</code>
4187             </li>
4188             <li> Expands to: <code>r1.3 - 07 Oct 2004 - 05:33 - <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/Main/PeterThoeny">PeterThoeny</a></code>
4189             </li>
4190             <li> Related: <a class="twikiAnchorLink" href="#VarREVINFO2">REVINFO{"format"}</a>
4191             </li>
4192             </ul>
4193             <p />
4194             <a name="VarREVINFO2"></a>
4195             <h3><a name="REVINFO_format_formatted_revisio"> </a> REVINFO{"format"} -- formatted revision information of topic </h3>
4196             <ul>
4197             <li> Syntax: <code>%REVINFO{"format"}%</code>
4198             </li>
4199             <li> Supported parameters:
4200                  <table border="1" cellspacing="0" cellpadding="1"> <tr><th bgcolor="#99CCCC"> <strong>Parameter:</strong> </th><th bgcolor="#99CCCC"> <strong>Description:</strong> </th><th bgcolor="#99CCCC"> <strong>Default:</strong> </th></tr>
4201 rizwank 1.1      <tr><td>  <code>"format"</code>  </td><td>  Format of revision information, see supported variables below  </td><td>  <code>"r1.$rev - $date - $wikiusername"</code>  </td></tr>
4202                  <tr><td>  <code>web="..."</code>  </td><td>  Name of web  </td><td>  Current web  </td></tr>
4203                  <tr><td>  <code>topic="..."</code>  </td><td>  Topic name  </td><td>  Current topic  </td></tr>
4204                  <tr><td>  <code>rev="1.5"</code>  </td><td>  Specific revison number  </td><td>  Latest revision  </td></tr>
4205             </table>
4206             </li>
4207             <li> Supported variables in format:
4208                  <table border="1" cellspacing="0" cellpadding="1"> <tr><th bgcolor="#99CCCC"> <strong>Variable:</strong> </th><th bgcolor="#99CCCC"> <strong>Unit:</strong> </th><th bgcolor="#99CCCC"> <strong>Example</strong> </th></tr>
4209                  <tr><td>  <code>$web</code>  </td><td>  Name of web  </td><td>  Current web  </td></tr>
4210                  <tr><td>  <code>$topic</code>  </td><td>  Topic name  </td><td>  Current topic  </td></tr>
4211                  <tr><td>  <code>$rev</code>  </td><td>  Revison number. Prefix <code>r1.</code> to get the usual <code>r1.5</code> format  </td><td>  <code>5</code>  </td></tr>
4212                  <tr><td>  <code>$date</code>  </td><td>  Revision date  </td><td>  <code>11 Jul 2004</code>  </td></tr>
4213                  <tr><td>  <code>$username</code>  </td><td>  Login username of revision  </td><td>  <code>jsmith</code>  </td></tr>
4214                  <tr><td>  <code>$wikiname</code>  </td><td>  <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/WikiName">WikiName</a> of revision  </td><td>  <code>JohnSmith</code>  </td></tr>
4215                  <tr><td>  <code>$wikiusername</code>  </td><td>  WikiName with Main web prefix  </td><td>  <code>Main.JohnSmith</code>  </td></tr>
4216             </table>
4217             </li>
4218             <li> Example: <code>%REVINFO{"$date - $wikiusername" rev="1.1"}%</code> returns revision info of first revision
4219             </li>
4220             <li> Related: <a class="twikiAnchorLink" href="#VarREVINFO">REVINFO</a>
4221             </li>
4222 rizwank 1.1 </ul>
4223             <p />
4224             <a name="VarSCRIPTURL"></a>
4225             <h3><a name="SCRIPTURL_script_URL_of_TWiki"> </a> SCRIPTURL -- script URL of TWiki </h3>
4226             <ul>
4227             <li> Syntax: <code>%SCRIPTURL%</code>
4228             </li>
4229             <li> Expands to: <code>http://TWiki.org/cgi-bin</code>
4230             </li>
4231             <li> Example: To get the authenticated version of current topic write <code>%SCRIPTURL%/viewauth%SCRIPTSUFFIX%/%WEB%/%TOPIC%</code> which expands to <code>http://TWiki.org/cgi-bin/viewauth/TWiki/TWikiVariablesNtoZ</code>
4232             </li>
4233             <li> Related: <a class="twikiAnchorLink" href="#VarPUBURL">PUBURL</a>, <a class="twikiAnchorLink" href="#VarSCRIPTSUFFIX">SCRIPTSUFFIX</a>, <a class="twikiAnchorLink" href="#VarSCRIPTURLPATH">SCRIPTURLPATH</a>
4234             </li>
4235             </ul>
4236             <p />
4237             <a name="VarSCRIPTURLPATH"></a>
4238             <h3><a name="SCRIPTURLPATH_script_URL_path_of"> </a> SCRIPTURLPATH -- script URL path of TWiki </h3>
4239             <ul>
4240             <li> Syntax: <code>%SCRIPTURLPATH%</code>
4241             </li>
4242             <li> Expands to: <code>/cgi-bin</code>
4243 rizwank 1.1 </li>
4244             <li> Related: <a class="twikiAnchorLink" href="#VarPUBURLPATH">PUBURLPATH</a>, <a class="twikiAnchorLink" href="#VarSCRIPTURL">SCRIPTURL</a>
4245             </li>
4246             </ul>
4247             <p />
4248             <a name="VarSCRIPTSUFFIX"></a>
4249             <h3><a name="SCRIPTSUFFIX_script_suffix"> </a> SCRIPTSUFFIX -- script suffix </h3>
4250             <ul>
4251             <li> Some TWiki installations require a file extension for CGI scripts like <code>.pl</code> or <code>.cgi</code>
4252             </li>
4253             <li> Syntax: <code>%SCRIPTSUFFIX%</code>
4254             </li>
4255             <li> Expands to: <code></code>
4256             </li>
4257             <li> Related: <a class="twikiAnchorLink" href="#VarSCRIPTURL">SCRIPTURL</a>
4258             </li>
4259             </ul>
4260             <p />
4261             <a name="VarSEARCH"></a>
4262             <h3><a name="SEARCH_text_search_content"> </a> SEARCH{"text"} -- search content </h3>
4263             <ul>
4264 rizwank 1.1 <li> Inline search, shows a search result embedded in a topic
4265             </li>
4266             <li> Syntax: <code>%SEARCH{"text" ...}%</code>
4267             </li>
4268             <li> Supported parameters: [1]
4269                  <table border="1" cellspacing="0" cellpadding="1"> <tr><th bgcolor="#99CCCC"> <strong>Parameter:</strong> </th><th bgcolor="#99CCCC"> <strong>Description:</strong> </th><th bgcolor="#99CCCC"> <strong>Default:</strong> </th></tr>
4270                  <tr><td>  <code>"text"</code>  </td><td>  Search term. Is a keyword search, literal search or regular expression search, depending on the <code>type</code> parameter. <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/SearchHelp">SearchHelp</a> has more  </td><td>  required  </td></tr>
4271                  <tr><td>  <code>search="text"</code>  </td><td>  (Alternative to above)  </td><td>  N/A  </td></tr>
4272                  <tr><td>  <code>web="Name"</code> <br /> <code>web="Main, Know"</code> <br /> <code>web="all"</code>  </td><td>  Wiki web to search: A web, a list of webs separated by comma, or <code>all</code> webs. [2]  </td><td>  Current web  </td></tr>
4273                  <tr><td>  <code>topic="WebPreferences"</code> <br /> <code>topic="*Bug"</code>  </td><td>  Limit search to topics: A topic, a topic with asterisk wildcards, or a list of topics separated by comma.  </td><td>  All topics in a web  </td></tr>
4274                  <tr><td>  <code>excludetopic="Web*"</code> <br /> <code>excludetopic="WebHome, WebChanges"</code>  </td><td>  Exclude topics from search: A topic, a topic with asterisk wildcards, or a list of topics separated by comma.  </td><td>  None  </td></tr>
4275                  <tr><td>  <code>type="keyword"</code> <br /> <code>type="literal"</code> <br /> <code>type="regex"</code>  </td><td>  Do a keyword search like <code>soap "web service" -shampoo</code>; a literal search like <code>web service</code>; or <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/RegularExpression">RegularExpression</a> search like <code>soap;web service;!shampoo</code>  </td><td>  <code>%SEARCHVARDEFAULTTYPE%</code> <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/TWikiPreferences">preferences</a> setting (literal)  </td></tr>
4276                  <tr><td>  <code>scope="topic"</code> <br /> <code>scope="text"</code> <br /> <code>scope="all"</code>  </td><td>  Search topic name (title); the text (body) of topic; or all (both)  </td><td>  <code>"text"</code>  </td></tr>
4277                  <tr><td>  <code>order="topic"</code> <br /> <code>order="created"</code> <br />  <code>order="modified"</code> <br /> <code>order="editby"</code> <br /> <code>order=<br />&nbsp;"formfield(name)"</code>  </td><td>  Sort the results of search by the topic names, topic creation time, last modified time, last editor, or named field of <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/TWikiForms">TWikiForms</a>. The sorting is done web by web; in case you want to sort across webs, create a <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/FormattedSearch">formatted</a> table and sort it with <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/TablePlugin">TablePlugin</a>'s initsort  </td><td>  Sort by topic name  </td></tr>
4278                  <tr><td>  <code>limit="all"</code> <br /> <code>limit="16"</code>  </td><td>  Limit the number of results returned. This is done after sorting if <code>order</code> is specified  </td><td>  All results  </td></tr>
4279                  <tr><td>  <code>reverse="on"</code>  </td><td>  Reverse the direction of the search  </td><td>  Ascending search  </td></tr>
4280                  <tr><td>  <code>casesensitive="on"</code>  </td><td>  Case sensitive search  </td><td>  Ignore case  </td></tr>
4281                  <tr><td>  <code>nosummary="on"</code>  </td><td>  Show topic title only  </td><td>  Show topic summary  </td></tr>
4282                  <tr><td>  <code>bookview="on"</code>  </td><td>  <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/BookView">BookView</a> search, e.g. show complete topic text  </td><td>  Show topic summary  </td></tr>
4283                  <tr><td>  <code>nosearch="on"</code>  </td><td>  Suppress search string  </td><td>  Show search string  </td></tr>
4284                  <tr><td>  <code>noheader="on"</code>  </td><td>  Suppress search header <br /> <span style='background: #FFB0B0;'> <strong>Topics: Changed: By:</strong> </span>  </td><td>  Show search header  </td></tr>
4285 rizwank 1.1      <tr><td>  <code>nototal="on"</code>  </td><td>  Do not show number of topics found  </td><td>  Show number  </td></tr>
4286                  <tr><td>  <code>header="..."</code> <br /> <code>format="..."</code>  </td><td>  Custom format results: see <strong><a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/FormattedSearch">FormattedSearch</a></strong> for usage, variables &amp; examples  </td><td>  Results in table  </td></tr>
4287                  <tr><td>  <code>expandvariables="on"</code>  </td><td>  Expand variables before applying a <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/FormattedSearch">FormattedSearch</a> on a search hit. Useful to show the expanded text, e.g. to show the result of a <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/SpreadSheetPlugin">SpreadSheetPlugin</a> <code>%CALC{}%</code> instead of the formula  </td><td>  Raw text  </td></tr>
4288                  <tr><td>  <code>multiple="on"</code>  </td><td>  Multiple hits per topic. Each hit can be <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/FormattedSearch">formatted</a>. The last token is used in case of a regular expression ";" <em>and</em> search  </td><td>  Only one hit per topic  </td></tr>
4289                  <tr><td>  <code>separator=", "</code>  </td><td>  Line separator <em>between</em> hits, effective only in <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/FormattedSearch">FormattedSearch</a>  </td><td>  Newline <code>"$n"</code>  </td></tr>
4290                  <tr><td>  <code>newline="%BR%"</code>  </td><td>  Line separator <em>within</em> a search hit, effective only in <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/FormattedSearch">FormattedSearch</a>. Useful to capture multiple lines in a <code>$pattern()</code> and to show that in a TWiki table; or to perform a spreadsheet CALCulation on multiple lines  </td><td>  Newline <code>"$n"</code>  </td></tr>
4291             </table>
4292             </li>
4293             <li> Example: <code>%SEARCH{"wiki" web="Main" scope="topic"}%</code>
4294             </li>
4295             <li> Example with format: <code>%SEARCH{"FAQ" scope="topic" nosearch="on" nototal="on" header="| *Topic: * | *Summary: * |" format="| $topic | $summary |"%</code> <em>(displays results in a table with header - <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/FormattedSearch">details</a>)</em>
4296             </li>
4297             <li> <img src="./pub/TWiki/TWikiDocGraphics/help.gif" border="0" alt="HELP" width="16" height="16" /> If the <a href="http://twiki.org/cgi-bin/view/Plugins.TablePlugin" title="'Plugins.TablePlugin' on TWiki.org">TWiki:Plugins.TablePlugin</a> is installed, you may set a <code>%TABLE{}%</code> variable just before the <code>%SEARCH{}%</code> to alter the output of a search.  Example: <code>%TABLE{ tablewidth="90%" }%</code>
4298             </li>
4299             <li> Related: <a class="twikiAnchorLink" href="#VarMETASEARCH">METASEARCH</a>, <a class="twikiAnchorLink" href="#VarTOPICLIST">TOPICLIST</a>, <a class="twikiAnchorLink" href="#VarWEBLIST">WEBLIST</a>, <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/FormattedSearch">FormattedSearch</a>, <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/SearchHelp">SearchHelp</a>
4300             </li>
4301             </ul>
4302             <p />
4303             <ul>
4304             <li> [1] <strong><em>Note</em></strong>: The search form uses identical names for input fields.
4305             </li>
4306 rizwank 1.1 <li> [2] <strong><em>Note</em></strong>: A web can be excluded from a <code>web="all"</code> search if you define a <code>NOSEARCHALL=on</code> variable in its <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/WebPreferences">WebPreferences</a>
4307             </li>
4308             </ul>
4309             <p />
4310             <p />
4311             <a name="VarSERVERTIME"></a>
4312             <h3><a name="SERVERTIME_server_time"> </a> SERVERTIME -- server time </h3>
4313             <ul>
4314             <li> Syntax: <code>%SERVERTIME%</code>
4315             </li>
4316             <li> Expands to: <code>30 Oct 2004 - 02:29</code>
4317             </li>
4318             <li> Related: <a class="twikiAnchorLink" href="#VarDISPLAYTIME">DISPLAYTIME</a>, <a class="twikiAnchorLink" href="#VarGMTIME">GMTIME</a>, <a class="twikiAnchorLink" href="#VarSERVERTIME2">SERVERTIME{"format"}</a>
4319             </li>
4320             </ul>
4321             <p />
4322             <a name="VarSERVERTIME2"></a>
4323             <h3><a name="SERVERTIME_format_formatted_serv"> </a> SERVERTIME{"format"} -- formatted server time </h3>
4324             <ul>
4325             <li> Same format qualifiers as <code>%GMTIME%</code>
4326             </li>
4327 rizwank 1.1 <li> Syntax: <code>%SERVERTIME{"format"}%</code>
4328             </li>
4329             <li> Example: <code>%SERVERTIME{"$hou:$min"}%</code> expands to <code>02:29</code>
4330             </li>
4331             <li> Related: <a class="twikiAnchorLink" href="#VarDISPLAYTIME">DISPLAYTIME</a>, <a class="twikiAnchorLink" href="#VarGMTIME">GMTIME</a>, <a class="twikiAnchorLink" href="#VarSERVERTIME">SERVERTIME</a>
4332             </li>
4333             </ul>
4334             <p />
4335             <a name="VarSPACEDTOPIC"></a>
4336             <h3><a name="SPACEDTOPIC_topic_name_spaced_an"> </a> SPACEDTOPIC -- topic name, spaced and encoded </h3>
4337             <ul>
4338             <li> The current topic name with added spaces, for regular expression search of Ref-By
4339             </li>
4340             <li> Syntax: <code>%SPACEDTOPIC%</code>
4341             </li>
4342             <li> Expands to: <code>TWiki%20*Variables%20*Nto%20*Z</code>
4343             </li>
4344             <li> Related: <a class="twikiAnchorLink" href="#VarTOPIC">TOPIC</a>
4345             </li>
4346             </ul>
4347             <p />
4348 rizwank 1.1 <a name="VarSTARTINCLUDE"></a>
4349             <h3><a name="STARTINCLUDE_start_position_of_t"> </a> STARTINCLUDE -- start position of topic text if included </h3>
4350             <ul>
4351             <li> If present in included topic, start to include text from this location up to the end, or up to the location of the <code>%STOPINCLUDE%</code> variable. A normal view of the topic shows everyting exept the <code>%STARTINCLUDE%</code> variable itself.
4352             </li>
4353             <li> Syntax: <code>%STARTINCLUDE%</code>
4354             </li>
4355             <li> Related: <a class="twikiAnchorLink" href="#VarINCLUDE">INCLUDE</a>, <a class="twikiAnchorLink" href="#VarSTOPINCLUDE">STOPINCLUDE</a>
4356             </li>
4357             </ul>
4358             <p />
4359             <a name="VarSTATISTICSTOPIC"></a>
4360             <h3><a name="STATISTICSTOPIC_name_of_statisti"> </a> STATISTICSTOPIC -- name of statistics topic </h3>
4361             <ul>
4362             <li> Syntax: <code>%STATISTICSTOPIC%</code>
4363             </li>
4364             <li> Expands to: <code>WebStatistics</code>, renders as <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/WebStatistics">WebStatistics</a>
4365             </li>
4366             <li> Related: <a class="twikiAnchorLink" href="#VarHOMETOPIC">HOMETOPIC</a>, <a class="twikiAnchorLink" href="#VarNOTIFYTOPIC">NOTIFYTOPIC</a>, <a class="twikiAnchorLink" href="#VarTOPIC">TOPIC</a>
4367             </li>
4368             </ul>
4369 rizwank 1.1 <p />
4370             <a name="VarSTOPINCLUDE"></a>
4371             <h3><a name="STOPINCLUDE_end_position_of_topi"> </a> STOPINCLUDE -- end position of topic text if included </h3>
4372             <ul>
4373             <li> If present in included topic, stop to include text at this location and ignore the remaining text. A normal view of the topic shows everyting exept the <code>%STOPINCLUDE%</code> variable itself.
4374             </li>
4375             <li> Syntax: <code>%STOPINCLUDE%</code>
4376             </li>
4377             <li> Related: <a class="twikiAnchorLink" href="#VarINCLUDE">INCLUDE</a>, <a class="twikiAnchorLink" href="#VarSTARTINCLUDE">STARTINCLUDE</a>
4378             </li>
4379             </ul>
4380             <p />
4381             <a name="VarTOC"></a>
4382             <h3><a name="TOC_table_of_contents_of_current"> </a> TOC -- table of contents of current topic </h3>
4383             <ul>
4384             <li> Syntax: <code>%TOC%</code>
4385             </li>
4386             <li> Related: <a class="twikiAnchorLink" href="#VarTOC2">TOC{"SomeTopic"}</a>
4387             </li>
4388             </ul>
4389             <p />
4390 rizwank 1.1 <a name="VarTOC2"></a>
4391             <h3><a name="TOC_Topic_table_of_contents"> </a> TOC{"Topic"} -- table of contents </h3>
4392             <ul>
4393             <li> Syntax: <code>%TOC{"SomeTopic" ...}%</code>
4394             </li>
4395             <li> Table of Contents. Shows a TOC that is generated automatically based on headings of a topic. Headings in <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/WikiSyntax">WikiSyntax</a> (<code>"---++ text"</code>) and HTML (<code>"&lt;h2&gt;text&lt;/h2&gt;"</code>) are taken into account. Any heading text after <code>"!!"</code> is excluded from the TOC; for example, write <code>"---+!! text"</code> if you do not want to list a header in the TOC
4396             </li>
4397             <li> Supported parameters:
4398                 <table border="1" cellspacing="0" cellpadding="1"> <tr><th bgcolor="#99CCCC"> <strong>Parameter:</strong> </th><th bgcolor="#99CCCC"> <strong>Description:</strong> </th><th bgcolor="#99CCCC"> <strong>Default:</strong> </th></tr>
4399                 <tr><td>  <code>"TopicName"</code>  </td><td>  topic name  </td><td>  Current topic  </td></tr>
4400                 <tr><td>  <code>web="Name"</code>  </td><td>  Name of web  </td><td>  Current web  </td></tr>
4401                 <tr><td>  <code>depth="2"</code>  </td><td>  Limit depth of headings shown in TOC  </td><td>  6  </td></tr>
4402                 <tr><td>  <code>title="Some text"</code>  </td><td>  Title to appear at top of TOC  </td><td>  none  </td></tr>
4403             </table>
4404             </li>
4405             <li> Example: <code>%TOC{depth="2"}%</code>
4406             </li>
4407             <li> Example: <code>%TOC{"TWikiDocumentation" web="TWiki" title="Contents:"}%</code>
4408             </li>
4409             <li> Example: see <a href="http://twiki.org/cgi-bin/view/Sandbox.TestTopicInclude" title="'Sandbox.TestTopicInclude' on TWiki.org">TWiki:Sandbox.TestTopicInclude</a>
4410             </li>
4411 rizwank 1.1 <li> Related: <a class="twikiAnchorLink" href="#VarTOC">TOC</a>
4412             </li>
4413             </ul>
4414             <p />
4415             <a name="VarTOPIC"></a>
4416             <h3><a name="TOPIC_name_of_current_topic"> </a> TOPIC -- name of current topic </h3>
4417             <ul>
4418             <li> Syntax: <code>%TOPIC%</code>
4419             </li>
4420             <li> Expands to: <code>TWikiVariablesNtoZ</code>, renders as <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/TWikiVariablesNtoZ">TWikiVariablesNtoZ</a>
4421             </li>
4422             <li> Related: <a class="twikiAnchorLink" href="#VarBASETOPIC">BASETOPIC</a>, <a class="twikiAnchorLink" href="#VarINCLUDINGTOPIC">INCLUDINGTOPIC</a>, <a class="twikiAnchorLink" href="#VarTOPICLIST">TOPICLIST</a>, <a class="twikiAnchorLink" href="#VarWEB">WEB</a>
4423             </li>
4424             </ul>
4425             <p />
4426             <a name="VarTOPICLIST"></a>
4427             <h3><a name="TOPICLIST_format_topic_index_of"> </a><a name="TOPICLIST_format_topic_index_of_"> </a> TOPICLIST{"format"} -- topic index of a web </h3>
4428             <ul>
4429             <li> The "format" defines the format of one topic item. It may include variables: The <code>$name</code> variable gets expanded to the topic name; the <code>$web</code> variable gets expanded to the name of the web.
4430             </li>
4431             <li> Syntax: <code>%TOPICLIST{"format" ...}%</code>
4432 rizwank 1.1 </li>
4433             <li> Supported parameters:
4434                 <table border="1" cellspacing="0" cellpadding="1"> <tr><th bgcolor="#99CCCC"> <strong>Parameter:</strong> </th><th bgcolor="#99CCCC"> <strong>Description:</strong> </th><th bgcolor="#99CCCC"> <strong>Default:</strong> </th></tr>
4435                 <tr><td>  <code>"format"</code>  </td><td>  Format of one line, may include <code>$name</code> and <code>$web</code> variables  </td><td>  <code>"$name"</code>  </td></tr>
4436                 <tr><td>  <code>format="format"</code>  </td><td>  (Alternative to above)  </td><td>  <code>"$name"</code>  </td></tr>
4437                 <tr><td>  <code>separator=", "</code>  </td><td>  line separator  </td><td>  <code>"\n"</code> (new line)  </td></tr>
4438                 <tr><td>  <code>web="Name"</code>  </td><td>  Name of web  </td><td>  Current web  </td></tr>
4439             </table>
4440             </li>
4441             <li> Example: <code>%TOPICLIST{" &nbsp; * $web.$name"}%</code> creates a bullet list of all topics
4442             </li>
4443             <li> Example: <code>%TOPICLIST{separator=", "}%</code> creates a comma separated list of all topics
4444             </li>
4445             <li> Example: <code>%TOPICLIST{" &lt;option&gt;$name&lt;/option&gt;"}%</code> creates an option list (for drop down menus)
4446             </li>
4447             <li> Related: <a class="twikiAnchorLink" href="#VarSEARCH">SEARCH</a>, <a class="twikiAnchorLink" href="#VarWEBLIST">WEBLIST</a>
4448             </li>
4449             </ul>
4450             <p />
4451             <a name="VarTWIKIWEB"></a>
4452             <h3><a name="TWIKIWEB_name_of_TWiki_documenta"> </a> TWIKIWEB -- name of TWiki documentation web </h3>
4453 rizwank 1.1 <ul>
4454             <li> The web containing all documentation and site-wide preference settings for TWiki
4455             </li>
4456             <li> Syntax: <code>%TWIKIWEB%</code>
4457             </li>
4458             <li> Expands to: <code>TWiki</code>
4459             </li>
4460             <li> Related: <a class="twikiAnchorLink" href="#VarMAINWEB">MAINWEB</a>
4461             </li>
4462             </ul>
4463             <p />
4464             <a name="VarURLPARAM"></a>
4465             <h3><a name="URLPARAM_name_get_value_of_a_URL"> </a> URLPARAM{"name"} -- get value of a URL parameter </h3>
4466             <ul>
4467             <li> Returns the value of a URL parameter. Note that there is a risk that this variable could be misused for cross-scripting
4468             </li>
4469             <li> Syntax: <code>%URLPARAM{"name"}%</code>
4470             </li>
4471             <li> Supported parameters:
4472                  <table border="1" cellspacing="0" cellpadding="1"> <tr><th bgcolor="#99CCCC"> <strong>Parameter:</strong> </th><th bgcolor="#99CCCC"> <strong>Description:</strong> </th><th bgcolor="#99CCCC"> <strong>Default:</strong> </th></tr>
4473                  <tr><td>  <code>"name"</code>  </td><td>  The name of a URL parameter  </td><td>  required  </td></tr>
4474 rizwank 1.1      <tr><td>  <code>default="..."</code>  </td><td>  Default value in case parameter is empty or missing  </td><td>  empty string  </td></tr>
4475                  <tr><td>  <code>newline="&lt;br /&gt;"</code>  </td><td>  Convert newlines in textarea to other delimiters  </td><td>  no conversion  </td></tr>
4476                  <tr><td>  <code>encode="entity"</code>  </td><td>  Encode special characters into HTML entities, like a double quote into <code>&amp;#034;</code>. This is needed if text is put into an HTML form field  </td><td>  no encoding  </td></tr>
4477                  <tr><td>  <code>encode="url"</code>  </td><td>  Encode special characters for URL parameter use, like a double quote into <code>%22</code>  </td><td>  no encoding  </td></tr>
4478                  <tr><td>  <code>multiple="on"</code> <br /> <code>multiple="[[$item]]"</code>  </td><td>  If set, gets all selected elements of a <code>&lt;select multiple="multiple"&gt;</code> tag. A format can be specified, with <code>$item</code> indicating the element, e.g. <code>multiple="Option: $item"</code>  </td><td>  first element  </td></tr>
4479                  <tr><td>  <code>separator=", "</code>  </td><td>  Separator between multiple selections. Only relevant if multiple is specified  </td><td>  <code>"\n"</code> (new line)  </td></tr>
4480             </table>
4481             </li>
4482             <li> Example: <code>%URLPARAM{"skin"}%</code> returns <code>print</code> for a <code>.../view/TWiki/TWikiVariablesNtoZ?skin=print</code> URL. <a href="http://TWiki.org/cgi-bin/viewauth/TWiki/TWikiVariablesNtoZ?skin=print#VarURLPARAM" target="_top">Test this</a>: 
4483             </li>
4484             <li> Related: <a class="twikiAnchorLink" href="#VarSEARCH">SEARCH</a>, <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/FormattedSearch">FormattedSearch</a>
4485             </li>
4486             </ul>
4487             <p />
4488             <a name="VarUSERNAME"></a>
4489             <h3><a name="USERNAME_your_login_username"> </a> USERNAME -- your login username </h3>
4490             <ul>
4491             <li> TWiki makes names available in three formats: USERNAME like <code>jsmith</code>, WIKINAME like <code>JohnSmith</code> and WIKIUSERNAME like <code>Main.JohnSmith</code>. A user is a <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/Main/TWikiGuest">TWikiGuest</a> in case the topic is not authenticated
4492             </li>
4493             <li> Syntax: <code>%USERNAME%</code>
4494             </li>
4495 rizwank 1.1 <li> Expands to: <code>guest</code>
4496             </li>
4497             <li> Related: <a class="twikiAnchorLink" href="#VarREMOTEUSER">REMOTE_USER</a>, <a class="twikiAnchorLink" href="#VarWIKINAME">WIKINAME</a>, <a class="twikiAnchorLink" href="#VarWIKIUSERNAME">WIKIUSERNAME</a>, <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/TWikiUserAuthentication">TWikiUserAuthentication</a>
4498             </li>
4499             </ul>
4500             <p />
4501             <a name="VarVAR"></a>
4502             <h3><a name="VAR_NAME_web_Web_get_a_preferenc"> </a> VAR{"NAME" web="Web"} -- get a preference value from another web  </h3>
4503             <ul>
4504             <li> Syntax: <code>%VAR{"NAME" web="Web"}%</code>
4505             </li>
4506             <li> Example: To get <code>%WEBBGCOLOR%</code> of the Main web write <code>%VAR{"WEBBGCOLOR" web="Main"}%</code>, which expands to <code>#FFEFA6</code>
4507             </li>
4508             <li> Related: <a class="twikiAnchorLink" href="#VarWEBPREFSTOPIC">WEBPREFSTOPIC</a>
4509             </li>
4510             </ul>
4511             <p />
4512             <a name="VarWEB"></a>
4513             <h3><a name="WEB_name_of_current_web"> </a> WEB -- name of current web </h3>
4514             <ul>
4515             <li> Syntax: <code>%WEB%</code>
4516 rizwank 1.1 </li>
4517             <li> Expands to: <code>TWiki</code>
4518             </li>
4519             <li> Related: <a class="twikiAnchorLink" href="#VarBASEWEB">BASEWEB</a>, <a class="twikiAnchorLink" href="#VarINCLUDINGWEB">INCLUDINGWEB</a>, <a class="twikiAnchorLink" href="#VarTOPIC">TOPIC</a>
4520             </li>
4521             </ul>
4522             <p />
4523             <a name="VarWEBLIST"></a>
4524             <h3><a name="WEBLIST_format_index_of_all_webs"> </a> WEBLIST{"format"} -- index of all webs </h3>
4525             <ul>
4526             <li> List of all webs. Hidden webs are excluded, e.g. webs with a <code>NOSEARCHALL=on</code> preference variable. The <code>"format"</code> defines the format of one web item. The <code>$name</code> variable gets expanded to the name of the web, <code>$qname</code> gets expanded to double quoted name, <code>$marker</code> to <code>marker</code> where web matches <code>selection</code>.
4527             </li>
4528             <li> Syntax: <code>%WEBLIST{"format" ...}%</code>
4529             </li>
4530             <li> Supported parameters:
4531                  <table border="1" cellspacing="0" cellpadding="1"> <tr><th bgcolor="#99CCCC"> <strong>Parameter:</strong> </th><th bgcolor="#99CCCC"> <strong>Description:</strong> </th><th bgcolor="#99CCCC"> <strong>Default:</strong> </th></tr>
4532                  <tr><td>  <code>"format"</code>  </td><td>  Format of one line, may include <code>$name</code> variable  </td><td>  <code>"$name"</code>  </td></tr>
4533                  <tr><td>  <code>format="format"</code>  </td><td>  (Alternative to above)  </td><td>  <code>"$name"</code>  </td></tr>
4534                  <tr><td>  <code>separator=", "</code>  </td><td>  line separator  </td><td>  <code>"\n"</code> (new line)  </td></tr>
4535                  <tr><td>  <code>webs="public"</code>    </td><td>  comma sep list of Web, public expands to all non-hidden  </td><td>  <code>"public"</code>  </td></tr>
4536                  <tr><td>  <code>marker="selected"</code>  </td><td>  Text for <code>$marker</code> where item matches <code>selection</code>, otherwise equals <code>""</code>  </td><td>  <code>"selected"</code>  </td></tr>
4537 rizwank 1.1      <tr><td>  <code>selection="%WEB%"</code>  </td><td>  Current value to be selected in list  </td><td>  <code>section="%WEB%"</code>  </td></tr>
4538             </table>
4539             </li>
4540             <li> Example: <code>%WEBLIST{" &nbsp; * [[$name.WebHome]]"}%</code> creates a bullet list of all webs.
4541             </li>
4542             <li> Example: <code>%WEBLIST{"&lt;option $marker value=$qname&gt;$name&lt;/option&gt;" webs="Trash,public" selection="TWiki" separator=" "}%</code> Dropdown of all public Webs + Trash Web, current Web highlighted.
4543             </li>
4544             <li> Related: <a class="twikiAnchorLink" href="#VarTOPICLIST">TOPICLIST</a>, <a class="twikiAnchorLink" href="#VarSEARCH">SEARCH</a>
4545             </li>
4546             </ul>
4547             <p />
4548             <a name="VarWEBPREFSTOPIC"></a>
4549             <h3><a name="WEBPREFSTOPIC_name_of_web_prefer"> </a> WEBPREFSTOPIC -- name of web preferences topic </h3>
4550             <ul>
4551             <li> Syntax: <code>%WEBPREFSTOPIC%</code>
4552             </li>
4553             <li> Expands to: <code>WebPreferences</code>, renders as <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/WebPreferences">WebPreferences</a>
4554             </li>
4555             <li> Related: <a class="twikiAnchorLink" href="#VarHOMETOPIC">HOMETOPIC</a>, <a class="twikiAnchorLink" href="#VarWIKIPREFSTOPIC">WIKIPREFSTOPIC</a>, <a class="twikiAnchorLink" href="#VarVAR">VAR</a>
4556             </li>
4557             </ul>
4558 rizwank 1.1 <p />
4559             <a name="VarWIKIHOMEURL"></a>
4560             <h3><a name="WIKIHOMEURL_site_home_URL"> </a> WIKIHOMEURL -- site home URL </h3>
4561             <ul>
4562             <li> The base URL of TWiki, is the link of the Home icon in the upper left corner, defined in TWiki.cfg
4563             </li>
4564             <li> Syntax: <code>%WIKIHOMEURL%</code>
4565             </li>
4566             <li> Expands to: <code>http://TWiki.org/</code>
4567             </li>
4568             <li> Related: <a class="twikiAnchorLink" href="#VarWIKITOOLNAME">WIKITOOLNAME</a>
4569             </li>
4570             </ul>
4571             <p />
4572             <a name="VarWIKINAME"></a>
4573             <h3><a name="WIKINAME_your_Wiki_username"> </a> WIKINAME -- your Wiki username </h3>
4574             <ul>
4575             <li> The <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/WikiName">WikiName</a> is the same as %USERNAME% if not defined in the <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/Main/TWikiUsers">TWikiUsers</a> topic
4576             </li>
4577             <li> Syntax: <code>%WIKINAME%</code>
4578             </li>
4579 rizwank 1.1 <li> Expands to: <code>TWikiGuest</code>
4580             </li>
4581             <li> Related: <a class="twikiAnchorLink" href="#VarREMOTEUSER">REMOTE_USER</a>, <a class="twikiAnchorLink" href="#VarUSERNAME">USERNAME</a>, <a class="twikiAnchorLink" href="#VarWIKIUSERNAME">WIKIUSERNAME</a>, <a class="twikiAnchorLink" href="#VarWIKIUSERSTOPIC">WIKIUSERSTOPIC</a>
4582             </li>
4583             </ul>
4584             <p />
4585             <a name="VarWIKIPREFSTOPIC"></a>
4586             <h3><a name="WIKIPREFSTOPIC_name_of_site_wide"> </a> WIKIPREFSTOPIC -- name of site-wide preferences topic </h3>
4587             <ul>
4588             <li> Syntax: <code>%WIKIPREFSTOPIC%</code>
4589             </li>
4590             <li> Expands to: <code>TWikiPreferences</code>, renders as <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/TWikiPreferences">TWikiPreferences</a>
4591             </li>
4592             <li> Related: <a class="twikiAnchorLink" href="#VarHOMETOPIC">HOMETOPIC</a>, <a class="twikiAnchorLink" href="#VarWEBPREFSTOPIC">WEBPREFSTOPIC</a>
4593             </li>
4594             </ul>
4595             <p />
4596             <a name="VarWIKITOOLNAME"></a>
4597             <h3><a name="WIKITOOLNAME_name_of_your_TWiki"> </a><a name="WIKITOOLNAME_name_of_your_TWiki_"> </a> WIKITOOLNAME -- name of your TWiki site </h3>
4598             <ul>
4599             <li> Syntax: <code>%WIKITOOLNAME%</code>
4600 rizwank 1.1 </li>
4601             <li> Expands to: <code>TWiki</code>
4602             </li>
4603             <li> Related: <a class="twikiAnchorLink" href="#VarWIKIHOMEURL">WIKIHOMEURL</a>, <a class="twikiAnchorLink" href="#VarWIKIVERSION">WIKIVERSION</a>
4604             </li>
4605             </ul>
4606             <p />
4607             <a name="VarWIKIUSERNAME"></a>
4608             <h3><a name="WIKIUSERNAME_your_Wiki_username"> </a><a name="WIKIUSERNAME_your_Wiki_username_"> </a> WIKIUSERNAME -- your Wiki username with web prefix </h3>
4609             <ul>
4610             <li> Your %WIKINAME% with Main web prefix, useful to point to your TWiki home page
4611             </li>
4612             <li> Syntax: <code>%WIKIUSERNAME%</code>
4613             </li>
4614             <li> Expands to: <code>Main.TWikiGuest</code>, renders as <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/Main/TWikiGuest">TWikiGuest</a>
4615             </li>
4616             <li> Related: <a class="twikiAnchorLink" href="#VarREMOTEUSER">REMOTE_USER</a>, <a class="twikiAnchorLink" href="#VarUSERNAME">USERNAME</a>, <a class="twikiAnchorLink" href="#VarWIKINAME">WIKINAME</a>
4617             </li>
4618             </ul>
4619             <p />
4620             <a name="VarWIKIUSERSTOPIC"></a>
4621 rizwank 1.1 <h3><a name="WIKIUSERSTOPIC_name_of_topic_lis"> </a> WIKIUSERSTOPIC -- name of topic listing all registers users </h3>
4622             <ul>
4623             <li> Syntax: <code>%WIKIUSERSTOPIC%</code>
4624             </li>
4625             <li> Expands to: <code>TWikiUsers</code>, with Main prefix renders as <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/Main/TWikiUsers">TWikiUsers</a>
4626             </li>
4627             <li> Related: <a class="twikiAnchorLink" href="#VarWIKIUSERNAME">WIKIUSERNAME</a>
4628             </li>
4629             </ul>
4630             <p />
4631             <a name="VarWIKIVERSION"></a>
4632             <h3><a name="WIKIVERSION_the_version_of_the_i"> </a> WIKIVERSION -- the version of the installed TWiki engine </h3>
4633             <ul>
4634             <li> Syntax: <code>%WIKIVERSION%</code>
4635             </li>
4636             <li> Expands to: <code>30 Oct 2004 $Rev: 1794 $</code>
4637             </li>
4638             <li> Related: <a class="twikiAnchorLink" href="#VarPLUGINVERSION">PLUGINVERSION</a>, <a class="twikiAnchorLink" href="#VarWIKITOOLNAME">WIKITOOLNAME</a>
4639             </li>
4640             </ul>
4641             <p />
4642 rizwank 1.1 <p />
4643             <strong><em>Note:</em></strong> Above text is included from <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/TWikiVariablesAtoM">TWikiVariablesAtoM</a> and <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/TWikiVariablesNtoZ">TWikiVariablesNtoZ</a>
4644             <p />
4645             <p />
4646             <a name="PreferencesVariables"></a>
4647             <h2><a name="Preferences_Variables"> </a> Preferences Variables </h2>
4648             <p />
4649             Additional variables are defined in the preferences topics:
4650             <ul>
4651             <li> site-level ( <strong><em>SL</em></strong> ) in <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/TWikiPreferences">TWikiPreferences</a>
4652             </li>
4653             <li> web-level ( <strong><em>WL</em></strong> ) in <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/WebPreferences">WebPreferences</a> of each web
4654             </li>
4655             <li> user level ( <strong><em>UL</em></strong> ) in individual user topics
4656             </li>
4657             </ul>
4658             <p />
4659             <table cellspacing="0" cellpadding="2" border="1" align="center" style="background-color:#f5f5f5">
4660             <tr>
4661               <th width="160"> Variable: </th><th> Level: </th><th> What: </th><th>Expands to:</th>
4662             </tr>
4663 rizwank 1.1 <tr>
4664               <td> <code>%ALLOWTOPICCHANGE%</code> </td>
4665               <td> <strong><em>(any topic)</em></strong> </td>
4666               <td> List of users and groups who are <strong>allowed</strong> to change the current topic. (More in <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/TWikiAccessControl">TWikiAccessControl</a>) </td>
4667               <td>  &nbsp;</td>
4668             </tr>
4669             <tr>
4670               <td> <code>%ALLOWTOPICRENAME%</code> </td>
4671               <td> <strong><em>(any topic)</em></strong> </td>
4672               <td> List of users and groups who are <strong>allowed</strong> to rename the current topic. (More in <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/TWikiAccessControl">TWikiAccessControl</a>) </td>
4673               <td> <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/Main/TWikiAdminGroup">TWikiAdminGroup</a> &nbsp;</td>
4674             </tr>
4675             <tr>
4676               <td> <code>%ALLOWWEBCHANGE%</code> </td>
4677               <td> <strong><em>WL</em></strong> </td>
4678               <td> List of users and groups who are <strong>allowed</strong> to change topics in the TWiki web. (More in <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/TWikiAccessControl">TWikiAccessControl</a>) </td>
4679               <td>  &nbsp;</td>
4680             </tr>
4681             <tr>
4682               <td> <code>%ALLOWWEBRENAME%</code> </td>
4683               <td> <strong><em>WL</em></strong> </td>
4684 rizwank 1.1   <td> List of users and groups who are <strong>allowed</strong> to rename topics in the TWiki web. (More in <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/TWikiAccessControl">TWikiAccessControl</a>) </td>
4685               <td>  &nbsp;</td>
4686             </tr>
4687             <tr>
4688               <td> <code>%ATTACHLINKBOX%</code> </td>
4689               <td> <strong><em>SL</em></strong> , <strong><em>UL</em></strong> </td>
4690               <td> Default state of the link check box in the attach file page. Check box is initially checked if value is set to <code>CHECKED</code> , unchecked if empty. If checked, a link is created to the attached file at the end of the topic. Value is: <b><code></code></b> </td>
4691               <td>  &nbsp;</td>
4692             </tr>
4693             <tr>
4694               <td> <code>%DENYTOPICCHANGE%</code> </td>
4695               <td> <strong><em>(any topic)</em></strong> </td>
4696               <td> List of users and groups who are <strong>not allowed</strong> to change the current topic. (More in <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/TWikiAccessControl">TWikiAccessControl</a>) </td>
4697               <td> %DENYTOPICCHANGE% &nbsp;</td>
4698             </tr>
4699             <tr>
4700               <td> <code>%DENYTOPICRENAME%</code> </td>
4701               <td> <strong><em>(any topic)</em></strong> </td>
4702               <td> List of users and groups who are <strong>not allowed</strong> to rename the current topic. (More in <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/TWikiAccessControl">TWikiAccessControl</a>) </td>
4703               <td> %DENYTOPICRENAME% &nbsp;</td>
4704             </tr>
4705 rizwank 1.1 <tr>
4706               <td> <code>%DENYWEBCHANGE%</code> </td>
4707               <td> <strong><em>WL</em></strong> </td>
4708               <td> List of users and groups who are <strong>not allowed</strong> to change topics in the TWiki web. (More in <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/TWikiAccessControl">TWikiAccessControl</a>) </td>
4709               <td>  &nbsp;</td>
4710             </tr>
4711             <tr>
4712               <td> <code>%DENYWEBRENAME%</code> </td>
4713               <td> <strong><em>WL</em></strong> </td>
4714               <td> List of users and groups who are <strong>not allowed</strong> to rename topics in the TWiki web. (More in <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/TWikiAccessControl">TWikiAccessControl</a>) </td>
4715               <td>  &nbsp;</td>
4716             </tr>
4717             <tr>
4718               <td> <code>%DONTNOTIFYCHECKBOX%</code> </td>
4719               <td> <strong><em>SL</em></strong> , <strong><em>UL</em></strong> </td>
4720               <td> Default state of the "Minor Changes, Don't Notify" (<a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/DontNotify">DontNotify</a>) check box in preview. Check box is initially checked if <code>Set DONTNOTIFYCHECKBOX = checked="checked"</code>, or unchecked if empty. Value is: <b><code></code></b> </td>
4721               <td>  &nbsp;</td>
4722             </tr>
4723             <tr>
4724               <td> <code>%EDITBOXHEIGHT%</code> </td>
4725               <td> <strong><em>SL</em></strong> , <strong><em>UL</em></strong> </td>
4726 rizwank 1.1   <td> Vertical size of edit box, is <b> <code>17</code> </b> </td>
4727               <td> 17 &nbsp;</td>
4728             </tr>
4729             <tr>
4730               <td> <code>%EDITBOXWIDTH%</code> </td>
4731               <td> <strong><em>SL</em></strong> , <strong><em>UL</em></strong> </td>
4732               <td> Horizontal size of edit box, is <b> <code>70</code> </b> </td>
4733               <td> 70 &nbsp;</td>
4734             </tr>
4735             <tr>
4736               <td> <code>%EDITBOXSTYLE%</code> </td>
4737               <td> <strong><em>SL</em></strong> , <strong><em>UL</em></strong> </td>
4738               <td> Style of text edit box. Set to <code>width: 99%</code> for full window width (default; overwrites the EDITBOXWIDTH setting), or <code>width: auto</code> to disable. Value is: <b><code>width: 99%</code></b> </td>
4739               <td> width: 99% &nbsp;</td>
4740             </tr>
4741             <tr>
4742               <td> <code>%FINALPREFERENCES%</code> </td>
4743               <td> <strong><em>SL</em></strong> , <strong><em>WL</em></strong> </td>
4744               <td> List of preferences that are not allowed to be overridden by next level preferences</td>
4745               <td> ATTACHFILESIZELIMIT, PREVIEWBGIMAGE, WIKITOOLNAME, WIKIWEBMASTER, SMTPMAILHOST, SMTPSENDERHOST, ALLOWWEBMANAGE, READTOPICPREFS, TOPICOVERRIDESUSER, NOSEARCHALL, ATTACHFILESIZELIMIT, WIKIWEBMASTER, WEBCOPYRIGHT, WEBTOPICLIST, DENYWEBVIEW, ALLOWWEBVIEW, DENYWEBCHANGE, ALLOWWEBCHANGE, DENYWEBRENAME, ALLOWWEBRENAME &nbsp;</td>
4746             </tr>
4747 rizwank 1.1 <tr>
4748               <td> <code>%HTTP_EQUIV_ON_EDIT%</code> </td>
4749               <td> <strong><em>SL</em></strong> , <strong><em>UL</em></strong> </td>
4750               <td> http-equiv meta tags for edit script. </td>
4751               <td>  &nbsp;</td>
4752             </tr>
4753             <tr>
4754               <td> <code>%HTTP_EQUIV_ON_PREVIEW%</code> </td>
4755               <td> <strong><em>SL</em></strong> , <strong><em>UL</em></strong> </td>
4756               <td> http-equiv meta tags for preview script. </td>
4757               <td>  &nbsp;</td>
4758             </tr>
4759             <tr>
4760               <td> <code>%HTTP_EQUIV_ON_VIEW%</code> </td>
4761               <td> <strong><em>SL</em></strong> </td>
4762               <td> http-equiv meta tags for view, rdiff, attach, search* scripts. </td>
4763               <td> <link rel="alternate" type="application/rss+xml" title="RSS Feed" href="http://TWiki.org/cgi-bin/view/TWiki/WebRss?skin=rss&amp;contenttype=text/xml" /> &nbsp;</td>
4764             </tr>
4765             <tr>
4766               <td> <code>%NEWTOPICBGCOLOR%</code> </td>
4767               <td> <strong><em>SL</em></strong> , <em>UL</em> </td>
4768 rizwank 1.1   <td> Background color of non existing topic. ( <strong><em>UL</em></strong> needs authentication for topic views ) </td>
4769               <td> #FFFFCE &nbsp;</td>
4770             </tr>
4771             <tr>
4772               <td> <code>%NEWTOPICFONTCOLOR%</code> </td>
4773               <td> <strong><em>SL</em></strong> , <em>UL</em> </td>
4774               <td> Font color of non existing topic. ( <strong><em>UL</em></strong> needs authentication for topic views ) </td>
4775               <td> #0000FF &nbsp;</td>
4776             </tr>
4777             <tr>
4778               <td> <code>%NOSEARCHALL%</code> </td>
4779               <td> <strong><em>WL</em></strong> </td>
4780               <td> Exclude web from a <code>web="all"</code> search (set variable to <code>on</code> for hidden webs) </td>
4781               <td>  &nbsp;</td>
4782             </tr>
4783             <tr>
4784               <td> <code>%RELEASEEDITLOCKCHECKBOX%</code> </td>
4785               <td> <strong><em>SL</em></strong> , <strong><em>UL</em></strong> </td>
4786               <td> Default state of the "Release edit lock" (<a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/UnlockTopic">UnlockTopic</a>) check box in preview. Checkbox is initially checked if <code>Set RELEASEEDITLOCKCHECKBOX = checked="checked"</code>, or unchecked if empty. If checked, make sure to click on <u>Edit</u> to do more changes; do <strong>not</strong> go back in your browser to the edit page, or you risk that someone else will edit the topic at the same time! Value is: <b><code></code></b> </td>
4787               <td>  &nbsp;</td>
4788             </tr>
4789 rizwank 1.1 <tr>
4790               <td> <code>%WEBBGCOLOR%</code> </td>
4791               <td> <strong><em>WL</em></strong> </td>
4792               <td> Background color of web </td>
4793               <td> #FFD8AA &nbsp;</td>
4794             </tr>
4795             <tr>
4796               <td> <code>%WEBCOPYRIGHT%</code> </td>
4797               <td> <strong><em>SL</em></strong> , <strong><em>WL</em></strong> </td>
4798               <td> Copyright notice (bottom right corner of topics) </td>
4799               <td> Copyright &copy; 1999-2004 by the contributing authors. 
4800             All material on this collaboration platform is the property of the contributing authors. <br /> 
4801             Ideas, requests, problems regarding TWiki? <a href="mailto:webmaster@your.company?subject=TWiki&#32;Feedback&#32;on&#32;TWiki.TWikiDocumentation">Send feedback</a> &nbsp;</td>
4802             </tr>
4803             <tr>
4804               <td> <code>%WEBTOPICLIST%</code> </td>
4805               <td> <strong><em>WL</em></strong> </td>
4806               <td> Common links of web (second line of topics) </td>
4807               <td> <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/WelcomeGuest">Welcome</a>  |  <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/TWikiRegistration">Register</a>  |  <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/WebChanges">Changes</a>  |  <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/WebTopicList">Topics</a>  |  <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/WebIndex">Index</a>  |  <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/WebSearch">Search</a>  |  Go <input type="text" name="topic" size="16" /> &nbsp;</td>
4808             </tr>
4809             <tr>
4810 rizwank 1.1   <td> <code>%WIKIWEBLIST%</code> </td>
4811               <td> <strong><em>SL</em></strong> </td>
4812               <td> List of TWiki webs (in upper right corner of topics) </td>
4813               <td> <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/Main/WebHome">Main</a>  |  <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/WebHome">TWiki</a>  |  <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/Sandbox/WebHome">Sandbox</a> &nbsp;</td>
4814             </tr>
4815             <tr>
4816               <td> <code>%WIKIWEBMASTER%</code> </td>
4817               <td> <strong><em>SL</em></strong> </td>
4818               <td> Webmaster email address (sender of email notifications) , is <b>webmaster@your.company</b> </td>
4819               <td> <a href="mailto:webmaster@your.company">webmaster@your.company</a> &nbsp;</td>
4820             </tr>
4821             </table>
4822             <p />
4823             <strong><em>Note:</em></strong> There are some more useful variables defined in the <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/TWikiPreferences">TWikiPreferences</a> like <code>%BR%</code> for line break, colors like <code>%RED%</code> for colored text and small icons like <code>%H%</code> for a <img src="./pub/TWiki/TWikiDocGraphics/help.gif" border="0" alt="HELP" width="16" height="16" /> Help icon.
4824             <p />
4825             <a name="SettingPrefs"></a>
4826             <h2><a name="Setting_Preferences"> </a> Setting Preferences </h2>
4827             <p />
4828             <ul>
4829             <li> The syntax for Preferences Variables is the same anywhere in TWiki (on its own TWiki bullet line, including nested bullets): <br />[multiple of 3 spaces] * [space] Set [space] VARIABLENAME [space] = [value]<br /> <strong><em>Examples:</em></strong> 
4830             </li>
4831 rizwank 1.1 <li> <code><b>Set VARIABLENAME = value</b></code>
4832             <ul>
4833             <li> <code><b>Set VARIABLENAME = value</b></code>
4834             </li>
4835             </ul>
4836             </li>
4837             </ul>
4838             <p />
4839             <h2><a name="Creating_Custom_Variables"> </a> Creating Custom Variables </h2>
4840             <p />
4841             <ul>
4842             <li> You can add your own Preference Variables for us across an entire site or a single web, using the standard <a class="twikiAnchorLink" href="#SettingPrefs">Preferences syntax</a>. Whatever you include in your Variable will be expanded on display, exactly as if it had been entered directly. You can place formatted text, page links, image paths.
4843             </li>
4844             </ul>
4845             <p />
4846             <blockquote style="background-color:#ffffff">
4847             <strong>Example: Create a custom logo variable the TWiki web</strong> <br />
4848             <ul>
4849             <li> To place a logo anywhere in a web by typing <code><b>%MYLOGO%</b></code>, define the Variable on the web's <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/WebPreferences">WebPreferences</a> page, and upload a logo file, ex: <code>mylogo.gif</code>. You can upload by <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/FileAttachment">attaching the file</a> to <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/WebPreferences">WebPreferences</a>, or, to avoid clutter, to any other topic in the same web, ex: <code>LogoTopic</code>:
4850             <ul>
4851             <li> <code><b>Set MYLOGO = %PUBURL%/TWiki/LogoTopic/mylogo.gif</b></code> 
4852 rizwank 1.1 </li>
4853             </ul>
4854             </li>
4855             </ul>
4856             </blockquote>
4857             <p />
4858             -- <a href="http://twiki.org/cgi-bin/view/Main.PeterThoeny" title="'Main.PeterThoeny' on TWiki.org">TWiki:Main.PeterThoeny</a> - 14 Aug 2004 <br />
4859             -- <a href="http://twiki.org/cgi-bin/view/Main.MikeMannix" title="'Main.MikeMannix' on TWiki.org">TWiki:Main.MikeMannix</a> - 12 May 2002
4860             <p />
4861             <p />
4862             <hr />
4863             <p />
4864             <h1><a name="File_Attachments"> </a> File Attachments </h1>
4865             <p />
4866             <em>Each topic can have one or more files of any type attached to it by using the Attach screen to upload (or download) files from your local PC. Attachments are stored under revision control: uploads are automatically backed up; all previous versions of a modified file can be retrieved.</em> 
4867             <p />
4868             <h2><a name="What_Are_Attachments_Good_For"> </a><a name="What_Are_Attachments_Good_For_"> </a> What Are Attachments Good For? </h2>
4869             <p />
4870             File Attachments can be used to create powerful customized groupware solutions, like file sharing and document management systems, and quick Web page authoring.
4871             <p />
4872             <h3><a name="Document_Management_System"> </a> Document Management System </h3>
4873 rizwank 1.1 <p />
4874             <ul>
4875             <li> You can use Attachments to store and retrieve documents (in any format, with associated graphics, and other media files); attach documents to specific TWiki topics; collaborate on documents with full revision control; distribute documents on a <a class="twikiAnchorLink" href="#AttachmentAccess">need-to-know basis</a> using web and topic-level access control; create a central reference library that's easy to share with an user group spread around the world.
4876             </li>
4877             </ul>
4878             <p />
4879             <h3><a name="File_Sharing"> </a> File Sharing </h3>
4880             <p />
4881             <ul>
4882             <li> For file sharing, <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/FileAttachment">FileAttachments</a> on a series of topics can be used to quickly create a well-documented, categorized digital download center for all types of files: documents; graphics and other media; drivers and patches; applications; anything you can safely upload!
4883             </li>
4884             </ul>
4885             <p />
4886             <h3><a name="Web_Authoring"> </a> Web Authoring </h3>
4887             <p />
4888             <ul>
4889             <li> Through your Web browser, you can easily upload graphics (or sound files, or anything else you want to link to on a page) and place them on a single page, or use them across a web, or site-wide.
4890             <ul>
4891             <li> <strong><em>NOTE:</em></strong> You can also add graphics - any files - directly, typically by FTP upload. This requires FTP access, and may be more convenient if you have a large number of files to load. FTP-ed files can't be managed using browser-based Attachment controls. You can use your browser to create <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/TWikiVariables">TWikiVariables</a> shortcuts, like this %H% = <img src="./pub/TWiki/TWikiDocGraphics/help.gif" border="0" alt="HELP" width="16" height="16" />.
4892             </li>
4893             </ul>
4894 rizwank 1.1 </li>
4895             </ul>
4896             <p />
4897             <h2><a name="Uploading_Files"> </a> Uploading Files </h2>
4898             <p />
4899             <ul>
4900             <li> Click on the <code><b>Attach</b></code> link at the bottom of the page. The <code>Attach</code> screen lets you browse for a file, add a comment, and upload it. The uploaded file will show up in the <a class="twikiAnchorLink" href="#FileAttachmentTable">File Attachment table</a>.
4901             <ul>
4902             <li> <strong><em>NOTE:</em></strong> The topic must already exist. It is a two step process if you want to attach a file to a non-existing topic; first create the topic, then add the file attachment.
4903             </li>
4904             <li> Any type of file can be uploaded. Some files that might pose a security risk are renamed, ex: <code>*.php</code> files are renamed to <code>*.php.txt</code> so that no one can place code that would be read in a .php file. 
4905             </li>
4906             <li> The previous upload path is retained for convenience. In case you make some changes to the local file and want to upload it, again you can copy the previous upload path into the Local file field.
4907             </li>
4908             <li> TWiki can limit the file size. This is defined by the <code>%ATTACHFILESIZELIMIT%</code> variable of the <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/TWikiPreferences">TWikiPreferences</a>, currently set at 10000 KB.
4909             <ul>
4910             <li> <img src="./pub/TWiki/TWikiDocGraphics/warning.gif" border="0" alt="ALERT!" width="16" height="16" /> It's not recommended to upload files greater than a few hundred K through a browser. Large files can be extremely slow-loading, and often time out. Use an FTP site for large file uploads.
4911             </li>
4912             </ul>
4913             </li>
4914             </ul>
4915 rizwank 1.1 </li>
4916             </ul>
4917             <p />
4918             <h2><a name="Downloading_Files"> </a> Downloading Files </h2>
4919             <p />
4920             <ul>
4921             <li> Click on the file in the <a class="twikiAnchorLink" href="#FileAttachmentTable">File Attachment table</a>.
4922             </li>
4923             </ul>
4924             <a name="AttachmentAccess"></a>
4925             <p />
4926             <ul>
4927             <li> <img src="./pub/TWiki/TWikiDocGraphics/warning.gif" border="0" alt="ALERT!" width="16" height="16" /> <em>NOTE:</em> There is no access control on individual attachments. If you need control over single files, create a separate topic per file and set topic-level <a class="twikiAnchorLink" href="#TWikiAccessControl">access restrictions</a> for each.
4928             </li>
4929             </ul>
4930             <p />
4931             <h2><a name="Moving_Attachment_Files"> </a> Moving Attachment Files </h2>
4932             <p />
4933             An attachment can be moved between topics. 
4934             <ul>
4935             <li> Click <code><b>Manage</b></code> on the Attachment to be moved.
4936 rizwank 1.1 </li>
4937             <li> On the control screen, select the new web and/or topic.
4938             </li>
4939             <li> Click <code><b>Move</b></code>. The attachment and its version history are moved. The original location is stored as <a class="twikiAnchorLink" href="#Meta_Data_Definition">topic Meta Data</a>.
4940             </li>
4941             </ul>
4942             <p />
4943             <h2><a name="Deleting_Attachments"> </a> Deleting Attachments </h2>
4944             <p />
4945             Move unwanted Attachments to web <code>Trash</code>, topic <code>TrashAttachment</code>.
4946             <p />
4947             <h2><a name="Linking_to_Attached_Files"> </a> Linking to Attached Files </h2>
4948             <p />
4949             <ul>
4950             <li> Once a file is attached it can be referenced in the topic. Example:
4951             <ol>
4952             <li> <code><b>Attach</b></code> file: <code>Sample.txt</code>
4953             </li>
4954             <li> <code><b>Edit</b></code> topic and enter: <code>%ATTACHURL%/Sample.txt</code>
4955             </li>
4956             <li> <code><b>Preview</b></code>: <code>%ATTACHURL%/Sample.txt</code> text appears as: <a href="./pub/TWiki/FileAttachment/Sample.txt" target="_top">./pub/TWiki/FileAttachment/Sample.txt</a>, a link to the text file.
4957 rizwank 1.1 </li>
4958             </ol>
4959             </li>
4960             </ul>
4961             <p />
4962             <ul>
4963             <li> To reference an attachment located in another topic, enter:
4964             <ul>
4965             <li> <code>%PUBURL%/%WEB%/OtherTopic/Sample.txt</code> (if it's within the same web)
4966             </li>
4967             <li> <code>%PUBURL%/Otherweb/OtherTopic/Sample.txt</code> (if it's in a different web)
4968             </li>
4969             </ul>
4970             </li>
4971             </ul>
4972             <p />
4973             <ul>
4974             <li> Attached HTML files and text files can be inlined in a topic. Example:
4975             <ol>
4976             <li> <code><b>Attach</b></code> file: <code>Sample.txt</code>
4977             </li>
4978 rizwank 1.1 <li> <code><b>Edit</b></code> topic and write text: <code>%INCLUDE{"%ATTACHURL%/Sample.txt"}%</code>
4979             <ul>
4980             <li> Content of attached file is shown inlined.
4981             </li>
4982             <li> Read more in <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/IncludeTopicsAndWebPages">IncludeTopicsAndWebPages</a>.
4983             </li>
4984             </ul>
4985             </li>
4986             </ol>
4987             </li>
4988             </ul>
4989             <p />
4990             <ul>
4991             <li> GIF, JPG and PNG images can be attached and shown embedded in a topic. Example:
4992             <ol>
4993             <li> <code><b>Attach</b></code> file: <code>Smile.gif</code>
4994             </li>
4995             <li> <code><b>Edit</b></code> topic and write text: <code>%ATTACHURL%/Smile.gif</code>
4996             </li>
4997             <li> <code><b>Preview</b></code>: text appears as <img src="./pub/TWiki/FileAttachment/Smile.gif" alt="Smile.gif" />, an image.
4998             </li>
4999 rizwank 1.1 </ol>
5000             </li>
5001             </ul>
5002             <p />
5003             <a name="FileAttachmentTable"></a>
5004             <h2><a name="File_Attachment_Contents_Table"> </a> File Attachment Contents Table </h2>
5005             <p />
5006             Files attached to a topic are displayed in a directory table, displayed at the bottom of the page, or optionally, hidden and accessed when you click <strong>Attach</strong>.
5007             <p />
5008             <blockquote style="background-color:#f0f0f0">
5009             <table border="1" cellspacing="0" cellpadding="20" width="90%"><tr><td>
5010             <table border="1" cellspacing="0" cellpadding="1"> 
5011             <tr><th align="center" bgcolor="#99CCCC"> <strong><a href="FileAttachment">Attachment</a></strong> </th><th align="center" bgcolor="#99CCCC"> <strong>Action</strong> </th><th align="center" bgcolor="#99CCCC"> <strong>Size</strong> </th><th align="center" bgcolor="#99CCCC"> <strong>Date</strong> </th><th align="center" bgcolor="#99CCCC"> <strong>Who</strong> </th><th align="center" bgcolor="#99CCCC"> <strong>Comment</strong> </th></tr>
5012             <tr><td>  <img src="./pub/icn/txt.gif" width="16" height="16" align="top" /> <a href="http://TWiki.org/cgi-bin/viewfile/TWiki/FileAttachment?rev=&amp;filename=Sample.txt">Sample.txt</a>     </td><td>  <a href="http://TWiki.org/cgi-bin/attach/TWiki/FileAttachment?filename=Sample.txt&amp;revInfo=1">manage</a>     </td><td align="right">  0.1 K  </td><td>  22 Jul 2000 - 19:37  </td><td>  <a href="PeterThoeny">PeterThoeny</a>  </td><td>  Just a sample  </td></tr>
5013             <tr><td>  <img src="./pub/icn/bmp.gif" width="16" hight="16" align="top" /> <a href="http://TWiki.org/cgi-bin/viewfile/TWiki/FileAttachment?rev=&amp;filename=Smile.gif">Smile.gif</a>     </td><td>  <a href="http://TWiki.org/cgi-bin/attach/TWiki/FileAttachment?filename=Smile.gif&amp;revInfo=1">manage</a>     </td><td align="right">  0.1 K  </td><td>  22 Jul 2000 - 19:38  </td><td>  <a href="PeterThoeny">PeterThoeny</a>  </td><td>  Smiley face  </td></tr>
5014             </table>
5015             </td></tr></table>
5016             </blockquote>
5017             <p />
5018             <h2><a name="File_Attachment_Controls"> </a> File Attachment Controls </h2>
5019             <p />
5020 rizwank 1.1 Clicking on a <code><b>Manage</b></code> link takes you to a new page that looks like this:
5021             <p />
5022             <blockquote style="background-color:#f0f0f0">
5023             <form>
5024             <table border="1" cellspacing="0" cellpadding="20"><tr><td>
5025             <table border="1" cellspacing="0" cellpadding="1"> <tr><th align="center" bgcolor="#99CCCC"> <strong><a href="FileAttachment">Attachment</a></strong> </th><th align="center" bgcolor="#99CCCC"> <strong>Action</strong> </th><th align="center" bgcolor="#99CCCC"> <strong>Size</strong> </th><th align="center" bgcolor="#99CCCC"> <strong>Date</strong> </th><th align="center" bgcolor="#99CCCC"> <strong>Who</strong> </th><th align="center" bgcolor="#99CCCC"> <strong>Comment</strong> </th><th align="center" bgcolor="#99CCCC"> <strong><a href="FileAttribute">Attribute</a></strong> </th></tr>
5026             <tr><td>  <img src="./pub/icn/txt.gif" width="16" height="16" align="top" /> <a href="http://TWiki.org/cgi-bin/viewfile/TWiki/TWiki/FileAttachment?rev=&amp;filename=Sample.txt">Sample.txt</a> </td><td>  <a href="http://TWiki.org/cgi-bin/attach/TWiki/FileAttachment?filename=Sample.txt&amp;revInfo=1">manage</a> </td><td align="right">  0.1 K  </td><td>  22 Jul 2000 - 19:37  </td><td>  <a href="PeterThoeny">PeterThoeny</a>  </td><td>  Just a sample  </td><td align="center">   &nbsp;   </td></tr>
5027             <tr><td>  <img src="./pub/icn/bmp.gif" width="16" height="16" align="top" /> <a href="http://TWiki.org/cgi-bin/viewfile/TWiki/FileAttachment?rev=&amp;filename=Smile.gif">Smile.gif</a>     </td><td>  <a href="http://TWiki.org/cgi-bin/attach/TWiki/FileAttachment?filename=Smile.gif&amp;revInfo=1">manage</a>     </td><td align="right">  0.1 K  </td><td>  22 Jul 2000 - 19:38  </td><td>  <a href="PeterThoeny">PeterThoeny</a>  </td><td>  Smiley face  </td><td align="center">   &nbsp;   </td></tr>
5028             </table>
5029             <p />
5030             <h2>Update attachment <code>Sample.txt</code></h2>
5031             <p />
5032             <table border="1" cellspacing="0" cellpadding="1"> <tr><th align="center" bgcolor="#99CCCC"> <strong>Version</strong> </th><th align="center" bgcolor="#99CCCC"> <strong>Action</strong> </th><th align="center" bgcolor="#99CCCC"> <strong>Date</strong> </th><th align="center" bgcolor="#99CCCC"> <strong>Who</strong> </th><th align="center" bgcolor="#99CCCC"> <strong>Comment</strong> </th></tr>
5033             <tr><td>  1.1   </td><td>  <a href="http://TWiki.org/cgi-bin/viewfile/TWiki/FileAttachment?rev=1.1&amp;filename=Sample.txt">view</a>  </td><td>  2001.08.30.09.28.56  </td><td>  <a href="PeterThoeny">PeterThoeny</a>  </td><td>  &nbsp;  </td></tr>
5034             </table>
5035             <p />
5036             <table width="100%">
5037                  <tr>
5038               <td align="right">
5039                Previous <br /> upload:
5040               </td><td>
5041 rizwank 1.1    <code>C:\DATA\Sample.txt</code> (<a href="PeterThoeny">PeterThoeny</a>)
5042               </td>
5043              </tr>
5044              <tr>
5045               <td align="right">
5046                Local file:
5047               </td><td>
5048                <input type="hidden" name="filename" value="Sample.txt" />
5049                <input type="file" name="filepath" value="C:\DATA\Sample.txt" size="50" />
5050               </td>
5051              </tr>
5052              <tr>
5053               <td align="right">
5054                Comment:
5055               </td><td>
5056                <input type="text" name="filecomment" value="Just a sample" maxlength="50" size="50" />
5057               </td>
5058              </tr>
5059              <tr>
5060               <td align="right">
5061                Link:
5062 rizwank 1.1   </td><td>
5063                <input type="checkbox" name="createlink"  /> Create a link to the attached file at the end of the topic.
5064               </td>
5065              </tr>
5066              <tr>
5067               <td align="right">
5068                Hide file:
5069               </td><td>
5070                <input type="checkbox" name="hidefile"  /> Hide attachment in normal topic view.
5071               </td>
5072              </tr>
5073             </table>
5074             <em>Help text ...</em>
5075             <p />
5076                Topic <b>FileAttachment</b> . {    <input type="submit" value=" &nbsp; Upload file &nbsp; " />  | 
5077                <input type="submit" name="changeproperties" value="Change properties" />   | 
5078                <a href="http://TWiki.org/cgi-bin/rename/TWiki/FileAttachment?attachment=Sample.txt">Move attachment</a>  | 
5079                <a href="FileAttachment">Cancel</a> }
5080             </td></tr></table>
5081             </form>
5082             </blockquote>
5083 rizwank 1.1 <p />
5084             <ul>
5085             <li> The first table is a list of all attachments, including their attributes. An <code>h</code> means the attachment is hidden, it isn't listed when viewing a topic.
5086             </li>
5087             </ul>
5088             <p />
5089             <ul>
5090             <li> The second table is all the versions of the attachment. Click on <strong>View</strong> to see that version. If it's the most recent version, you'll be taken to an URL that always displays the latest version, which is usually what you want.
5091             <ul>
5092             <li> <strong>To change the comment</strong> on an attachment, enter a new comment and then click <strong>Change properties</strong>.  Note that the comment listed against the specific version will not change, however the comment displayed when viewing the topic does change.  
5093             </li>
5094             <li> <strong>To hide/unhide</strong> an attachment, enable the <code><b>Hide file</b></code> checkbox, then click <code><b>Change properties</b></code>.
5095             </li>
5096             </ul>
5097             </li>
5098             </ul>
5099             <p />
5100             <h2><a name="Known_Issues"> </a> Known Issues </h2>
5101             <p />
5102             <ul>
5103             <li> Unlike topics, attachments are not locked during editing. As a workaround, you can change the comment to indicate an attachment file is being worked on - the comment on the specific version isn't lost, it's there when you list all versions of the attachment.
5104 rizwank 1.1 </li>
5105             </ul>
5106             <p />
5107             <p />
5108             <p />
5109             <hr />
5110             <p />
5111             <h1><a name="TWiki_Forms"> </a> TWiki Forms </h1>
5112             <p />
5113             <em>Form-based input in topics, with name/value pairs stored as Meta Data variables; choose one of multiple forms per web &amp; topic</em>
5114             <p />
5115             <h2><a name="Overview"> </a> Overview </h2>
5116             <p />
5117             By adding form-based input to freeform content, you can structure topics with unlimited, easily searchable categories. When forms are enabled for a web and selected in a topic, a single form appears in edit mode, and the contents are rendered as a table when viewed on the display page. You can define unlimited forms per web. For each topic, you can select a template if more than one is defined, or remove forms entirely. Form input values are stored as <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/TWikiMetaData">TWikiMetaData</a>; all data is saved. 
5118             <p />
5119             Form Templates replace TWikiCategoryTables from the 01-Dec-2000 version of TWiki. - see <a class="twikiAnchorLink" href="#FormsVsCategoryTables">#FormsVsCategoryTables</a>
5120             <p />
5121             <h2><a name="Defining_a_Form_Template"> </a> Defining a Form Template </h2>
5122             <p />
5123             A Form Template is simply a page containing your form, defined as a table where each row is one form field.
5124             <p />
5125 rizwank 1.1 <h3><a name="Form_Template_Elements"> </a> Form Template Elements </h3>
5126             <p />
5127             <ul>
5128             <li> <strong>form template</strong> - a set of fields defining a form
5129             <ul>
5130             <li> A web can use one or more form templates
5131             </li>
5132             </ul>
5133             </li>
5134             <li> <strong>form</strong> - a topic containing additional meta data (besides the freeform TEXTAREA) that categorizes the content (replaces <em>category table</em>)
5135             <ul>
5136             <li> Within a form-enabled web, individual topics can have a form or no form
5137             </li>
5138             </ul>
5139             </li>
5140             <li> <strong>form field</strong> - a named item in a form (replaces <em>category item name</em>)
5141             </li>
5142             <li> <strong>field type</strong> - selects the INPUT type:
5143                  <table border="1" cellspacing="0" cellpadding="1"> <tr><th bgcolor="#99CCCC"> <strong>Input type</strong> </th><th bgcolor="#99CCCC"> <strong>Type field</strong> </th><th bgcolor="#99CCCC"> <strong>Size field</strong> </th><th bgcolor="#99CCCC"> <strong>Value field</strong> </th></tr>
5144                  <tr><td>  One or more checkboxes  </td><td>  <code>checkbox</code>  </td><td>  number of checkboxes per line  </td><td>  comma list of checkbox labels  </td></tr>
5145                  <tr><td>  One or more checkboxes, plus <strong>Set</strong> and <strong>Clear</strong> buttons  </td><td>  <code>checkbox+buttons</code>  </td><td>  (same)  </td><td>  (same)  </td></tr>
5146 rizwank 1.1      <tr><td>  Read-only label text  </td><td>  <code>label</code>  </td><td>  <code>1</code>  </td><td>  (unused)  </td></tr>
5147                  <tr><td>  One or more radio buttons  </td><td>  <code>radio</code>  </td><td>  number of radio buttons per line  </td><td>  comma list of checkbox labels  </td></tr>
5148                  <tr><td>  Drop-down menu or scrollable box  </td><td>  <code>select</code>  </td><td>  <code>1</code> for drop down, <code>2</code> and up for scrollable box  </td><td>  comma list of options  </td></tr>
5149                  <tr><td>  A one-line text field  </td><td>  <code>text</code>  </td><td>  text box width in number of characters  </td><td>  (unused)  </td></tr>
5150                  <tr><td>  A text box; size is 40x10 (columns x rows)  </td><td>  <code>textarea</code>  </td><td>  columns x rows, e.g. <code>40x6</code>  </td><td>  (unused)  </td></tr>
5151             </table>
5152             </li>
5153             <li> <strong>field value</strong> - one or more values from a fixed set (select, checkbox, radio type) or free-form (text). (replaces <em>category item value</em>)
5154             </li>
5155             </ul>
5156             <p />
5157             <h3><a name="Defining_a_Form_in_One_Topic"> </a> Defining a Form in One Topic </h3>
5158             <p />
5159             <ol>
5160             <li> Create a new topic with your form name: <code><b>YourForm</b></code>, <code><b>ExpenseReportForm</b></code>, <code><b>InfoCategoryForm</b></code>, <code><b>RecordReviewForm</b></code>, whatever you need.
5161             </li>
5162             <li> Create a TWiki table, with each column head representing one element of an entry field: <code><b>Name</b></code>, <code><b>Type</b></code>, <code><b>Size</b></code>, <code><b>Values</b></code>, and <code><b>Tooltip message</b></code> <em>(see sample below)</em>.
5163             </li>
5164             <li> For each field, fill in a new line; for the type of field, select from the list.
5165             </li>
5166             <li> Save the topic <em>(you can later choose to <a class="twikiAnchorLink" href="#EnablingForms">enable/disable</a> individual forms)</em>.
5167 rizwank 1.1 </li>
5168             </ol>
5169             <p />
5170             <blockquote style="background-color:#f0f0f0">
5171             <strong>Example:</strong> <code><b>WebForm</b></code> <br />
5172             <code>| *Name* | *Type* | *Size* | *Values* | *Tooltip message* |</code> <br />
5173             <code>| TopicClassification | select | 1 | NoDisclosure, PublicSupported, PublicFAQ | blah blah... |</code> <br />
5174             <code>| OperatingSystem | checkbox | 3 | OsHPUX, OsLinux, OsSolaris, OsWin | blah blah... |</code> <br />
5175             <code>| OsVersion | text | 16 | | blah blah... |</code>
5176             <p />
5177             <table border="1" cellspacing="0" cellpadding="1"> <tr><th bgcolor="#99CCCC"> <strong>Name</strong> </th><th bgcolor="#99CCCC"> <strong>Type</strong> </th><th bgcolor="#99CCCC"> <strong>Size</strong> </th><th bgcolor="#99CCCC"> <strong>Values</strong> </th><th bgcolor="#99CCCC"> <strong>Tooltip message</strong> </th></tr>
5178             <tr><td>  <a href="http://TWiki.org/cgi-bin/view/Sandbox/TopicClassification">TopicClassification</a>  </td><td>  select  </td><td align="center">   1   </td><td>  <a href="http://TWiki.org/cgi-bin/view/Sandbox/NoDisclosure">NoDisclosure</a>, <a href="http://TWiki.org/cgi-bin/view/Sandbox/PublicSupported">PublicSupported</a>, <a href="http://TWiki.org/cgi-bin/view/Sandbox/PublicFAQ">PublicFAQ</a>  </td><td>  blah blah...  </td></tr>
5179             <tr><td>  <a href="http://TWiki.org/cgi-bin/view/Sandbox/OperatingSystem">OperatingSystem</a>  </td><td>  checkbox  </td><td align="center">   3   </td><td>  <a href="http://TWiki.org/cgi-bin/view/Sandbox/OsHPUX">OsHPUX</a>, <a href="http://TWiki.org/cgi-bin/view/Sandbox/OsLinux">OsLinux</a>, <a href="http://TWiki.org/cgi-bin/view/Sandbox/OsSolaris">OsSolaris</a>, <a href="http://TWiki.org/cgi-bin/view/Sandbox/OsWin">OsWin</a>  </td><td>  blah blah...  </td></tr>
5180             <tr><td>  <a href="http://TWiki.org/cgi-bin/view/Sandbox/OsVersion">OsVersion</a>  </td><td>  text  </td><td align="center">   16   </td><td>  &nbsp;  </td><td>  blah blah...  </td></tr>
5181             </table>
5182             </blockquote>
5183             <p />
5184             <h3><a name="Defining_a_Form_with_Multiple_To"> </a> Defining a Form with Multiple Topics </h3>
5185             <p />
5186             Forms can also be defined by using form templates that retrieve field values from one or more separate topics:
5187             <p />
5188 rizwank 1.1 <ul>
5189             <li> A topic defines the base form, for example <code><b>ExpenseReportForm</b></code>.
5190             </li>
5191             <li> Each field that has a value <em>list</em> - select, radio, checkbox - can use a separate topic to define the available values.
5192             </li>
5193             </ul>
5194             <p />
5195             <blockquote style="background-color:#f0f0f0">
5196             <strong>Example: WebForm</strong>
5197             <p />
5198             <ul>
5199             <li> <code><b>WebForm</b></code> base form definition (as above, but with empty values):
5200                  <br />
5201                  <table border="1" cellspacing="0" cellpadding="1"> <tr><th bgcolor="#99CCCC"> <strong>Name</strong> </th><th bgcolor="#99CCCC"> <strong>Type</strong> </th><th bgcolor="#99CCCC"> <strong>Size</strong> </th><th bgcolor="#99CCCC"> <strong>Values</strong> </th><th bgcolor="#99CCCC"> <strong>Tooltip message</strong> </th></tr>
5202                  <tr><td>  TopicClassification  </td><td>  select  </td><td>  1  </td><td>  &nbsp;  </td><td>  blah blah...  </td></tr>
5203                  <tr><td>  OperatingSystem  </td><td>  checkbox  </td><td>  3  </td><td>  &nbsp;  </td><td>  blah blah...  </td></tr>
5204                  <tr><td>  OsVersion  </td><td>  text  </td><td>  16  </td><td>  &nbsp;  </td><td>  blah blah...  </td></tr>
5205             </table>
5206                  <br />
5207                  <img src="./pub/TWiki/TWikiDocGraphics/warning.gif" border="0" alt="ALERT!" width="16" height="16" /> Leave the <code><b>Values</b></code> field <strong>blank</strong>.
5208             </li>
5209 rizwank 1.1 </ul>
5210             <p />
5211             <ul>
5212             <li> TopicClassification field value definition in <code><b>TopicClassification</b></code> topic: <br />
5213                  <code>| *Name* | *Type* | *Tooltip message* |</code> <br />
5214                  <code>| NoDisclosure | option | blah blah... |</code> <br />
5215                  <code>| PublicSupported | option | blah blah... |</code> <br />
5216                  <code>| PublicFAQ | option | blah blah... |</code> <br /> 
5217                  <br />
5218                  <table border="1" cellspacing="0" cellpadding="1"> <tr><th bgcolor="#99CCCC"> <strong>Name</strong> </th><th bgcolor="#99CCCC"> <strong>Type</strong> </th><th bgcolor="#99CCCC"> <strong>Tooltip message</strong> </th></tr>
5219                  <tr><td>  NoDisclosure  </td><td>  option  </td><td>  blah blah...  </td></tr>
5220                  <tr><td>  PublicSupported  </td><td>  option  </td><td>  blah blah...  </td></tr>
5221                  <tr><td>  PublicFAQ  </td><td>  option  </td><td>  blah blah...  </td></tr>
5222             </table>
5223             </li>
5224             </ul>
5225             </blockquote>
5226             <p />
5227             <ul>
5228             <li> <strong>Implementation Notes:</strong> This format allows you to define field items with or without <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/WikiName">WikiNames</a>, depending on your needs.
5229             <ul>
5230 rizwank 1.1 <li> Topics can be protected in the usual manner, using  <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/TWikiAccessControl">TWikiAccessControl</a>, to limit who can change the form template and/or individual value lists.
5231             </li>
5232             <li> <code><b>[[...]]</b></code> links can be used to force a link (at present, the <code><b>[[...][...]]</b></code> format is not supported).
5233             </li>
5234             <li> The <code><b>Tooltip message</b></code> column is used as a tooltip for the field name (only if field name is a <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/WikiName">WikiName</a>) - you only see the tooltip In edit.
5235             </li>
5236             <li> The first item in the list is the default item. Alternative initial values can be set in a topic template, like <code><b>WebTopicEditTemplate</b></code>, with <code><b>field=value</b></code>, or, for checkboxes, <code><b>field<checkbox name>=1</b></code>.
5237             </li>
5238             <li> The topic definition is not read when a topic is viewed.
5239             </li>
5240             </ul>
5241             </li>
5242             </ul>
5243             <p />
5244             <a name="EnablingForms"></a>
5245             <h2><a name="Enabling_Forms_by_Web"> </a> Enabling Forms by Web </h2>
5246             <p />
5247             Forms are enabled on a per web basis. The <code><b>WEBFORMS</b></code> variable in <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/WebPreferences">WebPreferences</a> is optional and defines a list of possible form templates. Example:
5248             <ul>
5249             <li> Set WEBFORMS = BugForm, FeatureForm, BookLoanForm
5250             </li>
5251 rizwank 1.1 </ul>
5252             <p />
5253             <ul>
5254             <li> With <code><b>WEBFORMS</b></code> enabled, an extra button is added to the edit view. If the topic doesn't have a Form, an <strong>Add Form</strong> button appears at the end of the topic. If a Form is present, a <strong>Change</strong> button appears in the top row of the Form. The buttons open a screen that enables selection of a form specified in <code>WEBFORMS</code>, or the <strong>No form</strong> option.
5255             </li>
5256             </ul>
5257             <p />
5258             <h2><a name="Including_Forms_in_New_Topics"> </a> Including Forms in New Topics </h2>
5259             <p />
5260             <ul>
5261             <li> A default Form Template (new topics get this default form) can be provided by creating the <code>WebTopicEditTemplate</code> topic in a web and adding a form to it. Initial Form values can be set there.  
5262             </li>
5263             </ul>
5264             <p />
5265             <ul>
5266             <li> Additionally a new topic can be given a Form using the <code>formtemplate</code> parameter in the URL.  Initial values can then be provided in the URLs or as form values:
5267             <ul>
5268             <li> other than checkboxes: <code><b>name</b></code>, ex: <code><b>?BugPriority=1</b></code>
5269             </li>
5270             <li> checkbox: <code><b>namevalue=1</b></code>, ex: <code><b>?ColorRed=1</b></code>. <br /> 
5271                     Boxes with a tick must be specified.
5272 rizwank 1.1 </li>
5273             </ul>
5274             </li>
5275             </ul>
5276             <p />
5277             <h2><a name="Setting_Up_Multiple_Form_Options"> </a> Setting Up Multiple Form Options </h2>
5278             <p />
5279             <ul>
5280             <li> The optional <code><b>WEBFORMS</b></code> variable defines alternative forms that can be selected by pressing <strong>Change</strong> in edit mode.
5281             </li>
5282             </ul>
5283             <p />
5284             <ul>
5285             <li> A topic template can use any form.
5286             </li>
5287             </ul>
5288             <p />
5289             <ul>
5290             <li> New topics with a form are created by simple HTML forms asking for a topic name. For example, you can have a <code>SubmitExpenseReport</code> topic where you can create new expense reports, a <code>SubmitVacationRequest</code> topic, and so on. These can specify the required template topic with its associated form.
5291             </li>
5292             </ul>
5293 rizwank 1.1 <p />
5294             <h2><a name="Form_Data_Storage"> </a> Form Data Storage </h2>
5295             <p />
5296             The form topic name, fields and values are stored as <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/TWikiMetaData">TWikiMetaData</a> - the order of the field/value pairs is the same as in the template.
5297             <p />
5298             <a name="UsingFormData"></a>
5299             <h2><a name="Using_Form_Data"> </a> Using Form Data </h2>
5300             <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/TWikiForms">TWikiForms</a> accept user-input data, stored as <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/TWikiMetaData">TWikiMetaData</a>. Meta data also contains program-generated info about changes, attachments, etc. To find, format and display form and other meta data, see <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/TWikiMetaData">TWikiMetaData</a>, <code><b>SEARCH</b></code> and <code><b>METASEARCH</b></code> variables in <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/TWikiVariables">TWikiVariables</a>, and <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/FormattedSearch">TWiki Formatted Search</a> for various options.
5301             <p />
5302             <a name="FormsVsCategoryTables"></a>
5303             <h2><a name="Main_Changes_from_Category_Table"> </a> Main Changes from Category Tables </h2>
5304             <p />
5305             The Form Template system is a more powerful, flexible replacement for the original TWikiCategoryTable. Data from existing category tables can be imported directly.
5306             <p />
5307             <table border="1" cellspacing="0" cellpadding="1"> <tr><th align="center" bgcolor="#99CCCC"> <strong>Form Templates</strong> </th><th align="center" bgcolor="#99CCCC"> <strong>Category Tables</strong> </th></tr>
5308             <tr><td align="center">   defined in topics   </td><td align="center">   defined in templates   </td></tr>
5309             <tr><td align="center">   many forms per web   </td><td align="center">   one table per web   </td></tr>
5310             <tr><td align="center">   saved as Meta Data   </td><td align="center">   saved as HTML   </td></tr>
5311             <tr><td align="center">   <strong>Change</strong> &amp; <strong>Add Form</strong> buttons   </td><td align="center">   <strong>UseCategory</strong> radio button   </td></tr>
5312             </table>
5313             <p />
5314 rizwank 1.1 <h3><a name="Importing_Category_Table_Data"> </a> Importing Category Table Data </h3>
5315             <p />
5316             On upgrading from the previous TWiki, a Form Template topic has to be built for each web that used a Category Table, recreating the fields and values from the old <code><b>twikicatitems.tmpl</b></code>. The replacement Form Template must be set as the first item in the <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/WebPreferences">WebPreferences</a> variable <code>WEBFORMS</code>. If missing, pages will display, but attempting to edit results in an error message.
5317             <p />
5318             The new Form Template system should work with old Category Table data with no special conversion. Data is assigned to Meta variables the first time an imported topic is edited and saved in the new system.
5319             <p />
5320             <img src="./pub/TWiki/TWikiDocGraphics/tip.gif" border="0" alt="TIP" width="16" height="16" /> <strong>NOTE:</strong> If things aren't working correctly, there may be useful entries in <code>data/warning.txt</code>.
5321             <p />
5322             <h2><a name="Using_Forms_For_Settings"> </a> Using Forms For Settings </h2>
5323             Example process to change your <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/WebPreferences">WebPreferences</a> to use forms instead of <code>{3 spaces}* Set</code> statements:
5324             <p />
5325             <ol>
5326             <li> create WebPrefencesForm topic
5327             </li>
5328             <li> fill it with a table like this: <br />
5329                  <code>| *Name*|*Type*|*Size*|*Value*|*Tooltip message*|*Attributes*|</code> <br />
5330                  <code>| WEBTOPICLIST |textarea| | &nbsp; &nbsp; | List of topics of the %WEB% web |S|</code> <br />
5331                  <code>| SITEMAPLIST&nbsp; |select&nbsp; |3| on, | list this web in the Site Map&nbsp; |S|</code> <br />
5332                  <code>| SITEMAPWHAT&nbsp; |textarea| | &nbsp; &nbsp; | short web summary &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; |S|</code> <br />
5333                  <code>| WEBBGCOLOR &nbsp; |text&nbsp; &nbsp; |8| &nbsp; &nbsp; | Web specific background color |S|</code> <br />
5334                  etc...
5335 rizwank 1.1 </li>
5336             <li> Edit <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/WebPreferences">WebPreferences</a> and:
5337             <ul>
5338             <li> Add or Change the form to WebPrefencesForm
5339             </li>
5340             <li> add WebPrefencesForm to the <code>Set WEBFORMS</code> line
5341             </li>
5342             <li> Save
5343             </li>
5344             </ul>
5345             </li>
5346             <li> Edit <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/WebPreferences">WebPreferences</a>, jump straight down to the form ignoring all the <code>textarea</code> stuff, and set as you like
5347             </li>
5348             <li> if everything works as you like it, you can delete the Set statements (the form overrides set if they are both used).
5349             </li>
5350             </ol>
5351             <p />
5352             <strong><em>Notes:</em></strong>
5353             <p />
5354             If it isn't working, double check that the <code><b>S</b></code> attribute has been specified (S for Setting).
5355             If you change the form, the changes will not take affect until you edit and save the preferences' topics again.
5356 rizwank 1.1 <p />
5357             Using the <a href="http://twiki.org/cgi-bin/view/Plugins.EditTablePlugin" title="'Plugins.EditTablePlugin' on TWiki.org">TWiki:Plugins.EditTablePlugin</a> on WebPreferencesForm makes adding new prefedrences a breeze.
5358             <p />
5359             A possibly unwanted side effect for using forms for the SKINS setting in their personal user topic: because the User Preferences are final you can't have different skins for different webs as the user's setting always wins. A workaround is to simply omit SKIN in the form.
5360             <p />
5361             Another example, this one using EditTablePlugin, source:
5362             <p />
5363             <code>%EDITTABLE{ header="|*Name*|*Type*|*Size*|*Values*|*Tooltip message*|*Attributes*|" format="|text,20|text,20|text,20|text,20|text,20|text,1|" }%</code>
5364             <p />
5365             Result (after some editing):
5366             <p />
5367             %EDITTABLE{ header="|*Name*|*Type*|*Size*|*Values*|*Tooltip message*|*Attributes*|" format="|text,20|text,20|text,20|text,20|text,20|text,1|" }%
5368             <table border="1" cellspacing="0" cellpadding="1"> <tr><th bgcolor="#99CCCC"> <strong>Name</strong> </th><th bgcolor="#99CCCC"> <strong>Type</strong> </th><th bgcolor="#99CCCC"> <strong>Size</strong> </th><th bgcolor="#99CCCC"> <strong>Values</strong> </th><th bgcolor="#99CCCC"> <strong>tooltip message</strong> </th><th bgcolor="#99CCCC"> <strong>Attributes</strong> </th></tr>
5369             <tr><td> ALLOWTOPICCHANGE  </td><td>  textarea  </td><td>  &nbsp;  </td><td>  &nbsp;  </td><td>  Users or groups <strong><em>allowed</em></strong> to change or rename this TWikiForms topic: (I.e. <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/Main/TWikiAdminGroup">TWikiAdminGroup</a>)  </td><td>  S </td></tr>
5370             <tr><td> ALLOWWEBCHANGE  </td><td>  textarea  </td><td>  &nbsp;  </td><td>  &nbsp;  </td><td>  Users or groups who <strong><em>are</em></strong>  allowed to  <strong><em>change</em></strong> topics in the TWiki web: (See <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/TWikiAccessControl">TWikiAccessControl</a>)  </td><td>  S </td></tr>
5371             <tr><td> ALLOWWEBRENAME  </td><td>  textarea  </td><td>  &nbsp;  </td><td>  <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/Main/TWikiAdminGroup">TWikiAdminGroup</a>  </td><td>  Users or groups who <strong><em>are</em></strong>  allowed to  <strong><em>rename</em></strong> topics in the TWiki web: (See <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/TWikiAccessControl">TWikiAccessControl</a>)  </td><td>  S </td></tr>
5372             <tr><td> ALLOWWEBVIEW  </td><td>  textarea  </td><td>  &nbsp;  </td><td>  &nbsp;  </td><td>  Users or groups who <strong><em>are</em></strong>  allowed to <strong><em>view</em></strong>  topics in the TWiki web: (See <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/TWikiAccessControl">TWikiAccessControl</a>)  </td><td>  S </td></tr>
5373             <tr><td> DENYWEBCHANGE  </td><td>  textarea  </td><td>  &nbsp;  </td><td>  &nbsp;  </td><td>  Users or groups who <strong><em>are not</em></strong>  allowed to  <strong><em>change</em></strong> topics in the TWiki web: (See <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/TWikiAccessControl">TWikiAccessControl</a>)  </td><td>  S </td></tr>
5374             <tr><td> DENYWEBRENAME  </td><td>  textarea  </td><td>  &nbsp;  </td><td>  &nbsp;  </td><td>  Users or groups who <strong><em>are not</em></strong>  allowed to  <strong><em>rename</em></strong> topics in the TWiki web: (See <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/TWikiAccessControl">TWikiAccessControl</a>)  </td><td>  S </td></tr>
5375             <tr><td> DENYWEBVIEW  </td><td>  textarea  </td><td>  &nbsp;  </td><td>  &nbsp;  </td><td>  Users or groups who <strong><em>are not</em></strong>  allowed to <strong><em>view</em></strong>  topics in the TWiki web: (See <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/TWikiAccessControl">TWikiAccessControl</a>)  </td><td>  S </td></tr>
5376             <tr><td> FINALPREFERENCES  </td><td>  textarea  </td><td>  &nbsp;  </td><td>  "NOSEARCHALL, ATTACHFILESIZELIMIT, WIKIWEBMASTER, WEBCOPYRIGHT, WEBTOPICLIST, DENYWEBVIEW, ALLOWWEBVIEW, DENYWEBCHANGE, ALLOWWEBCHANGE, DENYWEBRENAME, ALLOWWEBRENAME"  </td><td>  Web preferences that are <strong>not</strong> allowed to be overridden by user preferences  </td><td>  S </td></tr>
5377 rizwank 1.1 <tr><td> NOSEARCHALL  </td><td>  text  </td><td>  &nbsp;  </td><td>  ",on"  </td><td>  "Exclude web from a <code>web=""all""</code> search: (Set to <code>on</code> for hidden webs)"  </td><td>  S </td></tr>
5378             <tr><td> SITEMAPLIST  </td><td>  select  </td><td>  &nbsp;  </td><td>  "on, ,"  </td><td>  List this web in the <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/SiteMap">SiteMap</a>  </td><td>  S </td></tr>
5379             <tr><td> SITEMAPUSETO  </td><td>  textarea  </td><td>  &nbsp;  </td><td>  ...to do something.  </td><td>  ...to do something.  </td><td>  S </td></tr>
5380             <tr><td> SITEMAPWHAT  </td><td>  textarea  </td><td>  &nbsp;  </td><td>  Describe what this web does.  </td><td>  Describe what this web does.  </td><td>  &nbsp;  </td></tr>
5381             <tr><td> SKIN  </td><td>  select  </td><td>  &nbsp;  </td><td>  "twiki, free, gnu, koala, pattern, plain, tiger"  </td><td>  list of installed skins  </td><td>  S </td></tr>
5382             <tr><td> WEBBGCOLOR  </td><td>  select  </td><td>  &nbsp;  </td><td>  lightpink, pink, crimson, lavenderblush, palevioletred, hotpink, deeppink, mediumvioletred, orchid, thistle, plum, violet, fuchsia, fuchsia, darkmagenta, purple, mediumorchid, darkviolet, darkorchid, indigo, blueviolet, mediumpurple, mediumslateblue, slateblue, darkslateblue, ghostwhite, lavender, blue, mediumblue, darkblue, navy, midnightblue, royalblue, cornflowerblue, lightsteelblue, lightslategray, slategray, dodgerblue, aliceblue, steelblue, lightskyblue, skyblue, deepskyblue, lightblue, powderblue, cadetblue, darkturquoise, azure, lightcyan, paleturquoise, aqua, aqua, darkcyan, teal, darkslategray, mediumturquoise, lightseagreen, turquoise, aquamarine, mediumaquamarine, mediumspringgreen, mintcream, springgreen, mediumseagreen, seagreen, honeydew, darkseagreen, palegreen, lightgreen, limegreen, lime, forestgreen, green, darkgreen, lawngreen, chartreuse, greenyellow, darkolivegreen, yellowgreen, olivedrab, ivory, beige, lightyellow, lightgoldenrodyellow, yellow, olive, darkkhaki, palegoldenrod, lemonchiffon, khaki, gold, cornsilk, goldenrod, darkgoldenrod, floralwhite, oldlace, wheat, orange, moccasin, papayawhip, blanchedalmond, navajowhite, antiquewhite, tan, burlywood, darkorange, bisque, linen, peru, peachpuff, sandybrown, chocolate, saddlebrown, seashell, sienna, lightsalmon, coral, orangered, darksalmon, tomato, salmon, mistyrose, lightcoral, snow, rosybrown, indianred, red, brown, firebrick, darkred, maroon, white, whitesmoke, gainsboro, lightgrey, silver, darkgray, gray, dimgray, black  </td><td>  Web specific background color: (Pick a lighter one of the <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/StandardColors">StandardColors</a>)  </td><td>  S </td></tr>
5383             <tr><td> WEBFORMS  </td><td>  textarea  </td><td>  &nbsp;  </td><td>  &nbsp;  </td><td>  <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/TWikiForms">TWikiForms</a>: How to enable form(s)  </td><td>  S </td></tr>
5384             <tr><td> WEBTOPICLIST  </td><td>  textarea  </td><td>  &nbsp;  </td><td>  <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/WebHome">WebHome</a>, <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/WebChanges">Changes</a>, <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/WebTopicList">Topics</a>, <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/WebIndex">Index</a>, <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/WebSearch">Search</a>, Go <input type="text" name="topic" size="16" />  </td><td>  the main entry point topics for this web  </td><td>  S </td></tr>
5385             </table>
5386             <p />
5387             <p />
5388             -- <a href="http://twiki.org/cgi-bin/view/Main.JohnTalintyre" title="'Main.JohnTalintyre' on TWiki.org">TWiki:Main.JohnTalintyre</a> - 16 Aug 2001 <br />
5389             -- <a href="http://twiki.org/cgi-bin/view/Main.MikeMannix" title="'Main.MikeMannix' on TWiki.org">TWiki:Main.MikeMannix</a> - 05 Jan 2002 <br />
5390             -- <a href="http://twiki.org/cgi-bin/view/Main.PeterThoeny" title="'Main.PeterThoeny' on TWiki.org">TWiki:Main.PeterThoeny</a> - 25 Apr 2004 <br />
5391             -- <a href="http://twiki.org/cgi-bin/view/Main.MattWilkie" title="'Main.MattWilkie' on TWiki.org">TWiki:Main.MattWilkie</a> - 27 Jul 2004 <br />
5392             <p />
5393             <p />
5394             <hr />
5395             <p />
5396             <h1><a name="TWiki_Templates"> </a> TWiki Templates </h1>
5397             <p />
5398 rizwank 1.1 <em>Definition of the templates used to render all HTML pages displayed in TWiki</em> 
5399             <p />
5400             <h2><a name="Overview"> </a> Overview </h2>
5401             <p />
5402             The new modular template system offers flexible, easy control over the layout of all TWiki pages. The master template approach groups parts that are shared by several templates - like headers and footers - in a common file. Special variables allow individual layouts to include parts from a master template - variables are mixed with regular HTML markup for template-specific content. Templates are used to define <a class="twikiAnchorLink" href="#HtmlTemplates">page layout</a>, and also to supply <a class="twikiAnchorLink" href="#TemplateTopics">default content</a> for new pages.
5403             <p />
5404             <h2><a name="Major_changes_from_the_previous"> </a><a name="Major_changes_from_the_previous_"> </a> Major changes from the previous template system </h2>
5405             <p />
5406             Where the old templates were each complete HTML documents, the new templates are defined using variables to include template parts from a master file. You can now change one instance of a common element to update all occurrences; previously, every affected template had to be updated. This simplifies the conversion of templates into XHTML format, and provides a more versatile solution for templates and for <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/TWikiSkins">TWikiSkins</a>. The new system:
5407             <p />
5408             <ul>
5409             <li> separates a set of common template parts into a base template that is included by all of the related templates;  
5410             </li>
5411             <li> defines common variables, like a standard separator (ex: "|"), in the base template; 
5412             </li>
5413             <li> defines variable text in the individual templates and passes it back to the base template.
5414             </li>
5415             </ul>
5416             <p />
5417             <a name="TemplateVariables"></a>
5418             <h2><a name="How_Template_Variables_Work"> </a> How Template Variables Work </h2>
5419 rizwank 1.1 <p />
5420             <ul>
5421             <li> Special template directives (or preprocessor commands) are embedded in normal templates.
5422             </li>
5423             <li> All template preprocessing is done in <code>&amp;TWiki::Store::readTemplate()</code> so that the caller simply gets an expanded template file (the same as before).
5424             </li>
5425             <li> Directives are of the form <code><b>%TMPL:&lt;key&gt;%</b></code> and <code><b>%TMPL:&lt;key&gt;{"attr"}%</b></code>.
5426             </li>
5427             <li> Directives:
5428             <ul>
5429             <li> <code><b>%TMPL:INCLUDE{"file"}%</b></code>: Includes a template file. The template directory of the current web is searched first, then the templates root (<code>twiki/templates</code>).
5430             </li>
5431             <li> <code><b>%TMPL:DEF{"var"}%</b></code>: Define a variable. Text between this and the END directive is not returned, but put into a hash for later use.
5432             </li>
5433             <li> <code><b>%TMPL:END%</b></code>: Ends variable definition.
5434             </li>
5435             <li> <code><b>%TMPL:P{"var"}%</b></code>: Prints a previously defined variable.
5436             </li>
5437             </ul>
5438             </li>
5439             <li> Variables live in a global name space: there is no parameter passing.
5440 rizwank 1.1 </li>
5441             <li> Two-pass processing lets you use a variable before or after declaring it.
5442             </li>
5443             <li> Templates and <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/TWikiSkins">TWikiSkins</a> work transparently and interchangeably. For example, you can create a skin that overloads only the <code>twiki.tmpl</code> master template, like <code>twiki.print.tmpl</code>, that redefines the header and footer.
5444             </li>
5445             <li> <img src="./pub/TWiki/TWikiDocGraphics/help.gif" border="0" alt="HELP" width="16" height="16" /> Use of template directives is optional: templates work without them.
5446             </li>
5447             <li> <img src="./pub/TWiki/TWikiDocGraphics/warning.gif" border="0" alt="ALERT!" width="16" height="16" /> <strong>NOTE:</strong> Template directives work only for templates: they do not get processed in topic text.
5448             </li>
5449             </ul>
5450             <p />
5451             <h2><a name="Types_of_Template"> </a> Types of Template </h2>
5452             <p />
5453             There are three types of template:
5454             <p />
5455             <ul>
5456             <li> <strong>Master Template</strong>: Stores common parts; included by other templates
5457             </li>
5458             <li> <strong>HTML Page Templates</strong>: Defines the layout of TWiki pages
5459             </li>
5460             <li> <strong>Template Topics</strong>: Defines default text when you create a new topic
5461 rizwank 1.1 </li>
5462             </ul>
5463             <p />
5464             <h3><a name="Master_Templates"> </a> Master Templates </h3>
5465             <p />
5466             Common parts, appearing in two or more templates, can be defined in a master template and then shared by others: <code><b>twiki.tmpl</b></code> is the default master template.
5467             <blockquote>
5468             <table border="1" cellspacing="0" cellpadding="1"> <tr><th bgcolor="#99CCCC"> <strong>Template variable:</strong> </th><th bgcolor="#99CCCC"> <strong>Defines:</strong> </th></tr>
5469             <tr><td>  %TMPL:DEF{"sep"}%  </td><td>  "&#124;" separator  </td></tr>
5470             <tr><td>  %TMPL:DEF{"htmldoctype"}%  </td><td>  Start of all HTML pages  </td></tr>
5471             <tr><td>  %TMPL:DEF{"standardheader"}%  </td><td>  Standard header (ex: view, index, search)   </td></tr>
5472             <tr><td>  %TMPL:DEF{"simpleheader"}%  </td><td>  Simple header with reduced links (ex: edit, attach, oops)  </td></tr>
5473             <tr><td>  %TMPL:DEF{"standardfooter"}%  </td><td>  Footer, excluding revision and copyright parts  </td></tr>
5474             <tr><td>  %TMPL:DEF{"oops"}%  </td><td>  Skeleton of oops dialog  </td></tr>
5475             </table>
5476             </blockquote>
5477             <p />
5478             <a name="HtmlTemplates"></a>
5479             <h3><a name="HTML_Page_Templates"> </a> HTML Page Templates </h3>
5480             <p />
5481             TWiki uses HTML template files for all actions, like topic view, edit, and preview. This allows you to change the look and feel of all pages by editing just a few template files.
5482 rizwank 1.1 <p />
5483             Templates are stored either in the <code><b>twiki/templates</b></code> directory or in user topics. As an example, <code><b>twiki/templates/view.tmpl</b></code> is the template file for the <code><b>twiki/bin/view</b></code> script.
5484             <p />
5485             <img src="./pub/TWiki/TWikiDocGraphics/help.gif" border="0" alt="HELP" width="16" height="16" /> Templates can be overloaded by individual webs.
5486             <p />
5487             <img src="./pub/TWiki/TWikiDocGraphics/help.gif" border="0" alt="HELP" width="16" height="16" /> <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/TWikiSkins">TWikiSkins</a> can overload the standard templates.
5488             <p />
5489             TWiki uses the following search order to determine which template to use:
5490             <p />
5491             <blockquote>
5492             <table border="1" cellspacing="0" cellpadding="1"> <tr><th bgcolor="#99CCCC"> <strong>If a skin is specified</strong> </th><th bgcolor="#99CCCC"> <strong>If no skin is specified</strong> </th></tr>
5493             <tr><td>  <code>templates/%WEB%/<font color="#ff0000">script</b>.<font color="#ff0000">skin</font>.tmpl</code>  </td><td>  <code>templates/%WEB%/<font color="#ff0000">script</font>.tmpl</code>  </td></tr>
5494             <tr><td>  <code>templates/<font color="#ff0000">script</font>.<font color="#ff0000">skin</font>.tmpl</code>  </td><td>  <code>templates/<font color="#ff0000">script</font>.tmpl</code>  </td></tr>
5495             <tr><td>  <code>data/%WEB%/<font color="#ff0000">Skin</font>Skin<font color="#ff0000">Script</font>Template.txt</code>  </td><td>  <code>data/%WEB%/<font color="#ff0000">Script</font>Template.txt</code>  </td></tr>
5496             <tr><td>  <code>data/TWiki/<font color="#ff0000">Skin</font>Skin<font color="#ff0000">Script</font>Template.txt</code>  </td><td>  <code>data/TWiki/<font color="#ff0000">Script</font>Template.txt</code>  </td></tr>
5497             <tr><td colspan="2">  <strong>Legend:</strong> <br />&#8226; <font color="#ff0000">script</font> refers to the script name, e.g <code>view</code>, <code>edit</code> <br />&#8226; <font color="#ff0000">Script</font> refers to the same, but with the first character capitalized, e.g <code>View</code> <br />&#8226; <font color="#ff0000">skin</font> refers to the skin name, e.g <code>dragon</code>, <code>pattern</code> <br />&#8226; <font color="#ff0000">Skin</font> refers to the same, but with the first character capitalized, e.g <code>Dragon</code> <br />&#8226; <code>%WEB%</code> refers to the current web  </td></tr>
5498             </table>
5499             </blockquote>
5500             <p />
5501             Additionally (and primarily for use in <code>%TMPL:INCLUDE{}%</code>) the template name may be a wiki topic name, specified as <code><font color="#ff0000">Web</font>.<font color="#ff0000">Topic</font></code>, in which case the search is:
5502             <blockquote>
5503 rizwank 1.1 <table border="1" cellspacing="0" cellpadding="1"> <tr><th bgcolor="#99CCCC"> <strong>If a skin is specified</strong> </th><th bgcolor="#99CCCC"> <strong>If no skin is specified</strong> </th></tr>
5504             <tr><td>  <code>templates/<font color="#ff0000">web</font>/<font color="#ff0000">Web</font>.<font color="#ff0000">Topic</font>.<font color="#ff0000">skin</font>.tmpl</code>  </td><td>  <code>templates/<font color="#ff0000">web</font>/<font color="#ff0000">Web</font>.<font color="#ff0000">Topic</font>.tmpl</code>  </td></tr>
5505             <tr><td>  <code>templates/<font color="#ff0000">Web</font>.<font color="#ff0000">Topic</font>.<font color="#ff0000">skin</font>.tmpl</code>  </td><td>  <code>templates/<font color="#ff0000">Web</font>.<font color="#ff0000">Topic</font>.tmpl</code>  </td></tr>
5506             <tr><td colspan="2" align="center">   <code>data/<font color="#ff0000">Web</font>/<font color="#ff0000">Topic</font>.txt</code>   </td></tr>
5507             </table>
5508             </blockquote>
5509             If <font color="#ff0000">Web</font> is not specified in the INCLUDE, it defaults to TWiki, and the search to the first type.
5510             <p />
5511             Special variables are used in templates, especially in <code>view</code>, to display <a class="twikiAnchorLink" href="http://TWiki.org/cgi-bin/view/TWiki/TWikiMetaData#MetaDataRendering">meta data</a>.
5512             <p />
5513             <a name="TemplateTopics"></a>
5514             <h3><a name="Template_Topics"> </a> Template Topics </h3>
5515             <p />
5516             Template topics define the default text for new topics. There are three types of template topic:
5517             <blockquote>
5518             <table border="1" cellspacing="0" cellpadding="1"> <tr><th bgcolor="#99CCCC"> <strong>Topic Name:</strong> </th><th bgcolor="#99CCCC"> <strong>What it is:</strong> </th></tr>
5519             <tr><td>  <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/WebTopicViewTemplate">WebTopicViewTemplate</a>  </td><td>  Error page shown when you try to view a nonexistent topic  </td></tr>
5520             <tr><td>  <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/WebTopicNonWikiTemplate">WebTopicNonWikiTemplate</a>  </td><td>  Alert page shown when you try to view a nonexistent topic with a non-WikiName  </td></tr>
5521             <tr><td>  <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/WebTopicEditTemplate">WebTopicEditTemplate</a>  </td><td>  Default text shown when you create a new topic.  </td></tr>
5522             </table>
5523             </blockquote>
5524 rizwank 1.1 All template topics are located in the TWiki web. The <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/WebTopicEditTemplate">WebTopicEditTemplate</a> can be overloaded. When you create a new topic, TWiki locates a topic to use as a content template according to the following search order:
5525             <p />
5526             <ol>
5527             <li> A topic name specified by the <code>templatetopic</code> CGI parameter.
5528             </li>
5529             <li> WebTopicEditTemplate in the current web
5530             </li>
5531             <li> WebTopicEditTemplate in the TWiki web
5532             </li>
5533             </ol>
5534             <p />
5535             <h4><a name="Edit_Template_Topics_and_Variabl"> </a> Edit Template Topics and Variable Expansion </h4>
5536             <p />
5537             The following variables get expanded when a user creates a new topic based on a template topic:
5538             <p />
5539             <blockquote>
5540             <table border="1" cellspacing="0" cellpadding="1"> <tr><th bgcolor="#99CCCC"> <strong>Variable:</strong> </th><th bgcolor="#99CCCC"> <strong>Description:</strong> </th></tr>
5541             <tr><td>  <code>%DATE%</code>  </td><td>  Current date, e.g. <code>30 Oct 2004</code>  </td></tr>
5542             <tr><td>  <code>%USERNAME%</code>  </td><td>  Login name, e.g. <code>jsmith</code>  </td></tr>
5543             <tr><td>  <code>%WIKINAME%</code>  </td><td>  <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/WikiName">WikiName</a> of user, e.g. <code>JohnSmith</code>  </td></tr>
5544             <tr><td>  <code>%WIKIUSERNAME%</code>  </td><td>  User name, e.g. <code>Main.JohnSmith</code>  </td></tr>
5545 rizwank 1.1 <tr><td>  <code>%URLPARAM{"name"}%</code>  </td><td>  Value of a named URL parameter  </td></tr>
5546             <tr><td>  <code>%NOP%</code>  </td><td>  A no-operation variable that gets removed. Useful to prevent a SEARCH from hitting an edit template topic; also useful to escape a variable like <code>%URLPARAM%NOP%{...}%</code>  </td></tr>
5547             <tr><td>  <code>%NOP{ ... }%</code>  </td><td>  A no-operation text that gets removed. Useful to write-protect an edit template topic, but not the topics based this template topic. See notes below. Example:<br /> <code>%NOP{<br />&nbsp; &nbsp;* Set&nbsp;ALLOWTOPICCHANGE = Main.TWikiAdminGroup<br /> }%</code>  </td></tr>
5548             </table>
5549             </blockquote>
5550             <p />
5551             <strong><em>Notes:</em></strong>
5552             <ul>
5553             <li> Unlike other variables, <code>%NOP{ ... }%</code> can span multiple lines. 
5554             </li>
5555             <li> The scan for the closing <code>}%</code> pattern is "non-greedy", that is, it stops at the first occurance. That means, you need to escape variables with parameters located inside <code>%NOP{ ... }%</code>: Insert a <code>%NOP%</code> between <code>}</code> and <code>%</code>. Silly example: <code>%NOP{ %GMTIME{"$year"}%NOP%% }%</code>.
5556             </li>
5557             </ul>
5558             <p />
5559             All other variables are unchanged, e.g. are carried over "as is" into the new topic.
5560             <p />
5561             <h4><a name="Template_Topics_in_Action"> </a> Template Topics in Action </h4>
5562             <p />
5563             Here is an example for creating new topics based on a specific template topic:
5564             <p />
5565             <form name="new" action="http://TWiki.org/cgi-bin/edit/TWiki/">
5566 rizwank 1.1 <ul>
5567             <li> New example topic: 
5568                  <input type="text" name="topic" value="ExampleTopic2004x10x30" size="23" />
5569                  <input type="hidden" name="templatetopic" value="ExampleTopicTemplate" />
5570                  <input type="hidden" name="topicparent" value="TWikiTemplates" />
5571                  <input type="hidden" name="onlywikiname" value="on" />
5572                  <input type="hidden" name="onlynewtopic" value="on" />
5573                  <input type="submit" value="Create" />
5574                  (date format is YYYYxMMxDD)
5575             </li>
5576             </ul>
5577             </form>
5578             <p />
5579             The above form asks for a topic name. A hidden input tag named <code><b>templatetopic</b></code> specifies <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/ExampleTopicTemplate">ExampleTopicTemplate</a> as the template topic to use. Here is the HTML source of the form:
5580             <p />
5581             <pre>
5582             &lt;form name="new" action="%SCRIPTURLPATH%/edit%SCRIPTSUFFIX%/%INTURLENCODE{"%WEB%"}%/"&gt;
5583                * New example topic: 
5584                  &lt;input type="text" name="topic" value="ExampleTopic%SERVERTIME{$yearx$mox$day}%" size="23" /&gt;
5585                  &lt;input type="hidden" name="templatetopic" value="ExampleTopicTemplate" /&gt;
5586                  &lt;input type="hidden" name="topicparent" value="%TOPIC%" /&gt;
5587 rizwank 1.1      &lt;input type="hidden" name="onlywikiname" value="on" /&gt;
5588                  &lt;input type="hidden" name="onlynewtopic" value="on" /&gt;
5589                  &lt;input type="submit" value="Create" /&gt;
5590                  (date format is &lt;nop&gt;YYYYxMMxDD)
5591             &lt;/form&gt;
5592             </pre>
5593             <p />
5594             The <code>edit</code> scipt understands the following parameters, typically supplied by HTML input fields:
5595             <p />
5596             <blockquote>
5597             <table border="1" cellspacing="0" cellpadding="1"> <tr><th bgcolor="#99CCCC"> <strong>Parameter:</strong> </th><th bgcolor="#99CCCC"> <strong>Description:</strong> </th></tr>
5598             <tr><td>  <code>topic</code>  </td><td>  Name of topic to create. Can be set in a text field, or is set programmatically (e.g. with a sequential number)  </td></tr>
5599             <tr><td>  <code>onlywikiname</code>  </td><td>  If set, TWiki will complain if the topic name is not a <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/WikiWord">WikiWord</a>  </td></tr>
5600             <tr><td>  <code>onlynewtopic</code>  </td><td>  If set, TWiki will complain if a topic of the same name already exists  </td></tr>
5601             <tr><td>  <code>templatetopic</code>  </td><td>  The name of the template topic, e.g. topic used to copy the initial content  </td></tr>
5602             <tr><td>  <code>topicparent</code>  </td><td>  Sets the parent topic  </td></tr>
5603             <tr><td>  <code>TopicClassification</code>  </td><td>  Assuming the template topic has a form with a field called "TopicClassification", it will set the value of the field  </td></tr>
5604             <tr><td>  <code>contenttype</code>  </td><td>  Optional parameter that defines the application type to write into the CGI header. Defaults to <code>text/html</code>. May be used to invoke alternative client applications  </td></tr>
5605             <tr><td>  <code>anyname</code>  </td><td>  Any parameter can passed to the new topic; if the template topic contains <code>%URLPARAM{"anyname"}%</code>, it will be replaced by its value  </td></tr>
5606             </table>
5607             </blockquote>
5608 rizwank 1.1 <p />
5609             <img src="./pub/TWiki/TWikiDocGraphics/tip.gif" border="0" alt="TIP" width="16" height="16" /> <strong>TIP:</strong> You can use the <code>%WIKIUSERNAME%</code> and <code>%DATE%</code> variables in your topic templates to include the signature of the person creating a new topic. The variables are expanded into fixed text when a new topic is created. The standard signature is: <br />
5610             <code><b>-- %WIKIUSERNAME% - %DATE%</b></code>
5611             <p />
5612             <h2><a name="Templates_by_Example"> </a> Templates by Example </h2>
5613             <p />
5614             Attached is an example of an oops based template <code>oopsbase.tmpl</code> and an example oops dialog <code>oopstest.tmpl</code> based on the base template. %A% <strong>NOTE:</strong> This isn't the release version, just a quick, simple demo.
5615             <p />
5616             <h3><a name="Base_template_oopsbase_tmpl"> </a> Base template oopsbase.tmpl </h3>
5617             <p />
5618             The first line declares a delimiter variable called "sep", used to separate multiple link items. The variable can be called anywhere by writing <code>%TMPL:P{"sep"}%</code>
5619             <p />
5620             <blockquote>
5621             <table border="1" cellspacing="0" cellpadding="1" bgcolor="#f5f5f5">
5622             <tr><td>
5623             <pre>
5624             %TMPL:DEF{"sep"}% | %TMPL:END%
5625             &lt;html&gt;
5626             &lt;head&gt;
5627               &lt;title&gt; %WIKITOOLNAME% . %WEB% . %TOPIC% %.TMPL:P{"titleaction"}%&lt;/title&gt;
5628               &lt;base href="%SCRIPTURL%/view%SCRIPTSUFFIX%/%WEB%/%TOPIC%"&gt;
5629 rizwank 1.1   &lt;meta name="robots" content="noindex"&gt;
5630             &lt;/head&gt;
5631             &lt;body bgcolor="#FFFFFF"&gt;
5632             &lt;table width="100%" border="0" cellpadding="3" cellspacing="0"&gt;
5633               &lt;tr&gt;
5634                 &lt;td bgcolor="%WEBBGCOLOR%" rowspan="2" valign="top" width="1%"&gt;
5635                   &lt;a href="%WIKIHOMEURL%"&gt;
5636                   &lt;img src="%PUBURLPATH%/wikiHome.gif" border="0"&gt;&lt;/a&gt;
5637                 &lt;/td&gt;
5638                 &lt;td&gt;
5639                   &lt;b&gt;%WIKITOOLNAME% . %WEB% . &lt;/b&gt;&lt;font size="+2"&gt;
5640                   &lt;B&gt;%TOPIC%&lt;/b&gt; %TMPL:P{"titleaction"}%&lt;/font&gt;
5641                 &lt;/td&gt;
5642               &lt;/tr&gt;
5643               &lt;tr bgcolor="%WEBBGCOLOR%"&gt;
5644                 &lt;td colspan="2"&gt;
5645                   %TMPL:P{"webaction"}%
5646                 &lt;/td&gt;
5647               &lt;/tr&gt;
5648             &lt;/table&gt;
5649             --- ++ %TMPL:P{"heading"}%
5650 rizwank 1.1 %TMPL:P{"message"}%
5651             &lt;table width="100%" border="0" cellpadding="3" cellspacing="0"&gt;
5652               &lt;tr bgcolor="%WEBBGCOLOR%"&gt;
5653                 &lt;td valign="top"&gt;
5654                   Topic &lt;b&gt;%TOPIC%&lt;/b&gt; . {
5655                     %TMPL:P{"topicaction"}%
5656                   }
5657                 &lt;/td&gt;
5658               &lt;/tr&gt;
5659             &lt;/table&gt;
5660             &lt;/body&gt;
5661             </pre>
5662             </td></tr>
5663             </table>
5664             </blockquote>
5665             <p />
5666             <h3><a name="Test_template_oopstest_tmpl"> </a> Test template oopstest.tmpl </h3>
5667             <p />
5668             Each oops template basically just defines some variables and includes the base template that does the layout work.
5669             <p />
5670             <blockquote>
5671 rizwank 1.1 <table border="1" cellspacing="0" cellpadding="1" bgcolor="#f5f5f5">
5672             <tr><td>
5673             <pre>
5674             %TMPL:DEF{"titleaction"}% (test =titleaction=) %TMPL:END%
5675             %TMPL:DEF{"webaction"}% test =webaction= %TMPL:END%
5676             %TMPL:DEF{"heading"}%
5677             Test heading %TMPL:END%
5678             %TMPL:DEF{"message"}%
5679             Test =message=. Blah blah blah blah blah blah blah blah blah blah blah...
5680             
5681                * Some more blah blah blah blah blah blah blah blah blah blah...
5682                * Param1: %PARAM1%
5683                * Param2: %PARAM2%
5684                * Param3: %PARAM3%
5685                * Param4: %PARAM4%
5686             %TMPL:END%
5687             %TMPL:DEF{"topicaction"}%
5688             Test =topicaction=:
5689             [[%WEB%.%TOPIC%][OK]] %TMPL:P{"sep"}%
5690             [[%TWIKIWEB%.TWikiRegistration][Register]] %TMPL:END%
5691             %TMPL:INCLUDE{"oopsbase"}%
5692 rizwank 1.1 </pre>
5693             </td></tr>
5694             </table >
5695             </blockquote>
5696             <p />
5697             <h3><a name="Sample_screen_shot_of_oopstest_t"> </a> Sample screen shot of oopstest.tmpl </h3>
5698             <p />
5699             With URL: <code><b>.../bin/oops/Sandbox/TestTopic2?template=oopstest&amp;param1=WebHome&amp;param2=WebNotify</b></code>
5700             <p />
5701             <blockquote>
5702             <table border="1" cellspacing="0" cellpadding="1"> <tr><td>  <img src="./pub/TWiki/TWikiTemplates/testscreen.gif" width="589" height="304" alt="testscreen.gif">  </td></tr>
5703             </table>
5704             </blockquote>
5705             <p />
5706             <h2><a name="Known_Issues"> </a> Known Issues </h2>
5707             <p />
5708             <ul>
5709             <li> A drawback of referring to a master template is that you can only test a template from within TWiki, where the include variables are resolved. In the previous system, each template was a structurally complete HTML document with a <code>.tmpl</code> filename extension - it contained unresolved <code>%VARIABLES%</code>, but could still be previewed directly in a browser.
5710             </li>
5711             </ul>
5712             <p />
5713 rizwank 1.1 -- <a href="http://twiki.org/cgi-bin/view/Main.CrawfordCurrie" title="'Main.CrawfordCurrie' on TWiki.org">TWiki:Main.CrawfordCurrie</a> - 30 Jun 2004 <br />
5714             -- <a href="http://twiki.org/cgi-bin/view/Main.PeterThoeny" title="'Main.PeterThoeny' on TWiki.org">TWiki:Main.PeterThoeny</a> - 15 Aug 2004 <br />
5715             -- <a href="http://twiki.org/cgi-bin/view/Main.MikeMannix" title="'Main.MikeMannix' on TWiki.org">TWiki:Main.MikeMannix</a> - 14 Sep 2001 <br />
5716             -- <a href="http://twiki.org/cgi-bin/view/Main.DavidLeBlanc" title="'Main.DavidLeBlanc' on TWiki.org">TWiki:Main.DavidLeBlanc</a> - 11 Mar 2002
5717             <p />
5718             <p />
5719             <p />
5720             <hr />
5721             <p />
5722             <h1><a name="TWiki_Skins"> </a> TWiki Skins </h1>
5723             <p />
5724             <em>Skins overlay regular templates with alternate header/footer layouts; topic text is not affected</em>
5725             <p />
5726             <h2><a name="Overview"> </a> Overview </h2>
5727             <p />
5728             Skins are customized <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/TWikiTemplates">TWikiTemplates</a> files. You can use skins to change the look of a TWiki topic, for example, the layout of the header and footer. Rendered text between header and footer does <strong><em>not</em></strong> change. You can also use skins to define an alternate view, like a view optimized for printing.
5729             <p />
5730             <h2><a name="Defining_Skins"> </a> Defining Skins </h2>
5731             <p />
5732             Skin files are located in the <code>twiki/templates</code> directory and are named with the syntax: <code><b>&lt;scriptname&gt;.&lt;skin&gt;.tmpl</b></code>. For example, the <strong>Printable</strong> skin for the <code>view</code> template is <code>view.print.tmpl</code>.
5733             <p />
5734 rizwank 1.1 Use the existing <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/TWikiTemplates">TWikiTemplates</a> (like <code>view.tmpl</code>) or skin files as a base for your own skin, name it for example <code>view.myskin.tmpl</code>.
5735             <p />
5736             <h2><a name="Variables_in_Skins"> </a> Variables in Skins </h2>
5737             <p />
5738             You can use <a class="twikiAnchorLink" href="http://TWiki.org/cgi-bin/view/TWiki/TWikiTemplates#TemplateVariables">template variables</a>, <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/TWikiVariables">TWikiVariables</a>, and other predefined variables to compose your skins. Some commonly used variables in skins:
5739             <p />
5740             <table border="1" cellspacing="0" cellpadding="1"> <tr><th bgcolor="#99CCCC"> <strong>Variable:</strong> </th><th bgcolor="#99CCCC"> <strong>Expanded to:</strong> </th></tr>
5741             <tr><td>  <code>%WIKILOGOURL%</code>  </td><td>  Link of page logo  </td></tr>
5742             <tr><td>  <code>%WIKILOGOIMG%</code>  </td><td>  Image URL of page logo  </td></tr>
5743             <tr><td>  <code>%WIKILOGOALT%</code>  </td><td>  Alt text of page logo  </td></tr>
5744             <tr><td>  <code>%WEBBGCOLOR%</code>  </td><td>  Web specific background color, defined in the <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/WebPreferences">WebPreferences</a>  </td></tr>
5745             <tr><td>  <code>%WIKITOOLNAME%</code>  </td><td>  The name of your TWiki site  </td></tr>
5746             <tr><td>  <code>%SCRIPTURL%</code>  </td><td>  The script URL of TWiki  </td></tr>
5747             <tr><td>  <code>%SCRIPTSUFFIX%</code>  </td><td>  The script suffix, ex: <code>.pl</code>, <code>.cgi</code>  </td></tr>
5748             <tr><td>  <code>%WEB%</code>  </td><td>  The name of the current web. <strong><em>Note:</em></strong> It is recommended to URL-encode the variable in form actions with <code>%INTURLENCODE{"%WEB%"}%</code> for proper handling in an internationalized environment  </td></tr>
5749             <tr><td>  <code>%TOPIC%</code>  </td><td>  The name of the current topic. <strong><em>Note:</em></strong> It is recommended to URL-encode the variable in form actions with <code>%INTURLENCODE{"%TOPIC%"}%</code> for proper handling in an internationalized environment  </td></tr>
5750             <tr><td>  <code>%WEBTOPICLIST%</code>  </td><td>  Common links of current web, defined in the <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/WebPreferences">WebPreferences</a>. It includes a <a class="twikiAnchorLink" href="#GoBox">#GoBox</a>  </td></tr>
5751             <tr><td>  <code>%TEXT%</code>  </td><td>  The topic text, e.g. the content that can be edited  </td></tr>
5752             <tr><td>  <code>%META{"form"}%</code>  </td><td>  <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/TWikiForms">TWikiForm</a>, if any  </td></tr>
5753             <tr><td>  <code>%META{"attachments"}%</code>  </td><td>  <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/FileAttachment">FileAttachment</a> table  </td></tr>
5754             <tr><td>  <code>%META{"parent"}%</code>  </td><td>  The topic parent  </td></tr>
5755 rizwank 1.1 <tr><td>  <code>%EDITTOPIC%</code>  </td><td>  Edit link  </td></tr>
5756             <tr><td>  <code>%REVTITLE%</code>  </td><td>  The revision title, if any, ex: <code>(r1.6)</code>  </td></tr>
5757             <tr><td>  <code>%REVINFO%</code>  </td><td>  Revision info, ex: <code>r1.6 - 24 Dec 2002 - 08:12 GMT - <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/Main/TWikiGuest">TWikiGuest</a></code>  </td></tr>
5758             <tr><td>  <code>%WEBCOPYRIGHT%</code>  </td><td>  Copyright notice, defined in the <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/WebPreferences">WebPreferences</a>  </td></tr>
5759             <tr><td>  <code>%BROADCASTMESSAGE%</code>  </td><td>  Broadcast message at the beginning of your view template, can be used to alert users of scheduled downtimes; is set in <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/TWikiPreferences">TWikiPreferences</a>  </td></tr>
5760             </table>
5761             <p />
5762             <a name="GoBox"></a>
5763             <h3><a name="The_Go_Box_and_Navigation_Box"> </a> The "Go" Box and Navigation Box </h3>
5764             <p />
5765             The <code>%WEBTOPICLIST%</code> includes a "Go" box to jump to a topic. The box also understand URLs, e.g. you can type <a href="http://www.google.com/" target="_top">http://www.google.com/</a> to jump to an external web site. The feature is handy if you build a skin that has a select box of frequently used links, like Intranet home, employee database, sales database and such. A little JavaScript gets into action on the onSelect method of the select tag to fill the selected URL into the "Go" box field, then submits the form.
5766             <p />
5767             Here is an example form that has a select box and the "Go" box for illustration purposes. You need to have JavaScript enabled for this to work:
5768             <p />
5769             <form name="sample" action="http://TWiki.org/cgi-bin/view/TWiki/TWikiSkins">
5770             <table border="3"><tr><td>
5771             <select name="sel" onchange="this.form.topic.value=this.options[this.selectedIndex].value; this.form.submit()">
5772              <option selected="selected" value="">Navigate...</option>
5773              <option value="http://www.twiki.org/">Intranet home</option>
5774              <option value="Main.TWikiUsers">Employee index</option>
5775              <option value="Main.WebHome">Main web</option>
5776 rizwank 1.1  <option value="TWiki.WebHome">TWiki web</option>
5777              <option value="http://www.google.com/">Google</option>
5778              <option value="http://www.yahoo.com/">Yahoo!</option>
5779              </select>
5780             Bare bones header for demo only
5781             </td></tr><tr><td>
5782             <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/WelcomeGuest">Welcome</a>  |  <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/TWikiRegistration">Register</a>  |  <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/WebChanges">Changes</a>  |  <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/WebTopicList">Topics</a>  |  <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/WebIndex">Index</a>  |  <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/WebSearch">Search</a>  |  Go <input type="text" name="topic" size="16" />
5783             </td></tr></table>
5784             </form> 
5785             <p />
5786             <h2><a name="Using_Cascading_Style_Sheets"> </a> Using Cascading Style Sheets </h2>
5787             <p />
5788             Although work is underway at <a href="http://twiki.org/cgi-bin/view/Codev.CssClassNames" title="'Codev.CssClassNames' on TWiki.org">TWiki:Codev.CssClassNames</a>, the regular templates files currently do not use style sheets.  Many skin developers, however, choose to use them; it helps in separating style from content.
5789             <p />
5790             Example: To use a style sheet for the broadcast message, add this to <code>view.myskin.tmpl</code>:
5791             <p />
5792             <pre>
5793             &lt;style type="text/css"&gt;
5794             .broadcastmessage {
5795                 background: yellow; display:block;
5796                 border-style:solid;border-width: 2px;border-color:red;
5797 rizwank 1.1 }
5798             .broadcastmessage strong {color: red}
5799             &lt;/style&gt;
5800             </pre>
5801             <p />
5802             Then add a div tag to the <code>%BROADCASTMESSAGE%</code> variable located after the <code>#PageTop</code> anchor or after the opening form tag:
5803             <p />
5804             <pre>
5805             &lt;div class="broadcastmessage"&gt; %BROADCASTMESSAGE% &lt;/div&gt;
5806             </pre>
5807             <p />
5808             <h2><a name="Attachment_Tables"> </a> Attachment Tables </h2>
5809             Controlling the look and feel of attachment tables is a little bit more complex than for the rest of a skin. By default the attachment table is a standard TWiki table, and the look is controlled in the same ay as other tables. In a very few cases you may want to change the <em>content</em> of the table as well.
5810             <p />
5811             The format of standard attachment tables is defined through the use of special <em>TWiki template macros</em> which by default are defined in the <code>templates/twiki.tmpl</code> template using the <code>%TMPL:DEF</code> macro syntax described in <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/TWikiTemplates">TWikiTemplates</a>. These macros are:
5812             <table border="1" cellspacing="0" cellpadding="1"> <tr><th bgcolor="#99CCCC"> <strong>Macro</strong> </th><th bgcolor="#99CCCC"> <strong>Description</strong> </th></tr>
5813             <tr><td>  <code>ATTACH:files:header</code>  </td><td>  Standard title bar  </td></tr>
5814             <tr><td>  <code>ATTACH:files:row</code>  </td><td>  Standard row  </td></tr>
5815             <tr><td>  <code>ATTACH:files:footer</code>  </td><td>  Footer for all screens  </td></tr>
5816             <tr><td>  <code>ATTACH:files:header:A</code>  </td><td>  Title bar for upload screens, with attributes column  </td></tr>
5817             <tr><td>  <code>ATTACH:files:row:A</code>  </td><td>  Row for upload screen  </td></tr>
5818 rizwank 1.1 <tr><td>  <code>ATTACH:files:footer:A</code>  </td><td>  Footer for all screens  </td></tr>
5819             </table>
5820             The format of tables of file versions in the Upload screen are also formattable, using the macros:
5821             <table border="1" cellspacing="0" cellpadding="1"> <tr><th bgcolor="#99CCCC"> <strong>Macro</strong> </th><th bgcolor="#99CCCC"> <strong>Description</strong> </th></tr>
5822             <tr><td>  <code>ATTACH:versions:header</code>  </td><td>  Header for versions table on upload screen  </td></tr>
5823             <tr><td>  <code>ATTACH:versions:row</code>  </td><td>  Row format for versions table on upload screen  </td></tr>
5824             <tr><td>  <code>ATTACH:versions:footer</code>  </td><td>  Footer for versions table on upload screen  </td></tr>
5825             </table>
5826             <p />
5827             The <code>ATTACH:row</code> macros are expanded for each file in the attachment table, using the following special tags:
5828             <table border="1" cellspacing="0" cellpadding="1"> <tr><th bgcolor="#99CCCC"> <strong>Tag</strong> </th><th bgcolor="#99CCCC"> <strong>Description</strong> </th></tr>
5829             <tr><td>  <code>%A_URL%</code>  </td><td>  URL that will recover the file  </td></tr>
5830             <tr><td>  <code>%A_REV%</code>  </td><td>  Revision of this file e.g. "1.1"  </td></tr>
5831             <tr><td>  <code>%A_ICON%</code>  </td><td>  A file icon suitable for representing the attachment content  </td></tr>
5832             <tr><td>  <code>%A_FILE%</code>  </td><td>  The name of the file  </td></tr>
5833             <tr><td>  <code>%A_SIZE%</code>  </td><td>  The size of the file  </td></tr>
5834             <tr><td>  <code>%A_DATE%</code>  </td><td>  The date the file was uploaded  </td></tr>
5835             <tr><td>  <code>%A_USER%</code>  </td><td>  The user who uploaded it  </td></tr>
5836             <tr><td>  <code>%A_COMMENT%</code>  </td><td>  The comment they put in when uploading it  </td></tr>
5837             <tr><td>  <code>%A_ATTRS%</code>  </td><td>  The attributes of the file as seen on the upload screen e.g "h" for a hidden file  </td></tr>
5838             </table>
5839 rizwank 1.1 <p />
5840             Note: it is easy to change the look and feel for an entire site by editing the <code>twiki.tmpl</code> template file. However, to simplify upgrading, you should avoid doing this. Instead, write a skin-specific template file e.g. <code>attach.myskin.tmpl</code> and use <code>%TMPL:INCLUDE{attach.myskin.tmpl}%</code> to include it in each of your skin files. As long as it it included <em>after</em> twiki.tmpl, your macro definitions will override the defaults defined there.
5841             <p />
5842             <h2><a name="Packaging_and_Publishing_Skins"> </a> Packaging and Publishing Skins </h2>
5843             <p />
5844             See <a href="http://twiki.org/cgi-bin/view/Plugins/SkinPackagingHowTo" title="'Plugins/SkinPackagingHowTo' on TWiki.org">TWiki:Plugins/SkinPackagingHowTo</a> and <a href="http://twiki.org/cgi-bin/view/Plugins/SkinDeveloperFAQ" title="'Plugins/SkinDeveloperFAQ' on TWiki.org">TWiki:Plugins/SkinDeveloperFAQ</a>
5845             <p />
5846             <h2><a name="Browsing_Installed_Skins"> </a> Browsing Installed Skins </h2>
5847             <p />
5848             You can try all installed skins in <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/TWikiSkinBrowser">TWikiSkinBrowser</a>.
5849             <p />
5850             <h2><a name="Activating_Skins"> </a> Activating Skins </h2>
5851             <p />
5852             A skin can be activated in two ways:
5853             <p />
5854             <ul>
5855             <li> Define the <code>SKIN</code> Preference variable in <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/TWikiPreferences">TWikiPreferences</a>, one of the <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/WebPreferences">WebPreferences</a>, or in a user - <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/Main/TWikiGuest">TWikiGuest</a> - topic.
5856             <ul>
5857             <li> <code>Set SKIN = print</code>
5858             </li>
5859             </ul>
5860 rizwank 1.1 </li>
5861             </ul>
5862             <p />
5863             <ul>
5864             <li> Add <code>?skin=name</code> to the URL, for this example:
5865             <ul>
5866             <li> <a href="http://TWiki.org/cgi-bin/view/TWiki/TWikiSkins?skin=print" target="_top">http://TWiki.org/cgi-bin/view/TWiki/TWikiSkins?skin=print</a> (for the print view skin)
5867             </li>
5868             <li> <a href="http://TWiki.org/cgi-bin/view/TWiki/TWikiSkins?skin=plain" target="_top">http://TWiki.org/cgi-bin/view/TWiki/TWikiSkins?skin=plain</a> (for the plain view skin that has no header and footer)
5869             </li>
5870             </ul>
5871             </li>
5872             </ul>
5873             <p />
5874             The <code><b>?skin=name</b></code> URL parameter overrides the SKIN Preference value.
5875             <p />
5876             -- <a href="http://twiki.org/cgi-bin/view/Main.PeterThoeny" title="'Main.PeterThoeny' on TWiki.org">TWiki:Main.PeterThoeny</a> - 25 Jul 2004 <br />
5877             -- <a href="http://twiki.org/cgi-bin/view/Main.CrawfordCurrie" title="'Main.CrawfordCurrie' on TWiki.org">TWiki:Main.CrawfordCurrie</a> - 30 Jun 2004 <br />
5878             <p />
5879             <p />
5880             <hr />
5881 rizwank 1.1 <p />
5882             <h1><a name="TWiki_Formatted_Search_Results"> </a> TWiki Formatted Search Results </h1>
5883             <p />
5884             <em>Inline search feature allows flexible formatting of search result</em>
5885             <p />
5886             The default format of a <code><a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/TWikiSearch">%SEARCH{...}%</a></code> as documented in <a class="twikiAnchorLink" href="http://TWiki.org/cgi-bin/view/TWiki/TWikiVariables#VarSEARCH">TWikiVariables</a> is a table consisting of topic names and topic summaries. Use the <code>format="..."</code> parameter to customize the search result. The format parameter typically defines a bullet or a table row containing variables, such as <code>%SEARCH{ "food" format="| $topic | $summary |" }%</code>.
5887             <p />
5888             <h2><a name="Syntax"> </a> Syntax </h2>
5889             <p />
5890             Two parameters can be used to specify a customized search result:
5891             <p />
5892             1. <code>header="..."</code> parameter
5893             <p />
5894             Use the header parameter to specify the header of a search result. It should correspond to the format of the format parameter. This parameter is optional. <br /> Example: <code>header="| *Topic:* | *Summary:* |"</code>
5895             <p />
5896             2. <code>format="..."</code> parameter
5897             <p />
5898             Use the format parameter to specify the format of one search hit.
5899             <br /> Example: <code>format="| $topic | $summary |"</code>
5900             <p />
5901             Variables that can be used in the format string:
5902 rizwank 1.1 <p />
5903             <table border="1" cellspacing="0" cellpadding="1"> <tr><th bgcolor="#99CCCC"> <strong>Name:</strong> </th><th bgcolor="#99CCCC"> <strong>Expands To:</strong> </th></tr>
5904             <tr><td>  <code>$web</code>  </td><td>  Name of the web  </td></tr>
5905             <tr><td>  <code>$topic</code>  </td><td>  Topic name  </td></tr>
5906             <tr><td>  <code>$topic(20)</code>  </td><td>  Topic name, "<tt>- </tt>" hyphenated each 20 characters  </td></tr>
5907             <tr><td>  <code>$topic(30, -&lt;br /&gt;)</code>  </td><td>  Topic name, hyphenated each 30 characters with separator "<tt>-&lt;br /&gt;</tt>"  </td></tr>
5908             <tr><td>  <code>$topic(40, ...)</code>  </td><td>  Topic name, shortended to 40 characters with "<tt>...</tt>" indication  </td></tr>
5909             <tr><td>  <code>$parent</code>  </td><td>  Name of parent topic; empty if not set  </td></tr>
5910             <tr><td>  <code>$parent(20)</code>  </td><td>  Name of parent topic, same hyphenation/shortening like <code>$topic()</code>  </td></tr>
5911             <tr><td>  <code>$text</code>  </td><td>  Formatted topic text. In case of a <code>multiple="on"</code> search, it is the line found for each search hit.  </td></tr>
5912             <tr><td>  <code>$locked</code>  </td><td>  LOCKED flag (if any)  </td></tr>
5913             <tr><td>  <code>$date</code>  </td><td>  Time stamp of last topic update, e.g. <code>30 Oct 2004 - 09:29</code>  </td></tr>
5914             <tr><td>  <code>$isodate</code>  </td><td>  Time stamp of last topic update, e.g. <code>2004-10-30T09:29Z</code>  </td></tr>
5915             <tr><td>  <code>$rev</code>  </td><td>  Number of last topic revision, e.g. <code>1.4</code>  </td></tr>
5916             <tr><td>  <code>$username</code>  </td><td>  Login name of last topic update, e.g. <code>jsmith</code>  </td></tr>
5917             <tr><td>  <code>$wikiname</code>  </td><td>  Wiki user name of last topic update, e.g. <code>JohnSmith</code>  </td></tr>
5918             <tr><td>  <code>$wikiusername</code>  </td><td>  Wiki user name of last topic update, like <code>Main.JohnSmith</code>  </td></tr>
5919             <tr><td>  <code>$createdate</code>  </td><td>  Time stamp of topic revision 1.1  </td></tr>
5920             <tr><td>  <code>$createusername</code>  </td><td>  Login name of topic revision 1.1, e.g. <code>jsmith</code>  </td></tr>
5921             <tr><td>  <code>$createwikiname</code>  </td><td>  Wiki user name of topic revision 1.1, e.g. <code>JohnSmith</code>  </td></tr>
5922             <tr><td>  <code>$createwikiusername</code>  </td><td>  Wiki user name of topic revision 1.1, e.g. <code>Main.JohnSmith</code>  </td></tr>
5923 rizwank 1.1 <tr><td>  <code>$summary</code>  </td><td>  Topic summary, with 162 characters  </td></tr>
5924             <tr><td>  <code>$summary(50)</code>  </td><td>  Topic summary, with 50 characters  </td></tr>
5925             <tr><td>  <code>$summary(showvarnames)</code>  </td><td>  Topic summary, with <code>%ALLTWIKI{...}%</code> variables shown as <code>ALLTWIKI{...}</code>  </td></tr>
5926             <tr><td>  <code>$summary(noheader)</code>  </td><td>  Topic summary, with leading <code>---+ headers</code> removed<br /> <strong><em>Note:</em></strong> The tokens can be combined into a comma separated list like <code>$summary(100, showvarnames, noheader)</code>  </td></tr>
5927             <tr><td>  <code>$formname</code>  </td><td>  The name of the form attached to the topic; empty if none  </td></tr>
5928             <tr><td>  <code>$formfield(name)</code>  </td><td>  The field value of a form field; for example, <code>$formfield(TopicClassification)</code> would get expanded to <code>PublicFAQ</code>. This applies only to topics that have a <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/TWikiForms">TWikiForm</a>  </td></tr>
5929             <tr><td>  <code>$formfield(name, 10)</code>  </td><td>  Form field value, "<tt>- </tt>" hyphenated each 10 characters  </td></tr>
5930             <tr><td>  <code>$formfield(name, 20, -&lt;br /&gt;)</code>  </td><td>  Form field value, hyphenated each 20 characters with separator "<tt>-&lt;br /&gt;</tt>"  </td></tr>
5931             <tr><td>  <code>$formfield(name, 30, ...)</code>  </td><td>  Form field value, shortended to 30 characters with "<tt>...</tt>" indication  </td></tr>
5932             <tr><td>  <code>$pattern(reg-exp)</code>  </td><td>  A regular expression pattern to extract some text from a topic (does not search meta data; use <code>$formfield</code> instead). In case of a <code>multiple="on"</code> search, the pattern is applied to the line found in each search hit.<br />&#8226; Specify a <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/RegularExpression">RegularExpression</a> that covers the whole text (topic or line), which typically starts with <code>.*</code>, and must end in <code>.*</code> <br />&#8226; Put text you want to keep in parenthesis, like <code>$pattern(.*?(from here.*?to here).*)</code> <br />&#8226; Example: <code>$pattern(.*?\*.*?Email\:\s*([^\n\r]+).*)</code> extracts the email address from a bullet of format <code>* Email: ...</code> <br />&#8226; This example has non-greedy <code>.*?</code> patterns to scan for the first occurance of the Email bullet; use greedy <code>.*</code> patterns to scan for the last occurance <br />&#8226; Limitation: Do not use <code>.*)</code> inside the pattern, e.g. <code>$pattern(.*foo(.*)bar.*)</code> does not work, but <code>$pattern(.*foo(.*?)bar.*)</code> does <br />&#8226; Note: Make sure that the integrity of a web page is not compromised; for example, if you include an HTML table make sure to include everything including the table end tag  </td></tr>
5933             <tr><td>  <code>$n</code> or <code>$n()</code>  </td><td>  New line  </td></tr>
5934             <tr><td>  <code>$nop</code> or <code>$nop()</code>  </td><td>  Is a "no operation". This variable gets removed; useful for nested search  </td></tr>
5935             <tr><td>  <code>$quot</code>  </td><td>  Double quote (<code>"</code>). Alternatively write <code>\"</code> to escape it  </td></tr>
5936             <tr><td>  <code>$percnt</code>  </td><td>  Percent sign (<code>%</code>)  </td></tr>
5937             <tr><td>  <code>$dollar</code>  </td><td>  Dollar sign (<code>$</code>)  </td></tr>
5938             </table>
5939             <p />
5940             <p />
5941             <h2><a name="Examples"> </a> Examples </h2>
5942             <p />
5943             <p />
5944 rizwank 1.1 <a name="SearchBulletList"></a>
5945             <h3><a name="Bullet_list_showing_topic_name_a"> </a> Bullet list showing topic name and summary </h3>
5946             <p />
5947             <strong>Write this:</strong>
5948             <p />
5949             <code>%SEARCH{ "FAQ" scope="topic" nosearch="on" nototal="on" header=" &nbsp; * *Topic: Summary:*" format=" &nbsp; * [[$topic]]: $summary" }%</code>
5950             <p />
5951             <strong>To get this:</strong>
5952             <p />
5953             <ul>
5954             <li> <strong>Topic: Summary:</strong>
5955             </li>
5956             <li> <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/TWikiFAQ">TWikiFAQ</a>:  Frequently Asked Questions About TWiki This is a real FAQ, and also a demo of one easily implemented knowledge base solution. See how it's done, click Edit . NOTE ...
5957             </li>
5958             <li> <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/TWikiFaqTemplate">TWikiFaqTemplate</a>:  FAQ: Answer: Back to: TWikiFAQ 
5959             </li>
5960             <li> <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/TextFormattingFAQ">TextFormattingFAQ</a>:  Text Formatting FAQ The most frequently asked questions about text formatting are answered. Also, TextFormattingRules contains the complete TWiki shorthand system ...
5961             </li>
5962             </ul>
5963             <p />
5964             <p />
5965 rizwank 1.1 <h3><a name="Table_showing_form_field_values"> </a><a name="Table_showing_form_field_values_"> </a> Table showing form field values of topics with a form </h3>
5966             <p />
5967             In a web where there is a form that contains a <code>TopicClassification</code> field, an <code>OperatingSystem</code> field and an <code>OsVersion</code> field we could write:
5968             <p />
5969             <code>| *Topic:* | *OperatingSystem:* | *OsVersion:* |</code> <br />
5970             <code>%SEARCH{ "[T]opicClassification.*?value=\"[P]ublicFAQ\"" scope="text" regex="on" nosearch="on" nototal="on" format="| [[$topic]] | $formfield(OperatingSystem) | $formfield(OsVersion) |" }%</code>
5971             <p />
5972             To get this:
5973             <p />
5974             <table border="1" cellspacing="0" cellpadding="1">
5975             <tr>
5976              <th bgcolor="#99CCCC"> <strong>Topic:</strong> </th>
5977              <th bgcolor="#99CCCC"> <strong>OperatingSystem:</strong> </th>
5978              <th bgcolor="#99CCCC"> <strong>OsVersion:</strong> </th></tr>
5979             <tr>
5980              <td>  <a href="http://TWiki.org/cgi-bin/view/Sandbox/IncorrectDllVersionW32PTH10DLL">IncorrectDllVersionW32PTH10DLL</a>  </td><td>  <a href="http://TWiki.org/cgi-bin/view/Sandbox/OsWin">OsWin</a>  </td><td>  95/98  </td></tr>
5981             <tr>
5982              <td>  <a href="http://TWiki.org/cgi-bin/view/Sandbox/WinDoze95Crash">WinDoze95Crash</a>  </td>
5983              <td>  <a href="http://TWiki.org/cgi-bin/view/Sandbox/OsWin">OsWin</a>  </td>
5984              <td>  95  </td></tr>
5985             </table>
5986 rizwank 1.1 <p />
5987             <p />
5988             <h3><a name="Extract_some_text_from_a_topic_u"> </a> Extract some text from a topic using regular expression </h3>
5989             <p />
5990             <strong>Write this:</strong>
5991             <p />
5992             <code>%SEARCH{ "__Back to\:__ TWikiFAQ" scope="text" regex="on" nosearch="on" nototal="on" header="TWiki FAQs:" format=" &nbsp; * $pattern(.*?FAQ\:[\n\r]*([^\n\r]+).*) [[$topic][Answer...]]" }%</code>
5993             <p />
5994             <strong>To get this:</strong>
5995             <p />
5996             TWiki FAQs:
5997             <ul>
5998             <li> How do I delete or rename a topic? <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/DeleteOrRenameATopic">Answer...</a>
5999             </li>
6000             <li> How do I delete or rename a file attachment? <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/DeleteOrRenameAnAttachment">Answer...</a>
6001             </li>
6002             <li> Why does the topic revision not increase when I edit a topic? <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/EditDoesNotIncreaseTheRevision">Answer...</a>
6003             </li>
6004             <li> TWiki has a GPL (GNU General Public License). What is GPL? <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/GnuGeneralPublicLicense">Answer...</a>
6005             </li>
6006             <li> How do you log off? Suppose I log in with the guest username but later I want to use another username, how do I log  off from the guest user name? <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/HowToLogOff">Answer...</a>
6007 rizwank 1.1 </li>
6008             <li> I've problems with the WebSearch</nop>. There is no Search Result on any inquiry. By clicking the Index topic it's the same problem. <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/SearchDoesNotWork">Answer...</a>
6009             </li>
6010             <li> What happens if two of us try to edit the same topic simultaneously? <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/SimultaneousEdits">Answer...</a>
6011             </li>
6012             <li> I would like to install TWiki on my server. Can I get the source? <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/TWikiDownload">Answer...</a>
6013             </li>
6014             <li> So what is this WikiWiki thing exactly?  <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/WhatIsWikiWiki">Answer...</a>
6015             </li>
6016             <li> Everybody can edit any page, this is scary. Doesn't that lead to chaos? <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/WikiCulture">Answer...</a>
6017             </li>
6018             </ul>
6019             <p />
6020             <p />
6021             <h3><a name="Nested_Search"> </a> Nested Search </h3>
6022             <p />
6023             Search can be nested. For example, search for some topics, then form a new search for each topic found in the first search. The idea is to build the nested search string using a formatted search in the first search.
6024             <p />
6025             Here is an example. Let's search for all topics that contain the word "culture" (first search), and let's find out where each topic found is linked from (second search).
6026             <p />
6027             <ul>
6028 rizwank 1.1 <li> First search:
6029             <ul>
6030             <li> <code>%SEARCH{ "culture" format=" &nbsp; * $topic is referenced by: (list all references)" nosearch="on" nototal="on" }%</code>
6031             </li>
6032             </ul>
6033             </li>
6034             <li> Second search. For each hit we want this search:
6035             <ul>
6036             <li> <code>%SEARCH{ "(topic found in first search)" format="$topic" nosearch="on" nototal="on" separator=", " }%</code>
6037             </li>
6038             </ul>
6039             </li>
6040             <li> Now let's nest the two. We need to escape the second search, e.g. the first search will build a valid second search string. Note that we escape the second search so that it does not get evaluated prematurely by the first search:
6041             <ul>
6042             <li> Use <code>$percnt</code> to escape the leading percent of the second search
6043             </li>
6044             <li> Use <code>\"</code> to escape the double quotes
6045             </li>
6046             <li> Use <code>$dollar</code> to escape the <code>$</code> of <code>$topic</code>
6047             </li>
6048             <li> Use <code>$nop</code> to escape the <code>}%</code> sequence
6049 rizwank 1.1 </li>
6050             </ul>
6051             </li>
6052             </ul>
6053             <p />
6054             <strong>Write this:</strong>
6055             <p />
6056             <code>%SEARCH{ "culture" format=" &nbsp; * $topic is referenced by:$n&nbsp; &nbsp; &nbsp; * $percntSEARCH{ \"$topic\" format=\"$dollartopic\" nosearch=\"on\" nototal=\"on\" separator=\", \" }$nop%" nosearch="on" nototal="on" }%</code>
6057             <p />
6058             <strong>To get this:</strong>
6059             <p />
6060             <ul>
6061             <li> <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/ATasteOfTWiki">ATasteOfTWiki</a> is referenced by:
6062             <ul>
6063             <li> <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/ATasteOfTWiki">ATasteOfTWiki</a>, <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/ATasteOfTWikiTemplate">ATasteOfTWikiTemplate</a>, <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/TWikiAdminCookBook">TWikiAdminCookBook</a>, <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/WebHome">WebHome</a>, <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/WelcomeGuest">WelcomeGuest</a>
6064             </li>
6065             </ul>
6066             </li>
6067             <li> <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/FormattedSearch">FormattedSearch</a> is referenced by:
6068             <ul>
6069             <li> <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/EditTablePlugin">EditTablePlugin</a>, <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/EmptyPlugin">EmptyPlugin</a>, <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/ManagingWebs">ManagingWebs</a>, <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/RenderListPlugin">RenderListPlugin</a>, <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/SearchHelp">SearchHelp</a>, <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/SpreadSheetPlugin">SpreadSheetPlugin</a>, <a class="twikiLink" href="">TWikiDocumentation</a>, <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/TWikiForms">TWikiForms</a>, <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/TWikiFuncModule">TWikiFuncModule</a>, <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/TWikiHistory">TWikiHistory</a>, <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/TWikiMetaData">TWikiMetaData</a>, <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/TWikiSearch">TWikiSearch</a>, <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/TWikiUpgradeTo01Dec2001">TWikiUpgradeTo01Dec2001</a>, <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/TWikiUpgradeTo01Feb2003">TWikiUpgradeTo01Feb2003</a>, <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/TWikiVariablesNtoZ">TWikiVariablesNtoZ</a>, <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/TextFormattingRules">TextFormattingRules</a>, <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/WebHome">WebHome</a>, <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/WebStatistics">WebStatistics</a>, <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/WelcomeGuest">WelcomeGuest</a>
6070 rizwank 1.1 </li>
6071             </ul>
6072             </li>
6073             <li> <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/TWikiAccessControl">TWikiAccessControl</a> is referenced by:
6074             <ul>
6075             <li> <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/CommentPlugin">CommentPlugin</a>, <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/EditTablePlugin">EditTablePlugin</a>, <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/FileAttachment">FileAttachment</a>, <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/MainFeatures">MainFeatures</a>, <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/ManagingTopics">ManagingTopics</a>, <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/ManagingUsers">ManagingUsers</a>, <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/TWikiAccessControl">TWikiAccessControl</a>, <a class="twikiLink" href="">TWikiDocumentation</a>, <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/TWikiForms">TWikiForms</a>, <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/TWikiFuncModule">TWikiFuncModule</a>, <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/TWikiHistory">TWikiHistory</a>, <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/TWikiPreferences">TWikiPreferences</a>, <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/TWikiTopics">TWikiTopics</a>, <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/TWikiTutorial">TWikiTutorial</a>, <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/TWikiUpgradeTo01Dec2000">TWikiUpgradeTo01Dec2000</a>, <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/TWikiUpgradeTo01Dec2001">TWikiUpgradeTo01Dec2001</a>, <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/TWikiUserAuthentication">TWikiUserAuthentication</a>, <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/TWikiVariables">TWikiVariables</a>, <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/WebHome">WebHome</a>, <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/WebPreferences">WebPreferences</a>, <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/WelcomeGuest">WelcomeGuest</a>, <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/WikiCulture">WikiCulture</a>, <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/WikiWord">WikiWord</a>
6076             </li>
6077             </ul>
6078             </li>
6079             <li> <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/TWikiSite">TWikiSite</a> is referenced by:
6080             <ul>
6081             <li> <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/AdminTools">AdminTools</a>, <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/InstantEnhancements">InstantEnhancements</a>, <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/InterwikiPlugin">InterwikiPlugin</a>, <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/ManagingWebs">ManagingWebs</a>, <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/StartingPoints">StartingPoints</a>, <a class="twikiLink" href="">TWikiDocumentation</a>, <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/TWikiGlossary">TWikiGlossary</a>, <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/TWikiInstallationGuide">TWikiInstallationGuide</a>, <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/TWikiPreferences">TWikiPreferences</a>, <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/TWikiRegistrationPub">TWikiRegistrationPub</a>, <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/TWikiSite">TWikiSite</a>, <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/TWikiSiteTools">TWikiSiteTools</a>, <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/TWikiTopics">TWikiTopics</a>, <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/TWikiTutorial">TWikiTutorial</a>, <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/TWikiUpgradeTo01Dec2000">TWikiUpgradeTo01Dec2000</a>, <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/WabiSabi">WabiSabi</a>, <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/WebChangesAlert">WebChangesAlert</a>, <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/WebHome">WebHome</a>, <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/WebLeftBar">WebLeftBar</a>, <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/WebSiteTools">WebSiteTools</a>, <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/WelcomeGuest">WelcomeGuest</a>, <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/WhatIsWikiWiki">WhatIsWikiWiki</a>, <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/WikiCulture">WikiCulture</a>, <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/WikiReferences">WikiReferences</a>
6082             </li>
6083             </ul>
6084             </li>
6085             <li> <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/WabiSabi">WabiSabi</a> is referenced by:
6086             <ul>
6087             <li> <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/AppendixFileSystem">AppendixFileSystem</a>, <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/TWikiSite">TWikiSite</a>, <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/WabiSabi">WabiSabi</a>, <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/WikiCulture">WikiCulture</a>
6088             </li>
6089             </ul>
6090             </li>
6091 rizwank 1.1 <li> <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/WelcomeGuest">WelcomeGuest</a> is referenced by:
6092             <ul>
6093             <li> <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/ATasteOfTWiki">ATasteOfTWiki</a>, <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/NewUserTemplate">NewUserTemplate</a>, <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/StartingPoints">StartingPoints</a>, <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/TWikiSite">TWikiSite</a>, <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/TWikiUpgradeTo01Dec2000">TWikiUpgradeTo01Dec2000</a>, <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/WebHome">WebHome</a>, <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/WebLeftBar">WebLeftBar</a>, <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/WebPreferences">WebPreferences</a>, <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/WebStatistics">WebStatistics</a>, <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/WhatIsWikiWiki">WhatIsWikiWiki</a>, <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/WikiCulture">WikiCulture</a>, <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/YouAreHere">YouAreHere</a>
6094             </li>
6095             </ul>
6096             </li>
6097             <li> <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/WikiCulture">WikiCulture</a> is referenced by:
6098             <ul>
6099             <li> <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/TWikiAccessControl">TWikiAccessControl</a>, <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/TWikiSite">TWikiSite</a>, <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/WabiSabi">WabiSabi</a>, <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/WelcomeGuest">WelcomeGuest</a>
6100             </li>
6101             </ul>
6102             </li>
6103             </ul>
6104             <p />
6105             <strong><em>Note:</em></strong> Nested search can be slow, especially if you nest more then 3 times. Nesting is limited to 16 levels. For each new nesting level you need to "escape the escapes", e.g. write <code>$dollarpercntSEARCH{</code> for level three, <code>$dollardollarpercntSEARCH{</code> for level four, etc.
6106             <p />
6107             <h3><a name="Most_recently_changed_pages"> </a> Most recently changed pages </h3>
6108             <p />
6109             <strong>Write this:</strong>
6110             <p />
6111             <code>%SEARCH{ "\.*" scope="topic" regex="on" nosearch="on" nototal="on" order="modified" reverse="on"&nbsp; format="| [[$topic]] | $wikiusername&nbsp; | $date |" limit="7" }%</code>
6112 rizwank 1.1 <p />
6113             <strong>To get this:</strong>
6114             <p />
6115             <table border="1" cellspacing="0" cellpadding="1"> <tr><td>  <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/SiteMap">SiteMap</a>  </td><td>  <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/Main/PeterThoeny">PeterThoeny</a>   </td><td>  29 Oct 2004 - 15:47  </td></tr>
6116             <tr><td>  <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/WebStatistics">WebStatistics</a>  </td><td>  Main.thoeny   </td><td>  28 Oct 2004 - 22:42  </td></tr>
6117             <tr><td>  <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/SpreadSheetPlugin">SpreadSheetPlugin</a>  </td><td>  <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/Main/PeterThoeny">PeterThoeny</a>   </td><td>  24 Oct 2004 - 10:01  </td></tr>
6118             <tr><td>  <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/WebLeftBar">WebLeftBar</a>  </td><td>  <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/Main/PeterThoeny">PeterThoeny</a>   </td><td>  18 Oct 2004 - 05:15  </td></tr>
6119             <tr><td>  <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/TWikiDocGraphics">TWikiDocGraphics</a>  </td><td>  <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/Main/PeterThoeny">PeterThoeny</a>   </td><td>  13 Oct 2004 - 15:55  </td></tr>
6120             <tr><td>  <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/TWikiSearch">TWikiSearch</a>  </td><td>  <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/Main/PeterThoeny">PeterThoeny</a>   </td><td>  12 Oct 2004 - 05:23  </td></tr>
6121             <tr><td>  <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/SearchHelp">SearchHelp</a>  </td><td>  <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/Main/PeterThoeny">PeterThoeny</a>   </td><td>  12 Oct 2004 - 05:22  </td></tr>
6122             </table>
6123             <p />
6124             <h3><a name="Search_with_conditional_output"> </a> Search with conditional output </h3>
6125             <p />
6126             A regular expression search is flexible, but there are limitations. For example, you cannot show all topics that are up to exactly one week old, or create a report that shows all records with invalid form fields or fields within a certain range, etc. You need some additional logic to format output based on a condition:
6127             <ol>
6128             <li> Specify a search which returns more hits then you need
6129             </li>
6130             <li> For each search hit apply a spreadsheet formula to determine if the hit is needed
6131             </li>
6132             <li> If needed, format and output the result
6133 rizwank 1.1 </li>
6134             <li> Else supress the search hit
6135             </li>
6136             </ol>
6137             <p />
6138             This requires the <a href="http://twiki.org/cgi-bin/view/Plugins.SpreadSheetPlugin" title="'Plugins.SpreadSheetPlugin' on TWiki.org">TWiki:Plugins.SpreadSheetPlugin</a>. The following example shows all topics that are up to exactly one week old.
6139             <p />
6140             <strong>Write this:</strong>
6141             <p />
6142             <code>%CALC{$SET(weekold, $TIMEADD($TIME(), -7, day))}%</code> <br />
6143             <code>%SEARCH{ "." scope="topic" regex="on" nosearch="on" nototal="on" order="modified" reverse="on" format="$percntCALC{$IF($TIME($date) &lt; $GET(weekold), &lt;nop&gt;, | [[$topic]] | $wikiusername | $date | $rev |)}$percnt" limit="100" }%</code>
6144             <p />
6145             <ul>
6146             <li> The first line sets the <code>weekold</code> variable to the serialized date of exactly one week ago
6147             </li>
6148             <li> The SEARCH has a deferred CALC. The <code>$percnt</code> makes sure that the CALC gets executed once for each search hit
6149             </li>
6150             <li> The CALC compares the date of the topic with the <code>weekold</code> date
6151             </li>
6152             <li> If topic is older, a <code>&lt;nop&gt;</code> is returned, which gets removed at the end of the TWiki rendering process
6153             </li>
6154 rizwank 1.1 <li> Otherwise, the search hit is formatted and returned
6155             </li>
6156             </ul>
6157             <p />
6158             <strong>To get this:</strong>
6159             <p />
6160             <p />
6161             <table border="1" cellspacing="0" cellpadding="1"> <tr><td>  <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/SiteMap">SiteMap</a>  </td><td>  <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/Main/PeterThoeny">PeterThoeny</a>  </td><td>  29 Oct 2004 - 15:47  </td><td>  1.9  </td></tr>
6162             <tr><td>  <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/WebStatistics">WebStatistics</a>  </td><td>  Main.thoeny  </td><td>  28 Oct 2004 - 22:42  </td><td>  1.26  </td></tr>
6163             <tr><td>  <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/SpreadSheetPlugin">SpreadSheetPlugin</a>  </td><td>  <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/Main/PeterThoeny">PeterThoeny</a>  </td><td>  24 Oct 2004 - 10:01  </td><td>  1.13  </td></tr>
6164             </table>
6165             <p />
6166             <h3><a name="Embedding_search_forms_to_return"> </a> Embedding search forms to return a formatted result </h3>
6167             <p />
6168             Use an HTML form and an embedded formatted search on the same topic. You can link them together with an <code>%URLPARAM{"..."}%</code> variable. Example:
6169             <p />
6170             <strong>Write this:</strong>
6171             <p />
6172             <pre>
6173             &lt;form action="%SCRIPTURLPATH%/view%SCRIPTSUFFIX%/%WEB%/%TOPIC%"&gt;
6174             Find Topics: 
6175 rizwank 1.1 &lt;input type="text" name="q" size="32" value="%URLPARAM{"q"}%" /&gt;
6176             &lt;input type="submit" value="Search" /&gt;
6177             &lt;/form&gt;
6178             Result:
6179             %SEARCH{ search="%URLPARAM{"q"}%" format="   * $web.$topic: %BR% $summary" nosearch="on" }%
6180             </pre>
6181             <p />
6182             <strong>To get this:</strong>
6183             <p />
6184             <form action="http://TWiki.org/cgi-bin/view/TWiki/FormattedSearch">
6185             Find Topics: 
6186             <input type="text" name="q" size="32" value="" />
6187             <input type="submit" value="Search" />
6188             </form>
6189             Result:
6190             Number of topics: <b>0</b>
6191             <p />
6192             -- <a href="http://twiki.org/cgi-bin/view/Main.PeterThoeny" title="'Main.PeterThoeny' on TWiki.org">TWiki:Main.PeterThoeny</a> - 26 Jul 2004
6193             <p />
6194             <p />
6195             <hr />
6196 rizwank 1.1 <p />
6197             <a name="MetaDataDefinition"></a>
6198             <h1><a name="TWiki_Meta_Data"> </a> TWiki Meta Data </h1>
6199             <p />
6200             <em>Additional topic data, program-generated or from <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/TWikiForms">TWikiForms</a>, is stored in <code>META</code> variable name/value pairs</em>
6201             <p />
6202             <h2><a name="Overview"> </a> Overview </h2>
6203             <p />
6204             <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/TWikiMetaData">TWikiMetaData</a> uses <code>META</code> variables to store topic data that's separate from the main free-form content. This includes program-generated info like <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/FileAttachment">FileAttachment</a> and topic movement data, and user-defined <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/TWikiForms">TWikiForms</a> info. Use <code>META</code> variables to format and display Meta Data.  
6205             <p />
6206             <h2><a name="Meta_Data_Syntax"> </a> Meta Data Syntax </h2>
6207             <p />
6208             <ul>
6209             <li> Format is the same as in <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/TWikiVariables">TWikiVariables</a>, except all fields have a key.
6210             <ul>
6211             <li> <code>%META:&lt;type&gt;{key1="value1" key2="value2" ...}%</code>
6212             </li>
6213             </ul>
6214             </li>
6215             </ul>
6216             <p />
6217 rizwank 1.1 <ul>
6218             <li> Order of fields within the meta variables is not defined, except that if there is a field with key <code>name</code>, this appears first for easier searching (note the order of the variables themselves is defined).
6219             </li>
6220             </ul>
6221             <p />
6222             <ul>
6223             <li> Each meta variable is on one line.
6224             </li>
6225             </ul>
6226             <p />
6227             <ul>
6228             <li> <code>\n</code> (new line) is represented in values by <code>%_N_</code> and <code>"</code> (double-quotes) by <code>%_Q_%</code>.
6229             </li>
6230             </ul>
6231             <p />
6232             <blockquote style="background-color:#f0f0f0">
6233             <strong>Example of Format</strong>
6234             <pre>
6235             %META:TOPICINFO{version="1.6" date="976762663" author="PeterThoeny" format="1.0"}%
6236                text of the topic
6237             %META:TOPICMOVED{from="Codev.OldName" to="Codev.NewName"
6238 rizwank 1.1    by="JohnTalintyre" date="976762680"}%
6239             %META:TOPICPARENT{name="NavigationByTopicContext"}%
6240             %META:FILEATTACHMENT{name="Sample.txt" version="1.3" ... }%
6241             %META:FILEATTACHMENT{name="Smile.gif" version="1.1" ... }%
6242             %META:FORM{name="WebFormTemplate"}%
6243             %META:FIELD{name="OperatingSystem" value="OsWin"}%
6244             %META:FIELD{name="TopicClassification" value="PublicFAQ"}%
6245             </pre>
6246             </blockquote>
6247             <p />
6248             <h2><a name="Meta_Data_Specifications"> </a> Meta Data Specifications </h2>
6249             <p />
6250             The current version of Meta Data is 1.0, with support for the following variables.
6251             <p />
6252             <h3><a name="META_TOPICINFO"> </a> META:TOPICINFO </h3>
6253             <p />
6254             <table border="1" cellspacing="0" cellpadding="1"> <tr><th align="center" bgcolor="#99CCCC"> <strong>Key</strong> </th><th align="center" bgcolor="#99CCCC"> <strong>Comment</strong> </th></tr>
6255             <tr><td>  version  </td><td>  Same as RCS version  </td></tr>
6256             <tr><td>  date     </td><td>  integer, unix time, seconds since start 1970  </td></tr>
6257             <tr><td>  author   </td><td>  last to change topic, is the REMOTE_USER  </td></tr>
6258             <tr><td>  format   </td><td>  Format of this topic, will be used for automatic format conversion  </td></tr>
6259 rizwank 1.1 </table>
6260             <p />
6261             <h3><a name="META_TOPICMOVED"> </a> META:TOPICMOVED </h3>
6262             <p />
6263             This is optional, exists if topic has ever been moved.  If a topic is moved more than once, only the most recent META:TOPICMOVED meta variable exists in the topic, older ones are to be found in the rcs history.
6264             <p />
6265             <code>%META:TOPICMOVED{from="Codev.OldName" to="Codev.NewName" by="talintj" date="976762680"}%</code>
6266             <p />
6267             <table border="1" cellspacing="0" cellpadding="1"> <tr><th align="center" bgcolor="#99CCCC"> <strong>Key</strong> </th><th align="center" bgcolor="#99CCCC"> <strong>Comment</strong> </th></tr>
6268             <tr><td>  from  </td><td>  Full name, i.e., web.topic  </td></tr>
6269             <tr><td>  to    </td><td>  Full name, i.e., web.topic  </td></tr>
6270             <tr><td>  by    </td><td>  Who did it, is the REMOTE_USER, not WikiName  </td></tr>
6271             <tr><td>  date  </td><td>  integer, unix time, seconds since start 1970  </td></tr>
6272             </table>
6273             <p />
6274             Notes: 
6275             <ul>
6276             <li> at present version number is not supported directly, it can be inferred from the RCS history.
6277             </li>
6278             <li> there is only one META:TOPICMOVED in a topic, older move information can be found in the RCS history.
6279             </li>
6280 rizwank 1.1 </ul>
6281             <p />
6282             <h3><a name="META_TOPICPARENT"> </a> META:TOPICPARENT </h3>
6283             <p />
6284             <table border="1" cellspacing="0" cellpadding="1"> <tr><th bgcolor="#99CCCC"> <strong>Key</strong> </th><th bgcolor="#99CCCC"> <strong>Comment</strong> </th></tr>
6285             <tr><td>  name     </td><td>  The topic from which this was created, <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/WebHome">WebHome</a> if done from <code>Go</code>, othewise topic where <code>?</code> or form used.  Normally just topic, but is full web.topic format if parent is in a different Web.  Renaming a Web will then only break a few of these references or they can be scanned and fixed.  </td></tr>
6286             </table>
6287             <p />
6288             <h3><a name="META_FILEATTACHMENT"> </a> META:FILEATTACHMENT </h3>
6289             <p />
6290             <table border="1" cellspacing="0" cellpadding="1"> <tr><th bgcolor="#99CCCC"> <strong>Key</strong> </th><th bgcolor="#99CCCC"> <strong>Comment</strong> </th></tr>
6291             <tr><td>  name     </td><td>  Name of file, no path.  Must be unique within topic  </td></tr>
6292             <tr><td>  version  </td><td>  Same as RCS revision   </td></tr>
6293             <tr><td>  path     </td><td>  Full path file was loaded from  </td></tr>
6294             <tr><td>  size     </td><td>  In bytes  </td></tr>
6295             <tr><td>  date     </td><td>  integer, unix time, seconds since start 1970  </td></tr>
6296             <tr><td>  user     </td><td>  the REMOTE_USER, not WikiName  </td></tr>
6297             <tr><td>  comment  </td><td>  As supplied when file uploaded  </td></tr>
6298             <tr><td>  attr     </td><td>  <code>h</code> if hidden, optional  </td></tr>
6299             </table>
6300             <p />
6301 rizwank 1.1 Extra fields that are added if an attachment is moved:
6302             <p />
6303             <table border="1" cellspacing="0" cellpadding="1"> <tr><th bgcolor="#99CCCC"> <strong>Key</strong> </th><th bgcolor="#99CCCC"> <strong>Comment</strong> </th></tr>
6304             <tr><td>  movedfrom  </td><td>  full topic name - web.topic  </td></tr>
6305             <tr><td>  movedby    </td><td>  the REMOTE_USER, not WikiName  </td></tr>
6306             <tr><td>  movedto    </td><td>  full topic name - web.topic  </td></tr>
6307             <tr><td>  moveddate  </td><td>  integer, unix time, seconds since start 1970  </td></tr>
6308             </table>
6309             <p />
6310             <h3><a name="META_FORM"> </a> META:FORM </h3>
6311             <p />
6312             <table border="1" cellspacing="0" cellpadding="1"> <tr><th bgcolor="#99CCCC"> <strong>Key</strong> </th><th bgcolor="#99CCCC"> <strong>Comment</strong> </th></tr>
6313             <tr><td>  name     </td><td>  A topic name - the topic represents one of the <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/TWikiForms">TWikiForms</a>.  Can optionally include the web name (i.e., web.topic), but doesn't normally  </td></tr>
6314             </table>
6315             <p />
6316             <h3><a name="META_FIELD"> </a> META:FIELD </h3>
6317             <p />
6318             Should only be present if there is a META:FORM entry.  Note that this data is used when viewing a topic, the form template definition is not read.
6319             <p />
6320             <table border="1" cellspacing="0" cellpadding="1"> <tr><th bgcolor="#99CCCC"> <strong>Key</strong> </th><th bgcolor="#99CCCC"> <strong>Name</strong> </th></tr>
6321             <tr><td>  name     </td><td>  Ties to entry in <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/TWikiForms">TWikiForms</a> template, is title with all bar alphanumerics and . removed  </td></tr>
6322 rizwank 1.1 <tr><td>  title    </td><td>  Full text from <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/TWikiForms">TWikiForms</a> template  </td></tr>
6323             <tr><td>  value    </td><td>  Value user has supplied via form  </td></tr>
6324             </table>
6325             <p />
6326             <h3><a name="Recommended_Sequence"> </a> Recommended Sequence </h3>
6327             <p />
6328             There is no absolute need for Meta Data variables to be listed in a specific order within a topic, but it makes sense to do so a couple of good reasons:
6329             <p />
6330             <ul>
6331             <li> form fields remain in the order they are defined
6332             </li>
6333             <li> the <code>diff</code> function output appears in a logical order
6334             </li>
6335             </ul>
6336             <p />
6337             The recommended sequence is:
6338             <p />
6339             <ul>
6340             <li> <code>META:TOPICINFO</code>
6341             </li>
6342             <li> <code>META:TOPICPARENT</code> (optional)
6343 rizwank 1.1 </li>
6344             <li> text of topic
6345             </li>
6346             <li> <code>META:TOPICMOVED</code> (optional)
6347             </li>
6348             <li> <code>META:FILEATTACHMENT</code> (0 or more entries)
6349             </li>
6350             <li> <code>META:FORM</code> (optional)
6351             </li>
6352             <li> <code>META:FIELD</code> (0 or more entries; FORM required)
6353             </li>
6354             </ul>
6355             <p />
6356             <h2><a name="Viewing_Meta_Data_in_Page_Source"> </a> Viewing Meta Data in Page Source </h2>
6357             <p />
6358             When viewing a topic the <code><b>Raw Text</b></code> link can be clicked to show the text of a topic (i.e., as seen when editing).  This is done by adding <code>raw=on</code> to URL.  <code>raw=debug</code> shows the meta data as well as the topic data, ex: <a href="http://TWiki.org/cgi-bin/view/TWiki/TWikiMetaData?raw=debug">debug view for this topic</a>
6359             <p />
6360             <a name="MetaDataRendering"></a>
6361             <h2><a name="Rendering_Meta_Data"> </a> Rendering Meta Data </h2>
6362             <p />
6363             Meta Data is rendered with the %META% variable. This is mostly used in the <code>view</code>, <code>preview</code> and <code>edit</code> scripts.
6364 rizwank 1.1 <p />
6365             <strong><em>Note:</em></strong> Rendering meta data is currently not supported in topic text. As a workaround, use <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/FormattedSearch">FormattedSearch</a> on the current topic only to render form fields.
6366             <p />
6367             Current support covers:
6368             <p />
6369             <table border="1" cellspacing="0" cellpadding="1"> <tr><th bgcolor="#99CCCC"> <strong>Variable usage:</strong> </th><th bgcolor="#99CCCC"> <strong>Comment:</strong> </th></tr>
6370             <tr><td>  <code>%META{"form"}%</code>  </td><td>  Show form data, see <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/TWikiForms">TWikiForms</a>.  </td></tr>
6371             <tr><td>  <code>%META{"formfield"}%</code>  </td><td>  Show form field value. Parameter: <code><b>name="field_name"</b></code>. Example:<br /> <code>%META{ "formfield" name="TopicClassification" }%</code>  </td></tr>
6372             <tr><td>  <code>%META{"attachments"}%</code>  </td><td>  Show attachments, except for hidden ones. Options: <br >     <code><b>all="on"</b></code>: Show all attachments, including hidden ones.  </td></tr>
6373             <tr><td>  <code>%META{"moved"}%</code>  </td><td>  Details of any topic moves.  </td></tr>
6374             <tr><td>  <code>%META{"parent"}%</code>  </td><td>  Show topic parent. Options: <br />     <code><b>dontrecurse="on"</b></code>: By default recurses up tree, at some cost. <br />     <code><b>nowebhome="on"</b></code>: Suppress WebHome. <br />     <code><b>prefix="..."</b></code>: Prefix for parents, only if there are parents, default <code>""</code>. <br />     <code><b>suffix="..."</b></code>: Suffix, only appears if there are parents, default <code>""</code>. <br />     <code><b>separator="..."</b></code>: Separator between parents, default is <code>" &gt; "</code>.  </td></tr>
6375             </table>
6376             <p />
6377             <h2><a name="Known_Issues"> </a> Known Issues </h2>
6378             <p />
6379             At present, there is no Meta Data support for Plugins. However, the format is readily extendable and the <code>Meta.pm</code> code that supports the format needs only minor alteration.
6380             <p />
6381             -- <a href="http://twiki.org/cgi-bin/view/Main.JohnTalintyre" title="'Main.JohnTalintyre' on TWiki.org">TWiki:Main.JohnTalintyre</a> - 29 Aug 2001 <br />
6382             -- <a href="http://twiki.org/cgi-bin/view/Main.MikeMannix" title="'Main.MikeMannix' on TWiki.org">TWiki:Main.MikeMannix</a> - 03 Dec 2001 <br />
6383             -- <a href="http://twiki.org/cgi-bin/view/Main.PeterThoeny" title="'Main.PeterThoeny' on TWiki.org">TWiki:Main.PeterThoeny</a> - 15 Aug 2004
6384             <p />
6385 rizwank 1.1 <p />
6386             <hr />
6387             <p />
6388             <h1><a name="TWiki_Plugins"> </a> TWiki Plugins </h1>
6389             <p />
6390             <em>Plug-in enhanced feature add-ons, with a Plugin API for developers</em>
6391             <p />
6392             <h2><a name="Overview"> </a> Overview </h2>
6393             <p />
6394             You can add Plugins to extend TWiki's functionality, without altering the core program code. A plug-in approach lets you:
6395             <p />
6396             <ul>
6397             <li> add virtually unlimited features while keeping the main TWiki code compact and efficient;
6398             </li>
6399             <li> heavily customize an installation and still do clean updates to new versions of TWiki;
6400             </li>
6401             <li> rapidly develop new TWiki functions in Perl using the Plugin API.
6402             </li>
6403             </ul>
6404             <p />
6405             Everything to do with TWiki Plugins - demos, new releases, downloads, development, general discussion - is available at TWiki.org, in the <b> <a href="http://twiki.org/cgi-bin/view/Plugins" title="'Plugins' on TWiki.org">TWiki:Plugins</a> </b> web.
6406 rizwank 1.1 <p />
6407             <h2><a name="Preinstalled_Plugins"> </a> Preinstalled Plugins </h2>
6408             <p />
6409             TWiki comes with a set of Plugins as part of the standard installation.
6410             <p />
6411             <ul>
6412             <li> <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/DefaultPlugin">DefaultPlugin</a>: Optionally handles some legacy variables from older versions of TWiki. You can control this option from <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/TWikiPreferences">TWikiPreferences</a>. (Perl programmers can also <a class="twikiAnchorLink" href="#DefaultPluginAlt">add rules</a> for simple custom processing.)
6413             </li>
6414             <li> <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/EmptyPlugin">EmptyPlugin</a>: Is a fully functional module, minus active code; it does nothing and serves as a template for new Plugin development
6415             </li>
6416             <li> <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/CommentPlugin">CommentPlugin</a>: Allows users to quickly post comments to a page without an edit/preview/save cycle.
6417             </li>
6418             <li> <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/InterwikiPlugin">InterwikiPlugin</a>: Use it for shorthand linking to remote sites, ex: <code>TWiki:Plugins</code> expands to <a href="http://twiki.org/cgi-bin/view/Plugins" title="'Plugins' on TWiki.org">TWiki:Plugins</a> on TWiki.org. You can edit the predefined set of of Wiki-related sites, and add your own
6419             </li>
6420             <li> <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/EditTablePlugin">EditTablePlugin</a>: Edit TWiki tables using edit fields, date pickers and drop down boxes
6421             </li>
6422             <li> <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/RenderListPlugin">RenderListPlugin</a>: Render bullet lists in a variety of formats
6423             </li>
6424             <li> <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/SlideShowPlugin">SlideShowPlugin</a>: Create web based presentations based on topics with headings.
6425             </li>
6426             <li> <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/SmiliesPlugin">SmiliesPlugin</a>: Render smilies as icons, like <code>&nbsp;:-)</code> for <img src="./pub/TWiki/SmiliesPlugin/smile.gif" alt="smile" title="smile" border="0" /> or <code>&nbsp;:cool:</code> for <img src="./pub/TWiki/SmiliesPlugin/cool.gif" alt="cool!" title="cool!" border="0" />
6427 rizwank 1.1 </li>
6428             <li> <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/SpreadSheetPlugin">SpreadSheetPlugin</a>: Add spreadsheet calculation like <code>"$SUM( $ABOVE() )"</code> to tables located in TWiki topics.
6429             </li>
6430             <li> <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/TablePlugin">TablePlugin</a>: Control attributes of tables and sorting of table columns
6431             </li>
6432             </ul>
6433             <p />
6434             <a name="InstallPlugin"></a>
6435             <h2><a name="Installing_Plugins"> </a> Installing Plugins </h2>
6436             <p />
6437             Each TWikiPlugin comes with full documentation: step-by-step installation instructions, a detailed description of any special requirements, version details, and a working example for testing. 
6438             <p />
6439             Most Plugins can be installed in three easy steps, with no programming skills required:
6440             <ol>
6441             <li> <strong>Download</strong> the zip file containing the Plugin, documentation, and any other required files, from <a href="http://twiki.org/cgi-bin/view/Plugins" title="'Plugins' on TWiki.org">TWiki:Plugins</a>. 
6442             </li>
6443             <li> <strong>Distribute</strong> the files to their proper locations - unzip the zip archive in your TWiki installation directory - if have a standard TWiki installation, this will distribute automatically. Otherwise, place the files according to the directory paths listed on the Plugin top in <a href="http://twiki.org/cgi-bin/view/Plugins" title="'Plugins' on TWiki.org">TWiki:Plugins</a>.
6444             </li>
6445             <li> <strong>Check</strong> the demo example on the Plugin topic: if it's working, the installation was fine!
6446             </li>
6447             </ol>
6448 rizwank 1.1 <p />
6449             <strong>Special Requests:</strong> Some Plugins need certain Perl modules to be preinstalled on the host system. Plugins may also use other resources, like graphics, other modules, applications, templates. In these cases, detailed instructions are in the Plugin documentation.
6450             <p />
6451             Each Plugin has a standard release page, located in the <a href="http://twiki.org/cgi-bin/view/Plugins" title="'Plugins' on TWiki.org">TWiki:Plugins</a> web at TWiki.org. In addition to the documentation topic (<code>SomePlugin</code>), there's a separate development page.
6452             <ul>
6453             <li> <strong>Doc page:</strong> Read all available info about the Plugin; download the attached distribution files.
6454             </li>
6455             <li> <strong>Dev page:</strong> Post feature requests, bug reports and general dev comments; topic title ends in <code>Dev</code> (<code>SomePluginDev</code>).
6456             </li>
6457             <li> <strong>User support:</strong> Post installation, how to use type questions (and answers, if you have them) in the <a href="http://twiki.org/cgi-bin/view/Support" title="'Support' on TWiki.org">TWiki:Support</a> web.
6458             </li>
6459             </ul>
6460             <p />
6461             <a name="PreTesting"></a>
6462             <h3><a name="On_Site_Pretesting"> </a> On-Site Pretesting </h3>
6463             <p />
6464             To test new Plugins on your installation before making them public, you may want to use one of these two approaches:
6465             <p />
6466             <ul>
6467             <li> <strong>Method 1:</strong> Safely test on-the-fly by creating separate Production and Test branches in your live TWiki installation. 
6468             <ul>
6469 rizwank 1.1 <li> <strong>Duplicate</strong> the <code>twiki/bin</code> and <code>twiki/lib</code> directories for the Test version, and adjust the paths in the new <code>lib/TWiki.cfg</code>.  The following directories are shared: <code>twiki/data</code>, <code>twiki/templates</code> and <code>twiki/pub</code>.
6470             </li>
6471             <li> <strong>Test</strong> Plugins and other new features in the Test installation until you're satisfied.
6472             <ul>
6473             <li> <img src="./pub/TWiki/TWikiDocGraphics/warning.gif" border="0" alt="ALERT!" width="16" height="16" /> If you modify topics using the new features, live users will likely see unfamiliar new META tags showing up on their pages - to avoid this, create and edit test-only topics to try out new features.
6474             </li>
6475             </ul>
6476             </li>
6477             <li> <strong>Copy</strong> the modified files to the Production installation. You can update a TWiki installation live and users won't even notice.
6478             </li>
6479             </ul>
6480             </li>
6481             </ul>
6482             <p />
6483             <ul>
6484             <li> <strong>Method 2:</strong> List the Plugin being tested in the <code>DISABLEDPLUGINS</code> variable in <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/TWikiPreferences">TWikiPreferences</a>. Redefine the <code>DISABLEDPLUGINS</code> variable in the <code>Sandbox</code> web and do the testing there.
6485             </li>
6486             </ul>
6487             <p />
6488             <h3><a name="Checking_that_Plugins_are_Workin"> </a> Checking that Plugins are Working on a Live Server </h3>
6489             <p />
6490 rizwank 1.1 <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/InstalledPlugins">InstalledPlugins</a> shows which Plugins are: 1) installed, 2) loading properly and 3) what <a href="http://twiki.org/cgi-bin/view/Codev.PluginHandlers" title="'Codev.PluginHandlers' on TWiki.org">TWiki:Codev.PluginHandlers</a> they invoke. Any failures are shown in the Errors section.
6491             <p />
6492             <h3><a name="A_Note_on_Plugin_Performance"> </a> A Note on Plugin Performance </h3>
6493             <p />
6494             The performance of the system depends on the number of Plugins installed and on the Plugin implementation. Some Plugins impose no measurable performance decrease, some do. For example, <code>outsidePREHandler</code> is an expensive callback function, or a Plugin might use many Perl libraries that need to be initialized with each page view (unless you run mod_perl). It is recommended to measure the performance with and without a new Plugin. Example for Unix:<br /> <code>time wget -qO /dev/null http://TWiki.org/cgi-bin/view/TWiki/AbcPlugin</code>
6495             <p />
6496             In case you need to install an "expensive" Plugin and you need its functionality only in one web you can place the Plugin topic into that web. TWiki will initialize the Plugin only if the Plugin topic is found (which won't be the case for other webs.)
6497             <p />
6498             <h2><a name="Managing_Plugins"> </a> Managing Plugins </h2>
6499             <p />
6500             When you finish <a class="twikiAnchorLink" href="#InstallPlugin">installing a Plugin</a>, you should be able to read the user instructions and go. In fact, some Plugins require additional settings or offer extra options that you have to select. Also, you may want to make a Plugin available only in certain webs, or temporarily disable it. And may want to list all available Plugins in certain topics. You can handle all of these management tasks with simple procedures.
6501             <p />
6502             <h3><a name="Setting_Preferences"> </a> Setting Preferences </h3>
6503             <p />
6504             Installed Plugins can be <strong>toggled on or off</strong>, site-wide or by web, through TWikiPreferences and individual WebPreferences:
6505             <p />
6506             <ul>
6507             <li> All Plugin modules present in the <code>lib/TWiki/Plugins</code> directory are activated automatically unless disabled by the <code>DISABLEDPLUGINS</code> Preferences variable in TWikiPreferences. You can optionally list the installed Plugins in the <code>INSTALLEDPLUGINS</code> Preferences variable. This is useful to define the sequence of Plugin execution, or to specify other webs than the TWiki web for the Plugin topics. Settings in <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/TWikiPreferences">TWikiPreferences</a> are:
6508             <ul>
6509             <li> <code>Set INSTALLEDPLUGINS = DefaultPlugin, ...</code> 
6510             </li>
6511 rizwank 1.1 <li> <code>Set DISABLEDPLUGINS = EmptyPlugin, ...</code>
6512             </li>
6513             </ul>
6514             </li>
6515             </ul>
6516             <p />
6517             <strong>Plugin execution order</strong> in TWiki is determined by searching Plugin topics in a specific sequence: First, full <code>web.topicname</code> name, if specified in <code>INSTALLEDPLUGINS</code>; next, the TWiki web is searched; and finally, the current web.
6518             <p />
6519             <strong>Plugin-specific settings</strong> are done in individual Plugin topics. Two settings are standard for each Plugin:
6520             <ol>
6521             <li> One line description, used to form the bullets describing the Plugins in the <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/TextFormattingRules">TextFormattingRules</a> topic:
6522             <ul>
6523             <li> <code>Set SHORTDESCRIPTION = Blah blah woof woof.</code>
6524             </li>
6525             </ul>
6526             </li>
6527             <li> Debug Plugin, output can be seen in <code>data/debug.txt</code>. Set to 0=off or 1=on:
6528             <ul>
6529             <li> <code>Set DEBUG = 0</code>
6530             </li>
6531             </ul>
6532 rizwank 1.1 </li>
6533             </ol>
6534             <ul>
6535             <li> The settings can be retrieved as Preferences variables like <code>%&lt;pluginname&gt;_&lt;var&gt;%</code>, ex: <code>%DEFAULTPLUGIN_SHORTDESCRIPTION%</code> shows the description of the DefaultPlugin.
6536             </li>
6537             </ul>
6538             <p />
6539             <h3><a name="Listing_Active_Plugins"> </a> Listing Active Plugins </h3>
6540             <p />
6541             Plugin status variables let you list all active Plugins wherever needed. There are two list formats:
6542             <ul>
6543             <li> The <code>%ACTIVATEDPLUGINS%</code> variable lists activated Plugins by name. (This variable is displayed in <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/TWikiPreferences">TWikiPreferences</a> for debugging use.)
6544             </li>
6545             <li> The <code>%PLUGINDESCRIPTIONS%</code> variable displays a bullet list with a one-line description of each active Plugins. This variable is based on the <code>%&lt;plugin&gt;_SHORTDESCRIPTION%</code> Preferences variables of individual topics and is shown in <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/TextFormattingRules">TextFormattingRules</a>.
6546             </li>
6547             </ul>
6548             <p />
6549             <blockquote style="background-color:#f5f5f5">
6550             <strong>DEMO: Automatically List Active Plugins Using Variables</strong>
6551             <p />
6552             Using <code>%ACTIVATEDPLUGINS%</code>:<br />
6553 rizwank 1.1 On this TWiki site, the active Plugins are: <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/DefaultPlugin">DefaultPlugin</a>, <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/SpreadSheetPlugin">SpreadSheetPlugin</a>, <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/CommentPlugin">CommentPlugin</a>, <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/InterwikiPlugin">InterwikiPlugin</a>, <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/RenderListPlugin">RenderListPlugin</a>, <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/SlideShowPlugin">SlideShowPlugin</a>, <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/SmiliesPlugin">SmiliesPlugin</a>.
6554             <p />
6555             Using <code>%<no>PLUGINDESCRIPTIONS%</code>:<br />
6556             You can use any of these active TWiki Plugins:
6557             <ul>
6558             <li> <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/DefaultPlugin">DefaultPlugin</a>: This plugin can be used to specify some simple custom rendering rules. It also renders depreciated <code><b>*_text_*</b></code> as <strong><em>bold italic</em></strong> text.
6559             </li>
6560             <li> <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/SpreadSheetPlugin">SpreadSheetPlugin</a>: Add spreadsheet calculation like <code>"$SUM( $ABOVE() )"</code> to tables located in TWiki topics.
6561             </li>
6562             <li> <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/CommentPlugin">CommentPlugin</a>: Allows users to quickly post comments to a page without an edit/preview/save cycle.
6563             </li>
6564             <li> <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/InterwikiPlugin">InterwikiPlugin</a>: Link <code><b>ExternalSite:Page</b></code> text to external sites based on aliases defined in the <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/InterWikis">InterWikis</a> topic
6565             </li>
6566             <li> <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/RenderListPlugin">RenderListPlugin</a>: Render bullet lists in a variety of formats
6567             </li>
6568             <li> <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/SlideShowPlugin">SlideShowPlugin</a>: Create web based presentations based on topics with headings.
6569             </li>
6570             <li> <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/SmiliesPlugin">SmiliesPlugin</a>: Render smilies as icons, like <code>&nbsp;:-)</code> for <img src="./pub/TWiki/SmiliesPlugin/smile.gif" alt="smile" title="smile" border="0" /> or <code>&nbsp;:cool:</code> for <img src="./pub/TWiki/SmiliesPlugin/cool.gif" alt="cool!" title="cool!" border="0" />
6571             </li>
6572             </ul>
6573             <p />
6574 rizwank 1.1 </blockquote>
6575             <p />
6576             <a name="PluginAPI"></a>
6577             <h2><a name="The_TWiki_Plugin_API"> </a> The TWiki Plugin API </h2>
6578             <p />
6579             The Application Programming Interface (API) for TWikiPlugins provides the specifications for hooking into the core TWiki code from your external Perl Plugin module. The Plugin API is new to the Production version of TWiki with the 01-Sep-2001 release.
6580             <p />
6581             <h3><a name="Available_Core_Functions"> </a> Available Core Functions </h3>
6582             <p />
6583             The <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/TWikiFuncModule">TWikiFuncModule</a> (<code>lib/TWiki/Func.pm</code>) implements ALL official Plugin functions. Plugins should ONLY use functions published in this module.
6584             <p />
6585             <img src="./pub/TWiki/TWikiDocGraphics/warning.gif" border="0" alt="ALERT!" width="16" height="16" /> If you use functions not in <code>Func.pm</code>, you run the risk of creating security holes. Also, your Plugin will likely break and require updating when you upgrade to a new version of TWiki.
6586             <p />
6587             <h3><a name="Predefined_Hooks"> </a> Predefined Hooks </h3>
6588             <p />
6589             In addition to TWiki core functions, Plugins can use <strong>predefined hooks</strong>, or <strong>call backs</strong>, listed in the <code>lib/TWiki/Plugins/EmptyPlugin.pm</code> module.
6590             <p />
6591             <ul>
6592             <li> All but the initPlugin are disabled. To enable a call back, remove <code>DISABLE_</code> from the function name.
6593             </li>
6594             <li> For best performance, enable only the functions you really need. NOTE: <code>outsidePREHandler</code> and <code>insidePREHandler</code> are particularly expensive. 
6595 rizwank 1.1 </li>
6596             </ul>
6597             <p />
6598             Most Plugins use either the <code>commonTagsHandler</code> or <code>startRenderingHandler</code> for rendering tasks:
6599             <ul>
6600             <li> <code>commonTagsHandler:</code> Use it to expand <code>%XYZPLUGIN%</code> and <code>%XYZPLUGIN{...}%</code> variables
6601             </li>
6602             <li> <code>startRenderingHandler:</code> Use it for your own rendering rules or to overload TWiki's internal rendering like <code>[[links]]</code>
6603             </li>
6604             </ul>
6605             <p />
6606             <a href="http://twiki.org/cgi-bin/view/Codev/StepByStepRenderingOrder" title="'Codev/StepByStepRenderingOrder' on TWiki.org">TWiki:Codev/StepByStepRenderingOrder</a> helps you decide which rendering handler to use.
6607             <p />
6608             <h3><a name="Hints_on_Writing_Fast_Plugins"> </a> Hints on Writing Fast Plugins </h3>
6609             <p />
6610             <ul>
6611             <li> Delay the Plugin initialization to the actual function which is handling the tag. This way all the expensive initialization is done only when needed.
6612             </li>
6613             <li> For example, use an <code>eval</code> block like:<br />
6614                  <code>eval { require IPC::Run }</code> <br />
6615                  <code>return "&lt;font color=\"red\"&gt;SamplePlugin: Can't load required modules ($@)&lt;/font&gt;" if $@;</code>
6616 rizwank 1.1 </li>
6617             <li> You could return errors as strings to show what happened
6618             </li>
6619             <li> You can use a flag to avoid running the initialization twice
6620             </li>
6621             </ul>
6622             <p />
6623             <h3><a name="Plugin_Version_Detection"> </a> Plugin Version Detection </h3>
6624             <p />
6625             To eliminate the incompatibility problems bound to arise from active open Plugin development, a Plugin versioning system is provided for automatic compatibility checking.
6626             <p />
6627             <ul>
6628             <li> All modules require a <code>$VERSION='0.000'</code> variable, beginning at <code>1.000</code>.
6629             </li>
6630             </ul>
6631             <p />
6632             <ul>
6633             <li> The <code>initPlugin</code> handler should check all dependencies and return TRUE if the initialization is OK or FALSE if something went wrong.
6634             <ul>
6635             <li> The Plugin initialization code does not register a Plugin that returns FALSE (or that has no <code>initPlugin</code> handler).
6636             </li>
6637 rizwank 1.1 </ul>
6638             </li>
6639             </ul>
6640             <p />
6641             <ul>
6642             <li> <code>$TWiki::Plugins::VERSION</code> in the <code>TWiki::Plugins</code> module contains the TWiki Plugin API version, currently <strong>1.025</strong>.
6643             <ul>
6644             <li> You can also use the <a class="twikiAnchorLink" href="http://TWiki.org/cgi-bin/view/TWiki/TWikiVariables#VarPLUGINVERSION">%PLUGINVERSION{}%</a> variable to query the Plugin API version or the version of installed Plugins.
6645             </li>
6646             </ul>
6647             </li>
6648             </ul>
6649             <p />
6650             <a name="CreatePlugins"></a>
6651             <h2><a name="Creating_Plugins"> </a> Creating Plugins </h2>
6652             <p />
6653             With a reasonable knowledge of the Perl scripting language, you can create new Plugins or modify and extend existing ones. Basic plug-in architecture uses an Application Programming Interface (API), a set of software instructions that allow external code to interact with the main program. The <a class="twikiAnchorLink" href="#PluginAPI">TWiki Plugin API</a> Plugins by providing a programming interface for TWiki.
6654             <p />
6655             <a name="DefaultPluginAlt"></a>
6656             <h3><a name="The_DefaultPlugin_Alternative"> </a> The DefaultPlugin Alternative </h3>
6657             <p />
6658 rizwank 1.1 <ul>
6659             <li> <strong>DefaultPlugin</strong> can handle some outdated TWiki variables, found, for example, in sites recently updated from an old version. Settings are in <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/DefaultPlugin">DefaultPlugin</a> topic. You can also add your own simple custom processing rules here, though in all but very simple cases, writing a new Plugin is preferable.
6660             </li>
6661             </ul>
6662             <p />
6663             <h3><a name="Anatomy_of_a_Plugin"> </a> Anatomy of a Plugin </h3>
6664             <p />
6665             A basic TWiki Plugin consists of two elements:
6666             <p />
6667             <ul>
6668             <li> a Perl module, ex: <code>MyFirstPlugin.pm</code>
6669             </li>
6670             <li> a documentation topic, ex: <code>MyFirstPlugin.txt</code>
6671             </li>
6672             </ul>
6673             <p />
6674             The Perl module can be a block of code that connects with TWiki alone, or it can include other elements, like other Perl modules (including other Plugins), graphics, TWiki templates, external applications (ex: a Java applet), or just about anything else it can call.
6675             In particular, files that should be web-accessible (graphics, Java applets ...) are best placed as attachments of the <code>MyFirstPlugin</code> topic. Other needed Perl code is best placed in a <code>lib/TWiki/Plugins/MyFirstPlugin/</code> directory.
6676             <p />
6677             The Plugin API handles the details of connecting your Perl module with main TWiki code. When you're familiar with the <a class="twikiAnchorLink" href="#PluginAPI">Plugin API</a>, you're ready to develop Plugins.
6678             <p />
6679 rizwank 1.1 <h3><a name="Creating_the_Perl_Module"> </a> Creating the Perl Module  </h3>
6680             <p />
6681             Copy file <code>lib/TWiki/Plugins/EmptyPlugin.pm</code> to <code>&lt;name&gt;Plugin.pm</code>. The <code>EmptyPlugin.pm</code> module contains mostly empty functions, so it does nothing, but it's ready to be used. Customize it. Refer to the <a class="twikiAnchorLink" href="#PluginAPI">Plugin API</a> specs for more information.
6682             <p />
6683             If your Plugin uses its own modules and objects, you must include the name of the Plugin in the package name. For example, write <code>Package MyFirstPlugin::Attrs;</code> instead of just <code>Package Attrs;</code>. Then call it using:
6684             <pre>
6685               use TWiki::Plugins::MyFirstPlugin::Attrs;
6686               $var = MyFirstPlugin::Attrs->new();
6687             </pre>
6688             <p />
6689             <a name="CreatePluginTopic"></a>
6690             <h3><a name="Writing_the_Documentation_Topic"> </a> Writing the Documentation Topic </h3>
6691             <p />
6692             The Plugin documentation topic contains usage instructions and version details. It serves the Plugin files as <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/FileAttachment">FileAttachments</a> for downloading. (The doc topic is also included <em>in</em> the <a class="twikiAnchorLink" href="#CreatePluginPackage">distribution package</a>.) To create a documentation topic:
6693             <p />
6694             <ol>
6695             <li> <strong>Copy</strong> the Plugin topic template from TWiki.org. To copy the text, go to <a href="http://twiki.org/cgi-bin/view/Plugins/PluginPackage" title="'Plugins/PluginPackage' on TWiki.org">TWiki:Plugins/PluginPackage</a> and:
6696             <ul>
6697             <li> enter the Plugin name in the "How to Create a Plugin" section
6698             </li>
6699             <li> click Create
6700 rizwank 1.1 </li>
6701             <li> select all in the Edit box &amp; copy 
6702             </li>
6703             <li> Cancel the edit
6704             </li>
6705             <li> go back to your site to the TWiki web
6706             </li>
6707             <li> In the <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/GoBox">GoBox</a> enter your Plugin name, for example <code>MyFirstPlugin</code>, press enter and create the new topic
6708             </li>
6709             <li> paste &amp; save new Plugin topic on your site
6710             </li>
6711             </ul>
6712             </li>
6713             <li> <strong>Customize</strong> your Plugin topic.
6714             <ul>
6715             <li> In case you plan to publish your Plugin at TWiki.org, use Interwiki names for author names, like <a href="http://twiki.org/cgi-bin/view/Main/TWikiGuest" title="'Main/TWikiGuest' on TWiki.org">TWiki:Main/TWikiGuest</a>. 
6716             </li>
6717             </ul>
6718             </li>
6719             <li> <strong>Save</strong> your topic, for use in <a class="twikiAnchorLink" href="#CreatePluginPackage">packaging</a> and <a class="twikiAnchorLink" href="#PublishPlugin">publishing</a> your Plugin.
6720             </li>
6721 rizwank 1.1 </ol>
6722             <p />
6723             <blockquote style="background-color:#f5f5f5">
6724             <strong>OUTLINE: Doc Topic Contents</strong> <br />
6725             Check the Plugins web on TWiki.org for the latest Plugin doc topic template. Here's a quick overview of what's covered:
6726             <p />
6727             <strong>Syntax Rules:</strong> &lt;<i>Describe any special text formatting that will be rendered.</i>&gt;" 
6728             <p />
6729             <strong>Example:</strong> &lt;<i>Include an example of the Plugin in action. Possibly include a static HTML version of the example to compare if the installation was a success!</i>&gt;"
6730             <p />
6731             <strong>Plugin Settings:</strong> &lt;<i>Description and settings for custom Plugin %VARIABLES%, and those required by TWiki.</i>&gt;"
6732             <p />
6733             <ul>
6734             <li> <strong>Plugins Preferences</strong> &lt;<i>If user settings are needed, explain... Entering values works exactly like <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/TWikiPreferences">TWikiPreferences</a> and <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/WebPreferences">WebPreferences</a>: six (6) spaces and then:</i>&gt;"
6735             <ul>
6736             <li> <strong>Set &lt;<i>EXAMPLE = value added</i>&gt;</strong>
6737             </li>
6738             </ul>
6739             </li>
6740             </ul>
6741             <p />
6742 rizwank 1.1 <strong>Plugin Installation Instructions:</strong> &lt;<i>Step-by-step set-up guide, user help, whatever it takes to install and run, goes here.</i>&gt;"
6743             <p />
6744             <strong>Plugin Info:</strong> &lt;<i>Version, credits, history, requirements - entered in a form, displayed as a table. Both are automatically generated when you create or edit a page in the <a href="http://twiki.org/cgi-bin/view/Plugins" title="'Plugins' on TWiki.org">TWiki:Plugins</a> web.</i>&gt;"
6745             </blockquote>
6746             <p />
6747             <a name="CreatePluginPackage"></a>
6748             <h3><a name="Packaging_for_Distribution"> </a> Packaging for Distribution </h3>
6749             <p />
6750             A minimum Plugin release consists of a Perl module with a <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/WikiName">WikiName</a> that ends in <code>Plugin</code>, ex: <code>MyFirstPlugin.pm</code>, and a documentation page with the same name(<code>MyFirstPlugin.txt</code>).
6751             <p />
6752             <ol>
6753             <li> Distribute the Plugin files in a directory structure that mirrors TWiki. If your Plugin uses additional files, include them ALL:
6754             <ul>
6755             <li> <code>lib/TWiki/Plugins/MyFirstPlugin.pm</code>
6756             </li>
6757             <li> <code>data/TWiki/MyFirstPlugin.txt</code>
6758             </li>
6759             <li> <code>pub/TWiki/MyFirstPlugin/uparrow.gif</code> [a required graphic]
6760             </li>
6761             </ul>
6762             </li>
6763 rizwank 1.1 <li> Create a zip archive with the Plugin name (<code>MyFirstPlugin.zip</code>) and add the entire directory structure from Step 1. The archive should look like this:
6764             <ul>
6765             <li> <code>lib/TWiki/Plugins/MyFirstPlugin.pm</code>
6766             </li>
6767             <li> <code>data/TWiki/MyFirstPlugin.txt</code>
6768             </li>
6769             <li> <code>pub/TWiki/MyFirstPlugin/uparrow.gif</code>
6770             </li>
6771             </ul>
6772             </li>
6773             </ol>
6774             <p />
6775             <a name="PublishPlugin"></a>
6776             <h3><a name="Publishing_for_Public_Use"> </a> Publishing for Public Use </h3>
6777             <p />
6778             You can release your tested, packaged Plugin to the TWiki community through the <a href="http://twiki.org/cgi-bin/view/Plugins" title="'Plugins' on TWiki.org">TWiki:Plugins</a> web. All Plugins submitted to TWiki.org are available for download and further development in <a href="http://twiki.org/cgi-bin/view/Plugins/PluginPackage" title="'Plugins/PluginPackage' on TWiki.org">TWiki:Plugins/PluginPackage</a>. Publish your Plugin in these steps:
6779             <p />
6780             <ol>
6781             <li> <strong>Post</strong> the Plugin documentation topic in the <a href="http://twiki.org/cgi-bin/view/Plugins/PluginPackage" title="'Plugins/PluginPackage' on TWiki.org">TWiki:Plugins/PluginPackage</a>:
6782             <ul>
6783             <li> enter the Plugin name in the "How to Create a Plugin" section, for example <code>MyFirstPlugin</code>
6784 rizwank 1.1 </li>
6785             <li> paste in the topic text from <a class="twikiAnchorLink" href="#CreatePluginTopic">Creating Plugin Documentation</a> and save
6786             </li>
6787             </ul>
6788             </li>
6789             <li> <strong>Attach</strong> the distribution zip file to the topic, ex: <code>MyFirstPlugin.zip</code>
6790             </li>
6791             <li> <strong>Link</strong> from the doc page to a new, blank page named after the Plugin, and ending in <code>Dev</code>, ex: <code>MyFirstPluginDev</code>. This is the discussion page for future development. (User support for Plugins is handled in <a href="http://twiki.org/cgi-bin/view/Support" title="'Support' on TWiki.org">TWiki:Support</a>.)
6792             </li>
6793             <li> <strong>Put</strong> the Plugin into the CVS repository, see <a href="http://twiki.org/cgi-bin/view/Plugins/ReadmeFirst" title="'Plugins/ReadmeFirst' on TWiki.org">TWiki:Plugins/ReadmeFirst</a> (optional)
6794             </li>
6795             </ol>
6796             <p />
6797             Thank you very much for sharing your Plugin with the TWiki community <img src="./pub/TWiki/SmiliesPlugin/smile.gif" alt="smile" title="smile" border="0" />
6798             <p />
6799             <a name="RecommendedStorageOfPluginData"></a>
6800             <h2><a name="Recommended_Storage_of_Plugin_Da"> </a> Recommended Storage of Plugin Data </h2>
6801             <p />
6802             Plugins sometimes need to store data. This can be Plugin internal data like cache data, or generated data for the browser like images. The following is a recommendation where to store the data.
6803             <p />
6804             <h3><a name="Where_to_store_Plugin_Internal_D"> </a> Where to store Plugin Internal Data </h3>
6805 rizwank 1.1 <p />
6806             In case the Plugin generates data just for internal use, or data which is not specific to a topic, store it in the Plugin's attachment directory.
6807             <p />
6808             <ul>
6809             <li> The Plugin's attachment directory is <code>pubdir/Installweb/FooBarPlugin</code>
6810             <ul>
6811             <li> <code>Installweb</code> refers to the name of the web where the Plugin is installed
6812             </li>
6813             </ul>
6814             </li>
6815             <li> The Plugin's attachment URL is <code>%PUBURL%/Installweb/FooBarPlugin</code>
6816             </li>
6817             <li> The filename should start with an underscore, followed by an identifier, e.g. <code>_any_name.ext</code>
6818             <ul>
6819             <li> The leading underscore avoids a nameclash with files attached to the Plugin topic
6820             </li>
6821             <li> Use only alphanumeric characters, underscores and periods to avoid platform dependency issues and URL issues
6822             </li>
6823             <li> Do not use subdirectories (rename and delete would fail)
6824             </li>
6825             </ul>
6826 rizwank 1.1 </li>
6827             <li> Use Plugin API functions documented in <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/TWikiFuncModule">TWikiFuncModule</a> to ensure portability:
6828             <ul>
6829             <li> Use <code>getPubDir()</code> to get the attachment root directory
6830             </li>
6831             <li> Use <code>getUrlHost()</code> and <code>getPubUrlPath()</code> to build the URL in case you create content for the browser
6832             </li>
6833             <li> Use <code>$installWeb</code> to get the name of the web where the Plugin is installed
6834             </li>
6835             <li> Create the web directory and topic attachment directory if needed
6836             </li>
6837             </ul>
6838             </li>
6839             <li> Hint: Package the Plugin at least with one file attachment. This ensures that the attachment directory already exists
6840             </li>
6841             </ul>
6842             <p />
6843             <h3><a name="Where_to_Store_Data_for_Topics_u"> </a> Where to Store Data for Topics using the Plugin </h3>
6844             <p />
6845             In case the Plugin generates data which is specific to a topic, store it in the topic's attachment directory.
6846             <p />
6847 rizwank 1.1 <ul>
6848             <li> The topic's attachment directory is <code>pubdir/Webname/TopicName</code>
6849             </li>
6850             <li> The topic's attachment URL is <code>%PUBURL%/Webname/TopicName</code>
6851             </li>
6852             <li> The filename should start with an underscore, followed by the Plugin name, an underscore and an identifier, e.g. <code>_FooBarPlugin_any_name.ext</code>
6853             <ul>
6854             <li> The leading underscore avoids a nameclash with files attached to the same topic
6855             </li>
6856             <li> Use only alphanumeric characters, underscores and periods to avoid platform dependency issues and URL issues
6857             </li>
6858             <li> Do not use subdirectories (rename and delete would fail)
6859             </li>
6860             </ul>
6861             </li>
6862             <li> Use Plugin API functions documented in <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/TWikiFuncModule">TWikiFuncModule</a> to ensure portability:
6863             <ul>
6864             <li> Use <code>getPubDir()</code> to get the attachment root directory
6865             </li>
6866             <li> Use <code>getUrlHost()</code> and <code>getPubUrlPath()</code> to build the URL in case you create content for the browser
6867             </li>
6868 rizwank 1.1 </ul>
6869             </li>
6870             </ul>
6871             <p />
6872             Example code to build the file name:
6873             <pre>
6874             sub _make_filename
6875             {
6876                 my ( $web, $topic, $name ) = @_;
6877             
6878                 # Create web directory "pub/$web" if needed
6879                 my $dir = TWiki::Func::getPubDir() . "/$web";
6880                 unless( -e "$dir" ) {
6881                     umask( 002 );
6882                     mkdir( $dir, 0775 );
6883                 }
6884                 # Create topic directory "pub/$web/$topic" if needed
6885                 $dir .= "/$topic";
6886                 unless( -e "$dir" ) {
6887                     umask( 002 );
6888                     mkdir( $dir, 0775 );
6889 rizwank 1.1     }
6890                 return "$dir/_FooBarPlugin_$name";
6891             }
6892             </pre>
6893             <p />
6894             -- <a href="http://twiki.org/cgi-bin/view/Main/PeterThoeny" title="'Main/PeterThoeny' on TWiki.org">TWiki:Main/PeterThoeny</a> - 14 Aug 2004 <br />
6895             -- <a href="http://twiki.org/cgi-bin/view/Main/AndreaSterbini" title="'Main/AndreaSterbini' on TWiki.org">TWiki:Main/AndreaSterbini</a> - 29 May 2001 <br />
6896             -- <a href="http://twiki.org/cgi-bin/view/Main/MikeMannix" title="'Main/MikeMannix' on TWiki.org">TWiki:Main/MikeMannix</a> - 03 Dec 2001   
6897             <p />
6898             <p />
6899             <hr />
6900             <p />
6901             <p />
6902             <h1><a name="TWiki_Func_Module_Documentation"> </a> TWiki::Func Module Documentation </h1>
6903             <p />
6904             <em>Official list of stable TWiki functions for Plugin developers</em>
6905             <p />
6906             <noautolink>
6907             <p />
6908             <h2><a name="Description"> </a> Description </h2>
6909             <p />
6910 rizwank 1.1 This module defines official funtions that <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/TWikiPlugins">Plugins</a> 
6911             and add-on scripts can use to interact with the TWiki engine and content.
6912             <p />
6913             Plugins should <strong>only</strong> use functions published in this module. If you use
6914             functions in other TWiki libraries you might impose a security hole and 
6915             you will likely need to change your Plugin when you upgrade TWiki.
6916             <p />
6917             The version of the TWiki::Func module is defined by the VERSION number of the 
6918             TWiki::Plugins module, currently 1.025. This can be shown by the 
6919             <code>%PLUGINVERSION{}%</code> variable. The "Since" field in the function documentation 
6920             refers to the VERSION number and the date that the function was addded.
6921             <p />
6922             <h2><a name="Functions_CGI_Environment"> </a> Functions: CGI Environment </h2>
6923             <p />
6924             <h3><a name="getSessionValue_key_value"> </a> getSessionValue( $key ) ==&gt; $value </h3>
6925             <p />
6926             <table border="1" cellspacing="0" cellpadding="1"> <tr><td>  Description:       </td><td>  Get a session value from the Session Plugin (if installed)  </td></tr>
6927             <tr><td>  Parameter: <code>$key</code>  </td><td>  Session key  </td></tr>
6928             <tr><td>  Return: <code>$value</code>   </td><td>  Value associated with key; empty string if not set; undef if session plugin is not installed  </td></tr>
6929             <tr><td>  Since:             </td><td>  TWiki::Plugins::VERSION 1.000 (27 Feb 2001)  </td></tr>
6930             </table>
6931 rizwank 1.1 <p />
6932             <h3><a name="setSessionValue_key_value_result"> </a> setSessionValue( $key, $value ) ==&gt; $result </h3>
6933             <p />
6934             <table border="1" cellspacing="0" cellpadding="1"> <tr><td>  Description:         </td><td>  Set a session value via the Session Plugin (if installed)  </td></tr>
6935             <tr><td>  Parameter: <code>$key</code>    </td><td>  Session key  </td></tr>
6936             <tr><td>  Parameter: <code>$value</code>  </td><td>  Value associated with key  </td></tr>
6937             <tr><td>  Return: <code>$result</code>    </td><td>  <code>"1"</code> if success; undef if session plugin is not installed  </td></tr>
6938             <tr><td>  Since:               </td><td>  TWiki::Plugins::VERSION 1.000 (17 Aug 2001)  </td></tr>
6939             </table>
6940             <p />
6941             <h3><a name="getSkin_skin"> </a> getSkin( ) ==&gt; $skin </h3>
6942             <p />
6943             <table border="1" cellspacing="0" cellpadding="1"> <tr><td>  Description:     </td><td>  Get the name of the skin, set by the <code>SKIN</code> preferences variable or the <code>skin</code> CGI parameter  </td></tr>
6944             <tr><td>  Return: <code>$skin</code>  </td><td>  Name of skin, e.g. <code>"gnu"</code>. Empty string if none  </td></tr>
6945             <tr><td>  Since:           </td><td>  TWiki::Plugins::VERSION 1.000 (29 Jul 2001)  </td></tr>
6946             </table>
6947             <p />
6948             <h3><a name="getUrlHost_host"> </a> getUrlHost( ) ==&gt; $host </h3>
6949             <p />
6950             <table border="1" cellspacing="0" cellpadding="1"> <tr><td>  Description:     </td><td>  Get protocol, domain and optional port of script URL  </td></tr>
6951             <tr><td>  Return: <code>$host</code>  </td><td>  URL host, e.g. <code>"http://example.com:80"</code>  </td></tr>
6952 rizwank 1.1 <tr><td>  Since:           </td><td>  TWiki::Plugins::VERSION 1.000 (7 Dec 2002)  </td></tr>
6953             </table>
6954             <p />
6955             <h3><a name="getScriptUrl_web_topic_script_ur"> </a> getScriptUrl( $web, $topic, $script ) ==&gt; $url </h3>
6956             <p />
6957             <table border="1" cellspacing="0" cellpadding="1"> <tr><td>  Description:          </td><td>  Compose fully qualified URL  </td></tr>
6958             <tr><td>  Parameter: <code>$web</code>     </td><td>  Web name, e.g. <code>"Main"</code>  </td></tr>
6959             <tr><td>  Parameter: <code>$topic</code>   </td><td>  Topic name, e.g. <code>"WebNotify"</code>  </td></tr>
6960             <tr><td>  Parameter: <code>$script</code>  </td><td>  Script name, e.g. <code>"view"</code>  </td></tr>
6961             <tr><td>  Return: <code>$url</code>        </td><td>  URL, e.g. <code>"http://example.com:80/cgi-bin/view.pl/Main/WebNotify"</code>  </td></tr>
6962             <tr><td>  Since:                </td><td>  TWiki::Plugins::VERSION 1.000 (7 Dec 2002)  </td></tr>
6963             </table>
6964             <p />
6965             <h3><a name="getScriptUrlPath_path"> </a> getScriptUrlPath( ) ==&gt; $path </h3>
6966             <p />
6967             <table border="1" cellspacing="0" cellpadding="1"> <tr><td>  Description:     </td><td>  Get script URL path  </td></tr>
6968             <tr><td>  Return: <code>$path</code>  </td><td>  URL path of TWiki scripts, e.g. <code>"http://TWiki.org/cgi-bin"</code>  </td></tr>
6969             <tr><td>  Since:           </td><td>  TWiki::Plugins::VERSION 1.000 (7 Dec 2002)  </td></tr>
6970             </table>
6971             <p />
6972             <h3><a name="getViewUrl_web_topic_url"> </a> getViewUrl( $web, $topic ) ==&gt; $url </h3>
6973 rizwank 1.1 <p />
6974             <table border="1" cellspacing="0" cellpadding="1"> <tr><td>  Description:         </td><td>  Compose fully qualified view URL  </td></tr>
6975             <tr><td>  Parameter: <code>$web</code>    </td><td>  Web name, e.g. <code>"Main"</code>. The current web is taken if empty  </td></tr>
6976             <tr><td>  Parameter: <code>$topic</code>  </td><td>  Topic name, e.g. <code>"WebNotify"</code>  </td></tr>
6977             <tr><td>  Return: <code>$url</code>       </td><td>  URL, e.g. <code>"http://example.com:80/cgi-bin/view.pl/Main/WebNotify"</code>  </td></tr>
6978             <tr><td>  Since:               </td><td>  TWiki::Plugins::VERSION 1.000 (7 Dec 2002)  </td></tr>
6979             </table>
6980             <p />
6981             <h3><a name="getOopsUrl_web_topic_template_pa"> </a> getOopsUrl( $web, $topic, $template, $param1, $param2, $param3, $param4 ) ==&gt; $url </h3>
6982             <p />
6983             <table border="1" cellspacing="0" cellpadding="1"> <tr><td>  Description:                        </td><td>  Compose fully qualified "oops" dialog URL  </td></tr>
6984             <tr><td>  Parameter: <code>$web</code>                   </td><td>  Web name, e.g. <code>"Main"</code>. The current web is taken if empty  </td></tr>
6985             <tr><td>  Parameter: <code>$topic</code>                 </td><td>  Topic name, e.g. <code>"WebNotify"</code>  </td></tr>
6986             <tr><td>  Parameter: <code>$template</code>              </td><td>  Oops template name, e.g. <code>"oopslocked"</code>  </td></tr>
6987             <tr><td>  Parameter: <code>$param1</code> ... <code>$param4</code>  </td><td>  Parameter values for %PARAM1% ... %PARAM4% variables in template, optional  </td></tr>
6988             <tr><td>  Return: <code>$url</code>                      </td><td>  URL, e.g. <code>"http://example.com:80/cgi-bin/oops.pl/ Main/WebNotify?template=oopslocked&amp;param1=joe"</code>  </td></tr>
6989             <tr><td>  Since:                              </td><td>  TWiki::Plugins::VERSION 1.000 (7 Dec 2002)  </td></tr>
6990             </table>
6991             <p />
6992             <h3><a name="getPubUrlPath_path"> </a> getPubUrlPath( ) ==&gt; $path </h3>
6993             <p />
6994 rizwank 1.1 <table border="1" cellspacing="0" cellpadding="1"> <tr><td>  Description:     </td><td>  Get pub URL path  </td></tr>
6995             <tr><td>  Return: <code>$path</code>  </td><td>  URL path of pub directory, e.g. <code>"/pub"</code>  </td></tr>
6996             <tr><td>  Since:           </td><td>  TWiki::Plugins::VERSION 1.000 (14 Jul 2001)  </td></tr>
6997             </table>
6998             <p />
6999             <h3><a name="getCgiQuery_query"> </a> getCgiQuery( ) ==&gt; $query </h3>
7000             <p />
7001             <table border="1" cellspacing="0" cellpadding="1"> <tr><td>  Description:      </td><td>  Get CGI query object. Important: Plugins cannot assume that scripts run under CGI, Plugins must always test if the CGI query object is set  </td></tr>
7002             <tr><td>  Return: <code>$query</code>  </td><td>  CGI query object; or 0 if script is called as a shell script  </td></tr>
7003             <tr><td>  Since:            </td><td>  TWiki::Plugins::VERSION 1.000 (7 Dec 2002)  </td></tr>
7004             </table>
7005             <p />
7006             <h3><a name="writeHeader_query"> </a><a name="writeHeader_query_"> </a> writeHeader( $query ) </h3>
7007             <p />
7008             <table border="1" cellspacing="0" cellpadding="1"> <tr><td>  Description:         </td><td>  Prints a basic content-type HTML header for text/html to standard out  </td></tr>
7009             <tr><td>  Parameter: <code>$query</code>  </td><td>  CGI query object  </td></tr>
7010             <tr><td>  Return:              </td><td>  none  </td></tr>
7011             <tr><td>  Since:               </td><td>  TWiki::Plugins::VERSION 1.000 (7 Dec 2002)  </td></tr>
7012             </table>
7013             <p />
7014             <h3><a name="redirectCgiQuery_query_url"> </a><a name="redirectCgiQuery_query_url_"> </a> redirectCgiQuery( $query, $url ) </h3>
7015 rizwank 1.1 <p />
7016             <table border="1" cellspacing="0" cellpadding="1"> <tr><td>  Description:         </td><td>  Redirect to URL  </td></tr>
7017             <tr><td>  Parameter: <code>$query</code>  </td><td>  CGI query object  </td></tr>
7018             <tr><td>  Parameter: <code>$url</code>    </td><td>  URL to redirect to  </td></tr>
7019             <tr><td>  Return:              </td><td>  none, never returns  </td></tr>
7020             <tr><td>  Since:               </td><td>  TWiki::Plugins::VERSION 1.000 (7 Dec 2002)  </td></tr>
7021             </table>
7022             <p />
7023             <h2><a name="Functions_Preferences"> </a> Functions: Preferences </h2>
7024             <p />
7025             <h3><a name="extractParameters_attr_params"> </a> extractParameters( $attr ) ==&gt; %params </h3>
7026             <p />
7027             <table border="1" cellspacing="0" cellpadding="1"> <tr><td>  Description:        </td><td>  Extract all parameters from a variable string and returns a hash of parameters  </td></tr>
7028             <tr><td>  Parameter: <code>$attr</code>  </td><td>  Attribute string  </td></tr>
7029             <tr><td>  Return: <code>%params</code>   </td><td>  Hash containing all parameters. The nameless parameter is stored in key <code>_DEFAULT</code>  </td></tr>
7030             <tr><td>  Since:              </td><td>  TWiki::Plugins::VERSION 1.025 (26 Aug 2004)  </td></tr>
7031             </table>
7032             <p />
7033             <ul>
7034             <li> Example:
7035             <ul>
7036 rizwank 1.1 <li> Variable: <code>%TEST{ "nameless" name1="val1" name2="val2" }%</code>
7037             </li>
7038             <li> First extract text between <code>{...}</code> to get: <code>"nameless" name1="val1" name2="val2"</code>
7039             </li>
7040             <li> Then call this on the text: <br />
7041                   <code>my %params = TWiki::Func::extractParameters( $text );</code>
7042             </li>
7043             <li> The <code>%params</code> hash contains now: <br />
7044                   <code>_DEFAULT =&gt; "nameless"</code> <br />
7045                   <code>name1 =&gt; "val1"</code> <br />
7046                   <code>name2 =&gt; "val2"</code>
7047             </li>
7048             </ul>
7049             </li>
7050             </ul>
7051             <p />
7052             <h3><a name="extractNameValuePair_attr_name_v"> </a> extractNameValuePair( $attr, $name ) ==&gt; $value </h3>
7053             <p />
7054             <table border="1" cellspacing="0" cellpadding="1"> <tr><td>  Description:        </td><td>  Extract a named or unnamed value from a variable parameter string  </td></tr>
7055             <tr><td>  Note:               </td><td>  Function TWiki::Func::extractParameters is more efficient for extracting several parameters  </td></tr>
7056             <tr><td>  Parameter: <code>$attr</code>  </td><td>  Attribute string  </td></tr>
7057 rizwank 1.1 <tr><td>  Parameter: <code>$name</code>  </td><td>  Name, optional  </td></tr>
7058             <tr><td>  Return: <code>$value</code>    </td><td>  Extracted value  </td></tr>
7059             <tr><td>  Since:              </td><td>  TWiki::Plugins::VERSION 1.000 (7 Dec 2002)  </td></tr>
7060             </table>
7061             <p />
7062             <ul>
7063             <li> Example:
7064             <ul>
7065             <li> Variable: <code>%TEST{ "nameless" name1="val1" name2="val2" }%</code>
7066             </li>
7067             <li> First extract text between <code>{...}</code> to get: <code>"nameless" name1="val1" name2="val2"</code>
7068             </li>
7069             <li> Then call this on the text: <br />
7070                   <code>my $noname = TWiki::Func::extractNameValuePair( $text );</code> <br />
7071                   <code>my $val1&nbsp; = TWiki::Func::extractNameValuePair( $text, "name1" );</code> <br />
7072                   <code>my $val2&nbsp; = TWiki::Func::extractNameValuePair( $text, "name2" );</code>
7073             </li>
7074             </ul>
7075             </li>
7076             </ul>
7077             <p />
7078 rizwank 1.1 <h3><a name="getPreferencesValue_key_web_valu"> </a> getPreferencesValue( $key, $web ) ==&gt; $value </h3>
7079             <p />
7080             <table border="1" cellspacing="0" cellpadding="1"> <tr><td>  Description:       </td><td>  Get a preferences value from TWiki or from a Plugin  </td></tr>
7081             <tr><td>  Parameter: <code>$key</code>  </td><td>  Preferences key  </td></tr>
7082             <tr><td>  Parameter: <code>$web</code>  </td><td>  Name of web, optional. Current web if not specified; does not apply to settings of Plugin topics  </td></tr>
7083             <tr><td>  Return: <code>$value</code>   </td><td>  Preferences value; empty string if not set  </td></tr>
7084             <tr><td>  Since:             </td><td>  TWiki::Plugins::VERSION 1.000 (7 Dec 2002)  </td></tr>
7085             </table>
7086             <p />
7087             <ul>
7088             <li> Example for Plugin setting:
7089             <ul>
7090             <li> MyPlugin topic has: <code>* Set COLOR = red</code>
7091             </li>
7092             <li> Use <code>"MYPLUGIN_COLOR"</code> for <code>$key</code>
7093             </li>
7094             <li> <code>my $color = TWiki::Func::getPreferencesValue( "MYPLUGIN_COLOR" );</code>
7095             </li>
7096             </ul>
7097             </li>
7098             </ul>
7099 rizwank 1.1 <p />
7100             <ul>
7101             <li> Example for preferences setting:
7102             <ul>
7103             <li> WebPreferences topic has: <code>* Set WEBBGCOLOR = #FFFFC0</code>
7104             </li>
7105             <li> <code>my $webColor = TWiki::Func::getPreferencesValue( "WEBBGCOLOR", "Sandbox" );</code>
7106             </li>
7107             </ul>
7108             </li>
7109             </ul>
7110             <p />
7111             <h3><a name="getPluginPreferencesValue_key_va"> </a> getPluginPreferencesValue( $key ) ==&gt; $value </h3>
7112             <p />
7113             <table border="1" cellspacing="0" cellpadding="1"> <tr><td>  Description:       </td><td>  Get a preferences value from your Plugin  </td></tr>
7114             <tr><td>  Parameter: <code>$key</code>  </td><td>  Plugin Preferences key w/o PLUGINNAME_ prefix.  </td></tr>
7115             <tr><td>  Return: <code>$value</code>   </td><td>  Preferences value; empty string if not set  </td></tr>
7116             <tr><td>  Since:             </td><td>  TWiki::Plugins::VERSION 1.021 (27 Mar 2004)  </td></tr>
7117             </table>
7118             <p />
7119             <h3><a name="getPreferencesFlag_key_web_value"> </a> getPreferencesFlag( $key, $web ) ==&gt; $value </h3>
7120 rizwank 1.1 <p />
7121             <table border="1" cellspacing="0" cellpadding="1"> <tr><td>  Description:       </td><td>  Get a preferences flag from TWiki or from a Plugin  </td></tr>
7122             <tr><td>  Parameter: <code>$key</code>  </td><td>  Preferences key  </td></tr>
7123             <tr><td>  Parameter: <code>$web</code>  </td><td>  Name of web, optional. Current web if not specified; does not apply to settings of Plugin topics  </td></tr>
7124             <tr><td>  Return: <code>$value</code>   </td><td>  Preferences flag <code>"1"</code> (if set), or <code>"0"</code> (for preferences values <code>"off"</code>, <code>"no"</code> and <code>"0"</code>)  </td></tr>
7125             <tr><td>  Since:             </td><td>  TWiki::Plugins::VERSION 1.000 (7 Dec 2002)  </td></tr>
7126             </table>
7127             <p />
7128             <ul>
7129             <li> Example for Plugin setting:
7130             <ul>
7131             <li> MyPlugin topic has: <code>* Set SHOWHELP = off</code>
7132             </li>
7133             <li> Use <code>"MYPLUGIN_SHOWHELP"</code> for <code>$key</code>
7134             </li>
7135             <li> <code>my $showHelp = TWiki::Func::getPreferencesFlag( "MYPLUGIN_SHOWHELP" );</code>
7136             </li>
7137             </ul>
7138             </li>
7139             </ul>
7140             <p />
7141 rizwank 1.1 <h3><a name="getPluginPreferencesFlag_key_fla"> </a> getPluginPreferencesFlag( $key ) ==&gt; $flag </h3>
7142             <p />
7143             <table border="1" cellspacing="0" cellpadding="1"> <tr><td>  Description:       </td><td>  Get a preferences flag from your Plugin  </td></tr>
7144             <tr><td>  Parameter: <code>$key</code>  </td><td>  Plugin Preferences key w/o PLUGINNAME_ prefix.  </td></tr>
7145             <tr><td>  Return: <code>$flag</code>    </td><td>  Preferences flag <code>"1"</code> (if set), or <code>"0"</code> (for preferences values <code>"off"</code>, <code>"no"</code> and <code>"0"</code>, or values not set at all)  </td></tr>
7146             <tr><td>  Since:             </td><td>  TWiki::Plugins::VERSION 1.021 (27 Mar 2004)  </td></tr>
7147             </table>
7148             <p />
7149             <h3><a name="getWikiToolName_name"> </a> getWikiToolName( ) ==&gt; $name </h3>
7150             <p />
7151             <table border="1" cellspacing="0" cellpadding="1"> <tr><td>  Description:     </td><td>  Get toolname as defined in TWiki.cfg  </td></tr>
7152             <tr><td>  Return: <code>$name</code>  </td><td>  Name of tool, e.g. <code>"TWiki"</code>  </td></tr>
7153             <tr><td>  Since:           </td><td>  TWiki::Plugins::VERSION 1.000 (27 Feb 2001)  </td></tr>
7154             </table>
7155             <p />
7156             <h3><a name="getMainWebname_name"> </a> getMainWebname( ) ==&gt; $name </h3>
7157             <p />
7158             <table border="1" cellspacing="0" cellpadding="1"> <tr><td>  Description:     </td><td>  Get name of Main web as defined in TWiki.cfg  </td></tr>
7159             <tr><td>  Return: <code>$name</code>  </td><td>  Name, e.g. <code>"Main"</code>  </td></tr>
7160             <tr><td>  Since:           </td><td>  TWiki::Plugins::VERSION 1.000 (27 Feb 2001)  </td></tr>
7161             </table>
7162 rizwank 1.1 <p />
7163             <h3><a name="getTwikiWebname_name"> </a> getTwikiWebname( ) ==&gt; $name </h3>
7164             <p />
7165             <table border="1" cellspacing="0" cellpadding="1"> <tr><td>  Description:     </td><td>  Get name of TWiki documentation web as defined in TWiki.cfg  </td></tr>
7166             <tr><td>  Return: <code>$name</code>  </td><td>  Name, e.g. <code>"TWiki"</code>  </td></tr>
7167             <tr><td>  Since:           </td><td>  TWiki::Plugins::VERSION 1.000 (27 Feb 2001)  </td></tr>
7168             </table>
7169             <p />
7170             <h2><a name="Functions_User_Handling_and_Acce"> </a> Functions: User Handling and Access Control </h2>
7171             <p />
7172             <h3><a name="getDefaultUserName_loginName"> </a> getDefaultUserName( ) ==&gt; $loginName </h3>
7173             <p />
7174             <table border="1" cellspacing="0" cellpadding="1"> <tr><td>  Description:          </td><td>  Get default user name as defined in TWiki.cfg's <code>$defaultUserName</code>  </td></tr>
7175             <tr><td>  Return: <code>$loginName</code>  </td><td>  Default user name, e.g. <code>"guest"</code>  </td></tr>
7176             <tr><td>  Since:                </td><td>  TWiki::Plugins::VERSION 1.000 (7 Dec 2002)  </td></tr>
7177             </table>
7178             <p />
7179             <h3><a name="getWikiName_wikiName"> </a> getWikiName( ) ==&gt; $wikiName </h3>
7180             <p />
7181             <table border="1" cellspacing="0" cellpadding="1"> <tr><td>  Description:         </td><td>  Get Wiki name of logged in user  </td></tr>
7182             <tr><td>  Return: <code>$wikiName</code>  </td><td>  Wiki Name, e.g. <code>"JohnDoe"</code>  </td></tr>
7183 rizwank 1.1 <tr><td>  Since:               </td><td>  TWiki::Plugins::VERSION 1.000 (7 Dec 2002)  </td></tr>
7184             </table>
7185             <p />
7186             <h3><a name="getWikiUserName_text_wikiName"> </a> getWikiUserName( $text ) ==&gt; $wikiName </h3>
7187             <p />
7188             <table border="1" cellspacing="0" cellpadding="1"> <tr><td>  Description:         </td><td>  Get Wiki name of logged in user with web prefix  </td></tr>
7189             <tr><td>  Return: <code>$wikiName</code>  </td><td>  Wiki Name, e.g. <code>"Main.JohnDoe"</code>  </td></tr>
7190             <tr><td>  Since:               </td><td>  TWiki::Plugins::VERSION 1.000 (7 Dec 2002)  </td></tr>
7191             </table>
7192             <p />
7193             <h3><a name="wikiToUserName_wikiName_loginNam"> </a> wikiToUserName( $wikiName ) ==&gt; $loginName </h3>
7194             <p />
7195             <table border="1" cellspacing="0" cellpadding="1"> <tr><td>  Description:            </td><td>  Translate a Wiki name to a login name based on <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/Main/TWikiUsers">Main.TWikiUsers</a> topic  </td></tr>
7196             <tr><td>  Parameter: <code>$wikiName</code>  </td><td>  Wiki name, e.g. <code>"Main.JohnDoe"</code> or <code>"JohnDoe"</code>  </td></tr>
7197             <tr><td>  Return: <code>$loginName</code>    </td><td>  Login name of user, e.g. <code>"jdoe"</code>  </td></tr>
7198             <tr><td>  Since:                  </td><td>  TWiki::Plugins::VERSION 1.000 (7 Dec 2002)  </td></tr>
7199             </table>
7200             <p />
7201             <h3><a name="userToWikiName_loginName_dontAdd"> </a> userToWikiName( $loginName, $dontAddWeb ) ==&gt; $wikiName </h3>
7202             <p />
7203             <table border="1" cellspacing="0" cellpadding="1"> <tr><td>  Description:              </td><td>  Translate a login name to a Wiki name based on <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/Main/TWikiUsers">Main.TWikiUsers</a> topic  </td></tr>
7204 rizwank 1.1 <tr><td>  Parameter: <code>$loginName</code>   </td><td>  Login name, e.g. <code>"jdoe"</code>  </td></tr>
7205             <tr><td>  Parameter: <code>$dontAddWeb</code>  </td><td>  Do not add web prefix if <code>"1"</code>  </td></tr>
7206             <tr><td>  Return: <code>$wikiName</code>       </td><td>  Wiki name of user, e.g. <code>"Main.JohnDoe"</code> or <code>"JohnDoe"</code>  </td></tr>
7207             <tr><td>  Since:                    </td><td>  TWiki::Plugins::VERSION 1.000 (7 Dec 2002)  </td></tr>
7208             </table>
7209             <p />
7210             <h3><a name="isGuest_flag"> </a> isGuest( ) ==&gt; $flag </h3>
7211             <p />
7212             <table border="1" cellspacing="0" cellpadding="1"> <tr><td>  Description:     </td><td>  Test if logged in user is a guest  </td></tr>
7213             <tr><td>  Return: <code>$flag</code>  </td><td>  <code>"1"</code> if yes, <code>"0"</code> if not  </td></tr>
7214             <tr><td>  Since:           </td><td>  TWiki::Plugins::VERSION 1.000 (7 Dec 2002)  </td></tr>
7215             </table>
7216             <p />
7217             <h3><a name="permissionsSet_web_flag"> </a> permissionsSet( $web ) ==&gt; $flag </h3>
7218             <p />
7219             <table border="1" cellspacing="0" cellpadding="1"> <tr><td>  Description:       </td><td>  Test if any access restrictions are set for this web, ignoring settings on individual pages  </td></tr>
7220             <tr><td>  Parameter: <code>$web</code>  </td><td>  Web name, required, e.g. <code>"Sandbox"</code>  </td></tr>
7221             <tr><td>  Return: <code>$flag</code>    </td><td>  <code>"1"</code> if yes, <code>"0"</code> if no  </td></tr>
7222             <tr><td>  Since:             </td><td>  TWiki::Plugins::VERSION 1.000 (27 Feb 2001)  </td></tr>
7223             </table>
7224             <p />
7225 rizwank 1.1 <h3><a name="checkAccessPermission_type_wikiN"> </a> checkAccessPermission( $type, $wikiName, $text, $topic, $web ) ==&gt; $flag </h3>
7226             <p />
7227             <table border="1" cellspacing="0" cellpadding="1"> <tr><td>  Description:            </td><td>  Check access permission for a topic based on the <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/TWikiAccessControl">TWiki.TWikiAccessControl</a> rules  </td></tr>
7228             <tr><td>  Parameter: <code>$type</code>      </td><td>  Access type, e.g. <code>"VIEW"</code>, <code>"CHANGE"</code>, <code>"CREATE"</code>  </td></tr>
7229             <tr><td>  Parameter: <code>$wikiName</code>  </td><td>  WikiName of remote user, i.e. <code>"Main.PeterThoeny"</code>  </td></tr>
7230             <tr><td>  Parameter: <code>$text</code>      </td><td>  Topic text, optional. If empty, topic <code>$web.$topic</code> is consulted  </td></tr>
7231             <tr><td>  Parameter: <code>$topic</code>     </td><td>  Topic name, required, e.g. <code>"PrivateStuff"</code>  </td></tr>
7232             <tr><td>  Parameter: <code>$web</code>       </td><td>  Web name, required, e.g. <code>"Sandbox"</code>  </td></tr>
7233             <tr><td>  Return: <code>$flag</code>         </td><td>  <code>"1"</code> if access may be granted, <code>"0"</code> if not  </td></tr>
7234             <tr><td>  Since:                  </td><td>  TWiki::Plugins::VERSION 1.000 (27 Feb 2001)  </td></tr>
7235             </table>
7236             <p />
7237             <h2><a name="Functions_Content_Handling"> </a> Functions: Content Handling </h2>
7238             <p />
7239             <h3><a name="webExists_web_flag"> </a> webExists( $web ) ==&gt; $flag </h3>
7240             <p />
7241             <table border="1" cellspacing="0" cellpadding="1"> <tr><td>  Description:       </td><td>  Test if web exists  </td></tr>
7242             <tr><td>  Parameter: <code>$web</code>  </td><td>  Web name, required, e.g. <code>"Sandbox"</code>  </td></tr>
7243             <tr><td>  Return: <code>$flag</code>    </td><td>  <code>"1"</code> if web exists, <code>"0"</code> if not  </td></tr>
7244             <tr><td>  Since:             </td><td>  TWiki::Plugins::VERSION 1.000 (14 Jul 2001)  </td></tr>
7245             </table>
7246 rizwank 1.1 <p />
7247             <h3><a name="topicExists_web_topic_flag"> </a> topicExists( $web, $topic ) ==&gt; $flag </h3>
7248             <p />
7249             <table border="1" cellspacing="0" cellpadding="1"> <tr><td>  Description:         </td><td>  Test if topic exists  </td></tr>
7250             <tr><td>  Parameter: <code>$web</code>    </td><td>  Web name, optional, e.g. <code>"Main"</code>  </td></tr>
7251             <tr><td>  Parameter: <code>$topic</code>  </td><td>  Topic name, required, e.g. <code>"TokyoOffice"</code>, or <code>"Main.TokyoOffice"</code>  </td></tr>
7252             <tr><td>  Return: <code>$flag</code>      </td><td>  <code>"1"</code> if topic exists, <code>"0"</code> if not  </td></tr>
7253             <tr><td>  Since:               </td><td>  TWiki::Plugins::VERSION 1.000 (14 Jul 2001)  </td></tr>
7254             </table>
7255             <p />
7256             <h3><a name="getRevisionInfo_theWebName_theTo"> </a> getRevisionInfo($theWebName, $theTopic, $theRev, $attachment ) ==&gt; ( $date, $user, $rev, $comment )  </h3>
7257             <table border="1" cellspacing="0" cellpadding="1"> <tr><td>  Description:            </td><td>  Get revision info of a topic  </td></tr>
7258             <tr><td>  Parameter: <code>$theWebName</code>  </td><td>  Web name, optional, e.g. <code>"Main"</code>  </td></tr>
7259             <tr><td>  Parameter: <code>$theTopic</code>    </td><td>  Topic name, required, e.g. <code>"TokyoOffice"</code>  </td></tr>
7260             <tr><td>  Parameter: <code>$theRev</code>      </td><td>  revsion number, or tag name (can be in the format 1.2, or just the minor number)  </td></tr>
7261             <tr><td>  Parameter: <code>$attachment</code>                  </td><td> attachment filename  </td></tr>
7262             <tr><td>  Return: <code>( $date, $user, $rev, $comment )</code>  </td><td>  List with: ( last update date, login name of last user, minor part of top revision number ), e.g. <code>( 1234561, "phoeny", "5" )</code>  </td></tr>
7263             <tr><td>  $date  </td><td>  in epochSec  </td></tr>
7264             <tr><td>  $user  </td><td>  &nbsp;  </td></tr>
7265             <tr><td>  $rev  </td><td>  &nbsp;  </td></tr>
7266             <tr><td>  $comment  </td><td>  WHAT COMMENT?  </td></tr>
7267 rizwank 1.1 <tr><td>  Since:                                 </td><td>  TWiki::Plugins::VERSION 1.000 (29 Jul 2001)  </td></tr>
7268             </table>
7269             <p />
7270             <h3><a name="checkTopicEditLock_web_topic_oop"> </a> checkTopicEditLock( $web, $topic ) ==&gt; ( $oopsUrl, $loginName, $unlockTime ) </h3>
7271             <p />
7272             <table border="1" cellspacing="0" cellpadding="1"> <tr><td>  Description:                                     </td><td>  Check if topic has an edit lock by a user  </td></tr>
7273             <tr><td>  Parameter: <code>$web</code>                                </td><td>  Web name, e.g. <code>"Main"</code>, or empty  </td></tr>
7274             <tr><td>  Parameter: <code>$topic</code>                              </td><td>  Topic name, e.g. <code>"MyTopic"</code>, or <code>"Main.MyTopic"</code>  </td></tr>
7275             <tr><td>  Return: <code>( $oopsUrl, $loginName, $unlockTime )</code>  </td><td>  The <code>$oopsUrl</code> for calling redirectCgiQuery(), user's <code>$loginName</code>, and estimated <code>$unlockTime</code> in minutes. The <code>$oopsUrl</code> and <code>$loginName</code> is empty if topic has no edit lock.  </td></tr>
7276             <tr><td>  Since:                                           </td><td>  TWiki::Plugins::VERSION 1.010 (31 Dec 2002)  </td></tr>
7277             </table>
7278             <p />
7279             <h3><a name="setTopicEditLock_web_topic_lock"> </a><a name="setTopicEditLock_web_topic_lock_"> </a> setTopicEditLock( $web, $topic, $lock ) ==&gt; $oopsUrl </h3>
7280             <p />
7281             <table border="1" cellspacing="0" cellpadding="1"> <tr><td>  Description:         </td><td>  Lock topic for editing, or unlock when done  </td></tr>
7282             <tr><td>  Parameter: <code>$web</code>    </td><td>  Web name, e.g. <code>"Main"</code>, or empty  </td></tr>
7283             <tr><td>  Parameter: <code>$topic</code>  </td><td>  Topic name, e.g. <code>"MyTopic"</code>, or <code>"Main.MyTopic"</code>  </td></tr>
7284             <tr><td>  Parameter: <code>$lock</code>   </td><td>  Set to <code>1</code> to lock topic, <code>0</code> to unlock  </td></tr>
7285             <tr><td>  Return: <code>$oopsUrl</code>   </td><td>  Empty string if OK; the <code>$oopsUrl</code> for calling redirectCgiQuery() in case lock is already taken when trying to lock topic  </td></tr>
7286             <tr><td>  Since:               </td><td>  TWiki::Plugins::VERSION 1.010 (31 Dec 2002)  </td></tr>
7287             </table>
7288 rizwank 1.1 <p />
7289             <h3><a name="readTopicText_web_topic_rev_igno"> </a> readTopicText( $web, $topic, $rev, $ignorePermissions ) ==&gt; $text </h3>
7290             <p />
7291             <table border="1" cellspacing="0" cellpadding="1"> <tr><td>  Description:                      </td><td>  Read topic text, including meta data  </td></tr>
7292             <tr><td>  Parameter: <code>$web</code>                 </td><td>  Web name, e.g. <code>"Main"</code>, or empty  </td></tr>
7293             <tr><td>  Parameter: <code>$topic</code>               </td><td>  Topic name, e.g. <code>"MyTopic"</code>, or <code>"Main.MyTopic"</code>  </td></tr>
7294             <tr><td>  Parameter: <code>$rev</code>                 </td><td>  Topic revision to read, optional. Specify the minor part of the revision, e.g. <code>"5"</code>, not <code>"1.5"</code>; the top revision is returned if omitted or empty.  </td></tr>
7295             <tr><td>  Parameter: <code>$ignorePermissions</code>   </td><td>  Set to <code>"1"</code> if checkAccessPermission() is already performed and OK; an oops URL is returned if user has no permission  </td></tr>
7296             <tr><td>  Return: <code>$text</code>                   </td><td>  Topic text with embedded meta data; an oops URL for calling redirectCgiQuery() is returned in case of an error  </td></tr>
7297             <tr><td>  Since:                            </td><td>  TWiki::Plugins::VERSION 1.010 (31 Dec 2002)  </td></tr>
7298             </table>
7299             <p />
7300             <h3><a name="saveTopicText_web_topic_text_ign"> </a> saveTopicText( $web, $topic, $text, $ignorePermissions, $dontNotify ) ==&gt; $oopsUrl </h3>
7301             <p />
7302             <table border="1" cellspacing="0" cellpadding="1"> <tr><td>  Description:                      </td><td>  Save topic text, typically obtained by readTopicText(). Topic data usually includes meta data; the file attachment meta data is replaced by the meta data from the topic file if it exists.  </td></tr>
7303             <tr><td>  Parameter: <code>$web</code>                 </td><td>  Web name, e.g. <code>"Main"</code>, or empty  </td></tr>
7304             <tr><td>  Parameter: <code>$topic</code>               </td><td>  Topic name, e.g. <code>"MyTopic"</code>, or <code>"Main.MyTopic"</code>  </td></tr>
7305             <tr><td>  Parameter: <code>$text</code>                </td><td>  Topic text to save, assumed to include meta data  </td></tr>
7306             <tr><td>  Parameter: <code>$ignorePermissions</code>   </td><td>  Set to <code>"1"</code> if checkAccessPermission() is already performed and OK  </td></tr>
7307             <tr><td>  Parameter: <code>$dontNotify</code>          </td><td>  Set to <code>"1"</code> if not to notify users of the change  </td></tr>
7308             <tr><td>  Return: <code>$oopsUrl</code>                </td><td>  Empty string if OK; the <code>$oopsUrl</code> for calling redirectCgiQuery() in case of error  </td></tr>
7309 rizwank 1.1 <tr><td>  Since:                            </td><td>  TWiki::Plugins::VERSION 1.010 (31 Dec 2002)  </td></tr>
7310             </table>
7311             <p />
7312             <ul>
7313             <li> Example: <br />
7314                <code>my $oopsUrl = TWiki::Func::setTopicEditLock( $web, $topic, 1 );</code> <br />
7315                <code>if( $oopsUrl ) {</code> <br />
7316                <code>&nbsp; &nbsp; TWiki::Func::redirectCgiQuery( $query, $oopsUrl ); &nbsp; # assuming valid query</code> <br />
7317                <code>&nbsp; &nbsp; return;</code> <br />
7318                <code>}</code> <br />
7319                <code>my $text = TWiki::Func::readTopicText( $web, $topic );&nbsp; &nbsp; &nbsp; &nbsp; # read topic text</code> <br />
7320                <code># check for oops URL in case of error:</code> <br />
7321                <code>if( $text =~ /^http.*?\/oops/ ) {</code> <br />
7322                <code>&nbsp; &nbsp; TWiki::Func::redirectCgiQuery( $query, $text );</code> <br />
7323                <code>&nbsp; &nbsp; return;</code> <br />
7324                <code>}</code> <br />
7325                <code># do topic text manipulation like:</code> <br />
7326                <code>$text =~ s/old/new/g;</code> <br />
7327                <code># do meta data manipulation like:</code> <br />
7328                <code>$text =~ s/(META\:FIELD.*?name\=\"TopicClassification\".*?value\=\")[^\"]*/$1BugResolved/;</code> <br />
7329                <code>$oopsUrl = TWiki::Func::saveTopicText( $web, $topic, $text ); # save topic text</code> <br />
7330 rizwank 1.1    <code>TWiki::Func::setTopicEditLock( $web, $topic, 0 ); &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; # unlock topic</code> <br />
7331                <code>if( $oopsUrl ) {</code> <br />
7332                <code>&nbsp; &nbsp; TWiki::Func::redirectCgiQuery( $query, $oopsUrl );</code> <br />
7333                <code>&nbsp; &nbsp; return;</code> <br />
7334                <code>}</code>
7335             </li>
7336             </ul>
7337             <p />
7338             <h3><a name="getPublicWebList_webs"> </a> getPublicWebList( ) ==&gt; @webs </h3>
7339             <p />
7340             <table border="1" cellspacing="0" cellpadding="1"> <tr><td>  Description:     </td><td>  Get list of all public webs, e.g. all webs that do not have the <code>NOSEARCHALL</code> flag set in the WebPreferences  </td></tr>
7341             <tr><td>  Return: <code>@webs</code>  </td><td>  List of all public webs, e.g. <code>( "Main",&nbsp; "Know", "TWiki" )</code>  </td></tr>
7342             <tr><td>  Since:           </td><td>  TWiki::Plugins::VERSION 1.000 (7 Dec 2002)  </td></tr>
7343             </table>
7344             <p />
7345             <h3><a name="getTopicList_web_topics"> </a> getTopicList( $web ) ==&gt; @topics </h3>
7346             <p />
7347             <table border="1" cellspacing="0" cellpadding="1"> <tr><td>  Description:       </td><td>  Get list of all topics in a web  </td></tr>
7348             <tr><td>  Parameter: <code>$web</code>  </td><td>  Web name, required, e.g. <code>"Sandbox"</code>  </td></tr>
7349             <tr><td>  Return: <code>@topics</code>  </td><td>  Topic list, e.g. <code>( "WebChanges",&nbsp; "WebHome", "WebIndex", "WebNotify" )</code>  </td></tr>
7350             <tr><td>  Since:             </td><td>  TWiki::Plugins::VERSION 1.000 (7 Dec 2002)  </td></tr>
7351 rizwank 1.1 </table>
7352             <p />
7353             <h2><a name="Functions_Rendering"> </a> Functions: Rendering </h2>
7354             <p />
7355             <h3><a name="expandCommonVariables_text_topic"> </a> expandCommonVariables( $text, $topic, $web ) ==&gt; $text </h3>
7356             <p />
7357             <table border="1" cellspacing="0" cellpadding="1"> <tr><td>  Description:         </td><td>  Expand all common <code>%VARIABLES%</code>  </td></tr>
7358             <tr><td>  Parameter: <code>$text</code>   </td><td>  Text with variables to expand, e.g. <code>"Current user is %WIKIUSER%"</code>  </td></tr>
7359             <tr><td>  Parameter: <code>$topic</code>  </td><td>  Current topic name, e.g. <code>"WebNotify"</code>  </td></tr>
7360             <tr><td>  Parameter: <code>$web</code>    </td><td>  Web name, optional, e.g. <code>"Main"</code>. The current web is taken if missing  </td></tr>
7361             <tr><td>  Return: <code>$text</code>      </td><td>  Expanded text, e.g. <code>"Current user is TWikiGuest"</code>  </td></tr>
7362             <tr><td>  Since:               </td><td>  TWiki::Plugins::VERSION 1.000 (7 Dec 2002)  </td></tr>
7363             </table>
7364             <p />
7365             <h3><a name="renderText_text_web_text"> </a> renderText( $text, $web ) ==&gt; $text </h3>
7366             <p />
7367             <table border="1" cellspacing="0" cellpadding="1"> <tr><td>  Description:        </td><td>  Render text from TWiki markup into XHTML as defined in <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/TextFormattingRules">TWiki.TextFormattingRules</a>  </td></tr>
7368             <tr><td>  Parameter: <code>$text</code>  </td><td>  Text to render, e.g. <code>"*bold* text and =fixed font="</code>  </td></tr>
7369             <tr><td>  Parameter: <code>$web</code>   </td><td>  Web name, optional, e.g. <code>"Main"</code>. The current web is taken if missing  </td></tr>
7370             <tr><td>  Return: <code>$text</code>     </td><td>  XHTML text, e.g. <code>"&lt;b&gt;bold&lt;/b&gt; and &lt;code&gt;fixed font&lt;/code&gt;"</code>  </td></tr>
7371             <tr><td>  Since:              </td><td>  TWiki::Plugins::VERSION 1.000 (7 Dec 2002)  </td></tr>
7372 rizwank 1.1 </table>
7373             <p />
7374             <h3><a name="internalLink_pre_web_topic_label"> </a> internalLink( $pre, $web, $topic, $label, $anchor, $createLink ) ==&gt; $text </h3>
7375             <p />
7376             <table border="1" cellspacing="0" cellpadding="1"> <tr><td>  Description:              </td><td>  Render topic name and link label into an XHTML link. Normally you do not need to call this funtion, it is called internally by <code>renderText()</code>  </td></tr>
7377             <tr><td>  Parameter: <code>$pre</code>         </td><td>  Text occuring before the TWiki link syntax, optional  </td></tr>
7378             <tr><td>  Parameter: <code>$web</code>         </td><td>  Web name, required, e.g. <code>"Main"</code>  </td></tr>
7379             <tr><td>  Parameter: <code>$topic</code>       </td><td>  Topic name to link to, required, e.g. <code>"WebNotify"</code>  </td></tr>
7380             <tr><td>  Parameter: <code>$label</code>       </td><td>  Link label, required. Usually the same as <code>$topic</code>, e.g. <code>"notify"</code>  </td></tr>
7381             <tr><td>  Parameter: <code>$anchor</code>      </td><td>  Anchor, optional, e.g. <code>"#Jump"</code>  </td></tr>
7382             <tr><td>  Parameter: <code>$createLink</code>  </td><td>  Set to <code>"1"</code> to add question linked mark after topic name if topic does not exist;<br /> set to <code>"0"</code> to suppress link for non-existing topics  </td></tr>
7383             <tr><td>  Return: <code>$text</code>           </td><td>  XHTML anchor, e.g. <code>"&lt;a href="http://TWiki.org/cgi-bin/view/Main/WebNotify#Jump"&gt;notify&lt;/a&gt;"</code>  </td></tr>
7384             <tr><td>  Since:                    </td><td>  TWiki::Plugins::VERSION 1.000 (7 Dec 2002)  </td></tr>
7385             </table>
7386             <p />
7387             <h3><a name="search_text_text_text"> </a> search text( $text ) ==&gt; $text </h3>
7388             <p />
7389             <table border="1" cellspacing="0" cellpadding="1"> <tr><td>  Description:        </td><td>  This is not a function, just a how-to note. Use: <code>expandCommonVariables("%SEARCH{...}%" );</code>  </td></tr>
7390             <tr><td>  Parameter: <code>$text</code>  </td><td>  Search variable  </td></tr>
7391             <tr><td>  Return: <code>$text</code>   </td><td>  Search result in <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/FormattedSearch">TWiki.FormattedSearch</a> format  </td></tr>
7392             </table>
7393 rizwank 1.1 <p />
7394             <h3><a name="formatTime_time_format_timezone"> </a><a name="formatTime_time_format_timezone_"> </a> formatTime( $time, $format, $timezone ) ==&gt; $text </h3>
7395             <p />
7396             <table border="1" cellspacing="0" cellpadding="1"> <tr><td>  Description:             </td><td>  Format the time in seconds into the desired time string  </td></tr>
7397             <tr><td>  Parameter: <code>$time</code>      </td><td>  Time in epoc seconds  </td></tr>
7398             <tr><td>  Parameter: <code>$format</code>    </td><td>  Format type, optional. Default e.g. <code>" TWiki::Plugins::VERSION 1.010 (31 Dec 2002) - 19:30"</code>, can be <code>"iso"</code> (e.g. <code>"2002-12-31T19:30Z"</code>), <code>"rcs"</code> (e.g. <code>"2001/12/31 23:59:59"</code>, <code>"http"</code> for HTTP header format (e.g. <code>"Thu, 23 Jul 1998 07:21:56 GMT"</code>)  </td></tr>
7399             <tr><td>  Parameter: <code>$timezone</code>  </td><td>  either not defined (uses the displaytime setting), "gmtime", or "servertime"  </td></tr>
7400             <tr><td>  Return: <code>$text</code>         </td><td>  Formatted time string  </td></tr>
7401             <tr><td>  Note:                   </td><td>  if you used the removed formatGmTime, add a third parameter "gmtime"  </td></tr>
7402             <tr><td>  Since:                  </td><td>  TWiki::Plugins::VERSION 1.020 (26 Feb 2004)  </td></tr>
7403             </table>
7404             <p />
7405             <h3><a name="formatGmTime_time_format_text"> </a> formatGmTime( $time, $format ) ==&gt; $text </h3>
7406             <p />
7407             <table border="1" cellspacing="0" cellpadding="1"> <tr><td>  NOTE:                 </td><td>  <b>This function is deprecated and should not be used. Use formatTime() instead</b>  </td></tr>
7408             <tr><td>  Description:          </td><td>  Format the time to GM time  </td></tr>
7409             <tr><td>  Parameter: <code>$time</code>    </td><td>  Time in epoc seconds  </td></tr>
7410             <tr><td>  Parameter: <code>$format</code>  </td><td>  Format type, optional. Default e.g. <code>"31 Dec 2002 - 19:30"</code>, can be <code>"iso"</code> (e.g. <code>"2002-12-31T19:30Z"</code>), <code>"rcs"</code> (e.g. <code>"2001/12/31 23:59:59"</code>, <code>"http"</code> for HTTP header format (e.g. <code>"Thu, 23 Jul 1998 07:21:56 GMT"</code>)  </td></tr>
7411             <tr><td>  Return: <code>$text</code>       </td><td>  Formatted time string  </td></tr>
7412             <tr><td>  Since:                </td><td>  TWiki::Plugins::VERSION 1.000 (7 Dec 2002)  </td></tr>
7413             </table>
7414 rizwank 1.1 <p />
7415             <h2><a name="Functions_File_I_O"> </a> Functions: File I/O </h2>
7416             <p />
7417             <h3><a name="getDataDir_dir"> </a> getDataDir( ) ==&gt; $dir </h3>
7418             <p />
7419             <table border="1" cellspacing="0" cellpadding="1"> <tr><td>  Description:    </td><td>  Get data directory (topic file root)  </td></tr>
7420             <tr><td>  Return: <code>$dir</code>  </td><td>  Data directory, e.g. <code>"/twiki/data"</code>  </td></tr>
7421             <tr><td>  Since:          </td><td>  TWiki::Plugins::VERSION 1.000 (7 Dec 2002)  </td></tr>
7422             </table>
7423             <p />
7424             <h3><a name="getPubDir_dir"> </a> getPubDir( ) ==&gt; $dir </h3>
7425             <p />
7426             <table border="1" cellspacing="0" cellpadding="1"> <tr><td>  Description:    </td><td>  Get pub directory (file attachment root). Attachments are in <code>$dir/Web/TopicName</code>  </td></tr>
7427             <tr><td>  Return: <code>$dir</code>  </td><td>  Pub directory, e.g. <code>"/htdocs/twiki/pub"</code>  </td></tr>
7428             <tr><td>  Since:          </td><td>  TWiki::Plugins::VERSION 1.000 (7 Dec 2002)  </td></tr>
7429             </table>
7430             <p />
7431             <h3><a name="readTopic_web_topic_meta_text"> </a><a name="readTopic_web_topic_meta_text_"> </a> readTopic( $web, $topic ) ==&gt; ( $meta, $text ) </h3>
7432             <p />
7433             <table border="1" cellspacing="0" cellpadding="1"> <tr><td>  NOTE:                       </td><td>  <b>The following function is deprecated and should not be used. Use readTopicText() instead</b>  </td></tr>
7434             <tr><td>  Description:                </td><td>  Read topic text and meta data, regardless of access permissions.  </td></tr>
7435 rizwank 1.1 <tr><td>  Parameter: <code>$web</code>           </td><td>  Web name, required, e.g. <code>"Main"</code>  </td></tr>
7436             <tr><td>  Parameter: <code>$topic</code>         </td><td>  Topic name, required, e.g. <code>"TokyoOffice"</code>  </td></tr>
7437             <tr><td>  Return: <code>( $meta, $text )</code>  </td><td>  Meta data object and topic text  </td></tr>
7438             <tr><td>  Since:                      </td><td>  TWiki::Plugins::VERSION 1.000 (7 Dec 2002)  </td></tr>
7439             </table>
7440             <p />
7441             <h3><a name="readTemplate_name_skin_text"> </a> readTemplate( $name, $skin ) ==&gt; $text </h3>
7442             <p />
7443             <table border="1" cellspacing="0" cellpadding="1"> <tr><td>  Description:        </td><td>  Read a template or skin file. Embedded <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/TWikiTemplates">template directives</a> get expanded  </td></tr>
7444             <tr><td>  Parameter: <code>$name</code>  </td><td>  Template name, e.g. <code>"view"</code>  </td></tr>
7445             <tr><td>  Parameter: <code>$skin</code>  </td><td>  Skin name, optional, e.g. <code>"print"</code>  </td></tr>
7446             <tr><td>  Return: <code>$text</code>     </td><td>  Template text  </td></tr>
7447             <tr><td>  Since:              </td><td>  TWiki::Plugins::VERSION 1.000 (7 Dec 2002)  </td></tr>
7448             </table>
7449             <p />
7450             <h3><a name="readFile_filename_text"> </a> readFile( $filename ) ==&gt; $text </h3>
7451             <p />
7452             <table border="1" cellspacing="0" cellpadding="1"> <tr><td>  Description:            </td><td>  Read text file, low level. NOTE: For topics use readTopicText()  </td></tr>
7453             <tr><td>  Parameter: <code>$filename</code>  </td><td>  Full path name of file  </td></tr>
7454             <tr><td>  Return: <code>$text</code>         </td><td>  Content of file  </td></tr>
7455             <tr><td>  Since:                  </td><td>  TWiki::Plugins::VERSION 1.000 (7 Dec 2002)  </td></tr>
7456 rizwank 1.1 </table>
7457             <p />
7458             <h3><a name="saveFile_filename_text"> </a><a name="saveFile_filename_text_"> </a> saveFile( $filename, $text ) </h3>
7459             <p />
7460             <table border="1" cellspacing="0" cellpadding="1"> <tr><td>  Description:            </td><td>  Save text file, low level. NOTE: For topics use saveTopicText()  </td></tr>
7461             <tr><td>  Parameter: <code>$filename</code>  </td><td>  Full path name of file  </td></tr>
7462             <tr><td>  Parameter: <code>$text</code>      </td><td>  Text to save  </td></tr>
7463             <tr><td>  Return:                 </td><td>  none  </td></tr>
7464             <tr><td>  Since:                  </td><td>  TWiki::Plugins::VERSION 1.000 (7 Dec 2002)  </td></tr>
7465             <tr><td>  TODO:                   </td><td>  This should return an error for the different failure modes.  </td></tr>
7466             </table>
7467             <p />
7468             <h3><a name="writeWarning_text"> </a><a name="writeWarning_text_"> </a> writeWarning( $text ) </h3>
7469             <p />
7470             <table border="1" cellspacing="0" cellpadding="1"> <tr><td>  Description:        </td><td>  Log Warning that may require admin intervention to data/warning.txt  </td></tr>
7471             <tr><td>  Parameter: <code>$text</code>  </td><td>  Text to write; timestamp gets added  </td></tr>
7472             <tr><td>  Return:             </td><td>  none  </td></tr>
7473             <tr><td>  Since:              </td><td>  TWiki::Plugins::VERSION 1.020 (16 Feb 2004)  </td></tr>
7474             </table>
7475             <p />
7476             <h3><a name="writeDebug_text"> </a><a name="writeDebug_text_"> </a> writeDebug( $text ) </h3>
7477 rizwank 1.1 <p />
7478             <table border="1" cellspacing="0" cellpadding="1"> <tr><td>  Description:        </td><td>  Log debug message to data/debug.txt  </td></tr>
7479             <tr><td>  Parameter: <code>$text</code>  </td><td>  Text to write; timestamp gets added  </td></tr>
7480             <tr><td>  Return:             </td><td>  none  </td></tr>
7481             <tr><td>  Since:              </td><td>  TWiki::Plugins::VERSION 1.020 (16 Feb 2004)  </td></tr>
7482             </table>
7483             <p />
7484             <h2><a name="Functions_System_and_I18N_relate"> </a> Functions: System and I18N related </h2>
7485             <p />
7486             <h3><a name="getRegularExpression_regexName_p"> </a> getRegularExpression( $regexName ) ==&gt; $pattern </h3>
7487             <p />
7488             <table border="1" cellspacing="0" cellpadding="1"> <tr><td>  Description:             </td><td>  Retrieves a TWiki predefined regular expression  </td></tr>
7489             <tr><td>  Parameter: <code>$regexName</code>  </td><td>  Name of the regular expression to retrieve.  See notes below  </td></tr>
7490             <tr><td>  Return:                  </td><td>  String or precompiled regular expression matching as described below  </td></tr>
7491             <tr><td>  Since:                   </td><td>  TWiki::Plugins::VERSION 1.020 (9 Feb 2004)  </td></tr>
7492             </table>
7493             <p />
7494             <strong><em>Notes:</em></strong> TWiki internally precompiles several regular expressions to represent various string entities
7495             in an I18N-compatible manner.  Plugins are encouraged to use these in matching where appropriate.
7496             The following are guaranteed to be present; others may exist, but their use is unsupported and
7497             they may be removed in future TWiki versions.  Those which are marked "CC" are for use within
7498 rizwank 1.1 character classes and may not produce the desired results outside of them.
7499             <p />
7500             <table border="1" cellspacing="0" cellpadding="1"> <tr><th bgcolor="#99CCCC"> <strong>Name</strong> </th><th bgcolor="#99CCCC"> <strong>Matches</strong> </th><th bgcolor="#99CCCC"> <strong>CC</strong> </th></tr>
7501             <tr><td>  upperAlpha  </td><td>  Upper case characters  </td><td>  Y  </td></tr>
7502             <tr><td>  lowerAlpha  </td><td>  Lower case characters  </td><td>  Y  </td></tr>
7503             <tr><td>  mixedAlpha  </td><td>  Alphabetic characters  </td><td>  Y  </td></tr>
7504             <tr><td>  mixedAlphaNum  </td><td>  Alphanumeric charactecs  </td><td>  Y  </td></tr>
7505             <tr><td>  wikiWordRegex  </td><td>  WikiWords  </td><td>  N  </td></tr>
7506             </table>
7507             <p />
7508             Example:
7509             <pre>
7510                my $upper = TWiki::Func::getRegularExpression("upperAlpha");
7511                my $alpha = TWiki::Func::getRegularExpression("mixedAlpha");
7512                my $capitalized = qr/[$upper][$alpha]+/;
7513             </pre>
7514             <p />
7515             <h3><a name="checkDependencies_moduleName_dep"> </a> checkDependencies( $moduleName, $dependenciesRef ) ==&gt; $error </h3>
7516             <p />
7517             <table border="1" cellspacing="0" cellpadding="1"> <tr><td>  Description:  </td><td>  Checks a list of Perl dependencies at runtime  </td></tr>
7518             <tr><td>  Parameter: <code>$moduleName</code>  </td><td>  Context description e.g. name of the module being checked  </td></tr>
7519 rizwank 1.1 <tr><td>  Parameter: <code>$dependenciesRef</code>  </td><td>  Reference of list of hashes containing dependency information; see notes below  </td></tr>
7520             <tr><td>  Return: <code>$error</code>  </td><td>  undef if dependencies are OK, an error message otherwise  </td></tr>
7521             <tr><td>  Since:  </td><td>  TWiki::Plugins::VERSION 1.025 (01 Aug 2004)  </td></tr>
7522             </table>
7523             <p />
7524             The dependencies are expressed as a list of hashes. Each hash contains
7525             the name of a package and (optionally) a boolean constraint on the VERSION
7526             variable in that package. It is usually used from the <code>initPlugin</code> method
7527             like this:
7528             <pre>
7529                if( $TWiki::Plugins::VERSION &gt;= 1.025 ) {
7530                   my @deps = (
7531                         { package =&gt; 'TWiki::Plugins::CalendarPlugin', constraint =&gt; '&gt;= 5.030' },
7532                         { package =&gt; 'Time::ParseDate' },
7533                         { package =&gt; 'Apache::VMonitor' }
7534                   );
7535                   my $err = TWiki::Func::checkDependencies( $pluginName, \@deps );
7536                   if( $err ) {
7537                         TWiki::Func::writeWarning( $err );
7538                         print STDERR $err; # print to webserver log file
7539                         return 0; # plugin initialisation failed
7540 rizwank 1.1       }
7541                }
7542             </pre>
7543             <p />
7544             <h2><a name="Copyright_and_License"> </a> Copyright and License </h2>
7545             <p />
7546             Copyright (C) 2000-2004 Peter Thoeny, <a href="mailto:Peter@Thoeny.com">Peter@Thoeny.com</a>
7547             <p />
7548             This program is free software; you can redistribute it and/or
7549             modify it under the terms of the GNU General Public License
7550             as published by the Free Software Foundation; either version 2
7551             of the License, or (at your option) any later version.
7552             <p />
7553             This program is distributed in the hope that it will be useful,
7554             but WITHOUT ANY WARRANTY; without even the implied warranty of
7555             MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
7556             GNU General Public License for more details, published at 
7557             <a href="http://www.gnu.org/copyleft/gpl.html" target="_top">http://www.gnu.org/copyleft/gpl.html</a>
7558             <p />
7559             </noautolink>
7560             <p />
7561 rizwank 1.1 <strong><em>NOTE:</em></strong> Above text is copied from the TWiki::Plugins/PerlDocPlugin output of <code>TWiki::Func</code> in <code>twiki</code> format. In case you want to get dynamically updated documentation based on the actual Perl module, install the PerlDocPlugin and replace above text with <code>%PERLDOC{"TWiki::Func"}%</code>.
7562             <p />
7563             -- <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/Main/PeterThoeny">PeterThoeny</a> - 31 Dec 2002
7564             <p />
7565             <p />
7566             <hr />
7567             <p />
7568             <h1><a name="TWiki_Site_Tools"> </a> TWiki Site Tools </h1>
7569             <p />
7570             <em>Utilities for searching, navigation, and monitoring site activity</em>
7571             <p />
7572             <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/TWikiSiteTools">TWikiSiteTools</a> include utilities for navigating, searching and keeping up with site activity. Preferences can be configured by web or site-wide. You are currently in the <strong>TWiki</strong> web. In particular, TWiki provides two highly configurable, automated site monitoring tools, <strong>WebNotify</strong>, to email alerts when topics are edited, and <strong>WebStats</strong>, to generate detailed activity reports.
7573             <p />
7574             <h2><a name="WebNotify_Recent_Changes_Alert"> </a> WebNotify Recent Changes Alert </h2>
7575             <p />
7576             Each TWiki web has an automatic email alert service that sends a list of recent changes on a preset schedule, like once a day. Users can subscribe and unsubscribe using <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/WebNotify">WebNotify</a> in each web. The Perl script <code>mailnotify</code> is called by a background process at regular intervals. The script sends an automated email to subscribed users if topics were changed in a web since the script was last run.
7577             <p />
7578             <ul>
7579             <li> You can create a <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/WebNotify">WebNotify</a> link using <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/TWikiVariables">TWikiVariables</a> with <code><b>%NOTIFYTOPIC%</b></code>
7580             </li>
7581             </ul>
7582 rizwank 1.1 <p />
7583             <p />
7584             <strong><em>Format:</em></strong> TWiki handles entries in bullet list (<code>&lt;space&gt;&lt;space&gt;&lt;space&gt;*</code>) format containing the <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/WikiName">WikiName</a> of a user; a WikiName with e-mail address; or a <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/Main/TWikiGroups">TWikiGroup</a>. Examples:
7585             <p />
7586             <ul>
7587             <li> <code>Main.FredBloggs</code>
7588             </li>
7589             <li> <code>Main.FredBloggs - secondary@home.com</code>
7590             </li>
7591             <li> <code>Main.EngineeringGroup</code>
7592             </li>
7593             </ul>
7594             <p />
7595             The first entry is the default form, the notification gets sent to the e-mail address specified in the user's home page. The second entry lists an alternative e-mail address. The third entry specifies a group, the notification gets sent to each member of the group.
7596             <p />
7597             <p />
7598             <p />
7599             You can also use <code>%MAINWEB%</code> instead of <code>Main</code>, but this is not necessary even if you have renamed the main web by configuring <code>$mainWebname</code> in <code>TWiki.cfg</code>.  
7600             <p />
7601             <p />
7602             <h3><a name="Configuring_Outgoing_Mail"> </a> Configuring Outgoing Mail </h3>
7603 rizwank 1.1 <p />
7604             TWiki will use the <code><b>Net::SMTP</b></code> module if it is installed on your system. Set this with the <code><b>SMTPMAILHOST</b></code> variable in <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/TWikiPreferences">TWikiPreferences</a>.
7605             <p />
7606             The notify e-mail uses the default <code>changes.tmpl</code> template, or a skin if activated in the <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/TWikiPreferences">TWikiPreferences</a>.
7607             <p />
7608             mailnotify also relies on two hidden files in each <code>TWiki/data/[web]</code> directory: <code>.changes</code> and <code>.mailnotify.</code> Make sure both are writable by your web server process. <code>.changes</code> contains a list of changes; go ahead and make this empty. <code>.mailnotify</code> contains a timestamp of the last time notification was done.
7609             <p />
7610             You can use an external mail program, like <code><b>sendmail</b></code>, if the <code>Net::SMTP</code> module is not installed. Set the program path in <code><b>$mailProgram</b></code> in <code><b>TWiki.cfg</b></code>.
7611             <p />
7612             <ul>
7613             <li> <img src="./pub/TWiki/TWikiDocGraphics/help.gif" border="0" alt="HELP" width="16" height="16" /> Net::SMTP can be easily disabled (ex: if there is an installation error) by setting <code><b>SMTPMAILHOST</b></code> in <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/TWikiPreferences">TWikiPreferences</a> to an empty value.
7614             </li>
7615             </ul>
7616             <p />
7617             <ul>
7618             <li> <img src="./pub/TWiki/TWikiDocGraphics/tip.gif" border="0" alt="TIP" width="16" height="16" /> You can set a separate <code><b>SMTPSENDERHOST</b></code> variable to define the mail sender host (some SMTP installations require this). 
7619             </li>
7620             </ul>
7621             <p />
7622             <h3><a name="Setting_the_Automatic_Email_Sche"> </a> Setting the Automatic Email Schedule </h3>
7623             <p />
7624 rizwank 1.1 <strong>For Unix platforms:</strong> Edit the <code>cron</code> table so that <code>mailnotify</code> is called in an interval of your choice. Please consult <code>man crontab</code> of how to modify the table that schedules program execution at certain intervals. Example:
7625             <pre>
7626             % crontab -e
7627             0 2 * * * (cd /path/to/twiki/bin; ./mailnotify -q)
7628             </pre>
7629             The above line will run mailnotify nightly at 02:00. The <code>-q</code> switch suppresses all normal output.
7630             <p />
7631             <strong>For ISP installations:</strong> Many ISPs don't allow hosted accounts direct cron access, as it's often used for things that can heavily load the server. Workaround scripts are available.
7632             <p />
7633             <strong>On Windows NT/2000:</strong> You can use a scheduled task if you have administrative privileges.
7634             <strong><em>Note:</em></strong> AT on an NT machine is pretty limited.
7635             Microsoft lists several third-party
7636             <a href="http://www.microsoft.com/ntserver/partners/findoffering/serversolutions/Maintnce.asp#cron" target="_top">replacements</a>. <a href="http://twiki.org/cgi-bin/view/Codev/CronTabWin" title="'Codev/CronTabWin' on TWiki.org">TWiki:Codev/CronTabWin</a> is a free scheduler for Windows.
7637             <p />
7638             <h2><a name="WebStatistics_Site_Usage_Log"> </a> WebStatistics Site Usage Log </h2>
7639             <p />
7640             You can generate a listing manually, or on an automated schedule, of visits to individual pages, on a per web basis. Compiled as a running total on a monthly basis. Includes totals for Topic Views, Topic Saves, Attachment Uploads, Most Popular Topics with number of views, and Top Contributors showing total of saves and attachment uploads. Previous months are saved.
7641             <p />
7642             <ul>
7643             <li> You can create a <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/WebStatistics">WebStatistics</a> link using <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/TWikiVariables">TWikiVariables</a> with <code><b>%STATISTICSTOPIC%</b></code>
7644             </li>
7645 rizwank 1.1 </ul>
7646             <p />
7647             <h3><a name="Configuring_for_Automatic_Operat"> </a> Configuring for Automatic Operation </h3>
7648             <p />
7649             <ul>
7650             <li> You can automatically generate usage statistics for all webs. To enable this:
7651             <ul>
7652             <li> Make sure variable <code>$doLogTopicView, $doLogTopicSave and $doLogTopicUpload</code> in <code>TWiki.cfg</code> are set. This will generate log file entries (see below).
7653             </li>
7654             <li> The <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/WebStatistics">WebStatistics</a> topic must be present in all webs where you want to have statistics. You can use the topic in the Main web as a template.
7655             </li>
7656             <li> Call the <code>twiki/bin/statistics</code> script from a cron job, once a day is recommended. This will update the <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/WebStatistics">WebStatistics</a> topics in all webs.
7657             </li>
7658             <li> <strong><em>Attention:</em></strong> The script must run as the same user as the CGI scripts are running, which is user <code>nobody</code> on many systems. Example crontab entry: <br> <code>0 0 * * * (cd /path/to/TWiki/bin; ./statistics &gt;/dev/null 2&gt;&amp;1)</code>
7659             </li>
7660             <li> There is a workaround in case you can't run the script as user <code>nobody</code> : Run the utility <code>twiki/bin/geturl</code> in your cron job and specify the URL of the <code>twiki/bin/statistics</code> script as a parameter. Example: <br> <code>0 0 * * * (cd /path/to/TWiki/bin; ./geturl mydomain.com /urlpath/to/TWiki/bin/statistics &gt;/dev/null 2&gt;&amp;1)</code>
7661             </li>
7662             </ul>
7663             </li>
7664             </ul>
7665             <p />
7666 rizwank 1.1 <h3><a name="Generating_Statistics_Manually_b"> </a> Generating Statistics Manually by URL </h3>
7667             <p />
7668             <ul>
7669             <li> The <code>twiki/bin/statistics</code> script can also be executed as a CGI script, just enter the URL in your browser. Examples:
7670             <ul>
7671             <li> Update current month for all webs: <br> <code>http://mydomain.com/twiki/bin/statistics</code>
7672             </li>
7673             <li> Update current month for Main web only: <br> <code>http://mydomain.com/twiki/bin/statistics/Main</code>
7674             </li>
7675             <li> Update January 2000 for Main web: <br> <code>http://mydomain.com/twiki/bin/statistics/Main?logdate=200001</code>
7676             </li>
7677             </ul>
7678             </li>
7679             </ul>
7680             <p />
7681             <h3><a name="Log_File_Details"> </a> Log File Details </h3>
7682             <p />
7683             TWiki generates monthly log files which are used by the statistics
7684             <ul>
7685             <li> The log directory is defined by the <code>$logDir</code> variable in TWiki.cfg
7686             </li>
7687 rizwank 1.1 <li> The file name is <code>log&lt;year&gt;&lt;month&gt;.txt</code>
7688             </li>
7689             <li> Example path name: <code>twiki/data/log200410.txt</code>
7690             </li>
7691             <li> Each access gets logged as: <br />
7692                  <code>| &lt;time&gt; | &lt;wikiusername&gt; | &lt;action&gt; | &lt;web&gt;.&lt;topic&gt; | &lt;extra info&gt; | &lt;IP address&gt; |</code>
7693             </li>
7694             <li> Example log entry: <br />
7695                  <code>| 30 Oct 2004 - 02:29 | Main.TWikiGuest | view | TWiki.WebRss |&nbsp; | 66.124.232.02 |</code>
7696             </li>
7697             <li> Actions are logged if enabled in TWiki.cfg by the <code>$doLogTopic&lt;action&gt;</code> flags
7698             </li>
7699             <li> Logged actions:
7700                  <table border="1" cellspacing="0" cellpadding="1"> <tr><th bgcolor="#99CCCC"> <strong>Script</strong> </th><th bgcolor="#99CCCC"> <strong>Action name</strong> </th><th bgcolor="#99CCCC"> <strong>Extra info</strong> </th></tr>
7701                  <tr><td>  attach  </td><td>  <code>attach</code>  </td><td>  when viewing attach screen of previous uploaded attachment: <code>filename</code>  </td></tr>
7702                  <tr><td>  changes  </td><td>  <code>changes</code>  </td><td>  &nbsp;  </td></tr>
7703                  <tr><td>  edit  </td><td>  <code>edit</code>  </td><td>  when editing non-existing topic: <code>(not exist)</code>  </td></tr>
7704                  <tr><td>  register  </td><td>  <code>register</code>  </td><td>  E-mail address  </td></tr>
7705                  <tr><td>  save  </td><td>  <code>save</code>  </td><td>  when replacing existing revision: <code>repRev 1.3</code> <br /> when user checks the minor changes box: <code>dontNotify</code>  </td></tr>
7706                  <tr><td>  search  </td><td>  <code>search</code>  </td><td>  search string  </td></tr>
7707                  <tr><td>  rdiff  </td><td>  <code>rdiff</code>  </td><td>  <code>1.4 1.3</code>  </td></tr>
7708 rizwank 1.1      <tr><td>  rename  </td><td>  <code>rename</code>  </td><td>  when moving topic: <code>moved to Newweb.NewTopic</code>  </td></tr>
7709                  <tr><td>  rename  </td><td>  <code>move</code>  </td><td>  when moving attachment: <code>Attachment filename moved to Newweb.NewTopic</code>  </td></tr>
7710                  <tr><td>  upload  </td><td>  <code>upload</code>  </td><td>  filename  </td></tr>
7711                  <tr><td>  view  </td><td>  <code>view</code>  </td><td>  when viewing non-existing topic: <code>(not exist)</code> <br /> when viewing previous topic revision: <code>r1.3</code>  </td></tr>
7712             </table>
7713             </li>
7714             </ul>
7715             <p />
7716             <p />
7717             <h2><a name="WebSearch"> </a> WebSearch </h2>
7718             <p />
7719             <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/WebSearch">WebSearch</a> is an extremely fast and flexible search facility, part of the core TWiki feature set. Options include:
7720             <ul>
7721             <li> topic title or full-text search
7722             </li>
7723             <li> regular expressions
7724             </li>
7725             <li> search within web or site-wide
7726             </li>
7727             <li> index-style A-Z alphabetical listing sorted topic title
7728             </li>
7729 rizwank 1.1 <li> many more
7730             </li>
7731             </ul>
7732             <p />
7733             See also: <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/TWikiVariables">TWikiVariables</a> for including hard-coded searches in text.
7734             <p />
7735             <h3><a name="WebChanges"> </a> WebChanges </h3>
7736             <p />
7737             To check for the most recently edited topics while on-site, use the <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/WebChanges">WebChanges</a> link, usually located on the upper toolbar. It lists the most recently modified topics, newest first, along with the first couple of lines of the page content. 
7738             <p />
7739             This is simply a preset <code>SEARCH</code>. The number of topics listed by the <code>limit</code> parameter.:
7740             <blockquote style="background-color:#f5f5f5">
7741             <pre>
7742             %SEARCH{".*" web="TWiki" regex="on" nosearch="on" order="modified" <br />reverse="on" limit="50"}%
7743             </pre>
7744             </blockquote>
7745             <p />
7746             <h3><a name="WebIndex"> </a> WebIndex </h3>
7747             <p />
7748             <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/WebIndex">WebIndex</a> lists all web topics in alphabetical order, with the first couple of lines of text. This is simply a preset <code>SEARCH</code>:
7749             <blockquote style="background-color:#f5f5f5">
7750 rizwank 1.1 <pre>
7751             %SEARCH{"\.*" scope="topic" regex="on" nosearch="on"}%
7752             </pre>
7753             </blockquote>
7754             <p />
7755             -- <a href="http://twiki.org/cgi-bin/view/Main.MikeMannix" title="'Main.MikeMannix' on TWiki.org">TWiki:Main.MikeMannix</a> - 01 Dec 2001 <br />
7756             -- <a href="http://twiki.org/cgi-bin/view/Main.PeterThoeny" title="'Main.PeterThoeny' on TWiki.org">TWiki:Main.PeterThoeny</a> - 28 Aug 2004
7757             <p />
7758             <p />
7759             <hr />
7760             <p />
7761             <h1><a name="Managing_Topics"> </a> Managing Topics </h1>
7762             <p />
7763             <em>Browser-based rename, move, and delete for individual topics</em>
7764             <p />
7765             <h2><a name="Overview"> </a> Overview </h2>
7766             <p />
7767             You can use browser-based controls to change a topic's name, move it to another TWiki web, or delete it to a hidden <code>Trash</code> web.
7768             <p />
7769             <h2><a name="How_to_Rename_Move_Delete_a_Topi"> </a> How to Rename/Move/Delete a Topic </h2>
7770             <p />
7771 rizwank 1.1 <ol>
7772             <li> <strong>Click</strong> on <code><b>[More]</b></code> (bottom right of page) on the topic to be changed, then, in the new screen, on <code><b>[Rename/move]</b></code>. You can now rename and/or move/delete in one operation:
7773             </li>
7774             <li> <strong>Move/Delete:</strong> Select the target web if other than the current web - choose <code>Trash</code> to <a class="twikiAnchorLink" href="#DeleteTopic">delete a topic</a>.
7775             </li>
7776             <li> <strong>Rename:</strong> Enter the new topic name - default is current name <br />
7777                  <img src="./pub/TWiki/TWikiDocGraphics/warning.gif" border="0" alt="ALERT!" width="16" height="16" /> <strong>NOTE:</strong> You'll be warned if any of the topics to be affected are locked (being edited), or if there is a name conflict.
7778             </li>
7779             <li> <strong>Prevent updates</strong> by unchecking individual items on the list of referring links - these topics will NOT to be updated with the new name (by default, all referring links will be updated).
7780             </li>
7781             <li> <strong>Click</strong> on <code><b>[Rename/Move]</b></code>: the topic will be renamed and links to the topic updated as requested.
7782             <ul>
7783             <li> If any of the referring pages are locked then they will be listed: you can correct these later by again pressing <code><b>[Rename/Move]</b></code>.
7784             </li>
7785             <li> <img src="./pub/TWiki/TWikiDocGraphics/help.gif" border="0" alt="HELP" width="16" height="16" /> There is a <strong><em>Put back</em></strong> feature that allows you to undo a <code><b>Rename/Move/Delete</b></code> - an instruction line and undo link will appear at the bottom of the modified topic. This allows you to revert from the <em>last modification only</em>.
7786             </li>
7787             </ul>
7788             </li>
7789             </ol>
7790             <p />
7791             <a name="DeleteTopic"></a>
7792 rizwank 1.1 <h2><a name="Deleted_Topics_How_to_Clear_the"> </a><a name="Deleted_Topics_How_to_Clear_the_"> </a> Deleted Topics: How to Clear the Trash </h2>
7793             <p />
7794             Deleted topics are moved to a special <code><b>Trash</b></code> web - they are NOT physically erased from the server. All webs share <code>Trash</code> - in case of a name conflict with a topic already <code>Trash</code>, the user is alerted and asked to choose a new name.
7795             <p />
7796             The <code>Trash</code> web should be be cleared periodically, by archiving (saving) the text and RCS files if required (recommended), then deleting them from the <code>Trash</code> directory. 
7797             <p />
7798             <ul>
7799             <li> <img src="./pub/TWiki/TWikiDocGraphics/warning.gif" border="0" alt="ALERT!" width="16" height="16" /> This can only be done from on the server, not through the browser. 
7800             <ul>
7801             <li> <img src="./pub/TWiki/TWikiDocGraphics/tip.gif" border="0" alt="TIP" width="16" height="16" /> Since simple FTP access to the <code><b>Trash</b></code> directory is all that's required for maintenance, it's possible to grant <code>Trash</code> admin privileges to multiple users, while strictly limiting server access. 
7802             </li>
7803             </ul>
7804             </li>
7805             </ul>
7806             <p />
7807             <h2><a name="Redirecting_from_an_Old_Topic"> </a> Redirecting from an Old Topic </h2>
7808             <p />
7809             You can use <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/TWikiMetaData">TWikiMetaData</a> to place a command in the <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/WebTopicViewTemplate">WebTopicViewTemplate</a> and <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/WebTopicNonWikiTemplate">WebTopicNonWikiTemplate</a> that will indicate that a topic has been moved by searching for the tag %META:TOPICMOVED{...}%. Customize something like this:
7810             <p />
7811             <blockquote style="background-color:#f0f0f0">
7812             <pre>
7813 rizwank 1.1 %&lt;nop&gt;METASEARCH{type="topicmoved" web="%WEB%" topic="%TOPIC%" 
7814             title="This topic used to exist and was moved to: "}%
7815             </pre>
7816             </blockquote>
7817             <p />
7818             <h2><a name="How_Rename_Move_Works"> </a> How Rename/Move Works </h2>
7819             <p />
7820             <ol>
7821             <li> %SEARCH%, with a special template, finds and displays all occurrences of the topic name in other topics, site-wide. These referring links are by default automatically changed to the new topic and/or web name. This includes relevant <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/TWikiMetaData">TWikiMetaData</a> definitions.
7822             <ul>
7823             <li> User can omit one or more topics from the update list by unchecking them.
7824             </li>
7825             <li> <code>&lt;pre&gt;</code> and <code>&lt;verbatim&gt;</code> are honoured - no changes are made to text within these areas.
7826             </li>
7827             </ul>
7828             </li>
7829             <li> The topic is moved (if locks allow).
7830             </li>
7831             <li> References are changed (locks and permissions permitting).
7832             </li>
7833             <li> Any referring topics that can't be changed due to locks are listed - user can take note and change them at another time.
7834 rizwank 1.1 </li>
7835             </ol>
7836             <p />
7837             <h3><a name="How_Referring_Topics_Are_Found"> </a> How Referring Topics Are Found </h3>
7838             <p />
7839             Referring topics are found using the %SEARCH% variable - see the template <code><b>searchrenameview.tmpl</b></code>. First, matching topics in the current web are listed - matches are to <code><b>topic</b></code>.  Next, all webs (including the current one) are listed that match <code><b>web.topic</b></code>. Because %SEARCH% is used, webs marked in <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/WebPreferences">WebPreferences</a> as <code>NOSEARCHALL</code> will not show up in the search for references to the <code>topic</code> being changed.
7840             <p />
7841             Changed references are kept are as short as possible, ex: <code>topic</code> is used in preference to <code>web.topic</code>.
7842             <p />
7843             <h3><a name="Effect_of_User_Access_Settings"> </a> Effect of User Access Settings </h3>
7844             <p />
7845             User permissions affect the Rename function in various ways. To rename a topic, you need both <code><b>ALLOWTOPICCHANGE</b></code> and <code><b>ALLOWTOPICRENAME</b></code> permission for that topic. To alter referring topics, you need change permission. See <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/TWikiAccessControl">TWikiAccessControl</a> for information on setting up access permissions.
7846             <p />
7847             <h2><a name="Special_Considerations"> </a> Special Considerations </h2>
7848             <p />
7849             Consider carefully whether to make browser-based <strong>Rename/Move/Delete</strong> widely available, or to restrict it to an administrator/moderator group. Allowing all users to easily manipulate topics can be extremely useful in refactoring a busy web or site. However, there are at least two significant potential drawbacks to take into account: 
7850             <ul>
7851             <li> When referring links are updated, the modified topics appear in <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/WebChanges">WebChanges</a>, creating the impression that editorial changes were made. This can undermine the usefulness of <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/WebChanges">WebChanges</a>.
7852             </li>
7853             <li> Due to <a class="twikiAnchorLink" href="#RenameLimitations">current limitations</a>, fairly heavy use of Rename/Move/Delete functions can lead to an accumulation of minor technical problems (ex: broken links) and usability issues (ex: user confusion). If Rename... is used heavily, these negatives will obviously increase, in number and effect.
7854             </li>
7855 rizwank 1.1 </ul>
7856             <p />
7857             Ultimately, the size, objectives, and policies of your TWiki site, the real-world behavior of your user group, and most importantly, the initial TWiki site management leadership, will determine the most effective implementation of this feature, and the success of the site overall.
7858             <p />
7859             <a name="RenameLimitations"></a>
7860             <h2><a name="Known_Issues"> </a> Known Issues </h2>
7861             <p />
7862             <strong>Rename/Move</strong> is fairly complicated due to the dynamic generation of links. Ideally, it would be possible to run the required part of rendering in a way that would allow identification of the text to be changed. Unfortunately, these hooks don't exist in TWiki at present.  Instead, %SEARCH% is used with a special template to show the text to be changed, and the selected topics are then altered. One drawback is that <code>search</code> can show matches that will not be updated due to case differences. Other mismatches with actual rendered output are also possible as the approaches are so different.
7863             <p />
7864             The following shows some limitations of square bracket processing.
7865             <p />
7866             <blockquote style="background-color:#f0f0f0">
7867             <pre>
7868             [[Old Topic]]  =&gt; [[NewTopic][Old Topic]]
7869             [[old topic]]  =&gt; [[NewTopic][old topic]]
7870             [[old t opic]] =&gt; not changed
7871             [[OldTopic]]   =&gt; [[NewTopic]]
7872             </pre>
7873             </blockquote>
7874             <p />
7875             -- <a href="http://twiki.org/cgi-bin/view/Main.MikeMannix" title="'Main.MikeMannix' on TWiki.org">TWiki:Main.MikeMannix</a> - 27 Dec 2001
7876 rizwank 1.1 <p />
7877             <p />
7878             <hr />
7879             <p />
7880             <h1><a name="Managing_Webs"> </a> Managing Webs </h1>
7881             <p />
7882             <em>Adding webs is a web based operation; renaming and deleting webs are manual operations done directly on the server</em>
7883             <p />
7884             <h2><a name="Overview"> </a> Overview </h2>
7885             <p />
7886             A <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/TWikiSite">TWikiSite</a> is divided into webs; each one represents one subject, one area of collaboration. Administrators can add/rename/delete webs.
7887             <p />
7888             <a name="WebTemplate"></a>
7889             <h2><a name="Choose_Web_Template"> </a> Choose Web Template </h2>
7890             <p />
7891             There are two methods used to create a new web.  First you can use a specially designed <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/TemplateWeb">TemplateWeb</a>.  This is an invisible web that begins with an underscore &quot;_&quot; character.  All topics in the _default template web will be copied into your new web.
7892             <p />
7893             The second method is to use an existing web as a template web.  This may be useful if you already have a web that you like to use as a starting point.  Only topics that have names beginning with <strong>Web...</strong> (like "WebHome", "WebNotify", etc.) are copied.
7894             <p />
7895             In either case you will want to be sure to verify that your new web has all the custom modifications that you desire.
7896             <p />
7897 rizwank 1.1 <a name="CreateNewWeb"></a>
7898             <h2><a name="Adding_a_New_Web"> </a> Adding a New Web </h2>
7899             <p />
7900             <form name="admin" action="http://TWiki.org/cgi-bin/manage/TWiki/ManagingWebs" method="post">
7901             Create a new web by filling out this form. <strong><em>Note:</em></strong> It is not recommended to create a new web for each little project. You can organize content within a web using <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/TWikiForms">TWikiForms</a> and <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/FormattedSearch">FormattedSearch</a>. Cross-linking topics and search is easier if there are only a few larger webs.
7902             <table border="1" cellspacing="0" cellpadding="1"> <tr><th align="right" bgcolor="#99CCCC"> <strong>Name of new web:</strong> </th><td>  <input name="newweb" type="text" value="" size="16" />  </td><td>  Enter a short name of up to 10 characters. The name must start with an upper case letters, followed by optional upper or lower case letters or numbers  </td></tr>
7903             <tr><th align="right" bgcolor="#99CCCC"> <strong>Based on web:</strong> </th><td>  <select name="baseweb"> <option>_default</option> <option>Main</option> <option>Sandbox</option> <option>TWiki</option> </select>  </td><td>  Select a <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/TemplateWeb">TemplateWeb</a>  </td></tr>
7904             <tr><th align="right" bgcolor="#99CCCC"> <strong>Web color:</strong> </th><td>  <input name="webbgcolor" type="text" value="#D0D0D0" size="16" />  </td><td>  Enter a <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/StandardColors">StandardColors</a> code for the web  </td></tr>
7905             <tr><th align="right" bgcolor="#99CCCC"> <strong>Description:<br /> &nbsp;<br /> &nbsp;</strong> </th><td colspan="2">  <input type="text" name="sitemapwhat" value="" size="60" /><br /> Enter a short description of the web. Write <code>Web.TopicName</code> instead of just <code>TopicName</code> if you include links. This will list the web in the <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/SiteMap">SiteMap</a> (leave field empty if you prefer not to update the directory.)  </td></tr>
7906             <tr><th align="right" bgcolor="#99CCCC"> <strong>Use to...<br /> &nbsp;</strong> </th><td colspan="2">  <input type="text" name="sitemapuseto" value="...collaborate on" size="60" /><br /> Continue the sentence describing the intended use. This is also for the <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/SiteMap">SiteMap</a>  </td></tr>
7907             <tr><th align="right" bgcolor="#99CCCC"> <strong>Exclude web from "search all":</strong> </th><td>  <input type="radio" name="nosearchall" value="" checked="checked" /> No &nbsp; <input type="radio" name="nosearchall" value="on" /> Yes  </td><td>  Specify if you want to exclude the web from a "search all webs" search. Note that the <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/SiteMap">SiteMap</a> will not list the web if you select Yes.  </td></tr>
7908             <tr><td>  &nbsp;  </td><td colspan="2">  <input type="submit" value="Create new web" />  </td></tr>
7909             </table>
7910             <input name="newtopic" type="hidden" value="" />
7911             <input name="action" type="hidden" value="createweb" />
7912             </form>
7913             <p />
7914             <strong><em>Notes:</em></strong>
7915             <ul>
7916             <li> Attachments will NOT get copied over along with their topics
7917             </li>
7918 rizwank 1.1 <li> The manage script while creating the new web will update the following variables in the <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/WebPreferences">WebPreferences</a>: <code>WEBBGCOLOR</code>, <code>SITEMAPLIST</code>, <code>SITEMAPWHAT</code>, <code>SITEMAPUSETO</code> and <code>NOSEARCHALL</code>.  These variables are used to dynamically generate the <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/SiteMap">SiteMap</a>
7919             </li>
7920             <li> This script does not edit the <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/TWikiPreferences">TWiki.TWikiPreferences</a> file to update the <code>WIKIWEBLIST</code>.  This must be done by hand
7921             </li>
7922             <li> As of TWiki Release 01 Sep 2004, a web name can be a <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/WikiWord">WikiWord</a>. Prior to that it could be only <code>UPPER</code> or <code>UPPERlower</code>. A side effect of this is that if you do use a wiki name, <code>%WEB%</code> must be written as <code>&lt;nop&gt;%WEB%</code> or else it will try to link to a non-existing topic of that name
7923             </li>
7924             </ul>
7925             <p />
7926             <h2><a name="Renaming_or_Deleting_a_Web"> </a> Renaming or Deleting a Web </h2>
7927             <p />
7928             Renaming or deleting a web requires direct access to the installation files on the host server. There are currently no browser-based equivalents of the Rename/move/delete topic tools for working with webs.
7929             <p />
7930             <ol>
7931             <li> Prepare your site: Search each web for links to the target web, searching topic text for <code>Oldwebname.</code>, including the dot so you'll find references like <code>Oldwebname.SomeTopic</code>
7932             <ul>
7933             <li> Make changes as required, to <code>Newwebname.SomeTopic</code> or better yet, to <code>%MAINWEB%.SomeTopic</code>
7934             </li>
7935             </ul>
7936             </li>
7937             <li> Edit the <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/TWikiPreferences">TWikiPreferences</a> topic: Rename or delete the web from the <code>WIKIWEBLIST</code> variable
7938             </li>
7939 rizwank 1.1 <li> Login to the TWiki server, via Telnet or FTP
7940             </li>
7941             <li> Go to <code>twiki/data</code> and rename or remove the web directory
7942             </li>
7943             <li> Go to <code>twiki/templates</code> and rename or remove the web directory if present
7944             <ul>
7945             <li> <strong><em>Note:</em></strong> See <a href="http://twiki.org/cgi-bin/view/Codev.RenameWebs" title="'Codev.RenameWebs' on TWiki.org">TWiki:Codev.RenameWebs</a> for some complications
7946             </li>
7947             </ul>
7948             </li>
7949             <li> Go to <code>twiki/pub</code> and rename or remove the web directory if present
7950             </li>
7951             </ol>
7952             <p />
7953             <h3><a name="Renaming_the_MAINWEB"> </a> Renaming the MAINWEB </h3>
7954             <p />
7955             If you plan to rename the Main web, remember that TWiki stores user and group topics in <code>%MAINWEB%</code>, default named <code>Main</code>. That means, every <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/WikiName">WikiName</a> signature - <code>Main.SomeUserName</code> - points to it and would need updating (unless the variable, <code>%MAINWEB%.SomeUserName</code>, is used throughout).
7956             <p />
7957             -- <a href="http://twiki.org/cgi-bin/view/Main.MikeMannix" title="'Main.MikeMannix' on TWiki.org">TWiki:Main.MikeMannix</a> - 14 Sep 2001 <br />
7958             -- <a href="http://twiki.org/cgi-bin/view/Main.PeterThoeny" title="'Main.PeterThoeny' on TWiki.org">TWiki:Main.PeterThoeny</a> - 07 Apr 2002 <br />
7959             -- <a href="http://twiki.org/cgi-bin/view/Main.GrantBow" title="'Main.GrantBow' on TWiki.org">TWiki:Main.GrantBow</a> - 16 Jan 2003
7960 rizwank 1.1 <p />
7961             <p />
7962             <hr />
7963             <p />
7964             <h1><a name="Manage_Users"> </a> Manage Users </h1>
7965             <em>Register users on your TWiki site; change/reset/install passwords; remove user accounts</em>
7966             <p />
7967             <h2><a name="Authentication_and_Access_Contro"> </a> Authentication and Access Control </h2>
7968             <p />
7969             <ul>
7970             <li> <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/TWikiUserAuthentication">TWikiUserAuthentication</a> describes options of user authentication
7971             </li>
7972             <li> <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/TWikiAccessControl">TWikiAccessControl</a> describes how to define groups and how to restrict access to content
7973             </li>
7974             </ul>
7975             <p />
7976             <h2><a name="Register_User"> </a> Register User </h2>
7977             <p />
7978             <ul>
7979             <li> <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/TWikiRegistration">TWikiRegistration</a> is for users to fill out a form
7980             </li>
7981 rizwank 1.1 <li> <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/NewUserTemplate">NewUserTemplate</a> can be changed to customize user home pages
7982             </li>
7983             </ul>
7984             <p />
7985             <h2><a name="Change_Reset_and_Install_Passwor"> </a> Change, Reset and Install Passwords </h2>
7986             <p />
7987             <ul>
7988             <li> <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/ChangePassword">ChangePassword</a> is for users who remember their password
7989             </li>
7990             <li> <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/ResetPassword">ResetPassword</a> is for users who do <em>not</em> remember their password; they are asked to send a request to the site administrator to install a new password
7991             </li>
7992             <li> <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/InstallPassword">InstallPassword</a> is for the site administrator to install a password
7993             </li>
7994             </ul>
7995             <p />
7996             <h2><a name="Removing_User_Accounts"> </a> Removing User Accounts </h2>
7997             <p />
7998             To remove a user account:
7999             <p />
8000             <ol>
8001             <li> Edit the <code>data/.htpasswd</code> file to delete their entry (only applies if you are using a .htpasswd file)
8002 rizwank 1.1 </li>
8003             <li> Remove the <code>FredQuimby</code> line from the Main.TWikiUsers topic
8004             </li>
8005             <li> Remove user from all groups and from all the <code>ALLOWWEB/ALLOWTOPIC...</code> declarations, if any.<br /> <strong><em>Note:</em></strong> Otherwise this is a security hole as the first one to re-register with this name will be granted the permissions of the previous user.
8006             </li>
8007             <li> <em>[optional]</em> Remove their topic files: <code>data/Main/FredQuimby.txt</code> and <code>data/Main/FredQuimby.txt,v</code>
8008             </li>
8009             </ol>
8010             <p />
8011             <strong><em>Note:</em></strong> Consider leaving the user topic file in place so their past signatures and revision author entries don't end up looking like <span class="twikiNewLink" style='background : #FFFFCE;'><font color="#0000FF">AnUncreatedTopic</font><a href="http://TWiki.org/cgi-bin/edit/TWiki/AnUncreatedTopic?topicparent=TWiki.TWikiDocumentation"><sup>?</sup></a></span>. If you want to make it clear the user is inactive on your site (e.g. <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/Main/PeterThoeny">PeterThoeny</a>) or has been banished add a note to that effect and write protect the page (<a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/TWikiAccessControl">TWikiAccessControl</a>). The existance of the UserName topic prevent that user name from being re-used.
8012             <p />
8013             -- <a href="http://twiki.org/cgi-bin/view/Main.MattWilkie" title="'Main.MattWilkie' on TWiki.org">TWiki:Main.MattWilkie</a> - 21 Jul 2003 <br />
8014             -- <a href="http://twiki.org/cgi-bin/view/Main.PeterThoeny" title="'Main.PeterThoeny' on TWiki.org">TWiki:Main.PeterThoeny</a> - 15 Aug 2004
8015             <p />
8016             <p />
8017             <hr />
8018             <p />
8019             <a name="FileSystem"></a>
8020             <h1><a name="Appendix_A_TWiki_Filesystem"> </a> Appendix A: TWiki Filesystem </h1>
8021             <p />
8022             <em>Annotated directory and file listings, for the 01-Sep-2004 TWiki production release.</em>
8023 rizwank 1.1 <p />
8024             <h2><a name="Who_and_What_is_This_Good_For"> </a><a name="Who_and_What_is_This_Good_For_"> </a> Who and What is This Good For? </h2>
8025             <p />
8026             Interested <strong><em>Users</em></strong> and <strong><em>Site Administrators</em></strong> can find out in simple terms what each part of TWiki actually does. Adventurous <em>Adminstrators</em> with server access to files (via telnet, ssh or ftp) can also figure out where to look to make minor modifications, like changing hardcode text or color. <strong><em>Software Developers</em></strong> can get an at-a-glance overview of TWiki code architecture.
8027             <p />
8028             <h2><a name="Directory_Structure"> </a> Directory Structure </h2>
8029             <p />
8030             You can rename the root TWiki directory - <code><b>twiki</b></code> - to whatever you like by changing it in the <code><b>TWiki.cfg</b></code> configuration file. However, to keep the current installation and future upgrades simple, you should leave the five main subdirectories intact:
8031             <p />
8032             <table border="1" cellspacing="0" cellpadding="1"> <tr><th bgcolor="#99CCCC"> <strong>Directory:</strong> </th><th bgcolor="#99CCCC"> <strong>Files:</strong> </th><th bgcolor="#99CCCC"> <strong>Used for:</strong> </th></tr>
8033             <tr><td>  <code>twiki</code>            </td><td align="center">   <a class="twikiAnchorLink" href="#TWikiFiles">list</a>   </td><td>  Start-up info  </td></tr>
8034             <tr><td>  <code>twiki/bin</code>        </td><td align="center">   <a class="twikiAnchorLink" href="#BinFiles">list</a>   </td><td>  Perl scripts   </td></tr>
8035             <tr><td>  <code>twiki/lib</code>        </td><td align="center">   <a class="twikiAnchorLink" href="#LibFiles">list</a>   </td><td>  Configuration file, main library, Perl system modules, Plugins directory  </td></tr>
8036             <tr><td>  <code>twiki/pub</code>        </td><td align="center">   <a class="twikiAnchorLink" href="#PubFiles">list</a>   </td><td>  Public files (eg: images) and <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/FileAttachment">FileAttachments</a> and their RCS histories  </td></tr>
8037             <tr><td>  <code>twiki/data</code>       </td><td align="center">   <a class="twikiAnchorLink" href="#DataFiles">list</a>   </td><td>  Individual topics (page content) and their RCS histories  </td></tr>
8038             <tr><td>  <code>twiki/templates</code>  </td><td align="center">   <a class="twikiAnchorLink" href="#TemplatesFiles">list</a>   </td><td>  HTML templates, used by TWiki scripts  </td></tr>
8039             </table>
8040             <p />
8041             <h2><a name="File_Descriptions"> </a> File Descriptions </h2>
8042             <p />
8043             A rundown of the individual files included in the current distribution, organized by TWiki root directories.
8044 rizwank 1.1 <p />
8045             <a name="TWikiFiles"></a>
8046             <h3><a name="Files_in_twiki_code"> </a><a name="Files_in_twiki_code_"> </a> Files in <code>twiki</code> </h3>
8047             <p />
8048             Application info and the current reference documentation. <em>Full file list:</em>
8049             <p />
8050             <table border="1" cellspacing="0" cellpadding="1"> <tr><th bgcolor="#99CCCC"> <strong>File</strong> </th><th bgcolor="#99CCCC"> <strong>Used for</strong> </th></tr>
8051             <tr><td>  <code>index.html</code>  </td><td>  Links to launch TWiki after install and for files in this directory  </td></tr>
8052             <tr><td>  <code>license.txt</code>  </td><td>  GNU General Public License and TWiki-specific info  </td></tr>
8053             <tr><td>  <code>readme.txt</code>  </td><td>  General TWiki start-up info with relevant URLs  </td></tr>
8054             <tr><td>  <code>TWikiDocumentation.html</code>  </td><td>  All documentation packaged as a single page  </td></tr>
8055             <tr><td>  <code>TWikiHistory.html</code>  </td><td>  TWiki development timeline: versions, features, developers  </td></tr>
8056             <tr><td>  <code>TwikiUpgrade</code>  </td><td>  TWiki upgrade script (Beta state)  </td></tr>
8057             </table>
8058             <p />
8059             <a name="BinFiles"></a>
8060             <h3><a name="Files_in_twiki_bin_code"> </a><a name="Files_in_twiki_bin_code_"> </a> Files in <code>twiki/bin</code> </h3>
8061             <p />
8062             Perl CGI scripts. <em>Full file list:</em>
8063             <p />
8064             <table border="1" cellspacing="0" cellpadding="1"> <tr><th bgcolor="#99CCCC"> <strong>File:</strong> </th><th bgcolor="#99CCCC"> <strong>Used for:</strong> </th></tr>
8065 rizwank 1.1 <tr><td>  <code>.htaccess.txt</code>  </td><td>  Authentication. Rename to .htaccess and customize if used  </td></tr>
8066             <tr><td>  <code>attach</code>         </td><td>  Shows the attach file page (<a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/FileAttachment">FileAttachment</a>)  </td></tr>
8067             <tr><td>  <code>changes</code>        </td><td>  a simple <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/WebChanges">WebChanges</a> query  </td></tr>
8068             <tr><td>  <code>edit</code>           </td><td>  Edit a topic  </td></tr>
8069             <tr><td>  <code>geturl</code>         </td><td>  Fetch URL data  </td></tr>
8070             <tr><td>  <code>installpasswd</code>  </td><td>  Install new password by admin  </td></tr>
8071             <tr><td>  <code>mailnotify</code>     </td><td>  Script called by cron job to notify users of changes  </td></tr>
8072             <tr><td>  <code>manage</code>         </td><td>  Manage script to create new webs  </td></tr>
8073             <tr><td>  <code>oops</code>           </td><td>  Shows an OK or oops dialog  </td></tr>
8074             <tr><td>  <code>passwd</code>         </td><td>  Reset and change password  </td></tr>
8075             <tr><td>  <code>preview</code>        </td><td>  Preview topic after edit  </td></tr>
8076             <tr><td>  <code>rdiff</code>          </td><td>  See differences of topics  </td></tr>
8077             <tr><td>  <code>rdiffauth</code>      </td><td>  Copy of rdiff script (ideally a link). The .htaccess file sets this as requiring authorisation  </td></tr>
8078             <tr><td>  <code>register</code>       </td><td>  Register new users  </td></tr>
8079             <tr><td>  <code>rename</code>         </td><td>  Rename/move topics and move attachments  </td></tr>
8080             <tr><td>  <code>save</code>           </td><td>  Saves a topic, called by preview  </td></tr>
8081             <tr><td>  <code>search</code>         </td><td>  Displays search results  </td></tr>
8082             <tr><td>  <code>setlib.cfg</code>     </td><td>  Location of the TWiki libraries. Customize if needed  </td></tr>
8083             <tr><td>  <code>statistics</code>     </td><td>  Create statistics topic  </td></tr>
8084             <tr><td>  <code>testenv</code>        </td><td>  Test CGI environment variables  </td></tr>
8085             <tr><td>  <code>upload</code>         </td><td>  Does file upload (<a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/FileAttachment">FileAttachment</a>)  </td></tr>
8086 rizwank 1.1 <tr><td>  <code>view</code>           </td><td>  View a topic (<strong>the</strong> script)  </td></tr>
8087             <tr><td>  <code>viewauth</code>       </td><td>  Copy of view script (ideally a link). The .htaccess file sets this as requiring authorisation  </td></tr>
8088             <tr><td>  <code>viewfile</code>       </td><td>  View a file attachment  </td></tr>
8089             </table>
8090             <p />
8091             <a name="LibFiles"></a>
8092             <h3><a name="Files_under_twiki_lib_code"> </a><a name="Files_under_twiki_lib_code_"> </a> Files under <code>twiki/lib</code> </h3>
8093             <p />
8094             The new <code>lib/TWiki/Plugins</code> directories contain configuration, library and function files, and <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/TWikiPlugins">TWikiPlugins</a>. <em>Full file list:</em>
8095             <p />
8096             <table border="1" cellspacing="0" cellpadding="1"> <tr><th bgcolor="#99CCCC"> <strong>File:</strong> </th><th bgcolor="#99CCCC"> <strong>Used for:</strong> </th></tr>
8097             <tr><td>  <code>TWiki.cfg</code>      </td><td>  Main configuration, used by <code>TWiki.pm</code>  </td></tr>
8098             <tr><td>  <code>TWiki.pm</code>       </td><td>  Main TWiki library  </td></tr>
8099             <tr><td>  <code>Algorithm/Diff.pm</code>  </td><td>  Diff library  </td></tr>
8100             <tr><td>  <code>Text/Diff.pm</code>       </td><td>  Diff library, used by TwikiUpgrade script  </td></tr>
8101             <tr><td>  <code>TWiki/Access.pm</code>    </td><td>  Access control  </td></tr>
8102             <tr><td>  <code>TWiki/Attach.pm</code>    </td><td>  Attachment handling  </td></tr>
8103             <tr><td>  <code>TWiki/Form.pm</code>      </td><td>  Form handling  </td></tr>
8104             <tr><td>  <code>TWiki/Func.pm</code>      </td><td>  Public functions that Plugins may use  </td></tr>
8105             <tr><td>  <code>TWiki/Meta.pm</code>      </td><td>  Meta data in topics  </td></tr>
8106             <tr><td>  <code>TWiki/Net.pm</code>       </td><td>  SMTP mail handling  </td></tr>
8107 rizwank 1.1 <tr><td>  <code>TWiki/Plugins.pm</code>   </td><td>  Plugin handling  </td></tr>
8108             <tr><td>  <code>TWiki/Plugins/CommentPlugin.pm</code>  </td><td>  Plugin handling a comment box  </td></tr>
8109             <tr><td>  <code>TWiki/Plugins/CommentPlugin/Attrs.pm</code>  </td><td>  Supporting module for Comment Plugin  </td></tr>
8110             <tr><td>  <code>TWiki/Plugins/CommentPlugin/Comment.pm</code>  </td><td>  Supporting module for Comment Plugin  </td></tr>
8111             <tr><td>  <code>TWiki/Plugins/CommentPlugin/Templates.pm</code>  </td><td>  Supporting module for Comment Plugin  </td></tr>
8112             <tr><td>  <code>TWiki/Plugins/DefaultPlugin.pm</code>  </td><td>  Handles some legacy rules  </td></tr>
8113             <tr><td>  <code>TWiki/Plugins/EditTablePlugin.pm</code>  </td><td>  Plugin to edit tables  </td></tr>
8114             <tr><td>  <code>TWiki/Plugins/EmptyPlugin.pm</code>    </td><td>  Empty plugin, use to create your own  </td></tr>
8115             <tr><td>  <code>TWiki/Plugins/InterwikiPlugin.pm</code>  </td><td>  Use aliases as links for predefined URLs  </td></tr>
8116             <tr><td>  <code>TWiki/Plugins/RenderListPlugin.pm</code>  </td><td>  Plugin to render lists as nice trees  </td></tr>
8117             <tr><td>  <code>TWiki/Plugins/SlideShowPlugin.pm</code>  </td><td>  Plugin turning headings into slides  </td></tr>
8118             <tr><td>  <code>TWiki/Plugins/SmiliesPlugin.pm</code>  </td><td>  Plugin rendering smilies like <code>:-)</code>  </td></tr>
8119             <tr><td>  <code>TWiki/Plugins/SpreadSheetPlugin.pm</code>  </td><td>  Plugin resolving spreadsheet formulae  </td></tr>
8120             <tr><td>  <code>TWiki/Plugins/TablePlugin.pm</code>  </td><td>  Plugin to render tables nicely  </td></tr>
8121             <tr><td>  <code>TWiki/Prefs.pm</code>     </td><td>  Preferences handling  </td></tr>
8122             <tr><td>  <code>TWiki/Render.pm</code>    </td><td>  TWiki markup to HTML rendering  </td></tr>
8123             <tr><td>  <code>TWiki/Search.pm</code>    </td><td>  Search engine, used by TWiki.pm  </td></tr>
8124             <tr><td>  <code>TWiki/Store.pm</code>     </td><td>  Back-end storage, <code>*.txt</code> text file and <code>*.txt,v</code> RCS repository file handling  </td></tr>
8125             <tr><td>  <code>TWiki/Store/RcsFile.pm</code>  </td><td>  Generic file handling code, a class  </td></tr>
8126             <tr><td>  <code>TWiki/Store/RcsWrap.pm</code>  </td><td>  Wrappers around RCS executables, a class that inherits from RcsFile  </td></tr>
8127             <tr><td>  <code>TWiki/Store/RcsLite.pm</code>  </td><td>  A Perl RCS implemention, a class that inherits from RcsFile  </td></tr>
8128 rizwank 1.1 <tr><td>  <code>TWiki/UI.pm</code>  </td><td>  User interface handling  </td></tr>
8129             <tr><td>  <code>TWiki/UI/Changes.pm</code>  </td><td>  Functionality of changes script  </td></tr>
8130             <tr><td>  <code>TWiki/UI/Edit.pm</code>  </td><td>  Functionality of edit script  </td></tr>
8131             <tr><td>  <code>TWiki/UI/Manage.pm</code>  </td><td>  Functionality of manage script  </td></tr>
8132             <tr><td>  <code>TWiki/UI/Oops.pm</code>  </td><td>  Functionality of oops script  </td></tr>
8133             <tr><td>  <code>TWiki/UI/Preview.pm</code>  </td><td>  Functionality of preview script  </td></tr>
8134             <tr><td>  <code>TWiki/UI/RDiff.pm</code>  </td><td>  Functionality of rdiff script  </td></tr>
8135             <tr><td>  <code>TWiki/UI/Save.pm</code>  </td><td>  Functionality of save script  </td></tr>
8136             <tr><td>  <code>TWiki/UI/Search.pm</code>  </td><td>  Functionality of search script  </td></tr>
8137             <tr><td>  <code>TWiki/UI/Statistics.pm</code>  </td><td>  Functionality of statistics script  </td></tr>
8138             <tr><td>  <code>TWiki/UI/Upload.pm</code>  </td><td>  Functionality of upload script  </td></tr>
8139             <tr><td>  <code>TWiki/UI/View.pm</code>  </td><td>  Functionality of view script  </td></tr>
8140             <tr><td>  <code>TWiki/UI/Viewfile.pm</code>  </td><td>  Functionality of viewfile script  </td></tr>
8141             <tr><td>  <code>TWiki/Upgrade/TWikiCfg.pm</code>  </td><td>  Supporting module of TwikiUpgrade script  </td></tr>
8142             <tr><td>  <code>TWiki/Upgrade/UpdateTopics.pm</code>  </td><td>  Supporting module of TwikiUpgrade script  </td></tr>
8143             <tr><td>  <code>TWiki/Upgrade/UpdateTopicsManualSymlinks.pm</code>  </td><td>  Supporting module of TwikiUpgrade script  </td></tr>
8144             <tr><td>  <code>TWiki/User.pm</code>  </td><td>  Abstraction package to allow plugable user authentication systems  </td></tr>
8145             <tr><td>  <code>TWiki/User/HtPasswdUser.pm</code>  </td><td>  Apache Htpasswd file implementation (the default)  </td></tr>
8146             <tr><td>  <code>TWiki/User/NoPasswdUser.pm</code>  </td><td>  simple, no users authentication (totally wiki)  </td></tr>
8147             </table>
8148             <p />
8149 rizwank 1.1 <a name="PubFiles"></a>
8150             <h3><a name="Files_under_twiki_pub_code"> </a><a name="Files_under_twiki_pub_code_"> </a> Files under <code>twiki/pub</code> </h3>
8151             <p />
8152             The <code>pub</code> directory stores topic-related files, including images used by TWiki and <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/FileAttachment">FileAttachments</a>. Attachments are stored in subdirectories created with the related topic name. You can also upload files directly for and link manually (but not through <code><b>Attach</b></code>) <em>Partial file list:</em>
8153             <p />
8154             <table border="1" cellspacing="0" cellpadding="1"> <tr><th bgcolor="#99CCCC"> <strong>File:</strong> </th><th bgcolor="#99CCCC"> <strong>Used for:</strong> </th></tr>
8155             <tr><td>  <code>favicon.ico</code>  </td><td>  ICO file  </td></tr>
8156             <tr><td>  <code>wikiHome.gif</code>  </td><td>  GIF file  </td></tr>
8157             <tr><td>  <code>icn/_filetypes.txt</code>  </td><td>  Lookup table to translate file extension to file type  </td></tr>
8158             <tr><td>  <code>icn/bat.gif</code>  </td><td>  GIF file for file type  </td></tr>
8159             <tr><td>  <code>icn/bmp.gif</code>  </td><td>  GIF file for file type  </td></tr>
8160             <tr><td align="center">   ...   </td><td align="center">   ...   </td></tr>
8161             <tr><td>  <code>TWiki/FileAttachment/Sample.txt</code>  </td><td>  TEXT file: sample  </td></tr>
8162             <tr><td>  <code>TWiki/FileAttachment/Smile.gif</code>  </td><td>  GIF image: sample  </td></tr>
8163             <tr><td>  <code>TWiki/FileAttachment/Smile.gif,v</code>  </td><td>  RCS repository for GIF file  </td></tr>
8164             <tr><td>  <code>TWiki/PreviewBackground/blankltgraybg.gif</code>  </td><td>  GIF image  </td></tr>
8165             <tr><td>  <code>TWiki/PreviewBackground/blankwhitebg.gif</code>  </td><td>  GIF image  </td></tr>
8166             <tr><td>  <code>TWiki/PreviewBackground/previewbg.gif</code>  </td><td>  GIF image: Preview view background  </td></tr>
8167             <tr><td>  <code>TWiki/PreviewBackground/preview2bg.gif</code>  </td><td>  GIF image: Alternate preview view background  </td></tr>
8168             <tr><td>  <code>TWiki/TWikiLogos/twikiRobot121x54.gif</code>  </td><td>  GIF image: TWiki logo  </td></tr>
8169             <tr><td align="center">   ...   </td><td align="center">   ...   </td></tr>
8170 rizwank 1.1 <tr><td>  <code>TWiki/TWikiTemplates/testscreen.gif</code>  </td><td>  GIF image: Screen shot  </td></tr>
8171             <tr><td>  <code>TWiki/WabiSabi/wabisabi.gif</code>  </td><td>  GIF image: illustration  </td></tr>
8172             </table>
8173             <p />
8174             <a name="DataFiles"></a>
8175             <h3><a name="Files_under_twiki_data_code"> </a><a name="Files_under_twiki_data_code_"> </a> Files under <code>twiki/data</code> </h3>
8176             <p />
8177             TWiki topics: data stored as individual text files and rendered by TWiki for display as regular Web pages. Each active web has its own subdirectory. The TWiki distribution includes a number of start-up webs - <code><b>Main</b></code>, <code><b>TWiki</b></code>, and <code><b>Sandbox</b></code> - with documentation and demo content, a <code><b>Trash</b></code> web for browser-based, recoverable topic deletion, and a <code><b>_default</b></code> directory containing a core topic set required to start a new web. <em>Partial file list:</em> 
8178             <p />
8179             <table border="1" cellspacing="0" cellpadding="1"> <tr><th bgcolor="#99CCCC"> <strong>File:</strong> </th><th bgcolor="#99CCCC"> <strong>Used for:</strong> </th></tr>
8180             <tr><td>  <code>.htpasswd</code>  </td><td>  Basic Authentication (htaccess) users file with username and encrypted password pairs  </td></tr>
8181             <tr><td>  <code>debug.txt</code>  </td><td>  Program-generated messages useful for debugging  </td></tr>
8182             <tr><td>  <code>mime.types</code>  </td><td>  Recognized file formats  </td></tr>
8183             <tr><td>  <code>warning.txt</code>  </td><td>  Diagnostic messages for identifying problems  </td></tr>
8184             <tr><td>  <code>_default/.changes</code>  </td><td>  Per web record of topic changes  </td></tr>
8185             <tr><td>  <code>_default/.mailnotify</code>  </td><td>  Per web timestamp of most recent email notification  </td></tr>
8186             <tr><td>  <code>_default/WebChanges.txt</code>  </td><td>  Display most recent topic changes in web </td></tr>
8187             <tr><td>  <code>_default/WebChanges.txt,v</code>  </td><td>  Revisions history (RCS)  </td></tr>
8188             <tr><td>  <code>_default/WebHome.txt</code>  </td><td>  Default web home page  </td></tr>
8189             <tr><td>  <code>_default/WebHome.txt,v</code>  </td><td>  Revisions history (RCS)  </td></tr>
8190             <tr><td>  <code>_default/WebIndex.txt</code>  </td><td>  Lists all topics in a web  </td></tr>
8191 rizwank 1.1 <tr><td>  <code>_default/WebIndex.txt,v</code>  </td><td>  Revisions history (RCS)  </td></tr>
8192             <tr><td>  <code>_default/WebLeftBar.txt</code>  </td><td>  Left navigation bar for <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/PatternSkin">PatternSkin</a>  </td></tr>
8193             <tr><td>  <code>_default/WebLeftBar.txt,v</code>  </td><td>  Revisions history (RCS)  </td></tr>
8194             <tr><td>  <code>_default/WebNotify.txt</code>  </td><td>  Subscribe/unsubscribe to web changes email alert  </td></tr>
8195             <tr><td>  <code>_default/WebNotify.txt,v</code>  </td><td>  Revisions history (RCS)  </td></tr>
8196             <tr><td>  <code>_default/WebPreferences.txt</code>  </td><td>  Per web Preference Settings  </td></tr>
8197             <tr><td>  <code>_default/WebPreferences.txt,v</code>  </td><td>  Revisions history (RCS)  </td></tr>
8198             <tr><td>  <code>_default/WebSearch.txt</code>  </td><td>  Per web search options  </td></tr>
8199             <tr><td>  <code>_default/WebSearch.txt,v</code>  </td><td>  Revisions history (RCS)  </td></tr>
8200             <tr><td>  <code>_default/WebStatistics.txt</code>  </td><td>  Generates web usage statistics  </td></tr>
8201             <tr><td>  <code>_default/WebStatistics.txt,v</code>  </td><td>  Revisions history (RCS)  </td></tr>
8202             <tr><td>  <code>_default/WebTopicList.txt</code>  </td><td>  Lists all topics in a web in compact format  </td></tr>
8203             <tr><td>  <code>_default/WebTopicList.txt,v</code>  </td><td>  Revisions history (RCS)  </td></tr>
8204             <tr><td align="center">   ...   </td><td align="center">   ...   </td></tr>
8205             </table>
8206             <p />
8207             <a name="TemplatesFiles"></a>
8208             <h3><a name="Files_in_twiki_templates_code"> </a><a name="Files_in_twiki_templates_code_"> </a> Files in <code>twiki/templates</code> </h3>
8209             <p />
8210             Templates and skins used to control appearance of topics rendered as Web pages. <em>Partial file list:</em>
8211             <p />
8212 rizwank 1.1 <table border="1" cellspacing="0" cellpadding="1"> <tr><th bgcolor="#99CCCC"> <strong>File:</strong> </th><th bgcolor="#99CCCC"> <strong>Used for:</strong> </th></tr>
8213             <tr><td>  <code>attach.tmpl</code>  </td><td>  Attachment (<a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/FileAttachment">FileAttachments</a>) control screen  </td></tr>
8214             <tr><td>  <code>attachagain.tmpl</code>  </td><td>  Attachment control screen for updating an existing attachment  </td></tr>
8215             <tr><td>  <code>attachnew.tmpl</code>  </td><td>  Attachment control screen for adding a new attachment  </td></tr>
8216             <tr><td>  <code>attachtables.tmpl</code>  </td><td>  Macros for definition of attachment tables  </td></tr>
8217             <tr><td>  <code>changeform.tmpl</code>  </td><td>  Control screen to change the form in edit mode  </td></tr>
8218             <tr><td>  <code>changes.tmpl</code>  </td><td>  Displays list of recently changed topics  </td></tr>
8219             <tr><td>  <code>edit.iejs.tmpl</code>  </td><td>  Edit window with IE-specific JavaScript  </td></tr>
8220             <tr><td>  <code>edit.tmpl</code>  </td><td>  Main edit window  </td></tr>
8221             <tr><td>  <code>mailnotify.tmpl</code>  </td><td>  Email notification  </td></tr>
8222             <tr><td>  <code>moveattachment.tmpl</code>  </td><td>  Move attachment control screen  </td></tr>
8223             <tr><td>  <code>oopsaccesschange.tmpl</code>  </td><td>  Error message  </td></tr>
8224             <tr><td>  <code>oopsaccessgroup.tmpl</code>  </td><td>  Error message  </td></tr>
8225             <tr><td>  <code>oopsaccessmanage.tmpl</code>  </td><td>  Error message  </td></tr>
8226             <tr><td>  <code>oopsaccessrename.tmpl</code>  </td><td>  Error message  </td></tr>
8227             <tr><td>  <code>oopsaccessview.tmpl</code>  </td><td>  Error message  </td></tr>
8228             <tr><td>  <code>oopsattachnotopic.tmpl</code>  </td><td>  Error message  </td></tr>
8229             <tr><td>  <code>oopsauth.tmpl</code>  </td><td>  Error message  </td></tr>
8230             <tr><td>  <code>oopsbadcharset.tmpl</code>  </td><td>  Error message  </td></tr>
8231             <tr><td>  <code>oopsbadpwformat.tmpl</code>  </td><td>  Error message  </td></tr>
8232             <tr><td>  <code>oopschangepasswd.tmpl</code>  </td><td>  Error message  </td></tr>
8233 rizwank 1.1 <tr><td>  <code>oopscreatenewtopic.tmpl</code>  </td><td>  Error message  </td></tr>
8234             <tr><td>  <code>oopsempty.tmpl</code>  </td><td>  Error message  </td></tr>
8235             <tr><td>  <code>oopslocked.tmpl</code>  </td><td>  Error message  </td></tr>
8236             <tr><td>  <code>oopslockedrename.tmpl</code>  </td><td>  Error message  </td></tr>
8237             <tr><td>  <code>oopsmanage.tmpl</code>  </td><td>  Error message  </td></tr>
8238             <tr><td>  <code>oopsmissing.tmpl</code>  </td><td>  Error message  </td></tr>
8239             <tr><td>  <code>oopsmngcreateweb.tmpl</code>  </td><td>  Error message  </td></tr>
8240             <tr><td>  <code>oopsmore.tmpl</code>  </td><td>  More topic actions message  </td></tr>
8241             <tr><td>  <code>oopsmoveerr.tmpl</code>  </td><td>  Error message  </td></tr>
8242             <tr><td>  <code>oopsnoformdef.tmpl</code>  </td><td>  Error message  </td></tr>
8243             <tr><td>  <code>oopsnotwikiuser.tmpl</code>  </td><td>  Error message  </td></tr>
8244             <tr><td>  <code>oopsnoweb.tmpl</code>  </td><td>  Error message  </td></tr>
8245             <tr><td>  <code>oopspreview.tmpl</code>  </td><td>  Error message  </td></tr>
8246             <tr><td>  <code>oopsregemail.tmpl</code>  </td><td>  Error message  </td></tr>
8247             <tr><td>  <code>oopsregexist.tmpl</code>  </td><td>  Error message  </td></tr>
8248             <tr><td>  <code>oopsregpasswd.tmpl</code>  </td><td>  Error message  </td></tr>
8249             <tr><td>  <code>oopsregrequ.tmpl</code>  </td><td>  Error message  </td></tr>
8250             <tr><td>  <code>oopsregthanks.tmpl</code>  </td><td>  Error message  </td></tr>
8251             <tr><td>  <code>oopsregwiki.tmpl</code>  </td><td>  Error message  </td></tr>
8252             <tr><td>  <code>oopsremoveuserdone.tmpl</code>  </td><td>  Error message  </td></tr>
8253             <tr><td>  <code>oopsrenameerr.tmpl</code>  </td><td>  Error message  </td></tr>
8254 rizwank 1.1 <tr><td>  <code>oopsrenamenotwikiword.tmpl</code>  </td><td>  Error message  </td></tr>
8255             <tr><td>  <code>oopsresetpasswd.tmpl</code>  </td><td>  Error message  </td></tr>
8256             <tr><td>  <code>oopsrev.tmpl</code>  </td><td>  Error message  </td></tr>
8257             <tr><td>  <code>oopssave.tmpl</code>  </td><td>  Error message  </td></tr>
8258             <tr><td>  <code>oopssaveerr.tmpl</code>  </td><td>  Error message  </td></tr>
8259             <tr><td>  <code>oopssendmailerr.tmpl</code>  </td><td>  Error message  </td></tr>
8260             <tr><td>  <code>oopstopicexists.tmpl</code>  </td><td>  Error message  </td></tr>
8261             <tr><td>  <code>oopsupload.tmpl</code>  </td><td>  Error message  </td></tr>
8262             <tr><td>  <code>oopsuploadlimit.tmpl</code>  </td><td>  Error message  </td></tr>
8263             <tr><td>  <code>oopswrongpassword.tmpl</code>  </td><td>  Error message  </td></tr>
8264             <tr><td>  <code>preview.tmpl</code>  </td><td>  Preview Changes screen  </td></tr>
8265             <tr><td>  <code>rdiff.tmpl</code>  </td><td>  Displays text changes before &amp; after <code>Diffs</code>  </td></tr>
8266             <tr><td>  <code>registernotify.tmpl</code>  </td><td>  Registration notification  </td></tr>
8267             <tr><td>  <code>rename.tmpl</code>  </td><td>  <code>Rename/move</code> control screen (choose web &amp; new topic tile  </td></tr>
8268             <tr><td>  <code>renamebase.tmpl</code>  </td><td>  Used by other rename templates  </td></tr>
8269             <tr><td>  <code>renameconfirm.tmpl</code>  </td><td>  Confirms a pre-specified rename, ex: undoing a rename  </td></tr>
8270             <tr><td>  <code>renamedelete.tmpl</code>  </td><td>  Confirms a delete  </td></tr>
8271             <tr><td>  <code>renamerefs.tmpl</code>  </td><td>  Display if rename done, but some references not changed (topics were locked)  </td></tr>
8272             <tr><td>  <code>search.tmpl</code>  </td><td>  Search screen  </td></tr>
8273             <tr><td>  <code>searchbookview.tmpl</code>  </td><td>  Search results with full topic content  </td></tr>
8274             <tr><td>  <code>searchformat.tmpl</code>  </td><td>  Search screen for formatted search  </td></tr>
8275 rizwank 1.1 <tr><td>  <code>searchmeta.tmpl</code>  </td><td>  Search screen  </td></tr>
8276             <tr><td>  <code>searchrenameview.tmpl</code>  </td><td>  Used by <code>rename</code> to list references to topic being renamed  </td></tr>
8277             <tr><td>  <code>twiki.tmpl</code>  </td><td>  Master template: definitions are used by other templates  </td></tr>
8278             <tr><td>  <code>view.plain.tmpl</code>  </td><td>  Skin for bare bone topic view without header/footer but with HTML head and body tags  </td></tr>
8279             <tr><td>  <code>view.print.tmpl</code>  </td><td>  Skin for printable topic view with a simple header/footer  </td></tr>
8280             <tr><td>  <code>view.rss.tmpl</code>  </td><td>  Skin for topic view in RDF XML format  </td></tr>
8281             <tr><td>  <code>view.text.tmpl</code>  </td><td>  Skin for topic text only, without HTML head and body tags, and no form and attachments  </td></tr>
8282             <tr><td>  <code>view.tmpl</code>  </td><td>  Main topic view - the standard regular Web page  </td></tr>
8283             </table>
8284             <p />
8285             <h2><a name="TWiki_File_System_Snapshot"> </a> TWiki File System Snapshot </h2>
8286             <p />
8287             The following partial directory listings from a Linux installation show typical file permissions and ownership. This is provided for general debugging use only and isn't an exact representation of the current distribution. 
8288             <ul>
8289             <li> <img src="./pub/TWiki/TWikiDocGraphics/tip.gif" border="0" alt="TIP" width="16" height="16" /> <strong><em>On an ISP installation...</em></strong> The user and group - <code>twiki twiki</code> - will probably be your domain or login name, eg: <code>yourdomain yourdomain</code> and can't be changed; same for <code>nobody nobody</code> files further down. Also, in the <code><b>bin</b></code> directory, scripts might need a <code><b>.cgi</b></code> (sometimes <code><b>.pl</b></code>) extension.
8290             </li>
8291             </ul>
8292             <p />
8293             Directory <code>twiki/bin</code>:
8294             <p />
8295             <pre>
8296 rizwank 1.1 drwxrwxr-x    2 twiki   twiki        4096 May  9 00:08 .
8297             drwxrwxr-x    5 twiki   twiki        4096 Nov 18  2002 ..
8298             -rw-rw-r--    1 twiki   twiki        3145 Jul 25 00:31 .htaccess.txt
8299             -rwxrwxr-x    1 twiki   twiki        1459 May 28 23:51 attach
8300             -rwxrwxr-x    1 twiki   twiki        1721 May 28 23:51 changes
8301             -rwxrwxr-x    1 twiki   twiki        1994 May 28 23:51 edit
8302             -rwxrwxr-x    1 twiki   twiki        1878 May 28 23:51 geturl
8303             -rwxrwxr-x    1 twiki   twiki        6689 May 28 23:51 installpasswd
8304             -rwxrwxr-x    1 twiki   twiki        7313 May 28 23:51 mailnotify
8305             -rwxrwxr-x    1 twiki   twiki        3557 Jul 25 15:00 manage
8306             -rwxrwxr-x    1 twiki   twiki        1448 May 28 23:51 oops
8307             -rwxrwxr-x    1 twiki   twiki        4062 May 28 23:51 passwd
8308             -rwxrwxr-x    1 twiki   twiki        1506 May 28 23:51 preview
8309             -rwxrwxr-x    2 twiki   twiki        1490 May 28 23:51 rdiff
8310             -rwxrwxr-x    2 twiki   twiki        1490 May 28 23:51 rdiffauth
8311             -rwxrwxr-x    1 twiki   twiki        7635 May 28 23:51 register
8312             -rwxrwxr-x    1 twiki   twiki        1774 May 28 23:51 rename
8313             -rwxrwxr-x    1 twiki   twiki        1654 Jul 25 00:31 save
8314             -rwxrwxr-x    1 twiki   twiki        1728 May 28 23:51 search
8315             -rw-rw-r--    1 twiki   twiki        2131 Aug  7 21:13 setlib.cfg
8316             -rwxrwxr-x    1 twiki   twiki        2596 May 28 23:51 statistics
8317 rizwank 1.1 -rwxrwxr-x    1 twiki   twiki       39926 Jul 25 15:00 testenv
8318             -rwxrwxr-x    1 twiki   twiki        1478 May 28 23:51 upload
8319             -rwxrwxr-x    2 twiki   twiki        1689 May 28 23:51 view
8320             -rwxrwxr-x    2 twiki   twiki        1689 May 28 23:51 viewauth
8321             -rwxrwxr-x    1 twiki   twiki        1438 May 28 23:51 viewfile
8322             </pre>
8323             <p />
8324             Directory <code>twiki/templates/</code>:
8325             <p />
8326             <pre>
8327             drwxrwxr-x    2 twiki   twiki        4096 Aug  7 19:09 .
8328             drwxrwxr-x    4 twiki   twiki        4096 Aug  7 21:13 ..
8329             -rw-rw-r--    1 twiki   users        2077 Aug 13 22:21 attachagain.pattern.tmpl
8330             -rw-rw-r--    1 twiki   users        1650 Aug 13 22:21 attachagain.tmpl
8331             -rw-rw-r--    1 twiki   twiki        2556 Jul 27 10:47 attach.dragon.tmpl
8332             -rw-rw-r--    1 twiki   users         567 Jul 28 19:52 attachnew.pattern.tmpl
8333             -rw-rw-r--    1 twiki   users         470 Jul 28 19:52 attachnew.tmpl
8334             -rw-rw-r--    1 twiki   users        2855 Aug  8 03:40 attach.pattern.tmpl
8335             -rw-rw-r--    1 twiki   users        1991 Aug  3 13:09 attachtables.pattern.tmpl
8336             -rw-rw-r--    1 twiki   users        1869 Jul 27 22:03 attachtables.tmpl
8337             -rw-rw-r--    1 twiki   users        2355 Jul 28 19:52 attach.tmpl
8338 rizwank 1.1 -rw-rw-r--    1 twiki   twiki        1324 Jul 27 10:47 changeform.dragon.tmpl
8339             -rw-rw-r--    1 twiki   twiki        1441 Aug  6 11:47 changeform.pattern.tmpl
8340             -rw-rw-r--    1 twiki   twiki        1032 Jul 28 19:52 changeform.tmpl
8341             -rw-rw-r--    1 twiki   twiki        1870 Jul 27 10:47 changes.dragon.tmpl
8342             -rw-rw-r--    1 twiki   twiki         433 Jul 31 12:39 changes.pattern.tmpl
8343             -rw-rw-r--    1 twiki   twiki        1196 May 28 23:51 changes.tmpl
8344             -rw-rw-r--    1 twiki   twiki          35 May 21 03:56 comments.tmpl
8345             -rw-rw-r--    1 twiki   twiki         526 Jul 27 10:47 dragoncssvars.dragon.tmpl
8346             -rw-rw-r--    1 twiki   twiki        1645 Jul 31 00:57 dragonmenu.dragon.tmpl
8347             -rw-rw-r--    1 twiki   twiki        4207 Jul 27 10:47 edit.dragon.tmpl
8348             -rw-rw-r--    1 twiki   twiki       12608 Jul 28 19:52 edit.iejs.tmpl
8349             -rw-rw-r--    1 twiki   twiki        4904 Aug  7 17:48 edit.pattern.tmpl
8350             -rw-rw-r--    1 twiki   twiki        3975 Aug  8 03:40 edit.tmpl
8351             -rw-rw-r--    1 twiki   twiki         993 May 28 23:51 mailnotify.tmpl
8352             -rw-rw-r--    1 twiki   twiki        1640 Jul 27 10:47 moveattachment.dragon.tmpl
8353             -rw-rw-r--    1 twiki   twiki        1968 Aug  7 17:48 moveattachment.pattern.tmpl
8354             -rw-rw-r--    1 twiki   twiki        1342 Jul 28 19:52 moveattachment.tmpl
8355             -rw-rw-r--    1 twiki   twiki         571 May 28 23:51 oopsaccesschange.tmpl
8356             -rw-rw-r--    1 twiki   twiki         587 May 28 23:51 oopsaccessgroup.tmpl
8357             -rw-rw-r--    1 twiki   twiki         597 Aug  2 11:10 oopsaccessmanage.tmpl
8358             -rw-rw-r--    1 twiki   twiki         572 May 28 23:51 oopsaccessrename.tmpl
8359 rizwank 1.1 -rw-rw-r--    1 twiki   twiki         574 May 28 23:51 oopsaccessview.tmpl
8360             -rw-rw-r--    1 twiki   twiki         571 Aug  2 11:10 oopsattachnotopic.tmpl
8361             -rw-rw-r--    1 twiki   twiki         998 May 28 23:51 oopsauth.tmpl
8362             -rw-rw-r--    1 twiki   twiki         646 May 28 23:51 oopsbadcharset.tmpl
8363             -rw-rw-r--    1 twiki   twiki         406 May 28 23:51 oopsbadpwformat.tmpl
8364             -rw-rw-r--    1 twiki   twiki         345 May 28 23:51 oopschangepasswd.tmpl
8365             -rw-rw-r--    1 twiki   twiki         382 May 28 23:51 oopscreatenewtopic.tmpl
8366             -rw-rw-r--    1 twiki   twiki         627 Jul  7 23:11 oopsempty.tmpl
8367             -rw-rw-r--    1 twiki   twiki         927 Aug  3 13:09 oopslocked.pattern.tmpl
8368             -rw-rw-r--    1 twiki   twiki         612 Aug  2 11:10 oopslockedrename.pattern.tmpl
8369             -rw-rw-r--    1 twiki   twiki         596 Aug  2 11:10 oopslockedrename.tmpl
8370             -rw-rw-r--    1 twiki   twiki         910 Aug  3 13:09 oopslocked.tmpl
8371             -rw-rw-r--    1 twiki   twiki         679 May 28 23:51 oopsmanage.tmpl
8372             -rw-rw-r--    1 twiki   twiki         329 May 28 23:51 oopsmissing.tmpl
8373             -rw-rw-r--    1 twiki   twiki        2353 May 28 23:51 oopsmngcreateweb.tmpl
8374             -rw-rw-r--    1 twiki   twiki        2987 Aug  3 13:09 oopsmore.tmpl
8375             -rw-rw-r--    1 twiki   twiki         418 May 28 23:51 oopsmoveerr.tmpl
8376             -rw-rw-r--    1 twiki   twiki        1133 May 28 23:51 oopsnoformdef.tmpl
8377             -rw-rw-r--    1 twiki   twiki         521 May 28 23:51 oopsnotwikiuser.tmpl
8378             -rw-rw-r--    1 twiki   twiki        1516 Jul 28 19:52 oopsnoweb.tmpl
8379             -rw-rw-r--    1 twiki   twiki         394 May 28 23:51 oopspreview.tmpl
8380 rizwank 1.1 -rw-rw-r--    1 twiki   twiki         341 May 28 23:51 oopsregemail.tmpl
8381             -rw-rw-r--    1 twiki   twiki         411 May 28 23:51 oopsregerr.tmpl
8382             -rw-rw-r--    1 twiki   twiki         476 May 28 23:51 oopsregexist.tmpl
8383             -rw-rw-r--    1 twiki   twiki         346 May 28 23:51 oopsregpasswd.tmpl
8384             -rw-rw-r--    1 twiki   twiki         357 May 28 23:51 oopsregrequ.tmpl
8385             -rw-rw-r--    1 twiki   twiki         541 May 28 23:51 oopsregthanks.tmpl
8386             -rw-rw-r--    1 twiki   twiki         680 May 28 23:51 oopsregwiki.tmpl
8387             -rw-rw-r--    1 twiki   twiki         587 May 28 23:51 oopsremoveuserdone.tmpl
8388             -rw-rw-r--    1 twiki   twiki         503 May 28 23:51 oopsrenameerr.tmpl
8389             -rw-rw-r--    1 twiki   twiki         434 May 28 23:51 oopsrenamenotwikiword.tmpl
8390             -rw-rw-r--    1 twiki   twiki         507 May 28 23:51 oopsresetpasswd.tmpl
8391             -rw-rw-r--    1 twiki   twiki         962 Jul 28 19:52 oopsrev.tmpl
8392             -rw-rw-r--    1 twiki   twiki         483 May 28 23:51 oopssaveerr.tmpl
8393             -rw-rw-r--    1 twiki   twiki         777 Jul  7 23:11 oopssave.tmpl
8394             -rw-rw-r--    1 twiki   twiki         466 May 28 23:51 oopssendmailerr.tmpl
8395             -rw-rw-r--    1 twiki   twiki         385 May 28 23:51 oopstopicexists.tmpl
8396             -rw-rw-r--    1 twiki   twiki         344 May 28 23:51 oopsuploadlimit.tmpl
8397             -rw-rw-r--    1 twiki   twiki         343 May 28 23:51 oopsupload.tmpl
8398             -rw-rw-r--    1 twiki   twiki         365 May 28 23:51 oopswrongpassword.tmpl
8399             -rw-rw-r--    1 twiki   twiki        3590 Jul 27 10:47 preview.dragon.tmpl
8400             -rw-rw-r--    1 twiki   twiki        2855 Aug  6 11:47 preview.pattern.tmpl
8401 rizwank 1.1 -rw-rw-r--    1 twiki   twiki        2253 Aug  8 03:40 preview.tmpl
8402             -rw-rw-r--    1 twiki   twiki        1739 Jul 27 10:47 rdiff.dragon.tmpl
8403             -rw-rw-r--    1 twiki   users        1529 Aug 13 22:21 rdiff.pattern.tmpl
8404             -rw-rw-r--    1 twiki   users        1299 May 28 23:51 rdiff.tmpl
8405             -rw-rw-r--    1 twiki   twiki        1159 Jul 31 12:39 registernotify.pattern.tmpl
8406             -rw-rw-r--    1 twiki   twiki        1160 May 28 23:51 registernotify.tmpl
8407             -rw-rw-r--    1 twiki   twiki        2561 Jul 27 10:47 renamebase.dragon.tmpl
8408             -rw-rw-r--    1 twiki   twiki        3363 Aug  8 03:40 renamebase.pattern.tmpl
8409             -rw-rw-r--    1 twiki   twiki        2279 Jul 28 20:54 renamebase.tmpl
8410             -rw-rw-r--    1 twiki   twiki         718 Jul 31 12:39 renameconfirm.pattern.tmpl
8411             -rw-rw-r--    1 twiki   twiki         570 Jul 28 19:52 renameconfirm.tmpl
8412             -rw-rw-r--    1 twiki   twiki        1046 Jul 31 12:39 renamedelete.pattern.tmpl
8413             -rw-rw-r--    1 twiki   twiki         932 Jul 28 19:52 renamedelete.tmpl
8414             -rw-rw-r--    1 twiki   twiki        1147 Jul 31 12:39 rename.pattern.tmpl
8415             -rw-rw-r--    1 twiki   twiki         766 Jul 28 19:52 renamerefs.pattern.tmpl
8416             -rw-rw-r--    1 twiki   twiki         616 Jul 28 19:52 renamerefs.tmpl
8417             -rw-rw-r--    1 twiki   twiki        1041 Jul 28 19:52 rename.tmpl
8418             -rw-rw-r--    1 twiki   twiki        1397 Jul 27 10:47 searchbookview.dragon.tmpl
8419             -rw-rw-r--    1 twiki   twiki         723 Jul 31 12:39 searchbookview.pattern.tmpl
8420             -rw-rw-r--    1 twiki   twiki        1230 May 28 23:51 searchbookview.tmpl
8421             -rw-rw-r--    1 twiki   twiki        1705 Jul 27 10:47 search.dragon.tmpl
8422 rizwank 1.1 -rw-rw-r--    1 twiki   twiki         722 Jul 27 10:47 searchformat.dragon.tmpl
8423             -rw-rw-r--    1 twiki   twiki         157 Jul 31 12:39 searchformat.pattern.tmpl
8424             -rw-rw-r--    1 twiki   twiki         529 May 28 23:51 searchformat.tmpl
8425             -rw-rw-r--    1 twiki   twiki         149 Jul  7 23:03 searchmeta.pattern.tmpl
8426             -rw-rw-r--    1 twiki   twiki         149 May 28 23:51 searchmeta.tmpl
8427             -rw-rw-r--    1 twiki   twiki        1638 Aug  7 17:48 search.pattern.tmpl
8428             -rw-rw-r--    1 twiki   twiki        1892 Jul 27 10:47 searchrenameview.dragon.tmpl
8429             -rw-rw-r--    1 twiki   twiki        1208 Aug  3 13:09 searchrenameview.pattern.tmpl
8430             -rw-rw-r--    1 twiki   twiki        1615 May 28 23:51 searchrenameview.tmpl
8431             -rw-rw-r--    1 twiki   twiki        1364 May 28 23:51 search.tmpl
8432             -rw-rw-r--    1 twiki   twiki        3836 Jul 27 10:47 twiki.dragon.tmpl
8433             -rw-rw-r--    1 twiki   twiki        3175 Aug  7 17:48 twiki.pattern.tmpl
8434             -rw-rw-r--    1 twiki   twiki        2798 Jul 27 22:57 twiki.tmpl
8435             -rw-rw-r--    1 twiki   twiki        1324 Jul 27 10:47 view.dragon.tmpl
8436             -rw-rw-r--    1 twiki   twiki        3577 Aug  8 03:40 view.pattern.tmpl
8437             -rw-rw-r--    1 twiki   twiki         425 May 28 23:51 view.plain.tmpl
8438             -rw-rw-r--    1 twiki   twiki        1056 Jul 31 12:39 view.print.pattern.tmpl
8439             -rw-rw-r--    1 twiki   twiki         845 May 28 23:51 view.print.tmpl
8440             -rw-rw-r--    1 twiki   twiki         300 May 28 23:51 view.rss.tmpl
8441             -rw-rw-r--    1 twiki   twiki           8 May 28 23:51 view.text.tmpl
8442             -rw-rw-r--    1 twiki   twiki        1281 Jul 31 12:39 view.tmpl
8443 rizwank 1.1 </pre>
8444             <p />
8445             Directory <code>twiki/data/</code>:
8446             <p />
8447             <pre>
8448             drwxrwxr-x    7 nobody  twiki        4096 Aug  7 21:13 .
8449             drwxrwxr-x    4 twiki   twiki        4096 Aug  7 21:13 ..
8450             -rw-rw-rw-    1 twiki   twiki           0 Feb  1  2003 debug.txt
8451             drwxrwxr-x    2 nobody  twiki        4096 Jul 16 00:36 _default
8452             -rw-rw-r--    1 twiki   twiki          25 Dec 16  2003 .htpasswd.txt
8453             -rw-rw-r--    1 nobody  nobody      11811 Aug 13 23:10 log200408.txt
8454             drwxrwxr-x    2 nobody  twiki        4096 Aug  4 21:03 Main
8455             -rw-rw-r--    1 twiki   twiki        3419 Aug 13  2001 mime.types
8456             drwxrwxr-x    2 nobody  twiki        4096 Aug  7 21:03 Sandbox
8457             drwxrwxr-x    2 nobody  twiki        4096 Jul 20 18:15 Trash
8458             drwxrwxr-x    2 nobody  twiki       12288 Aug 13 23:10 TWiki
8459             -rw-rw-rw-    1 twiki   twiki           0 Aug  7 18:03 warning.txt
8460             </pre>
8461             <p />
8462             Partial file list for <code>twiki/data/Main</code>:
8463             <p />
8464 rizwank 1.1 <ul>
8465             <li> <img src="./pub/TWiki/TWikiDocGraphics/tip.gif" border="0" alt="TIP" width="16" height="16" /> <em>Included files come with their RCS versions histories <code><b>.txt,v</b></code>.</em>
8466             </li>
8467             </ul>
8468             <p />
8469             <pre>
8470             drwxrwxr-x    2 nobody  twiki        4096 Aug  4 21:03 .
8471             drwxrwxr-x    7 nobody  twiki        4096 Aug  7 21:13 ..
8472             -rw-rw-rw-    1 twiki   twiki        3743 Aug  4 21:03 .changes
8473             -rw-rw-rw-    1 twiki   twiki           9 Oct 25  2001 .mailnotify
8474             -rw-r--r--    1 nobody  nobody        518 Dec 16  2003 TWikiAdminGroup.txt
8475             -r--r--r--    1 nobody  nobody       2453 Dec 16  2003 TWikiAdminGroup.txt,v
8476             -rw-r--r--    1 nobody  nobody       1668 Aug  4 21:03 TWikiGroups.txt
8477             -r--r--r--    1 nobody  nobody       3421 Aug  4 21:03 TWikiGroups.txt,v
8478             -rw-r--r--    1 nobody  nobody        686 Dec 13  2000 TWikiGuest.txt
8479             -rw-r--r--    1 nobody  nobody       1995 Dec 13  2000 TWikiGuest.txt,v
8480             -rw-r--r--    1 nobody  nobody        319 Dec 20  2003 TWikiPreferences.txt
8481             -r--r--r--    1 nobody  nobody        508 Dec 20  2003 TWikiPreferences.txt,v
8482             -rw-r--r--    1 nobody  nobody       1812 Feb 20 13:54 TWikiUsers.txt
8483             -r--r--r--    1 nobody  nobody       9222 Feb 20 13:54 TWikiUsers.txt,v
8484             -rw-r--r--    1 nobody  nobody        119 Jan 11  2003 TWikiVariables.txt
8485 rizwank 1.1 -r--r--r--    1 nobody  nobody        742 Jan 11  2003 TWikiVariables.txt,v
8486             -rw-r--r--    1 nobody  nobody        124 Aug 16  2001 WebChanges.txt
8487             -r--r--r--    1 nobody  nobody        526 Aug 16  2001 WebChanges.txt,v
8488             -rw-r--r--    1 nobody  nobody       1842 Feb  1  2003 WebHome.txt
8489             -r--r--r--    1 nobody  nobody      11862 Feb  1  2003 WebHome.txt,v
8490             -rw-r--r--    1 nobody  nobody        176 Nov 24  2001 WebIndex.txt
8491             -r--r--r--    1 nobody  nobody        483 Nov 24  2001 WebIndex.txt,v
8492             -rw-r--r--    1 nobody  nobody        922 Feb  3  2003 WebNotify.txt
8493             -r--r--r--    1 nobody  nobody       4303 Feb  3  2003 WebNotify.txt,v
8494             -rw-r--r--    1 nobody  nobody       3738 Dec 25  2003 WebPreferences.txt
8495             -r--r--r--    1 nobody  nobody      10697 Dec 25  2003 WebPreferences.txt,v
8496             -rw-r--r--    1 nobody  nobody        416 Jan 30  2003 WebRss.txt
8497             -r--r--r--    1 nobody  nobody        605 Jan 30  2003 WebRss.txt,v
8498             -rw-r--r--    1 nobody  nobody        164 Jan 18  2004 WebSearchAdvanced.txt
8499             -r--r--r--    1 nobody  nobody        353 Jan 18  2004 WebSearchAdvanced.txt,v
8500             -rw-r--r--    1 nobody  nobody        158 Aug  7  2001 WebSearch.txt
8501             -r--r--r--    1 nobody  nobody      18332 Aug  7  2001 WebSearch.txt,v
8502             -rw-r--r--    1 nobody  nobody        825 Jul 16 00:32 WebStatistics.txt
8503             -r--r--r--    1 nobody  nobody       4226 Jul 16 00:32 WebStatistics.txt,v
8504             -rw-r--r--    1 nobody  nobody        182 Nov 24  2001 WebTopicList.txt
8505             -r--r--r--    1 nobody  nobody        371 Nov 24  2001 WebTopicList.txt,v
8506 rizwank 1.1 </pre>
8507             <p />
8508             Directory <code>twiki/pub/</code>:
8509             <p />
8510             <pre>
8511             drwxrwxr-x    8 nobody  nobody       4096 Nov 18 12:31 .
8512             drwxrwxr-x    3 twiki   twiki        4096 Nov 18 12:31 ..
8513             drwxrwxr-x    2 nobody  nobody       4096 Apr  7  2002 Main
8514             drwxrwxr-x    2 nobody  nobody       4096 Apr 20  2002 Sandbox
8515             drwxrwxr-x    8 nobody  nobody       4096 Nov 18 12:31 TWiki
8516             drwxrwxr-x    2 nobody  nobody       4096 Dec  3  2001 Trash
8517             -rw-rw-r--    1 twiki   twiki        1078 Jan 14  2000 favicon.ico
8518             drwxrwxr-x    2 twiki   twiki        4096 Nov 18 12:31 icn
8519             -rw-rw-r--    1 twiki   twiki        2877 Jun  7  1999 wikiHome.gif
8520             </pre>
8521             <p />
8522             Partial file list for <code>twiki/pub/icn/</code>:
8523             <p />
8524             <pre>
8525             drwxrwxr-x    2 twiki   twiki        4096 Nov 18 12:31 .
8526             drwxrwxr-x    8 nobody  nobody       4096 Nov 18 12:31 ..
8527 rizwank 1.1 -rw-rw-r--    1 twiki   twiki         801 Mar 26  1999 _filetypes.txt
8528             -rw-rw-r--    1 twiki   twiki         143 Mar  9  1999 bat.gif
8529             -rw-rw-r--    1 twiki   twiki         926 Mar  9  1999 bmp.gif
8530             -rw-rw-r--    1 twiki   twiki         141 Mar 25  1999 c.gif
8531             -rw-rw-r--    1 twiki   twiki         144 Mar  9  1999 dll.gif
8532             -rw-rw-r--    1 twiki   twiki         152 Mar  9  1999 doc.gif
8533             </pre>
8534             <p />
8535             Directory <code>twiki/pub/TWiki</code>:
8536             <p />
8537             <pre>
8538             drwxrwx--x    8 nobody  nobody       4096 Nov 18 12:31 .
8539             drwxrwxr-x    8 nobody  nobody       4096 Nov 18 12:31 ..
8540             drwxrwxr-x    2 nobody  nobody       4096 Nov 18 12:31 FileAttachment
8541             drwxrwxr-x    2 nobody  nobody       4096 Nov 18 12:31 PreviewBackground
8542             drwxrwxr-x    2 nobody  nobody       4096 Nov 18 12:31 TWikiDocGraphics
8543             drwxrwxr-x    2 nobody  nobody       4096 Nov 18 12:31 TWikiLogos
8544             drwxrwxr-x    2 nobody  nobody       4096 Nov 18 12:31 TWikiTemplates
8545             drwxrwxr-x    2 nobody  nobody       4096 Nov 18 12:31 WabiSabi
8546             </pre>
8547             <p />
8548 rizwank 1.1 Directory <code>twiki/pub/TWiki/FileAttachment</code>:
8549             <p />
8550             <pre>
8551             drwxrwxr-x    2 nobody  nobody       4096 Nov 18 12:31 .
8552             drwxrwx--x    8 nobody  nobody       4096 Nov 18 12:31 ..
8553             -rw-rw-r--    1 nobody  nobody         30 Jul 22  1999 Sample.txt
8554             -rw-rw-r--    1 nobody  nobody         94 Jun  7  1999 Smile.gif
8555             -r--r--r--    1 nobody  nobody         81 Aug 15 10:14 Smile.gif,v
8556             </pre>
8557             <p />
8558             -- <a href="http://twiki.org/cgi-bin/view/Main.PeterThoeny" title="'Main.PeterThoeny' on TWiki.org">TWiki:Main.PeterThoeny</a> - 29 Aug 2004 <br />
8559             -- <a href="http://twiki.org/cgi-bin/view/Main.MikeMannix" title="'Main.MikeMannix' on TWiki.org">TWiki:Main.MikeMannix</a> - 16 May 2002 <br />
8560             -- <a href="http://twiki.org/cgi-bin/view/Main.ArthurClemens" title="'Main.ArthurClemens' on TWiki.org">TWiki:Main.ArthurClemens</a> - 08 Aug 2004
8561             <p />
8562             <p />
8563             <p />
8564             <hr />
8565             <p />
8566             <h1><a name="Appendix_B_TWiki_CSS"> </a> Appendix B: TWiki CSS </h1>
8567             <p />
8568             <em>Listing of CSS class names emitted from TWiki core code and standard plugins, for the 01-Aug-2004 TWiki production release.</em>
8569 rizwank 1.1 <p />
8570             <h2><a name="Who_should_read_this_document"> </a><a name="Who_should_read_this_document_"> </a> Who should read this document? </h2>
8571             <p />
8572             More or less all html elements generated by TWiki core code now have Cascading Style Sheet (CSS) tags. <strong><em>Skin builders</em></strong> and others who want to change the appearance of the default TWiki installation or any of the skins can use this document to see what styles can be created for these html elements.
8573             <p />
8574             <h2><a name="Naming_conventions"> </a> Naming conventions </h2>
8575             <p />
8576             <ol>
8577             <li> All TWiki class names have the prefix <code>twiki</code>. So: twikiEditPage, twikiTopicAction, etcetera. Remember that CSS class names are case sensitive - TWiki CSS uses lowercase <code>tw</code>.
8578             </li>
8579             <li> TWiki uses class names only (.twikiViewPage) and no id names (#twikiViewPage), to allow multiple class names. Class names are written using the dot prefix.
8580             </li>
8581             <li> If you define your own CSS classes, it is preferable that you do not use the <code>twiki</code> prefix to prevent undesired overriding effects.
8582             </li>
8583             </ol>
8584             <p />
8585             <h2><a name="CSS_classes"> </a> CSS classes </h2>
8586             <p />
8587             <h3><a name="Classes_from_core_code"> </a> Classes from core code </h3>
8588             <p />
8589             <table border="1" cellspacing="0" cellpadding="1"> <tr><td> .twikiNew   </td><td> Changes.pm   </td></tr>
8590 rizwank 1.1 <tr><td> .twikiChangeFormButtonHolder   </td><td> Edit.pm   </td></tr>
8591             <tr><td> .twikiChangeFormButton   </td><td> Form.pm   </td></tr>
8592             <tr><td> .twikiForm   </td><td> Form.pm   </td></tr>
8593             <tr><td> .twikiEditFormTextField   </td><td> Form.pm   </td></tr>
8594             <tr><td> .twikiEditFormLabelField   </td><td> Form.pm   </td></tr>
8595             <tr><td> .twikiEditFormTextAreaField   </td><td> Form.pm   </td></tr>
8596             <tr><td> .twikiEditFormCheckboxButton   </td><td> Form.pm   </td></tr>
8597             <tr><td> .twikiEditFormCheckboxButton   </td><td> Form.pm   </td></tr>
8598             <tr><td> .twikiEditFormCheckboxField   </td><td> Form.pm   </td></tr>
8599             <tr><td> .twikiEditFormRadioField   </td><td> Form.pm   </td></tr>
8600             <tr><td> .twikiEditFormError   </td><td> Form.pm   </td></tr>
8601             <tr><td> .twikiRadioButton   </td><td> Form.pm   </td></tr>
8602             <tr><td> .twikiCheckbox   </td><td> Form.pm   </td></tr>
8603             <tr><td> .twikiEditFormError   </td><td> Form.pm   </td></tr>
8604             <tr><td> .twikiDiffTable   </td><td> RDiff.pm   </td></tr>
8605             <tr><td> .twikiDiffDeletedHeader   </td><td> RDiff.pm   </td></tr>
8606             <tr><td> .twikiDiffDeletedMarker   </td><td> RDiff.pm   </td></tr>
8607             <tr><td> .twikiDiffDeletedText   </td><td> RDiff.pm   </td></tr>
8608             <tr><td> .twikiDiffAddedHeader   </td><td> RDiff.pm   </td></tr>
8609             <tr><td> .twikiDiffAddedMarker   </td><td> RDiff.pm   </td></tr>
8610             <tr><td> .twikiDiffAddedText   </td><td> RDiff.pm   </td></tr>
8611 rizwank 1.1 <tr><td> .twikiDiffChangedHeader   </td><td> RDiff.pm   </td></tr>
8612             <tr><td> .twikiDiffChangedText   </td><td> RDiff.pm   </td></tr>
8613             <tr><td> .twikiDiffUnchangedText   </td><td> RDiff.pm   </td></tr>
8614             <tr><td> .twikiDiffLineNumberHeader   </td><td> RDiff.pm   </td></tr>
8615             <tr><td> .twikiForm   </td><td> Render.pm   </td></tr>
8616             <tr><td> .twikiAnchorLink   </td><td> Render.pm   </td></tr>
8617             <tr><td> .twikiLink   </td><td> Render.pm   </td></tr>
8618             <tr><td> .twikiNewLink   </td><td> Render.pm   </td></tr>
8619             <tr><td> .twikiNew   </td><td> Search.pm   </td></tr>
8620             <tr><td> .twikiAlert   </td><td> Search.pm   </td></tr>
8621             <tr><td> .twikiAlert   </td><td> Statistics.pm   </td></tr>
8622             <tr><td> .twikiAlert   </td><td> TWiki.pm   </td></tr>
8623             <tr><td> .twikiToc   </td><td> TWiki.pm   </td></tr>
8624             <tr><td> .twikiTocTitle   </td><td> TWiki.pm   </td></tr>
8625             </table>
8626             <p />
8627             <h3><a name="Classes_from_Plugins"> </a> Classes from Plugins </h3>
8628             <p />
8629             <strong><a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/TablePlugin">TablePlugin</a></strong>
8630             <table border="1" cellspacing="0" cellpadding="1"> <tr><td> .twikiSortedAscendingCol   </td><td> !TablePlugin.pm   </td></tr>
8631             <tr><td> .twikiSortedDescendingCol   </td><td> !TablePlugin.pm   </td></tr>
8632 rizwank 1.1 <tr><td> .twikiFirstCol   </td><td> !TablePlugin.pm   </td></tr>
8633             </table>
8634             <p />
8635             <h2><a name="Going_further"> </a> Going further </h2>
8636             <p />
8637             PatternSkin makes fully use of CSS in its templates. Read the <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/PatternSkin">PatternSkin</a> topic and <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/PatternSkinCss">PatternSkinCss</a> to learn more about adjusting PatternSkin, or creating your own CSS-based skin.
8638             <p />
8639             See also: <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/DragonSkin">DragonSkin</a>.
8640             <p />
8641             Practical introduction to CSS: <a href="http://www.w3.org/Style/LieBos2e/enter/" target="_top">http://www.w3.org/Style/LieBos2e/enter/</a>
8642             <p />
8643             -- <a href="http://twiki.org/cgi-bin/view/Main.ArthurClemens" title="'Main.ArthurClemens' on TWiki.org">TWiki:Main.ArthurClemens</a> - 08 Aug 2004
8644             <p />
8645             <p />
8646             <hr />
8647             <p />
8648             <a name="EncodeURLsUTF8"></a>
8649             <h1><a name="Appendix_C_Encode_URLs_With_UTF8"> </a> Appendix C: Encode URLs With UTF8  </h1>
8650             <p />
8651             <em>This page addresses implemented UTF-8 support for URLs only. The overall plan for UTF-8 support for TWiki is described in <a href="http://twiki.org/cgi-bin/view/Codev.ProposedUTF8SupportForI18N" title="'Codev.ProposedUTF8SupportForI18N' on TWiki.org">TWiki:Codev.ProposedUTF8SupportForI18N</a> .</em>
8652             <p />
8653 rizwank 1.1 <h2><a name="Current_Status"> </a> Current Status </h2>
8654             <p />
8655             To simplify use of internationalised characters within <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/WikiWord">WikiWords</a> and attachment names, TWiki now supports UTF-8 URLs, converting on-the-fly to virtually any character set, including ISO-8859-*, KOI8-R, EUC-JP, and so on.
8656             <p />
8657             Support for UTF-8 URL encoding avoids having to configure the browser to turn off this encoding in URLs (the default in Internet Explorer, Opera Browser and some Mozilla Browser URLs) and enables support of browsers where only this mode is supported (e.g. Opera Browser for Symbian smartphones).  A non-UTF-8 site character set (e.g. ISO-8859-*) is still used within TWiki, and in fact pages are stored and viewed entirely in the site character set - the browser dynamically converts URLs from the site character set into UTF-8, and TWiki converts them back again.
8658             <p />
8659             System requirements are updated as follows:
8660             <ul>
8661             <li> ASCII or ISO-8859-1-only sites do not require any additional CPAN modules to be installed.
8662             </li>
8663             <li> Perl 5.8 sites using any character set do not require additional modules, since CPAN:Encode is installed as part of Perl. 
8664             </li>
8665             <li> This feature still works on Perl 5.005_03 as per <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/TWikiSystemRequirements">TWikiSystemRequirements</a>, or Perl 5.6, as long as CPAN:Unicode::MapUTF8 is installed.  
8666             </li>
8667             </ul>
8668             <p />
8669             ISO-2022-*, HZ-* and other 'non-ASCII-safe' multi-byte character sets are now specifically excluded from use as the site character set, since they interfere with TWiki ML; however, many multi-byte character sets work fine, e.g. EUC-JP, GB2312, etc.
8670             <p />
8671             It's now possible to override the site character set defined in the <code>$siteLocale</code> setting in TWiki.cfg - this enables you to have a slightly different spelling of the character set in the server locale (e.g. 'eucjp') and the HTTP header sent to the browser (e.g. 'euc-jp').
8672             <p />
8673             This feature should also support use of Mozilla Browser with <a href="http://twiki.org/cgi-bin/view/Codev.TWikiOnMainframe" title="'Codev.TWikiOnMainframe' on TWiki.org">TWiki:Codev.TWikiOnMainframe</a> (as long as mainframe web server can convert or pass through UTF-8 URLs) - however, this specific combination is not tested.  Other browser-server combinations should not have any problems.
8674 rizwank 1.1 <p />
8675             Please note that use of UTF-8 as the site character set is not yet supported - see Phase 2 of <a href="http://twiki.org/cgi-bin/view/Codev.ProposedUTF8SupportForI18N" title="'Codev.ProposedUTF8SupportForI18N' on TWiki.org">TWiki:Codev.ProposedUTF8SupportForI18N</a> for plans and work to date in this area.
8676             <p />
8677             This feature is complete in TWiki releases newer than February 2004.
8678             <p />
8679             Note for skin developers: %INTURLENCODE% is no longer required (<a href="http://twiki.org/cgi-bin/view/Plugins.InternationalisingYourSkin" title="'Plugins.InternationalisingYourSkin' on TWiki.org">TWiki:Plugins.InternationalisingYourSkin</a>).
8680             <p />
8681             <p />
8682             <h2><a name="Details_of_Implementation"> </a> Details of Implementation </h2>
8683             <p />
8684             URLs are not allowed to contain non-ASCII (8th bit set) characters:
8685             <a href="http://www.w3.org/TR/html4/appendix/notes.html#non-ascii-chars" target="_top">http://www.w3.org/TR/html4/appendix/notes.html#non-ascii-chars</a>
8686             <p />
8687             The overall plan for UTF-8 support for TWiki is described in two phases in <a href="http://twiki.org/cgi-bin/view//Codev.ProposedUTF8SupportForI18N" title="'/Codev.ProposedUTF8SupportForI18N' on TWiki.org">TWiki:/Codev.ProposedUTF8SupportForI18N</a> - this page addresses the first phase, in which UTF-8 is supported for URLs only.
8688             <p />
8689             UTF-8 URL translation to virtually any character set is supported as of TWiki Release 01 Sep 2004, but full UTF-8 support (e.g. pages in UTF-8) is not supported yet - this will be phase 2.
8690             <p />
8691             The code automatically detects whether a URL is UTF-8 or not, taking care to avoid over-long and illegal UTF-8 encodings that could introduce <a href="http://twiki.org/cgi-bin/view/Codev.MajorSecurityProblemWithIncludeFileProcessing" title="'Codev.MajorSecurityProblemWithIncludeFileProcessing' on TWiki.org">TWiki:Codev.MajorSecurityProblemWithIncludeFileProcessing</a> (tested against a comprehensive <a href="http://www.cl.cam.ac.uk/~mgk25/ucs/examples/UTF-8-test.txt" target="_top">UTF-8 test file</a>, which IE 5.5 fails quite dangerously, and Opera Browser passes).  Any non-ASCII URLs that are <em>not</em> valid UTF-8 are then assumed to be directly URL-encoded as a single-byte or multi-byte character set (as now), e.g. EUC-JP.  
8692             <p />
8693             The main point is that you can use TWiki with international characters in <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/WikiWord">WikiWords</a> without changing your browser setup from the default, and you can also still use TWiki using non-UTF-8 URLs.  This works on any Perl version from 5.005_03 onwards and corresponds to Phase 1 of <a href="http://twiki.org/cgi-bin/view/Codev.ProposedUTF8SupportForI18N" title="'Codev.ProposedUTF8SupportForI18N' on TWiki.org">TWiki:Codev.ProposedUTF8SupportForI18N</a>.  You can have different users using different URL formats transparently on the same server.
8694             <p />
8695 rizwank 1.1 UTF-8 URLs are automatically converted to the current <code>$siteCharset</code> (from the <code>TWiki.cfg</code> locale setting), using modules such as CPAN:Encode if needed.
8696             <p />
8697             TWiki generates the whole page in the site charset, e.g. ISO-8859-1 or EUC-JP, but the browser dynamically UTF-8 encodes the attachment's URL when it's used.  Since Apache serves attachment downloads without TWiki being involved, TWiki's code can't do its UTF-8 decoding trick, so TWiki URL-encodes such URLs in ISO-8859-1 or whatever when generating the page, to bypass this URL encoding, ensuring that the URLs and filenames seen by Apache remain in the site charset.  
8698             <p />
8699             <a href="http://twiki.org/cgi-bin/view/Codev.TWikiOnMainframe" title="'Codev.TWikiOnMainframe' on TWiki.org">TWiki:Codev.TWikiOnMainframe</a> uses EBCDIC web servers that typically translate their output to ASCII, UTF-8 or ISO-8859-1 (and URLs in the other direction) since there are so few EBCDIC web browsers.  Such web servers don't work with even ISO-8859-1 URLs if they are URL encoded, since the automated translation is bypassed for URL-encoded characters. For TWiki on Mainframe, TWiki assumes that the web server will automatically translate UTF-8 URLs into EBCDIC URLs, as long as URL encoding is turned off in TWiki pages.
8700             <p />
8701             <p />
8702             <h2><a name="Testing_and_Limitation"> </a> Testing and Limitation </h2>
8703             <p />
8704             It should work with <a href="http://twiki.org/cgi-bin/view/Codev.TWikiOnMainframe" title="'Codev.TWikiOnMainframe' on TWiki.org">TWiki:Codev.TWikiOnMainframe</a>.  Tested with IE 5.5, Opera 7.11 and Mozilla (Firebird 0.7). 
8705             <p />
8706             Opera Browser on the P800 smartphone is working for page viewing but leads to corrupt page names when editing pages.
8707             <p />
8708             For up to date information see <a href="http://twiki.org/cgi-bin/view/Codev.EncodeURLsWithUTF8" title="'Codev.EncodeURLsWithUTF8' on TWiki.org">TWiki:Codev.EncodeURLsWithUTF8</a>
8709             <p />
8710             -- <a href="http://twiki.org/cgi-bin/view/Main.RichardDonkin" title="'Main.RichardDonkin' on TWiki.org">TWiki:Main.RichardDonkin</a> - 7 Jan 2004 <br />
8711             -- <a href="http://twiki.org/cgi-bin/view/Main.MattWilkie" title="'Main.MattWilkie' on TWiki.org">TWiki:Main.MattWilkie</a> - 10 Aug 2004 <br />
8712             -- <a href="http://twiki.org/cgi-bin/view/Main.PeterThoeny" title="'Main.PeterThoeny' on TWiki.org">TWiki:Main.PeterThoeny</a> - 14 Aug 2004
8713             <p />
8714             <p />
8715             <p />
8716 rizwank 1.1 <hr />
8717             <p />
8718             <h1><a name="Appendix_D_TWiki_Development_Tim"> </a> Appendix D: TWiki Development Timeline </h1>
8719             <p />
8720             <h2><a name="01_Sep_2004_Release_Cairo"> </a><a name="01_Sep_2004_Release_Cairo_"> </a> 01-Sep-2004 Release (Cairo) </h2>
8721             <p />
8722             <strong><em>Major New Features</em></strong>
8723             <p />
8724             <ul>
8725             <li> Automatic upgrade script, and easier first-time installation
8726             </li>
8727             <li> Attractive new skins, using a standard set of CSS classes, and a skin browser to help you choose
8728             </li>
8729             <li> New easier-to-use save options
8730             </li>
8731             <li> Many improvements to SEARCH
8732             </li>
8733             <li> Improved support for internationalisation
8734             </li>
8735             <li> Better topic management screens
8736             </li>
8737 rizwank 1.1 <li> More pre-installed Plugins: CommentPlugin, EditTablePlugin, RenderListPlugin, SlideShowPlugin, SmiliesPlugin, SpreadSheetPlugin, TablePlugin
8738             </li>
8739             <li> Improved Plugins API and more Plugin callbacks
8740             </li>
8741             <li> Better support for different authentication methods
8742             </li>
8743             <li> Many user interface and usability improvements
8744             </li>
8745             <li> And many, many more enhancements
8746             </li>
8747             </ul>
8748             <p />
8749             %TABLE{ columnwidths="90%, 10%"}%
8750             <table border="1" cellspacing="0" cellpadding="1"> <tr><th bgcolor="#99CCCC"> <strong>Details of New Features and Enhancements of 01-Sep-2004 Release</strong> </th><th bgcolor="#99CCCC"> <strong>Developer, Sponsor</strong> </th></tr>
8751             <tr><td>  Install: Ship with an automatic upgrade script to facilitate TWiki upgrades. <a href="http://TWiki.org/cgi-bin/view/Codev/CairoReleaseUpgradeGuide" target="_top">Details</a>  </td><td>  <a href="http://twiki.org/cgi-bin/view/Main.MartinGregory" title="'Main.MartinGregory' on TWiki.org">TWiki:Main.MartinGregory</a> <a href="http://twiki.org/cgi-bin/view/Main.SvenDowideit" title="'Main.SvenDowideit' on TWiki.org">TWiki:Main.SvenDowideit</a>  </td></tr>
8752             <tr><td>  Install: New testenv function to change the locks in the TWiki database to the web server user id (automates installation step). <a href="http://TWiki.org/cgi-bin/view/Codev/RelockingRCSFiles" target="_top">Details</a>  </td><td>  <a href="http://twiki.org/cgi-bin/view/Main.MattWilkie" title="'Main.MattWilkie' on TWiki.org">TWiki:Main.MattWilkie</a> <a href="http://twiki.org/cgi-bin/view/Main.SvenDowideit" title="'Main.SvenDowideit' on TWiki.org">TWiki:Main.SvenDowideit</a>  </td></tr>
8753             <tr><td>  Install: The shipped .htaccess.txt now needs to be edited before it is valid, to help reduce chances of error. <a href="http://TWiki.org/cgi-bin/view/Codev/InconsistentExtractDirectory" target="_top">Details</a>  </td><td>  <a href="http://twiki.org/cgi-bin/view/Main.CrawfordCurrie" title="'Main.CrawfordCurrie' on TWiki.org">TWiki:Main.CrawfordCurrie</a> <a href="http://twiki.org/cgi-bin/view/Main.SvenDowideit" title="'Main.SvenDowideit' on TWiki.org">TWiki:Main.SvenDowideit</a>  </td></tr>
8754             <tr><td>  Install: Configurable password file handling for different types of encryption. <a href="http://TWiki.org/cgi-bin/view/Codev/ConfigurablePasswordFileHandling" target="_top">Details</a>  </td><td>  <a href="http://twiki.org/cgi-bin/view/Main.PavelGoran" title="'Main.PavelGoran' on TWiki.org">TWiki:Main.PavelGoran</a> <a href="http://twiki.org/cgi-bin/view/Main.SvenDowideit" title="'Main.SvenDowideit' on TWiki.org">TWiki:Main.SvenDowideit</a>  </td></tr>
8755             <tr><td>  Install: Remove office locations from registration. <a href="http://TWiki.org/cgi-bin/view/Codev/RemoveOfficeFromRegistration" target="_top">Details</a>  </td><td>  <a href="http://twiki.org/cgi-bin/view/Main.PeterThoeny" title="'Main.PeterThoeny' on TWiki.org">TWiki:Main.PeterThoeny</a>  </td></tr>
8756             <tr><td>  Install: Changes to support shorter URLs with Apache Rewrite rules. <a href="http://TWiki.org/cgi-bin/view/Codev/ShorterURLs" target="_top">Details</a>  </td><td>  <a href="http://twiki.org/cgi-bin/view/Main.AntonioBellezza" title="'Main.AntonioBellezza' on TWiki.org">TWiki:Main.AntonioBellezza</a> <a href="http://twiki.org/cgi-bin/view/Main.WalterMundt" title="'Main.WalterMundt' on TWiki.org">TWiki:Main.WalterMundt</a>  </td></tr>
8757             <tr><td>  Install: Remove the Know web from the distribution. <a href="http://TWiki.org/cgi-bin/view/Codev/StopDistributingKnowWeb" target="_top">Details</a>  </td><td>  <a href="http://twiki.org/cgi-bin/view/Main.PeterThoeny" title="'Main.PeterThoeny' on TWiki.org">TWiki:Main.PeterThoeny</a>  </td></tr>
8758 rizwank 1.1 <tr><td>  Internationalization: Support use of UTF-8 URLs for I18N characters in TWiki page and attachment names. <a href="http://TWiki.org/cgi-bin/view/Codev/EncodeURLsWithUTF8" target="_top">Details</a>  </td><td>  <a href="http://twiki.org/cgi-bin/view/Main.RichardDonkin" title="'Main.RichardDonkin' on TWiki.org">TWiki:Main.RichardDonkin</a>  </td></tr>
8759             <tr><td>  Authentication: Authenticate users when creating new topic in view restricted web. <a href="http://TWiki.org/cgi-bin/view/Codev/VariousAuthBugsFixed" target="_top">Details</a>  </td><td>  <a href="http://twiki.org/cgi-bin/view/Main.JonathanGraehl" title="'Main.JonathanGraehl' on TWiki.org">TWiki:Main.JonathanGraehl</a> <a href="http://twiki.org/cgi-bin/view/Main.SvenDowideit" title="'Main.SvenDowideit' on TWiki.org">TWiki:Main.SvenDowideit</a>  </td></tr>
8760             <tr><td>  Preferences: TWiki Preferences need to be secured properly. <a href="http://TWiki.org/cgi-bin/view/Codev/SecureTWikiPreferences" target="_top">Details</a>  </td><td>  <a href="http://twiki.org/cgi-bin/view/Main.PeterThoeny" title="'Main.PeterThoeny' on TWiki.org">TWiki:Main.PeterThoeny</a>  </td></tr>
8761             <tr><td>  Preferences: Use TWiki Forms to set user preferences. <a href="http://TWiki.org/cgi-bin/view/Codev/UsingFormsForSettings" target="_top">Details</a>  </td><td>  <a href="http://twiki.org/cgi-bin/view/Main.JohnTalintyre" title="'Main.JohnTalintyre' on TWiki.org">TWiki:Main.JohnTalintyre</a>  </td></tr>
8762             <tr><td>  Skins: New pre-installed skins PatternSkin and DragonSkin. <a href="http://TWiki.org/cgi-bin/view/Codev/SkinsForCairoRelease" target="_top">Details</a>  </td><td>  <a href="http://twiki.org/cgi-bin/view/Main.ArthurClemens" title="'Main.ArthurClemens' on TWiki.org">TWiki:Main.ArthurClemens</a> <a href="http://twiki.org/cgi-bin/view/Main.PeterThoeny" title="'Main.PeterThoeny' on TWiki.org">TWiki:Main.PeterThoeny</a>  </td></tr>
8763             <tr><td>  Skins: New skin browser to choose from installed skins. <a href="http://TWiki.org/cgi-bin/view/Codev/TWikiSkinBrowser" target="_top">Details</a>  </td><td>  <a href="http://twiki.org/cgi-bin/view/Main.PeterThoeny" title="'Main.PeterThoeny' on TWiki.org">TWiki:Main.PeterThoeny</a>  </td></tr>
8764             <tr><td>  Skins: Documented set of CSS classes that are used in standard skins. <a href="http://TWiki.org/cgi-bin/view/Codev/CssClassNames" target="_top">Details</a>  </td><td>  <a href="http://twiki.org/cgi-bin/view/Main.ArthurClemens" title="'Main.ArthurClemens' on TWiki.org">TWiki:Main.ArthurClemens</a> <a href="http://twiki.org/cgi-bin/view/Main.SvenDowideit" title="'Main.SvenDowideit' on TWiki.org">TWiki:Main.SvenDowideit</a>  </td></tr>
8765             <tr><td>  Skins: Added CSS class names to Diff output. <a href="http://TWiki.org/cgi-bin/view/Codev/HardwiredRDiffColours" target="_top">Details</a>  </td><td>  <a href="http://twiki.org/cgi-bin/view/Main.SvenDowideit" title="'Main.SvenDowideit' on TWiki.org">TWiki:Main.SvenDowideit</a>  </td></tr>
8766             <tr><td>  Skins: Templates can now be read from user topics, as well as from files in the templates diretcory. <a href="http://TWiki.org/cgi-bin/view/Codev/ReadTemplatesFromUserTopics" target="_top">Details</a>  </td><td>  <a href="http://twiki.org/cgi-bin/view/Main.CrawfordCurrie" title="'Main.CrawfordCurrie' on TWiki.org">TWiki:Main.CrawfordCurrie</a> <a href="http://twiki.org/cgi-bin/view/Main.WalterMundt" title="'Main.WalterMundt' on TWiki.org">TWiki:Main.WalterMundt</a>  </td></tr>
8767             <tr><td>  Skins: Ensure that the default template gets overridden by a template passed in. <a href="http://TWiki.org/cgi-bin/view/Codev/PassedInTopicTemplateOverridesDefault" target="_top">Details</a>  </td><td>  <a href="http://twiki.org/cgi-bin/view/Main.MartinCleaver" title="'Main.MartinCleaver' on TWiki.org">TWiki:Main.MartinCleaver</a> <a href="http://twiki.org/cgi-bin/view/Main.WalterMundt" title="'Main.WalterMundt' on TWiki.org">TWiki:Main.WalterMundt</a>  </td></tr>
8768             <tr><td>  Skin: Convey an important broadcast message to all users, e.g. scheduled server downtime. <a href="http://TWiki.org/cgi-bin/view/Codev/BroadcastMessageHandling" target="_top">Details</a>  </td><td>  <a href="http://twiki.org/cgi-bin/view/Main.PeterThoeny" title="'Main.PeterThoeny' on TWiki.org">TWiki:Main.PeterThoeny</a>  </td></tr>
8769             <tr><td>  Skin: Balanced pastel colors for TWiki webs. <a href="http://TWiki.org/cgi-bin/view/Codev/TWikiWebColors" target="_top">Details</a>  </td><td>  <a href="http://twiki.org/cgi-bin/view/Main.ArthurClemens" title="'Main.ArthurClemens' on TWiki.org">TWiki:Main.ArthurClemens</a>  </td></tr>
8770             <tr><td>  Rendering: Use exclamation point prefix to escape TWiki markup rendering. <a href="http://TWiki.org/cgi-bin/view/Codev/EasierNop" target="_top">Details</a>  </td><td>  <a href="http://twiki.org/cgi-bin/view/Main.ArthurClemens" title="'Main.ArthurClemens' on TWiki.org">TWiki:Main.ArthurClemens</a>  </td></tr>
8771             <tr><td>  Rendering: Ordered lists with uppercase &amp; lowercase letters, uppercase &amp; lowercase Roman numerals. <a href="http://TWiki.org/cgi-bin/view/Codev/ImprovedOutlines" target="_top">Details</a>  </td><td>  <a href="http://twiki.org/cgi-bin/view/Main.DanBoitnott" title="'Main.DanBoitnott' on TWiki.org">TWiki:Main.DanBoitnott</a> <a href="http://twiki.org/cgi-bin/view/Main.PeterThoeny" title="'Main.PeterThoeny' on TWiki.org">TWiki:Main.PeterThoeny</a>  </td></tr>
8772             <tr><td>  Rendering: Allow custom styles for the "?" of uncreated topics. <a href="http://TWiki.org/cgi-bin/view/Codev/NewTopicLinkStylePatch" target="_top">Details</a>  </td><td>  <a href="http://twiki.org/cgi-bin/view/Main.SvenDowideit" title="'Main.SvenDowideit' on TWiki.org">TWiki:Main.SvenDowideit</a>  </td></tr>
8773             <tr><td>  Rendering: Render IRC and NNTP as a URL. <a href="http://TWiki.org/cgi-bin/view/Codev/RenderIrcAsURL" target="_top">Details</a>  </td><td>  <a href="http://twiki.org/cgi-bin/view/Main.PeterThoeny" title="'Main.PeterThoeny' on TWiki.org">TWiki:Main.PeterThoeny</a>  </td></tr>
8774             <tr><td>  Rendering: Make acronym linking more strict by requiring a trailing boundary, e.g. excluding TLAfoobar. <a href="http://TWiki.org/cgi-bin/view/Codev/TLAbehaviourIsOdd" target="_top">Details</a>  </td><td>  <a href="http://twiki.org/cgi-bin/view/Main.CrawfordCurrie" title="'Main.CrawfordCurrie' on TWiki.org">TWiki:Main.CrawfordCurrie</a> <a href="http://twiki.org/cgi-bin/view/Main.SvenDowideit" title="'Main.SvenDowideit' on TWiki.org">TWiki:Main.SvenDowideit</a>  </td></tr>
8775             <tr><td>  Rendering: TWiki Form with Label type. <a href="http://TWiki.org/cgi-bin/view/Codev/TWikiFormWithLabelType" target="_top">Details</a>  </td><td>  <a href="http://twiki.org/cgi-bin/view/Main.PeterThoeny" title="'Main.PeterThoeny' on TWiki.org">TWiki:Main.PeterThoeny</a>  </td></tr>
8776             <tr><td>  Rendering: Web names can now be WikiWords. <a href="http://TWiki.org/cgi-bin/view/Codev/WebNameAsWikiName" target="_top">Details</a>  </td><td>  <a href="http://twiki.org/cgi-bin/view/Main.PeterThoeny" title="'Main.PeterThoeny' on TWiki.org">TWiki:Main.PeterThoeny</a>  </td></tr>
8777             <tr><td>  Rendering: New syntax for definition list with dollar sign and colon. <a href="http://TWiki.org/cgi-bin/view/Codev/WikiSyntaxForDefinitionLists" target="_top">Details</a>  </td><td>  <a href="http://twiki.org/cgi-bin/view/Main.AdamTheo" title="'Main.AdamTheo' on TWiki.org">TWiki:Main.AdamTheo</a> <a href="http://twiki.org/cgi-bin/view/Main.PeterThoeny" title="'Main.PeterThoeny' on TWiki.org">TWiki:Main.PeterThoeny</a>  </td></tr>
8778             <tr><td>  Rendering: Table with multi-span rows, functionality provided by Table Plugin. <a href="http://TWiki.org/cgi-bin/view/Codev/WikiTablesNeedRowspanning" target="_top">Details</a>  </td><td>  <a href="http://twiki.org/cgi-bin/view/Main.WalterMundt" title="'Main.WalterMundt' on TWiki.org">TWiki:Main.WalterMundt</a>  </td></tr>
8779 rizwank 1.1 <tr><td>  Variables: New title parameter for TOC variable. <a href="http://TWiki.org/cgi-bin/view/Codev/AddHeadingToToc" target="_top">Details</a>  </td><td>  <a href="http://twiki.org/cgi-bin/view/Main.PeterThoeny" title="'Main.PeterThoeny' on TWiki.org">TWiki:Main.PeterThoeny</a> <a href="http://twiki.org/cgi-bin/view/Main.ArthurClemens" title="'Main.ArthurClemens' on TWiki.org">TWiki:Main.ArthurClemens</a>  </td></tr>
8780             <tr><td>  Variables: New REVINFO variable in templates supports flexible display of revision information. <a href="http://TWiki.org/cgi-bin/view/Codev/AddRevisionVariablesToTemplate" target="_top">Details</a>  </td><td>  <a href="http://twiki.org/cgi-bin/view/Main.PeterThoeny" title="'Main.PeterThoeny' on TWiki.org">TWiki:Main.PeterThoeny</a> <a href="http://twiki.org/cgi-bin/view/Main.SvenDowideit" title="'Main.SvenDowideit' on TWiki.org">TWiki:Main.SvenDowideit</a>  </td></tr>
8781             <tr><td>  Variables: Set times to be displayed as gmtime or servertime. <a href="http://TWiki.org/cgi-bin/view/Codev/AlwaysServerTimeZone" target="_top">Details</a>  </td><td>  <a href="http://twiki.org/cgi-bin/view/Main.SueBlake" title="'Main.SueBlake' on TWiki.org">TWiki:Main.SueBlake</a> <a href="http://twiki.org/cgi-bin/view/Main.SvenDowideit" title="'Main.SvenDowideit' on TWiki.org">TWiki:Main.SvenDowideit</a>  </td></tr>
8782             <tr><td>  Variables: Properly encode parameters for form fields with ENCODE variable. <a href="http://TWiki.org/cgi-bin/view/Codev/EncodeParamsForFormFields" target="_top">Details</a>  </td><td>  <a href="http://twiki.org/cgi-bin/view/Main.PeterThoeny" title="'Main.PeterThoeny' on TWiki.org">TWiki:Main.PeterThoeny</a>  </td></tr>
8783             <tr><td>  Variables: Expand USERNAME and WIKINAME in Template Topics. <a href="http://TWiki.org/cgi-bin/view/Codev/ExpandUsernameAndWikinameInTemplateTopics" target="_top">Details</a>  </td><td>  <a href="http://twiki.org/cgi-bin/view/Main.PeterThoeny" title="'Main.PeterThoeny' on TWiki.org">TWiki:Main.PeterThoeny</a>  </td></tr>
8784             <tr><td>  Variables: Expand same variables in new user template as in template topics. <a href="http://TWiki.org/cgi-bin/view/Codev/ExpandVariablesInNewUserTemplate" target="_top">Details</a>  </td><td>  <a href="http://twiki.org/cgi-bin/view/Main.PeterThoeny" title="'Main.PeterThoeny' on TWiki.org">TWiki:Main.PeterThoeny</a>  </td></tr>
8785             <tr><td>  Variables: Optionally warn when included topic does not exist; with the option to create the included topic. <a href="http://TWiki.org/cgi-bin/view/Codev/FailedIncludeWarning" target="_top">Details</a>  </td><td>  <a href="http://twiki.org/cgi-bin/view/Main.PeterThoeny" title="'Main.PeterThoeny' on TWiki.org">TWiki:Main.PeterThoeny</a>  </td></tr>
8786             <tr><td>  Variables: In topic text show file-types of attached files as icons. <a href="http://TWiki.org/cgi-bin/view/Codev/FileAttachmentIconVariable" target="_top">Details</a>  </td><td>  <a href="http://twiki.org/cgi-bin/view/Main.PeterThoeny" title="'Main.PeterThoeny' on TWiki.org">TWiki:Main.PeterThoeny</a>  </td></tr>
8787             <tr><td>  Variables: New variable FORMFIELD returns the value of a field in the form attached to a topic.. <a href="http://TWiki.org/cgi-bin/view/Codev/FormattedTWikiFormDataInTopicText" target="_top">Details</a>  </td><td>  <a href="http://twiki.org/cgi-bin/view/Main.DavidSachitano" title="'Main.DavidSachitano' on TWiki.org">TWiki:Main.DavidSachitano</a> <a href="http://twiki.org/cgi-bin/view/Main.SvenDowideit" title="'Main.SvenDowideit' on TWiki.org">TWiki:Main.SvenDowideit</a>  </td></tr>
8788             <tr><td>  Variables: Meta data rendering for form fields with META{"formfield"}. <a href="http://TWiki.org/cgi-bin/view/Codev/MetaDataRendering" target="_top">Details</a>  </td><td>  <a href="http://twiki.org/cgi-bin/view/Main.PeterThoeny" title="'Main.PeterThoeny' on TWiki.org">TWiki:Main.PeterThoeny</a>  </td></tr>
8789             <tr><td>  Variables: New PLUGINVERSION variable. <a href="http://TWiki.org/cgi-bin/view/Codev/PluginVersionVariable" target="_top">Details</a>  </td><td>  <a href="http://twiki.org/cgi-bin/view/Main.PeterThoeny" title="'Main.PeterThoeny' on TWiki.org">TWiki:Main.PeterThoeny</a>  </td></tr>
8790             <tr><td>  Variables: URLPARAM now has a <code>default="..."</code> argument, for when no value has been given. <a href="http://TWiki.org/cgi-bin/view/Codev/UrlParamWithDefaultValue" target="_top">Details</a>  </td><td>  <a href="http://twiki.org/cgi-bin/view/Main.PeterThoeny" title="'Main.PeterThoeny' on TWiki.org">TWiki:Main.PeterThoeny</a>  </td></tr>
8791             <tr><td>  Variables: URLPARAM variable with newline parameter. <a href="http://TWiki.org/cgi-bin/view/Codev/UrlParamWithNewlineArg" target="_top">Details</a>  </td><td>  <a href="http://twiki.org/cgi-bin/view/Main.PeterThoeny" title="'Main.PeterThoeny' on TWiki.org">TWiki:Main.PeterThoeny</a>  </td></tr>
8792             <tr><td>  Variables: URLPARAM variable with new multiple=on parameter. <a href="http://TWiki.org/cgi-bin/view/Codev/UrlParamWithSelectMultiple" target="_top">Details</a>  </td><td>  <a href="http://twiki.org/cgi-bin/view/Main.PaulineCheung" title="'Main.PaulineCheung' on TWiki.org">TWiki:Main.PaulineCheung</a> <a href="http://twiki.org/cgi-bin/view/Main.PeterThoeny" title="'Main.PeterThoeny' on TWiki.org">TWiki:Main.PeterThoeny</a>  </td></tr>
8793             <tr><td>  Search: New switch for search to perform an AND NOT search. <a href="http://TWiki.org/cgi-bin/view/Codev/InvertedSearchFeature" target="_top">Details</a>  </td><td>  <a href="http://twiki.org/cgi-bin/view/Main.PeterThoeny" title="'Main.PeterThoeny' on TWiki.org">TWiki:Main.PeterThoeny</a>  </td></tr>
8794             <tr><td>  Search: Keyword search to search with implicit AND. <a href="http://TWiki.org/cgi-bin/view/Codev/KeywordSearchWithImplicitAnd" target="_top">Details</a>  </td><td>  <a href="http://twiki.org/cgi-bin/view/Main.PeterThoeny" title="'Main.PeterThoeny' on TWiki.org">TWiki:Main.PeterThoeny</a>  </td></tr>
8795             <tr><td>  Search: Multiple searches in same topic with new multiple="on" paramter. <a href="http://TWiki.org/cgi-bin/view/Codev/MultipleSearchesInSameTopic" target="_top">Details</a>  </td><td>  <a href="http://twiki.org/cgi-bin/view/Main.PeterThoeny" title="'Main.PeterThoeny' on TWiki.org">TWiki:Main.PeterThoeny</a>  </td></tr>
8796             <tr><td>  Search: Remove limitation on number of topics to search in a web. <a href="http://TWiki.org/cgi-bin/view/Codev/ArgumentListIsTooLongForSearch" target="_top">Details</a>  </td><td>  <a href="http://twiki.org/cgi-bin/view/Main.PeterThoeny" title="'Main.PeterThoeny' on TWiki.org">TWiki:Main.PeterThoeny</a>  </td></tr>
8797             <tr><td>  Search: Exclude topics from search with an excludetopic parameter. <a href="http://TWiki.org/cgi-bin/view/Codev/ExcludeWebTopicsFromSearch" target="_top">Details</a>  </td><td>  <a href="http://twiki.org/cgi-bin/view/Main.PeterThoeny" title="'Main.PeterThoeny' on TWiki.org">TWiki:Main.PeterThoeny</a>  </td></tr>
8798             <tr><td>  Search: Expand Variables on Formatted Search with expandvariables Flag. <a href="http://TWiki.org/cgi-bin/view/Codev/ExpandVariablesOnFormattedSearch" target="_top">Details</a>  </td><td>  <a href="http://twiki.org/cgi-bin/view/Main.PeterThoeny" title="'Main.PeterThoeny' on TWiki.org">TWiki:Main.PeterThoeny</a>  </td></tr>
8799             <tr><td>  Search: Formatted Search with Web Form variable to retrieve the name of the form attached to a topic. <a href="http://TWiki.org/cgi-bin/view/Codev/FormattedSearchFormnameVariable" target="_top">Details</a>  </td><td>  <a href="http://twiki.org/cgi-bin/view/Main.FrankSmith" title="'Main.FrankSmith' on TWiki.org">TWiki:Main.FrankSmith</a> <a href="http://twiki.org/cgi-bin/view/Main.PeterThoeny" title="'Main.PeterThoeny' on TWiki.org">TWiki:Main.PeterThoeny</a>  </td></tr>
8800 rizwank 1.1 <tr><td>  Search: Formatted Search with Conditional Output. <a href="http://TWiki.org/cgi-bin/view/Codev/FormattedSearchWithConditionalOutput" target="_top">Details</a>  </td><td>  <a href="http://twiki.org/cgi-bin/view/Main.PeterThoeny" title="'Main.PeterThoeny' on TWiki.org">TWiki:Main.PeterThoeny</a>  </td></tr>
8801             <tr><td>  Search: Formatted Search with $parent token to get the parent topic. <a href="http://TWiki.org/cgi-bin/view/Codev/FormattedSearchWithParentTopic" target="_top">Details</a>  </td><td>  <a href="http://twiki.org/cgi-bin/view/Main.PeterThoeny" title="'Main.PeterThoeny' on TWiki.org">TWiki:Main.PeterThoeny</a>  </td></tr>
8802             <tr><td>  Search: New separator parameter to SEARCH supports better SEARCH embedding. <a href="http://TWiki.org/cgi-bin/view/Codev/FormattedSearchWithSeparatorParameter" target="_top">Details</a>  </td><td>  <a href="http://twiki.org/cgi-bin/view/Main.PeterThoeny" title="'Main.PeterThoeny' on TWiki.org">TWiki:Main.PeterThoeny</a>  </td></tr>
8803             <tr><td>  Search: Improved search performance when sorting result by topic name. <a href="http://TWiki.org/cgi-bin/view/Codev/SchwartzianTransformMisused" target="_top">Details</a>  </td><td>  <a href="http://twiki.org/cgi-bin/view/Main.PeterThoeny" title="'Main.PeterThoeny' on TWiki.org">TWiki:Main.PeterThoeny</a>  </td></tr>
8804             <tr><td>  Search: New <code>scope=all</code> search parameter to search in topic name and topic text at the same time. <a href="http://TWiki.org/cgi-bin/view/Codev/SearchScopeForTopicAndText" target="_top">Details</a>  </td><td>  <a href="http://twiki.org/cgi-bin/view/Main.PeterThoeny" title="'Main.PeterThoeny' on TWiki.org">TWiki:Main.PeterThoeny</a>  </td></tr>
8805             <tr><td>  Search: New <code>topic</code> parameter for AND search on topic text and topic name. <a href="http://TWiki.org/cgi-bin/view/Codev/SearchTopicNameAndTopicText" target="_top">Details</a>  </td><td>  <a href="http://twiki.org/cgi-bin/view/Main.PeterThoeny" title="'Main.PeterThoeny' on TWiki.org">TWiki:Main.PeterThoeny</a>  </td></tr>
8806             <tr><td>  Search modules uses Perl-style keyword parameters (code cleanup). <a href="http://TWiki.org/cgi-bin/view/Codev/SearchWebHasTooManyParameters" target="_top">Details</a>  </td><td>  <a href="http://twiki.org/cgi-bin/view/Main.PeterThoeny" title="'Main.PeterThoeny' on TWiki.org">TWiki:Main.PeterThoeny</a>  </td></tr>
8807             <tr><td>  Search: New $wikiname variable in format parameter of formatted search. <a href="http://TWiki.org/cgi-bin/view/Codev/ShortUserNameInFormattedSearch" target="_top">Details</a>  </td><td>  <a href="http://twiki.org/cgi-bin/view/Main.ArthurClemens" title="'Main.ArthurClemens' on TWiki.org">TWiki:Main.ArthurClemens</a>  </td></tr>
8808             <tr><td>  Search: Sort search by topic creation date. <a href="http://TWiki.org/cgi-bin/view/Codev/SortSearchByTopicCreateDate" target="_top">Details</a>  </td><td>  <a href="http://twiki.org/cgi-bin/view/Main.PeterThoeny" title="'Main.PeterThoeny' on TWiki.org">TWiki:Main.PeterThoeny</a>  </td></tr>
8809             <tr><td>  Search: Topic creation date and user in Formatted Search. <a href="http://TWiki.org/cgi-bin/view/Codev/TopicCreateDateInFormattedSearch" target="_top">Details</a>  </td><td>  <a href="http://twiki.org/cgi-bin/view/Main.CoreyFruitman" title="'Main.CoreyFruitman' on TWiki.org">TWiki:Main.CoreyFruitman</a> <a href="http://twiki.org/cgi-bin/view/Main.SvenDowideit" title="'Main.SvenDowideit' on TWiki.org">TWiki:Main.SvenDowideit</a>  </td></tr>
8810             <tr><td>  Search: Increase levels of nested search from 2 to 16. <a href="http://TWiki.org/cgi-bin/view/Codev/MoreNestedSearchLevels" target="_top">Details</a>  </td><td>  <a href="http://twiki.org/cgi-bin/view/Main.PeterThoeny" title="'Main.PeterThoeny' on TWiki.org">TWiki:Main.PeterThoeny</a>  </td></tr>
8811             <tr><td>  Plugins: New pre-installed Plugins CommentPlugin, EditTablePlugin, RenderListPlugin, SlideShowPlugin, SmiliesPlugin, SpreadSheetPlugin, TablePlugin. <a href="http://TWiki.org/cgi-bin/view/Codev/PreinstalledTWikiPlugins" target="_top">Details</a>  </td><td>  <a href="http://twiki.org/cgi-bin/view/Main.PeterThoeny" title="'Main.PeterThoeny' on TWiki.org">TWiki:Main.PeterThoeny</a>  </td></tr>
8812             <tr><td>  Plugins: New callback <code>afterSaveHandler</code>, called after a topic is saved. <a href="http://TWiki.org/cgi-bin/view/Codev/AfterSavePluginHandler" target="_top">Details</a>  </td><td>  <a href="http://twiki.org/cgi-bin/view/Main.WalterMundt" title="'Main.WalterMundt' on TWiki.org">TWiki:Main.WalterMundt</a>  </td></tr>
8813             <tr><td>  Plugins: New callbacks <code>beforeAttachmentSaveHandler</code> and <code>afterAttachmentSaveHandler</code>, used to intervene on attachment save event. <a href="http://TWiki.org/cgi-bin/view/Codev/BeforeAttachmentSaveHandler" target="_top">Details</a>  </td><td>  <a href="http://twiki.org/cgi-bin/view/Main.MartinCleaver" title="'Main.MartinCleaver' on TWiki.org">TWiki:Main.MartinCleaver</a> <a href="http://twiki.org/cgi-bin/view/Main.WalterMundt" title="'Main.WalterMundt' on TWiki.org">TWiki:Main.WalterMundt</a>  </td></tr>
8814             <tr><td>  Plugins: New callbacks <code>beforeCommonTagsHandler</code> and <code>afterCommonTagsHandler</code>. <a href="http://TWiki.org/cgi-bin/view/Codev/BeforeCommonTagsHandler" target="_top">Details</a>  </td><td>  <a href="http://twiki.org/cgi-bin/view/Main.PeterThoeny" title="'Main.PeterThoeny' on TWiki.org">TWiki:Main.PeterThoeny</a>  </td></tr>
8815             <tr><td>  Plugins: New callback <code>renderFormFieldForEditHandler</code> to render form field for edit. <a href="http://TWiki.org/cgi-bin/view/Codev/RenderFormFieldForEditHandler" target="_top">Details</a>  </td><td>  <a href="http://twiki.org/cgi-bin/view/Main.JohnTalintyre" title="'Main.JohnTalintyre' on TWiki.org">TWiki:Main.JohnTalintyre</a>  </td></tr>
8816             <tr><td>  Plugins: New callback <code>renderWikiWordHandler</code> to custom render links. <a href="http://TWiki.org/cgi-bin/view/Codev/RenderedWikiWordHandler" target="_top">Details</a>  </td><td>  <a href="http://twiki.org/cgi-bin/view/Main.MartinCleaver" title="'Main.MartinCleaver' on TWiki.org">TWiki:Main.MartinCleaver</a> <a href="http://twiki.org/cgi-bin/view/Main.WalterMundt" title="'Main.WalterMundt' on TWiki.org">TWiki:Main.WalterMundt</a>  </td></tr>
8817             <tr><td>  Plugins: New function <code>TWiki::Func::formatTime</code> to format time into a string. <a href="http://TWiki.org/cgi-bin/view/Codev/FormatTime" target="_top">Details</a>  </td><td>  <a href="http://twiki.org/cgi-bin/view/Main.SvenDowideit" title="'Main.SvenDowideit' on TWiki.org">TWiki:Main.SvenDowideit</a>  </td></tr>
8818             <tr><td>  Plugins: New function <code>TWiki::Func::getRegularExpression</code> to get predefined regular expressions. <a href="http://TWiki.org/cgi-bin/view/Codev/GetRegularExpression" target="_top">Details</a>  </td><td>  <a href="http://twiki.org/cgi-bin/view/Main.RichardDonkin" title="'Main.RichardDonkin' on TWiki.org">TWiki:Main.RichardDonkin</a>  </td></tr>
8819             <tr><td>  Plugins: New functions <code>TWiki::Func::getPluginPreferences*</code> to get Plugin preferences. <a href="http://TWiki.org/cgi-bin/view/Codev/GetPluginPreferences" target="_top">Details</a>  </td><td>  <a href="http://twiki.org/cgi-bin/view/Main.WalterMundt" title="'Main.WalterMundt' on TWiki.org">TWiki:Main.WalterMundt</a>  </td></tr>
8820             <tr><td>  Plugins: New function <code>TWiki::Func::extractParameters</code> to extract all parameters from a variable string. <a href="http://TWiki.org/cgi-bin/view/Codev/ExtractParameters" target="_top">Details</a>  </td><td>  <a href="http://twiki.org/cgi-bin/view/Main.PeterThoeny" title="'Main.PeterThoeny' on TWiki.org">TWiki:Main.PeterThoeny</a>  </td></tr>
8821 rizwank 1.1 <tr><td>  Plugins: New function <code>TWiki::Func::checkDependencies</code> to check for module dependency. <a href="http://TWiki.org/cgi-bin/view/Codev/PluginDependencies" target="_top">Details</a>  </td><td>  <a href="http://twiki.org/cgi-bin/view/Main.CrawfordCurrie" title="'Main.CrawfordCurrie' on TWiki.org">TWiki:Main.CrawfordCurrie</a> <a href="http://twiki.org/cgi-bin/view/Main.SvenDowideit" title="'Main.SvenDowideit' on TWiki.org">TWiki:Main.SvenDowideit</a>  </td></tr>
8822             <tr><td>  Plugins: A recommendation for where a Plugin can store its data. <a href="http://TWiki.org/cgi-bin/view/Codev/RecommendedStorageOfPluginData" target="_top">Details</a>  </td><td>  <a href="http://twiki.org/cgi-bin/view/Main.PeterThoeny" title="'Main.PeterThoeny' on TWiki.org">TWiki:Main.PeterThoeny</a>  </td></tr>
8823             <tr><td>  UI: Show tool-tip topic info on <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/WikiWord">WikiWord</a> links. <a href="http://TWiki.org/cgi-bin/view/Codev/ToolTipTopicInfoOnWikiWordLinks" target="_top">Details</a>  </td><td>  <a href="http://twiki.org/cgi-bin/view/Main.PeterThoeny" title="'Main.PeterThoeny' on TWiki.org">TWiki:Main.PeterThoeny</a>  </td></tr>
8824             <tr><td>  UI: Save topic and continue edit feature. <a href="http://TWiki.org/cgi-bin/view/Codev/CheckpointSave" target="_top">Details</a>  </td><td>  <a href="http://twiki.org/cgi-bin/view/Main.ColasNahaboo" title="'Main.ColasNahaboo' on TWiki.org">TWiki:Main.ColasNahaboo</a>  </td></tr>
8825             <tr><td>  UI: Change topic with direct save (without edit/preview/save cycle) and checkpoint save. <a href="http://TWiki.org/cgi-bin/view/Codev/SavemultiCgiScript" target="_top">Details</a>  </td><td>  <a href="http://twiki.org/cgi-bin/view/Main.MattWilkie" title="'Main.MattWilkie' on TWiki.org">TWiki:Main.MattWilkie</a> <a href="http://twiki.org/cgi-bin/view/Main.SvenDowideit" title="'Main.SvenDowideit' on TWiki.org">TWiki:Main.SvenDowideit</a>  </td></tr>
8826             <tr><td>  UI: In attachment table, change 'action' to 'manage'. <a href="http://TWiki.org/cgi-bin/view/Codev/AttachmentActionLinkBadName" target="_top">Details</a>  </td><td>  <a href="http://twiki.org/cgi-bin/view/Main.PeterThoeny" title="'Main.PeterThoeny' on TWiki.org">TWiki:Main.PeterThoeny</a> <a href="http://twiki.org/cgi-bin/view/Main.ArthurClemens" title="'Main.ArthurClemens' on TWiki.org">TWiki:Main.ArthurClemens</a>  </td></tr>
8827             <tr><td>  UI: Smaller usability enhancements on the file attachment table. <a href="http://TWiki.org/cgi-bin/view/Codev/BetterAttachmentTableForCairoRelease" target="_top">Details</a>  </td><td>  <a href="http://twiki.org/cgi-bin/view/Main.PeterThoeny" title="'Main.PeterThoeny' on TWiki.org">TWiki:Main.PeterThoeny</a> <a href="http://twiki.org/cgi-bin/view/Main.ArthurClemens" title="'Main.ArthurClemens' on TWiki.org">TWiki:Main.ArthurClemens</a>  </td></tr>
8828             <tr><td>  UI: Removes anchor links from header content and places them before the text to fix 'header becomes link'. <a href="http://TWiki.org/cgi-bin/view/Codev/BetterLinksToHeadings" target="_top">Details</a>  </td><td>  <a href="http://twiki.org/cgi-bin/view/Main.ArthurClemens" title="'Main.ArthurClemens' on TWiki.org">TWiki:Main.ArthurClemens</a>  </td></tr>
8829             <tr><td>  UI: Improved functionality of the More screen. <a href="http://TWiki.org/cgi-bin/view/Codev/BetterMoreRealizedFeatures" target="_top">Details</a>  </td><td>  <a href="http://twiki.org/cgi-bin/view/Main.PeterThoeny" title="'Main.PeterThoeny' on TWiki.org">TWiki:Main.PeterThoeny</a> <a href="http://twiki.org/cgi-bin/view/Main.ArthurClemens" title="'Main.ArthurClemens' on TWiki.org">TWiki:Main.ArthurClemens</a>  </td></tr>
8830             <tr><td>  UI: Quick reference chart of most used markup is now listed on the edit screen. <a href="http://TWiki.org/cgi-bin/view/Codev/HelpTextInEditPage" target="_top">Details</a>  </td><td>  <a href="http://twiki.org/cgi-bin/view/Main.ArthurClemens" title="'Main.ArthurClemens' on TWiki.org">TWiki:Main.ArthurClemens</a>  </td></tr>
8831             <tr><td>  UI: Flag for edit script to avoid overwrite of existing topic text and form data. <a href="http://TWiki.org/cgi-bin/view/Codev/FlagForEditScriptToAvoidFormDataOverwrite" target="_top">Details</a>  </td><td>  <a href="http://twiki.org/cgi-bin/view/Main.NielsKoldso" title="'Main.NielsKoldso' on TWiki.org">TWiki:Main.NielsKoldso</a> <a href="http://twiki.org/cgi-bin/view/Main.PeterThoeny" title="'Main.PeterThoeny' on TWiki.org">TWiki:Main.PeterThoeny</a>  </td></tr>
8832             <tr><td>  UI: Disable Escape key in IE textarea to prevent it cancelling work. <a href="http://TWiki.org/cgi-bin/view/Codev/EscKeyInEditorDeletesText" target="_top">Details</a>  </td><td>  <a href="http://twiki.org/cgi-bin/view/Main.CrawfordCurrie" title="'Main.CrawfordCurrie' on TWiki.org">TWiki:Main.CrawfordCurrie</a> <a href="http://twiki.org/cgi-bin/view/Main.PeterThoeny" title="'Main.PeterThoeny' on TWiki.org">TWiki:Main.PeterThoeny</a>  </td></tr>
8833             <tr><td>  UI: Improved warning message on unsaved topic. <a href="http://TWiki.org/cgi-bin/view/Codev/ReassurePeopleTheyDidntLoseTheirData" target="_top">Details</a>  </td><td>  <a href="http://twiki.org/cgi-bin/view/Main.MartinGregory" title="'Main.MartinGregory' on TWiki.org">TWiki:Main.MartinGregory</a> <a href="http://twiki.org/cgi-bin/view/Main.SvenDowideit" title="'Main.SvenDowideit' on TWiki.org">TWiki:Main.SvenDowideit</a>  </td></tr>
8834             <tr><td>  UI: Reverse order of words in page title for better multi-window/tab navigation. <a href="http://TWiki.org/cgi-bin/view/Codev/ReversePageTitle" target="_top">Details</a>  </td><td>  <a href="http://twiki.org/cgi-bin/view/Main.ArthurClemens" title="'Main.ArthurClemens' on TWiki.org">TWiki:Main.ArthurClemens</a>  </td></tr>
8835             <tr><td>  UI: Provides a framework to create and modify a topic without going through edit-&gt;preview-&gt;save sequence. <a href="http://TWiki.org/cgi-bin/view/Codev/SaveContentWithoutEdit" target="_top">Details</a>  </td><td>  <a href="http://twiki.org/cgi-bin/view/Main.AndreUlrich" title="'Main.AndreUlrich' on TWiki.org">TWiki:Main.AndreUlrich</a> <a href="http://twiki.org/cgi-bin/view/Main.SvenDowideit" title="'Main.SvenDowideit' on TWiki.org">TWiki:Main.SvenDowideit</a>  </td></tr>
8836             <tr><td>  UI: Set the topic parent to none in More screen, e.g. remove the current topic parent. <a href="http://TWiki.org/cgi-bin/view/Codev/SettingParentTopicToNone" target="_top">Details</a>  </td><td>  <a href="http://twiki.org/cgi-bin/view/Main.PeterThoeny" title="'Main.PeterThoeny' on TWiki.org">TWiki:Main.PeterThoeny</a>  </td></tr>
8837             <tr><td>  UI: Use templates to define how file attachments are displayed. Was previously hard-coded. <a href="http://TWiki.org/cgi-bin/view/Codev/TemplatesForMetaDataPresentation" target="_top">Details</a>  </td><td>  <a href="http://twiki.org/cgi-bin/view/Main.CrawfordCurrie" title="'Main.CrawfordCurrie' on TWiki.org">TWiki:Main.CrawfordCurrie</a> <a href="http://twiki.org/cgi-bin/view/Main.SvenDowideit" title="'Main.SvenDowideit' on TWiki.org">TWiki:Main.SvenDowideit</a>  </td></tr>
8838             <tr><td>  UI: Topic diff shows unified diff with unchanged context. <a href="http://TWiki.org/cgi-bin/view/Codev/UnifiedDiffOutput" target="_top">Details</a>  </td><td>  <a href="http://twiki.org/cgi-bin/view/Main.SvenDowideit" title="'Main.SvenDowideit' on TWiki.org">TWiki:Main.SvenDowideit</a>  </td></tr>
8839             <tr><td>  UI: Diff feature shows TWiki form changes in nice tables. <a href="http://TWiki.org/cgi-bin/view/Codev/TWikiFormsDiffRendering" target="_top">Details</a>  </td><td>  <a href="http://twiki.org/cgi-bin/view/Main.SvenDowideit" title="'Main.SvenDowideit' on TWiki.org">TWiki:Main.SvenDowideit</a>  </td></tr>
8840             <tr><td>  Code refactoring: The log entry for a save now has a dontNotify flag in the extra field if the user checked the minor changes flag. <a href="http://TWiki.org/cgi-bin/view/Codev/DontNotifyFlagInLogFile" target="_top">Details</a>  </td><td>  <a href="http://twiki.org/cgi-bin/view/Main.PeterThoeny" title="'Main.PeterThoeny' on TWiki.org">TWiki:Main.PeterThoeny</a>  </td></tr>
8841             <tr><td>  Code refactoring: Server-side include of attachments accelerates INCLUDE. <a href="http://TWiki.org/cgi-bin/view/Codev/IncludeAttachment" target="_top">Details</a>  </td><td>  <a href="http://twiki.org/cgi-bin/view/Main.CrawfordCurrie" title="'Main.CrawfordCurrie' on TWiki.org">TWiki:Main.CrawfordCurrie</a> <a href="http://twiki.org/cgi-bin/view/Main.PeterThoeny" title="'Main.PeterThoeny' on TWiki.org">TWiki:Main.PeterThoeny</a>  </td></tr>
8842 rizwank 1.1 <tr><td>  Code refactoring: Move functionality out of bin scripts and into included modules. <a href="http://TWiki.org/cgi-bin/view/Codev/MoreChangesToUpload" target="_top">Details</a>  </td><td>  <a href="http://twiki.org/cgi-bin/view/Main.CrawfordCurrie" title="'Main.CrawfordCurrie' on TWiki.org">TWiki:Main.CrawfordCurrie</a> <a href="http://twiki.org/cgi-bin/view/Main.SvenDowideit" title="'Main.SvenDowideit' on TWiki.org">TWiki:Main.SvenDowideit</a>  </td></tr>
8843             <tr><td>  Code refactoring: Move bin script functionality into TWiki::UI modules. <a href="http://TWiki.org/cgi-bin/view/Codev/MoveScriptFunctionalityIntoTWikiUiLibs" target="_top">Details</a>  </td><td>  <a href="http://twiki.org/cgi-bin/view/Main.CrawfordCurrie" title="'Main.CrawfordCurrie' on TWiki.org">TWiki:Main.CrawfordCurrie</a> <a href="http://twiki.org/cgi-bin/view/Main.PeterThoeny" title="'Main.PeterThoeny' on TWiki.org">TWiki:Main.PeterThoeny</a>  </td></tr>
8844             <tr><td>  Code refactoring: Optimize preferences handling for better performance. <a href="http://TWiki.org/cgi-bin/view/Codev/OptimizePreferencesHandling" target="_top">Details</a>  </td><td>  <a href="http://twiki.org/cgi-bin/view/Main.PavelGoran" title="'Main.PavelGoran' on TWiki.org">TWiki:Main.PavelGoran</a> <a href="http://twiki.org/cgi-bin/view/Main.WalterMundt" title="'Main.WalterMundt' on TWiki.org">TWiki:Main.WalterMundt</a>  </td></tr>
8845             <tr><td>  Code refactoring: Refactor variable expansion for edit and register. <a href="http://TWiki.org/cgi-bin/view/Codev/RefactorVariableExpansion" target="_top">Details</a>  </td><td>  <a href="http://twiki.org/cgi-bin/view/Main.CrawfordCurrie" title="'Main.CrawfordCurrie' on TWiki.org">TWiki:Main.CrawfordCurrie</a> <a href="http://twiki.org/cgi-bin/view/Main.PeterThoeny" title="'Main.PeterThoeny' on TWiki.org">TWiki:Main.PeterThoeny</a>  </td></tr>
8846             <tr><td>  Code refactoring: Move savemulti script into TWiki::UI::Save. <a href="http://TWiki.org/cgi-bin/view/Codev/SavemultiIntoSaveDotPm" target="_top">Details</a>  </td><td>  <a href="http://twiki.org/cgi-bin/view/Main.MattWilkie" title="'Main.MattWilkie' on TWiki.org">TWiki:Main.MattWilkie</a> <a href="http://twiki.org/cgi-bin/view/Main.SvenDowideit" title="'Main.SvenDowideit' on TWiki.org">TWiki:Main.SvenDowideit</a>  </td></tr>
8847             <tr><td>  Code refactoring: Topic search is done natively in Perl, it does not depend anymore on system calls with pipes. <a href="http://TWiki.org/cgi-bin/view/Codev/SearchWithNoPipe" target="_top">Details</a>  </td><td>  <a href="http://twiki.org/cgi-bin/view/Main.PeterThoeny" title="'Main.PeterThoeny' on TWiki.org">TWiki:Main.PeterThoeny</a>  </td></tr>
8848             <tr><td>  Code refactoring: Fix logical error in upload script which prevented MIME filename from being used. <a href="http://TWiki.org/cgi-bin/view/Codev/UploadFilenameFixToEnableBatchUploadWithCurl" target="_top">Details</a>  </td><td>  <a href="http://twiki.org/cgi-bin/view/Main.WalterMundt" title="'Main.WalterMundt' on TWiki.org">TWiki:Main.WalterMundt</a>  </td></tr>
8849             </table>
8850             <p />
8851             <p />
8852             %TABLE{ columnwidths="90%, 10%"}%
8853             <table border="1" cellspacing="0" cellpadding="1"> <tr><th bgcolor="#99CCCC"> <strong>Bug Fixes of 01-Sep-2004 Release</strong> </th><th bgcolor="#99CCCC"> <strong>Developer, Sponsor</strong> </th></tr>
8854             <tr><td>  Fix: Consistently create headings with empty anchor tags. <a href="http://TWiki.org/cgi-bin/view/Codev/AllcapsHeadingsProduceBrokenAnchors" target="_top">Details</a>  </td><td>  <a href="http://twiki.org/cgi-bin/view/Main.PeterThoeny" title="'Main.PeterThoeny' on TWiki.org">TWiki:Main.PeterThoeny</a>  </td></tr>
8855             <tr><td>  Fix: TOC does not work for headings containing &amp; without spaces surrounding it. <a href="http://TWiki.org/cgi-bin/view/Codev/AmpersandHeadingBadTOCLink" target="_top">Details</a>  </td><td>  <a href="http://twiki.org/cgi-bin/view/Main.PeterThoeny" title="'Main.PeterThoeny' on TWiki.org">TWiki:Main.PeterThoeny</a>  </td></tr>
8856             <tr><td>  Fix: Backslash line break breaks TWiki form definitions. <a href="http://TWiki.org/cgi-bin/view/Codev/BackslashBreaksForm" target="_top">Details</a>  </td><td>  <a href="http://twiki.org/cgi-bin/view/Main.CrawfordCurrie" title="'Main.CrawfordCurrie' on TWiki.org">TWiki:Main.CrawfordCurrie</a> <a href="http://twiki.org/cgi-bin/view/Main.PeterThoeny" title="'Main.PeterThoeny' on TWiki.org">TWiki:Main.PeterThoeny</a>  </td></tr>
8857             <tr><td>  Fix: Rename fixes unrelated topic references. <a href="http://TWiki.org/cgi-bin/view/Codev/BugInTopicRenaming" target="_top">Details</a>  </td><td>  <a href="http://twiki.org/cgi-bin/view/Main.RichardDonkin" title="'Main.RichardDonkin' on TWiki.org">TWiki:Main.RichardDonkin</a>  </td></tr>
8858             <tr><td>  Fix: Bug with infinite recursion in search. <a href="http://TWiki.org/cgi-bin/view/Codev/BugInfiniteRecursionInSearch" target="_top">Details</a>  </td><td>  <a href="http://twiki.org/cgi-bin/view/Main.PeterThoeny" title="'Main.PeterThoeny' on TWiki.org">TWiki:Main.PeterThoeny</a>  </td></tr>
8859             <tr><td>  Fix: Can't send mail with full 'From' address. <a href="http://TWiki.org/cgi-bin/view/Codev/CantSendMailWithFullAddress" target="_top">Details</a>  </td><td>  <a href="http://twiki.org/cgi-bin/view/Main.PeterThoeny" title="'Main.PeterThoeny' on TWiki.org">TWiki:Main.PeterThoeny</a>  </td></tr>
8860             <tr><td>  Fix: All scripts change to $bin before execute (for mod_perl2). <a href="http://TWiki.org/cgi-bin/view/Codev/ChangeToScriptDirForModPerl" target="_top">Details</a>  </td><td>  <a href="http://twiki.org/cgi-bin/view/Main.PeterThoeny" title="'Main.PeterThoeny' on TWiki.org">TWiki:Main.PeterThoeny</a>  </td></tr>
8861             <tr><td>  Fix: Several RSS readers do not show all entries seen in the WebChanges list; repeated updates to the same topics get lost. <a href="http://TWiki.org/cgi-bin/view/Codev/ChangesDontShowUpInRSS" target="_top">Details</a>  </td><td>  <a href="http://twiki.org/cgi-bin/view/Main.ArthurClemens" title="'Main.ArthurClemens' on TWiki.org">TWiki:Main.ArthurClemens</a>  </td></tr>
8862             <tr><td>  Fix: TWiki::Access::checkAccessPermission function improperly handles Main and TWiki webs. <a href="http://TWiki.org/cgi-bin/view/Codev/CheckAccessPermissionBrokenForMainAndTWikiWebs" target="_top">Details</a>  </td><td>  <a href="http://twiki.org/cgi-bin/view/Main.SvenDowideit" title="'Main.SvenDowideit' on TWiki.org">TWiki:Main.SvenDowideit</a>  </td></tr>
8863 rizwank 1.1 <tr><td>  Fix: Topic save returns error CI Date precedes date in revision. <a href="http://TWiki.org/cgi-bin/view/Codev/CiDatePrecedesDateInRevision" target="_top">Details</a>  </td><td>  <a href="http://twiki.org/cgi-bin/view/Main.PeterThoeny" title="'Main.PeterThoeny' on TWiki.org">TWiki:Main.PeterThoeny</a>  </td></tr>
8864             <tr><td>  Fix: Double quotes got replaced by &#34; in TWiki forms. <a href="http://TWiki.org/cgi-bin/view/Codev/DoubleQuoteHandlingInTwikiForms" target="_top">Details</a>  </td><td>  TWiki: MS <a href="http://twiki.org/cgi-bin/view/Main.PeterThoeny" title="'Main.PeterThoeny' on TWiki.org">TWiki:Main.PeterThoeny</a>  </td></tr>
8865             <tr><td>  Fix: Duplicated Wiki name in .htpasswd entry for sha1 encoding. <a href="http://TWiki.org/cgi-bin/view/Codev/DuplicatedWikiNameInHtpasswdEntry" target="_top">Details</a>  </td><td>  <a href="http://twiki.org/cgi-bin/view/Main.PeterThoeny" title="'Main.PeterThoeny' on TWiki.org">TWiki:Main.PeterThoeny</a>  </td></tr>
8866             <tr><td>  Fix: When viewing a previous version of a topic, the view script substitutes only one occurrence of the variable EDITTOPIC. <a href="http://TWiki.org/cgi-bin/view/Codev/EditTopicNotGloballySubstituted" target="_top">Details</a>  </td><td>  <a href="http://twiki.org/cgi-bin/view/Main.PeterThoeny" title="'Main.PeterThoeny' on TWiki.org">TWiki:Main.PeterThoeny</a>  </td></tr>
8867             <tr><td>  Fix: Form default values are not working for text fields. <a href="http://TWiki.org/cgi-bin/view/Codev/FormDefaultNotWorkingForTextField" target="_top">Details</a>  </td><td>  <a href="http://twiki.org/cgi-bin/view/Main.ThomasWeigert" title="'Main.ThomasWeigert' on TWiki.org">TWiki:Main.ThomasWeigert</a> <a href="http://twiki.org/cgi-bin/view/Main.SvenDowideit" title="'Main.SvenDowideit' on TWiki.org">TWiki:Main.SvenDowideit</a>  </td></tr>
8868             <tr><td>  Fix: Formatted searches using a $pattern which unbalanced parenthesis crash TWiki. <a href="http://TWiki.org/cgi-bin/view/Codev/FormattedSearchPatternExtractionUnmatchedParenthesesError" target="_top">Details</a>  </td><td>  <a href="http://twiki.org/cgi-bin/view/Main.PeterThoeny" title="'Main.PeterThoeny' on TWiki.org">TWiki:Main.PeterThoeny</a>  </td></tr>
8869             <tr><td>  Fix: Formatted Search uses title but should use name for formfield parameter. <a href="http://TWiki.org/cgi-bin/view/Codev/FormattedSearchUsesTitleInsteadOfName" target="_top">Details</a>  </td><td>  <a href="http://twiki.org/cgi-bin/view/Main.PeterThoeny" title="'Main.PeterThoeny' on TWiki.org">TWiki:Main.PeterThoeny</a>  </td></tr>
8870             <tr><td>  Fix: GMTIME variable returns unwanted GMT text. <a href="http://TWiki.org/cgi-bin/view/Codev/GmTimeVariableReturnsUnwantedGMT" target="_top">Details</a>  </td><td>  <a href="http://twiki.org/cgi-bin/view/Main.SvenDowideit" title="'Main.SvenDowideit' on TWiki.org">TWiki:Main.SvenDowideit</a>  </td></tr>
8871             <tr><td>  Fix: Include from other Web links ACRONYMS. <a href="http://TWiki.org/cgi-bin/view/Codev/IncludeFromOtherWebLinksACRONYMS" target="_top">Details</a>  </td><td>  <a href="http://twiki.org/cgi-bin/view/Main.PeterThoeny" title="'Main.PeterThoeny' on TWiki.org">TWiki:Main.PeterThoeny</a>  </td></tr>
8872             <tr><td>  Fix: Including an HTML file is very slow. <a href="http://TWiki.org/cgi-bin/view/Codev/IncludeHTMLTakesLongTime" target="_top">Details</a>  </td><td>  <a href="http://twiki.org/cgi-bin/view/Main.JohnTalintyre" title="'Main.JohnTalintyre' on TWiki.org">TWiki:Main.JohnTalintyre</a>  </td></tr>
8873             <tr><td>  Fix: includeUrl() mess up absolute URLs. <a href="http://TWiki.org/cgi-bin/view/Codev/IncludeUrlScrewsUpAbsoluteUrls" target="_top">Details</a>  </td><td>  <a href="http://twiki.org/cgi-bin/view/Main.SvenDowideit" title="'Main.SvenDowideit' on TWiki.org">TWiki:Main.SvenDowideit</a>  </td></tr>
8874             <tr><td>  Fix: Filter out fixed font rendering in TOC to avoid unrendered = equal signs in TOC. <a href="http://TWiki.org/cgi-bin/view/Codev/IncorrectWhitespaceParsingInTOC" target="_top">Details</a>  </td><td>  <a href="http://twiki.org/cgi-bin/view/Main.PeterThoeny" title="'Main.PeterThoeny' on TWiki.org">TWiki:Main.PeterThoeny</a>  </td></tr>
8875             <tr><td>  Fix: The initializeUserHandler is broken for session Plugins. <a href="http://TWiki.org/cgi-bin/view/Codev/InitializeUserHandlerBroken" target="_top">Details</a>  </td><td>  <a href="http://twiki.org/cgi-bin/view/Main.JohnTalintyre" title="'Main.JohnTalintyre' on TWiki.org">TWiki:Main.JohnTalintyre</a>  </td></tr>
8876             <tr><td>  Fix: SEARCH fails with very large webs. <a href="http://TWiki.org/cgi-bin/view/Codev/InlineSearchArgListTooLong" target="_top">Details</a>  </td><td>  <a href="http://twiki.org/cgi-bin/view/Main.PeterThoeny" title="'Main.PeterThoeny' on TWiki.org">TWiki:Main.PeterThoeny</a>  </td></tr>
8877             <tr><td>  Fix: Security alert: User could gain view access rights of another user. <a href="http://TWiki.org/cgi-bin/view/Codev/InsecureViewWithFailedAuthentication" target="_top">Details</a>  </td><td>  <a href="http://twiki.org/cgi-bin/view/Main.KimCovil" title="'Main.KimCovil' on TWiki.org">TWiki:Main.KimCovil</a> <a href="http://twiki.org/cgi-bin/view/Main.PeterThoeny" title="'Main.PeterThoeny' on TWiki.org">TWiki:Main.PeterThoeny</a>  </td></tr>
8878             <tr><td>  Fix: 'print to closed file handle' error of log files are not writable. <a href="http://TWiki.org/cgi-bin/view/Codev/LogAndWarningFilePermissionsGiveBadErrorMessage" target="_top">Details</a>  </td><td>  <a href="http://twiki.org/cgi-bin/view/Main.MartinGregory" title="'Main.MartinGregory' on TWiki.org">TWiki:Main.MartinGregory</a> <a href="http://twiki.org/cgi-bin/view/Main.SvenDowideit" title="'Main.SvenDowideit' on TWiki.org">TWiki:Main.SvenDowideit</a>  </td></tr>
8879             <tr><td>  Fix: Meta data handler can't process CR-LF line endings. <a href="http://TWiki.org/cgi-bin/view/Codev/MetaDataHandlerCantProcessCrLfLineEndings" target="_top">Details</a>  </td><td>  <a href="http://twiki.org/cgi-bin/view/Main.PeterThoeny" title="'Main.PeterThoeny' on TWiki.org">TWiki:Main.PeterThoeny</a>  </td></tr>
8880             <tr><td>  Fix: METAFIELD meta data is not shown in view raw=on mode. <a href="http://TWiki.org/cgi-bin/view/Codev/MetaFieldNotShownInViewRawMode" target="_top">Details</a>  </td><td>  <a href="http://twiki.org/cgi-bin/view/Main.PeterThoeny" title="'Main.PeterThoeny' on TWiki.org">TWiki:Main.PeterThoeny</a>  </td></tr>
8881             <tr><td>  Fix: Minor XHTML non-compliance in templates and code. <a href="http://TWiki.org/cgi-bin/view/Codev/MinorXHTMLNonComplianceInTemplates" target="_top">Details</a>  </td><td>  <a href="http://twiki.org/cgi-bin/view/Main.PeterThoeny" title="'Main.PeterThoeny' on TWiki.org">TWiki:Main.PeterThoeny</a>  </td></tr>
8882             <tr><td>  Fix: Getting pages from virtual hosts fails. <a href="http://TWiki.org/cgi-bin/view/Codev/NetCantGetURLFromVhosts" target="_top">Details</a>  </td><td>  <a href="http://twiki.org/cgi-bin/view/Main.JohnTalintyre" title="'Main.JohnTalintyre' on TWiki.org">TWiki:Main.JohnTalintyre</a>  </td></tr>
8883             <tr><td>  Fix: Create new web fails if RCS files do not exist. <a href="http://TWiki.org/cgi-bin/view/Codev/NewWebFailsIfTemplateRCSIsDeleted" target="_top">Details</a>  </td><td>  <a href="http://twiki.org/cgi-bin/view/Main.ClausBrunzema" title="'Main.ClausBrunzema' on TWiki.org">TWiki:Main.ClausBrunzema</a> <a href="http://twiki.org/cgi-bin/view/Main.SvenDowideit" title="'Main.SvenDowideit' on TWiki.org">TWiki:Main.SvenDowideit</a>  </td></tr>
8884 rizwank 1.1 <tr><td>  Fix: Metacharacters can be passed through to the shell in File Attach. <a href="http://TWiki.org/cgi-bin/view/Codev/NoShellCharacterEscapingInFileAttachComment" target="_top">Details</a>  </td><td>  <a href="http://twiki.org/cgi-bin/view/Main.PeterThoeny" title="'Main.PeterThoeny' on TWiki.org">TWiki:Main.PeterThoeny</a>  </td></tr>
8885             <tr><td>  Fix: Ability to delete non-WikiWord topics without confirmation. <a href="http://TWiki.org/cgi-bin/view/Codev/NonWikiWordInConfirm" target="_top">Details</a>  </td><td>  <a href="http://twiki.org/cgi-bin/view/Main.PeterThoeny" title="'Main.PeterThoeny' on TWiki.org">TWiki:Main.PeterThoeny</a>  </td></tr>
8886             <tr><td>  Fix: + symbol in password reset fails. <a href="http://TWiki.org/cgi-bin/view/Codev/OopsResetPasswdFormat" target="_top">Details</a>  </td><td>  <a href="http://twiki.org/cgi-bin/view/Main.PeterThoeny" title="'Main.PeterThoeny' on TWiki.org">TWiki:Main.PeterThoeny</a>  </td></tr>
8887             <tr><td>  Fix: Pathinfo cleanup for hosted sites. <a href="http://TWiki.org/cgi-bin/view/Codev/PathInfoCleanupBug" target="_top">Details</a>  </td><td>  <a href="http://twiki.org/cgi-bin/view/Main.MikeSalisbury" title="'Main.MikeSalisbury' on TWiki.org">TWiki:Main.MikeSalisbury</a> <a href="http://twiki.org/cgi-bin/view/Main.SvenDowideit" title="'Main.SvenDowideit' on TWiki.org">TWiki:Main.SvenDowideit</a>  </td></tr>
8888             <tr><td>  Fix: Software error in SEARCH if regular expression pattern has unmached parenthesis. <a href="http://TWiki.org/cgi-bin/view/Codev/PatternExtractBug" target="_top">Details</a>  </td><td>  <a href="http://twiki.org/cgi-bin/view/Main.PeterThoeny" title="'Main.PeterThoeny' on TWiki.org">TWiki:Main.PeterThoeny</a>  </td></tr>
8889             <tr><td>  Fix: Pipe chars in the comment field of the attachment table are not escaped. <a href="http://TWiki.org/cgi-bin/view/Codev/PipeInCommentInAttachmentTableNotEscaped" target="_top">Details</a>  </td><td>  <a href="http://twiki.org/cgi-bin/view/Main.PeterThoeny" title="'Main.PeterThoeny' on TWiki.org">TWiki:Main.PeterThoeny</a>  </td></tr>
8890             <tr><td>  Fix: Link escaping in preview fails for not quoted hrefs. <a href="http://TWiki.org/cgi-bin/view/Codev/PreviewDoesNoQuoteHrefs" target="_top">Details</a>  </td><td>  <a href="http://twiki.org/cgi-bin/view/Main.TedPavlic" title="'Main.TedPavlic' on TWiki.org">TWiki:Main.TedPavlic</a> <a href="http://twiki.org/cgi-bin/view/Main.PeterThoeny" title="'Main.PeterThoeny' on TWiki.org">TWiki:Main.PeterThoeny</a>  </td></tr>
8891             <tr><td>  Fix: Preview expands variables twice. <a href="http://TWiki.org/cgi-bin/view/Codev/PreviewExpandsVariablesTwice" target="_top">Details</a>  </td><td>  <a href="http://twiki.org/cgi-bin/view/Main.PeterThoeny" title="'Main.PeterThoeny' on TWiki.org">TWiki:Main.PeterThoeny</a>  </td></tr>
8892             <tr><td>  Fix: Using a proxy with TWiki fails; no proxy-HTTP request, minimal request not HTTP 1.0, requests marked 1.1 are at best 1.0. <a href="http://TWiki.org/cgi-bin/view/Codev/ProxiedIncludesBrokenImplementationBug" target="_top">Details</a>  </td><td>  <a href="http://twiki.org/cgi-bin/view/Main.MichaelSparks" title="'Main.MichaelSparks' on TWiki.org">TWiki:Main.MichaelSparks</a> <a href="http://twiki.org/cgi-bin/view/Main.JohnTalintyre" title="'Main.JohnTalintyre' on TWiki.org">TWiki:Main.JohnTalintyre</a>  </td></tr>
8893             <tr><td>  Fix: Runaway view processes with TWiki::Sore::RcsLite. <a href="http://TWiki.org/cgi-bin/view/Codev/RcsLiteRunawayViewProcesses" target="_top">Details</a>  </td><td>  <a href="http://twiki.org/cgi-bin/view/Main.SvenDowideit" title="'Main.SvenDowideit' on TWiki.org">TWiki:Main.SvenDowideit</a>  </td></tr>
8894             <tr><td>  Fix: Regex Error in WebTopicList with topics that have meta characters in the name. <a href="http://TWiki.org/cgi-bin/view/Codev/RegexErrorWithTopicNamesWithMetaChars" target="_top">Details</a>  </td><td>  <a href="http://twiki.org/cgi-bin/view/Main.PeterThoeny" title="'Main.PeterThoeny' on TWiki.org">TWiki:Main.PeterThoeny</a>  </td></tr>
8895             <tr><td>  Fix: Rename script misses some ref-by topics. <a href="http://TWiki.org/cgi-bin/view/Codev/RenameScriptMissesSomeReferrers" target="_top">Details</a>  </td><td>  <a href="http://twiki.org/cgi-bin/view/Main.JohnTalintyre" title="'Main.JohnTalintyre' on TWiki.org">TWiki:Main.JohnTalintyre</a>  </td></tr>
8896             <tr><td>  Fix: Links to self within the page being renamed are not changed. <a href="http://TWiki.org/cgi-bin/view/Codev/RenameSkipsSelf" target="_top">Details</a>  </td><td>  <a href="http://twiki.org/cgi-bin/view/Main.SvenDowideit" title="'Main.SvenDowideit' on TWiki.org">TWiki:Main.SvenDowideit</a>  </td></tr>
8897             <tr><td>  Fix: Rename topic does 'Main.Main.UserName' for attachments. <a href="http://TWiki.org/cgi-bin/view/Codev/RenameTopicDoesMainMainUser" target="_top">Details</a>  </td><td>  <a href="http://twiki.org/cgi-bin/view/Main.PeterThoeny" title="'Main.PeterThoeny' on TWiki.org">TWiki:Main.PeterThoeny</a>  </td></tr>
8898             <tr><td>  Fix: Revision date is set to Jan 1970 when using RCS Lite. <a href="http://TWiki.org/cgi-bin/view/Codev/RevisionDateJan1970" target="_top">Details</a>  </td><td>  <a href="http://twiki.org/cgi-bin/view/Main.SvenDowideit" title="'Main.SvenDowideit' on TWiki.org">TWiki:Main.SvenDowideit</a>  </td></tr>
8899             <tr><td>  Fix: The new dynamically-created SiteMap is very nice, but somewhat slow. <a href="http://TWiki.org/cgi-bin/view/Codev/SiteMapIsSlow" target="_top">Details</a>  </td><td>  <a href="http://twiki.org/cgi-bin/view/Main.PeterThoeny" title="'Main.PeterThoeny' on TWiki.org">TWiki:Main.PeterThoeny</a>  </td></tr>
8900             <tr><td>  Fix: The makeAnchorName function did not produce the same results if called iteratively, resulting in problems trying to link to headers.. <a href="http://TWiki.org/cgi-bin/view/Codev/SpecificLinkIncorrectlyRemovesAnchorUnderscores" target="_top">Details</a>  </td><td>  <a href="http://twiki.org/cgi-bin/view/Main.WalterMundt" title="'Main.WalterMundt' on TWiki.org">TWiki:Main.WalterMundt</a>  </td></tr>
8901             <tr><td>  Fix: Statistics page does not provide links to non-wikiword topics. <a href="http://TWiki.org/cgi-bin/view/Codev/StatisticsDoesNotLinkNonWikiWordTopics" target="_top">Details</a>  </td><td>  <a href="http://twiki.org/cgi-bin/view/Main.PeterThoeny" title="'Main.PeterThoeny' on TWiki.org">TWiki:Main.PeterThoeny</a>  </td></tr>
8902             <tr><td>  Fix: Make TOC link URI references relative. <a href="http://TWiki.org/cgi-bin/view/Codev/TOCLinkURIRefsNotRelative" target="_top">Details</a>  </td><td>  <a href="http://twiki.org/cgi-bin/view/Main.MartinGregory" title="'Main.MartinGregory' on TWiki.org">TWiki:Main.MartinGregory</a> <a href="http://twiki.org/cgi-bin/view/Main.PeterThoeny" title="'Main.PeterThoeny' on TWiki.org">TWiki:Main.PeterThoeny</a>  </td></tr>
8903             <tr><td>  Fix: TWiki hangs when used on Apache 2.0. <a href="http://TWiki.org/cgi-bin/view/Codev/TWikiOnApache2dot0Hangs" target="_top">Details</a>  </td><td>  <a href="http://twiki.org/cgi-bin/view/Main.SvenDowideit" title="'Main.SvenDowideit' on TWiki.org">TWiki:Main.SvenDowideit</a>  </td></tr>
8904             <tr><td>  Fix: TOC incorrectly strips out links in headers. <a href="http://TWiki.org/cgi-bin/view/Codev/TocMishandlesStrippingLinks" target="_top">Details</a>  </td><td>  <a href="http://twiki.org/cgi-bin/view/Main.PeterThoeny" title="'Main.PeterThoeny' on TWiki.org">TWiki:Main.PeterThoeny</a>  </td></tr>
8905 rizwank 1.1 <tr><td>  Fix: The HTML tags that are generated by TOC do not close properly. <a href="http://TWiki.org/cgi-bin/view/Codev/TocNotClosedProperly" target="_top">Details</a>  </td><td>  <a href="http://twiki.org/cgi-bin/view/Main.PeterThoeny" title="'Main.PeterThoeny' on TWiki.org">TWiki:Main.PeterThoeny</a>  </td></tr>
8906             <tr><td>  Fix: TOC on INCLUDEd topic ignores STOPINCLUDE. <a href="http://TWiki.org/cgi-bin/view/Codev/TocWithParameterIgnoresStopinclude" target="_top">Details</a>  </td><td>  <a href="http://twiki.org/cgi-bin/view/Main.WillNorris" title="'Main.WillNorris' on TWiki.org">TWiki:Main.WillNorris</a> <a href="http://twiki.org/cgi-bin/view/Main.PeterThoeny" title="'Main.PeterThoeny' on TWiki.org">TWiki:Main.PeterThoeny</a>  </td></tr>
8907             <tr><td>  Fix: Quotes in tooltip message can break a TWiki form. <a href="http://TWiki.org/cgi-bin/view/Codev/TooltipCanBreakForm" target="_top">Details</a>  </td><td>  <a href="http://twiki.org/cgi-bin/view/Main.PeterThoeny" title="'Main.PeterThoeny' on TWiki.org">TWiki:Main.PeterThoeny</a>  </td></tr>
8908             <tr><td>  Fix: Better error message if the file attachment directory is not writable. <a href="http://TWiki.org/cgi-bin/view/Codev/UninitializedValueInRcsFile" target="_top">Details</a>  </td><td>  <a href="http://twiki.org/cgi-bin/view/Main.CrawfordCurrie" title="'Main.CrawfordCurrie' on TWiki.org">TWiki:Main.CrawfordCurrie</a> <a href="http://twiki.org/cgi-bin/view/Main.SvenDowideit" title="'Main.SvenDowideit' on TWiki.org">TWiki:Main.SvenDowideit</a>  </td></tr>
8909             <tr><td>  Fix: Image size of PNG files. <a href="http://TWiki.org/cgi-bin/view/Codev/UploadDoesNotGenerateImageSizeOfPngs" target="_top">Details</a>  </td><td>  <a href="http://twiki.org/cgi-bin/view/Main.ArthurClemens" title="'Main.ArthurClemens' on TWiki.org">TWiki:Main.ArthurClemens</a>  </td></tr>
8910             <tr><td>  Fix: The testenv script distinguishes between real user ID and effective user ID. <a href="http://TWiki.org/cgi-bin/view/Codev/UseEffectiveUIDInTestenv" target="_top">Details</a>  </td><td>  <a href="http://twiki.org/cgi-bin/view/Main.RichardDonkin" title="'Main.RichardDonkin' on TWiki.org">TWiki:Main.RichardDonkin</a>  </td></tr>
8911             <tr><td>  Fix: Variables in square bracket links dont work in form fields. <a href="http://TWiki.org/cgi-bin/view/Codev/VariableInSquareBracketLinkDoestWorkInFormField" target="_top">Details</a>  </td><td>  <a href="http://twiki.org/cgi-bin/view/Main.SvenDowideit" title="'Main.SvenDowideit' on TWiki.org">TWiki:Main.SvenDowideit</a>  </td></tr>
8912             <tr><td>  Fix: Variable with Parameters in Form Fields Disappear. <a href="http://TWiki.org/cgi-bin/view/Codev/VariableWithParamsInFormFieldsDisappear" target="_top">Details</a>  </td><td>  <a href="http://twiki.org/cgi-bin/view/Main.PeterThoeny" title="'Main.PeterThoeny' on TWiki.org">TWiki:Main.PeterThoeny</a>  </td></tr>
8913             <tr><td>  Fix: Verbatim tag should escape HTML entities. <a href="http://TWiki.org/cgi-bin/view/Codev/VerbatimShouldEscapeHtmlEntities" target="_top">Details</a>  </td><td>  <a href="http://twiki.org/cgi-bin/view/Main.PeterThoeny" title="'Main.PeterThoeny' on TWiki.org">TWiki:Main.PeterThoeny</a>  </td></tr>
8914             <tr><td>  Fix: Field names of TWiki Forms can be WikiWords, this is used to link to a help topic. <a href="http://TWiki.org/cgi-bin/view/Codev/WebDotTopicFormFieldNamesDontWork" target="_top">Details</a>  </td><td>  <a href="http://twiki.org/cgi-bin/view/Main.PeterThoeny" title="'Main.PeterThoeny' on TWiki.org">TWiki:Main.PeterThoeny</a>  </td></tr>
8915             <tr><td>  Fix: Clean up the WebRssBase INCLUDES to use VARIABLES set in TWikiPreferences. <a href="http://TWiki.org/cgi-bin/view/Codev/WebRssBaseDcFieldsWrong" target="_top">Details</a>  </td><td>  <a href="http://twiki.org/cgi-bin/view/Main.SvenDowideit" title="'Main.SvenDowideit' on TWiki.org">TWiki:Main.SvenDowideit</a>  </td></tr>
8916             <tr><td>  Fix: Resolving variables in included topics. <a href="http://TWiki.org/cgi-bin/view/Codev/WrongInternalTagOrder" target="_top">Details</a>  </td><td>  <a href="http://twiki.org/cgi-bin/view/Main.OliverKrueger" title="'Main.OliverKrueger' on TWiki.org">TWiki:Main.OliverKrueger</a> <a href="http://twiki.org/cgi-bin/view/Main.SvenDowideit" title="'Main.SvenDowideit' on TWiki.org">TWiki:Main.SvenDowideit</a>  </td></tr>
8917             </table>
8918             <p />
8919             <h2><a name="01_Feb_2003_Release_Beijing"> </a><a name="01_Feb_2003_Release_Beijing_"> </a> 01-Feb-2003 Release (Beijing) </h2>
8920             <p />
8921             <ul>
8922             <li> <strong>18 Jan 2003</strong> - <a href="http://twiki.org/cgi-bin/view/Main.PeterThoeny" title="'Main.PeterThoeny' on TWiki.org">TWiki:Main.PeterThoeny</a>
8923             <ul>
8924             <li> Support for <code>/bin/view/Web.TopicName</code> topic view URL (besides the default <code>/bin/view/Web/TopicName</code> URL); useful for <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/InterwikiPlugin">InterwikiPlugin</a> links like <a href="http://twiki.org/cgi-bin/view/Codev.ReadmeFirst" title="'Codev.ReadmeFirst' on TWiki.org">TWiki:Codev.ReadmeFirst</a>
8925             </li>
8926 rizwank 1.1 </ul>
8927             </li>
8928             <li> <strong>31 Dec 2002</strong> - <a href="http://twiki.org/cgi-bin/view/Main.PeterThoeny" title="'Main.PeterThoeny' on TWiki.org">TWiki:Main.PeterThoeny</a>
8929             <ul>
8930             <li> Enhanced Plugin API to manipulate topic data with new functions in <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/TWikiFuncModule">TWikiFuncModule</a>: <code>readTopicText</code>, <code>saveTopicText</code>, <code>setTopicEditLock</code>, <code>checkTopicEditLock</code>
8931             </li>
8932             </ul>
8933             </li>
8934             <li> <strong>31 Dec 2002</strong> - <a href="http://twiki.org/cgi-bin/view/Main.PeterThoeny" title="'Main.PeterThoeny' on TWiki.org">TWiki:Main.PeterThoeny</a>
8935             <ul>
8936             <li> New <code>%NOAUTOLINK%</code> setting in the <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/TWikiPreferences">TWikiPreferences</a> to disable the auto-linking of <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/WikiWord">WikiWords</a>
8937             </li>
8938             </ul>
8939             </li>
8940             <li> <strong>29 Dec 2002</strong> - <a href="http://twiki.org/cgi-bin/view/Main.AndreaSterbini" title="'Main.AndreaSterbini' on TWiki.org">TWiki:Main.AndreaSterbini</a>, <a href="http://twiki.org/cgi-bin/view/Main.PeterThoeny" title="'Main.PeterThoeny' on TWiki.org">TWiki:Main.PeterThoeny</a>, <a href="http://twiki.org/cgi-bin/view/Main.RichardDonkin" title="'Main.RichardDonkin' on TWiki.org">TWiki:Main.RichardDonkin</a>, <a href="http://twiki.org/cgi-bin/view/Main.SvenDowideit" title="'Main.SvenDowideit' on TWiki.org">TWiki:Main.SvenDowideit</a>
8941             <ul>
8942             <li> New Plugin hooks <code>registrationHandler</code>, <code>beforeEditHandler</code>, <code>afterEditHandler</code>, <code>beforeSaveHandler</code>, <code>writeHeaderHandler</code>, <code>redirectCgiQueryHandler</code>, <code>getSessionValueHandler</code>, <code>setSessionValueHandler</code>
8943             </li>
8944             </ul>
8945             </li>
8946             <li> <strong>30 Nov 2002</strong> - <a href="http://twiki.org/cgi-bin/view/Main.RichardDonkin" title="'Main.RichardDonkin' on TWiki.org">TWiki:Main.RichardDonkin</a>
8947 rizwank 1.1 <ul>
8948             <li> Internationalization ('I18N') support for international characters in <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/WikiWord">WikiWords</a>, such as ISO-8859-15, KOI8-R - also supports Chinese, Japanese, etc.
8949             </li>
8950             </ul>
8951             </li>
8952             <li> <strong>25 Nov 2002</strong> - <a href="http://twiki.org/cgi-bin/view/Main.PeterThoeny" title="'Main.PeterThoeny' on TWiki.org">TWiki:Main.PeterThoeny</a>
8953             <ul>
8954             <li> Include previous topic revision with <code>%INCLUDE{ "OtherTopic" rev="1.2" }%</code>
8955             </li>
8956             </ul>
8957             </li>
8958             <li> <strong>15 Nov 2002</strong> - <a href="http://twiki.org/cgi-bin/view/Main.PeterThoeny" title="'Main.PeterThoeny' on TWiki.org">TWiki:Main.PeterThoeny</a>
8959             <ul>
8960             <li> The Go box understands also URLs, useful for special <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/TWikiSkins">TWikiSkins</a> handling
8961             </li>
8962             </ul>
8963             </li>
8964             <li> <strong>08 Nov 2002</strong> - <a href="http://twiki.org/cgi-bin/view/Main.ColasNahaboo" title="'Main.ColasNahaboo' on TWiki.org">TWiki:Main.ColasNahaboo</a>, <a href="http://twiki.org/cgi-bin/view/Main.RichardDonkin" title="'Main.RichardDonkin' on TWiki.org">TWiki:Main.RichardDonkin</a>
8965             <ul>
8966             <li> In <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/WebNotify">WebNotify</a>, if only the <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/WikiName">WikiName</a> is specified, the e-mail is taken from the user's home page; if the <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/WikiName">WikiName</a> is a group name, a notification is sent to all members of the group
8967             </li>
8968 rizwank 1.1 </ul>
8969             </li>
8970             <li> <strong>30 Oct 2002</strong> - <a href="http://twiki.org/cgi-bin/view/Main.PeterThoeny" title="'Main.PeterThoeny' on TWiki.org">TWiki:Main.PeterThoeny</a>
8971             <ul>
8972             <li> New <code>%NOP{}%</code> variable in <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/TWikiTemplates">TWikiTemplates</a> topic gets removed at topic creation time; useful to write protect template topics
8973             </li>
8974             </ul>
8975             </li>
8976             <li> <strong>28 Sep 2002</strong> - <a href="http://twiki.org/cgi-bin/view/Main.PeterThoeny" title="'Main.PeterThoeny' on TWiki.org">TWiki:Main.PeterThoeny</a>
8977             <ul>
8978             <li> The <code>%URLPARAM{}%</code> variable in <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/TWikiTemplates">TWikiTemplates</a> topic gets expanded at topic creation time; useful for dynamic content creation
8979             </li>
8980             </ul>
8981             </li>
8982             <li> <strong>28 Sep 2002</strong> - <a href="http://twiki.org/cgi-bin/view/Main.PeterThoeny" title="'Main.PeterThoeny' on TWiki.org">TWiki:Main.PeterThoeny</a>
8983             <ul>
8984             <li> New <code>$logDir</code> introduced in TWiki.cfg to set the log directory
8985             </li>
8986             </ul>
8987             </li>
8988             <li> <strong>13 Sep 2002</strong> - <a href="http://twiki.org/cgi-bin/view/Main.PeterThoeny" title="'Main.PeterThoeny' on TWiki.org">TWiki:Main.PeterThoeny</a>
8989 rizwank 1.1 <ul>
8990             <li> Renamed the <strong>Test</strong> web to <strong>Sandbox</strong>
8991             </li>
8992             </ul>
8993             </li>
8994             <li> <strong>03 Aug 2002</strong> - <a href="http://twiki.org/cgi-bin/view/Main.RichardDonkin" title="'Main.RichardDonkin' on TWiki.org">TWiki:Main.RichardDonkin</a>
8995             <ul>
8996             <li> New <code>setlib.cfg</code> file in the bin directory to set the TWiki library path
8997             </li>
8998             </ul>
8999             </li>
9000             <li> <strong>02 Aug 2002</strong> - <a href="http://twiki.org/cgi-bin/view/Main.PeterThoeny" title="'Main.PeterThoeny' on TWiki.org">TWiki:Main.PeterThoeny</a>, <a href="http://twiki.org/cgi-bin/view/Main.RyanFreebern" title="'Main.RyanFreebern' on TWiki.org">TWiki:Main.RyanFreebern</a>
9001             <ul>
9002             <li> Support for outbound HTTP proxy when including URLs based on new <code>%PROXYHOST</code> and <code>%PROXYPORT%</code> settings in the <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/TWikiPreferences">TWikiPreferences</a>
9003             </li>
9004             </ul>
9005             </li>
9006             <li> <strong>12 Jul 2002</strong> - <a href="http://twiki.org/cgi-bin/view/Main.PeterThoeny" title="'Main.PeterThoeny' on TWiki.org">TWiki:Main.PeterThoeny</a>
9007             <ul>
9008             <li> The page logo is configurable with new <code>%WIKILOGOIMG%</code>, <code>%TWIKILOGOURL%</code> and <code>%WIKILOGOALT%</code> variables in <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/TWikiPreferences">TWikiPreferences</a>; replacing <code>$wikiHomeUrl</code> in TWiki.cfg
9009             </li>
9010 rizwank 1.1 </ul>
9011             </li>
9012             <li> <strong>12 Jun 2002</strong> - <a href="http://twiki.org/cgi-bin/view/Main.PeterThoeny" title="'Main.PeterThoeny' on TWiki.org">TWiki:Main.PeterThoeny</a>
9013             <ul>
9014             <li> New <code>%WIKITOOLNAME%</code> variable in <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/TWikiPreferences">TWikiPreferences</a>; replacing <code>$wikiToolName</code> in TWiki.cfg
9015             </li>
9016             </ul>
9017             </li>
9018             <li> <strong>31 May 2002</strong> - <a href="http://twiki.org/cgi-bin/view/Main.PeterThoeny" title="'Main.PeterThoeny' on TWiki.org">TWiki:Main.PeterThoeny</a>
9019             <ul>
9020             <li> New <code>%EDITBOXSTYLE%</code> preferences variable which sets the edit box width automatically to the window width
9021             </li>
9022             </ul>
9023             </li>
9024             <li> <strong>17 May 2002</strong> - <a href="http://twiki.org/cgi-bin/view/Main.PeterThoeny" title="'Main.PeterThoeny' on TWiki.org">TWiki:Main.PeterThoeny</a>
9025             <ul>
9026             <li> New <code>%URLENCODE{}%</code> variable to encodes a string for using in a URL parameter, e.g. <code>%URLENCODE{"spaced name"}%</code> returns <code>spaced%20name</code>
9027             </li>
9028             </ul>
9029             </li>
9030             <li> <strong>17 May 2002</strong> - <a href="http://twiki.org/cgi-bin/view/Main.PeterThoeny" title="'Main.PeterThoeny' on TWiki.org">TWiki:Main.PeterThoeny</a>
9031 rizwank 1.1 <ul>
9032             <li> <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/FormattedSearch">FormattedSearch</a> can be nested
9033             </li>
9034             </ul>
9035             </li>
9036             <li> <strong>05 May 2002</strong> - <a href="http://twiki.org/cgi-bin/view/Main.PeterThoeny" title="'Main.PeterThoeny' on TWiki.org">TWiki:Main.PeterThoeny</a>
9037             <ul>
9038             <li> New user home pages are now based on the <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/NewUserTemplate">NewUserTemplate</a>, replacing the <code>/twiki/templates/register.tmpl</code> template file
9039             </li>
9040             </ul>
9041             </li>
9042             <li> <strong>26 Apr 2002</strong> - <a href="http://twiki.org/cgi-bin/view/Main.PeterThoeny" title="'Main.PeterThoeny' on TWiki.org">TWiki:Main.PeterThoeny</a>
9043             <ul>
9044             <li> New markup to exclude heading from a <code>%TOC%</code> table of content, e.g. <code>---+!! This heading</code> is not shown in a TOC
9045             </li>
9046             </ul>
9047             </li>
9048             <li> <strong>13 Apr 2002</strong> - <a href="http://twiki.org/cgi-bin/view/Main.PeterThoeny" title="'Main.PeterThoeny' on TWiki.org">TWiki:Main.PeterThoeny</a>
9049             <ul>
9050             <li> Form and script to create new webs, see <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/ManagingWebs">ManagingWebs</a>
9051             </li>
9052 rizwank 1.1 </ul>
9053             </li>
9054             <li> <strong>01 Apr 2002</strong> - <a href="http://twiki.org/cgi-bin/view/Main.JohnTalintyre" title="'Main.JohnTalintyre' on TWiki.org">TWiki:Main.JohnTalintyre</a>
9055             <ul>
9056             <li> New data storage framework that lets you use external RCS commands for revision control, or a new native Perl implementation that does not depend on the external RCS commands
9057             </li>
9058             </ul>
9059             </li>
9060             <li> <strong>28 Mar 2002</strong> - <a href="http://twiki.org/cgi-bin/view/Main.RichardDonkin" title="'Main.RichardDonkin' on TWiki.org">TWiki:Main.RichardDonkin</a>
9061             <ul>
9062             <li> Fixed IE5/IE6-specific problem whereby going back from preview sometimes removes all edit changes
9063             </li>
9064             </ul>
9065             </li>
9066             <li> <strong>23 Mar 2002</strong> - <a href="http://twiki.org/cgi-bin/view/Main.JohnTalintyre" title="'Main.JohnTalintyre' on TWiki.org">TWiki:Main.JohnTalintyre</a>
9067             <ul>
9068             <li> New AND search; with regular expression enabled, use the semicolon ";" as the AND operator in <code>%SEARCH{}%</code> variable, <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/FormattedSearch">FormattedSearch</a> and <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/WebSearch">WebSearch</a>
9069             </li>
9070             </ul>
9071             </li>
9072             <li> <strong>21 Mar 2002</strong> - <a href="http://twiki.org/cgi-bin/view/Main.ColasNahaboo" title="'Main.ColasNahaboo' on TWiki.org">TWiki:Main.ColasNahaboo</a>, <a href="http://twiki.org/cgi-bin/view/Main.RichardDonkin" title="'Main.RichardDonkin' on TWiki.org">TWiki:Main.RichardDonkin</a>
9073 rizwank 1.1 <ul>
9074             <li> Fixed cache issue where the edit page showed outdated content
9075             </li>
9076             </ul>
9077             </li>
9078             <li> <strong>06 Mar 2002</strong> - <a href="http://twiki.org/cgi-bin/view/Main.RichardDonkin" title="'Main.RichardDonkin' on TWiki.org">TWiki:Main.RichardDonkin</a>
9079             <ul>
9080             <li> Improved statistics script which uses less memory to process large log files
9081             </li>
9082             </ul>
9083             </li>
9084             <li> <strong>09 Jan 2002</strong> - <a href="http://twiki.org/cgi-bin/view/Main.JohnTalintyre" title="'Main.JohnTalintyre' on TWiki.org">TWiki:Main.JohnTalintyre</a>
9085             <ul>
9086             <li> Variables inside <code>&lt;verbatim&gt;</code> tags are no longer expanded
9087             </li>
9088             </ul>
9089             </li>
9090             </ul>
9091             <p />
9092             <h2><a name="01_Dec_2001_Release_Athens"> </a><a name="01_Dec_2001_Release_Athens_"> </a> 01-Dec-2001 Release (Athens) </h2>
9093             <p />
9094 rizwank 1.1 <ul>
9095             <li> <strong>25 Oct 2001</strong> - <a href="http://twiki.org/cgi-bin/view/Main.PeterThoeny" title="'Main.PeterThoeny' on TWiki.org">TWiki:Main.PeterThoeny</a>
9096             <ul>
9097             <li> Added <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/FormattedSearch">FormattedSearch</a> to <code>%SEARCH{}%</code> variable for database like reporting.
9098             </li>
9099             </ul>
9100             </li>
9101             </ul>
9102             <p />
9103             <h2><a name="01_Sep_2001_Release"> </a> 01-Sep-2001 Release </h2>
9104             <p />
9105             <ul>
9106             <li> <strong>30 Aug 2001</strong> - <a href="http://twiki.org/cgi-bin/view/Main.JohnTalintyre" title="'Main.JohnTalintyre' on TWiki.org">TWiki:Main.JohnTalintyre</a>
9107             <ul>
9108             <li> Easier install for Windows, including auto detection in <code>TWiki.cfg</code>
9109             </li>
9110             </ul>
9111             </li>
9112             <li> <strong>30 Aug 2001</strong> - <a href="http://twiki.org/cgi-bin/view/Main.JohnTalintyre" title="'Main.JohnTalintyre' on TWiki.org">TWiki:Main.JohnTalintyre</a>
9113             <ul>
9114             <li> Ability to move attachments between topics, see <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/FileAttachment">FileAttachments</a> 
9115 rizwank 1.1 </li>
9116             </ul>
9117             </li>
9118             <li> <strong>21 Aug 2001</strong> - <a href="http://twiki.org/cgi-bin/view/Main.PeterThoeny" title="'Main.PeterThoeny' on TWiki.org">TWiki:Main.PeterThoeny</a>
9119             <ul>
9120             <li> Convert to XHTML 1.0 function: first step to XHTML-ifying TWiki
9121             </li>
9122             </ul>
9123             </li>
9124             <li> <strong>26 Jun 2001</strong> - <a href="http://twiki.org/cgi-bin/view/Main.JohnTalintyre" title="'Main.JohnTalintyre' on TWiki.org">TWiki:Main.JohnTalintyre</a>
9125             <ul>
9126             <li> Category information to forms using the <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/TWikiMetaData">TWikiMetaData</a> format, see <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/TWikiForms">TWikiForms</a>
9127             </li>
9128             </ul>
9129             </li>
9130             <li> <strong>07 Jun 2001</strong> - <a href="http://twiki.org/cgi-bin/view/Main.PeterThoeny" title="'Main.PeterThoeny' on TWiki.org">TWiki:Main.PeterThoeny</a>
9131             <ul>
9132             <li> New topic templates as topics instead of templates. Customize by editing the topic. Retired <code>notedited.tmpl</code>, <code>notext.tmpl</code> and <code>notwiki.tmpl</code> templates. More in <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/TWikiTemplates">TWikiTemplates</a>. 
9133             </li>
9134             </ul>
9135             </li>
9136 rizwank 1.1 <li> <strong>07 Jun 2001</strong> - <a href="http://twiki.org/cgi-bin/view/Main.PeterThoeny" title="'Main.PeterThoeny' on TWiki.org">TWiki:Main.PeterThoeny</a>
9137             <ul>
9138             <li> New <code>%TOPICLIST{"format"}%</code> and <code>%WEBLIST{"format"}%</code> variables to get a formatted topic index and web index, respectively. More in <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/TWikiVariables">TWikiVariables</a>. 
9139             </li>
9140             </ul>
9141             </li>
9142             <li> <strong>01 Jun 2001</strong> - <a href="http://twiki.org/cgi-bin/view/Main.PeterThoeny" title="'Main.PeterThoeny' on TWiki.org">TWiki:Main.PeterThoeny</a>
9143             <ul>
9144             <li> New <code>%URLPARAM{"name"}%</code> variable to query URL parameters. More in <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/TWikiVariables">TWikiVariables</a>. 
9145             </li>
9146             </ul>
9147             </li>
9148             <li> <strong>01 Jun 2001</strong> - <a href="http://twiki.org/cgi-bin/view/Main.AndreaSterbini" title="'Main.AndreaSterbini' on TWiki.org">TWiki:Main.AndreaSterbini</a>
9149             <ul>
9150             <li> API to extend TWiki, see <a class="twikiAnchorLink" href="http://TWiki.org/cgi-bin/view/TWiki/TWikiPlugins#PluginAPI">TWikiPluginAPI</a> 
9151             </li>
9152             </ul>
9153             </li>
9154             <li> <strong>01 Jun 2001</strong> - <a href="http://twiki.org/cgi-bin/view/Main.KlausWriessnegger" title="'Main.KlausWriessnegger' on TWiki.org">TWiki:Main.KlausWriessnegger</a>, <a href="http://twiki.org/cgi-bin/view/Main.AndreaSterbini" title="'Main.AndreaSterbini' on TWiki.org">TWiki:Main.AndreaSterbini</a>
9155             <ul>
9156             <li> Forms to change/reset/install passwords, see <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/ChangePassword">ChangePassword</a> &amp; <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/ResetPassword">ResetPassword</a>
9157 rizwank 1.1 </li>
9158             </ul>
9159             </li>
9160             <li> <strong>01 May 2001</strong> - <a href="http://twiki.org/cgi-bin/view/Main.AndreaSterbini" title="'Main.AndreaSterbini' on TWiki.org">TWiki:Main.AndreaSterbini</a>
9161             <ul>
9162             <li> The <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/Main/TWikiAdminGroup">TWikiAdminGroup</a> (or other group) can be enabled as a <a class="twikiAnchorLink" href="http://TWiki.org/cgi-bin/view/TWiki/TWikiAccessControl#SuperAdminGroup">SuperAdminGroup</a>. Members have browser edit access to <em>all</em> locked topics. 
9163             </li>
9164             </ul>
9165             </li>
9166             <li> <strong>01 May 2001</strong> - <a href="http://twiki.org/cgi-bin/view/Main.JohnTalintyre" title="'Main.JohnTalintyre' on TWiki.org">TWiki:Main.JohnTalintyre</a>
9167             <ul>
9168             <li> Meta information format, see <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/TWikiMetaData">TWikiMetaData</a>
9169             </li>
9170             </ul>
9171             </li>
9172             <li> <strong>01 May 2001</strong> - <a href="http://twiki.org/cgi-bin/view/Main.JohnTalintyre" title="'Main.JohnTalintyre' on TWiki.org">TWiki:Main.JohnTalintyre</a>
9173             <ul>
9174             <li> Attachment under revision control See <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/FileAttachment">FileAttachment</a> 
9175             </li>
9176             </ul>
9177             </li>
9178 rizwank 1.1 <li> <strong>01 May 2001</strong> - <a href="http://twiki.org/cgi-bin/view/Main.JohnTalintyre" title="'Main.JohnTalintyre' on TWiki.org">TWiki:Main.JohnTalintyre</a>
9179             <ul>
9180             <li> Ability to rename/move topics, <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/ManagingTopics">ManagingTopics</a>
9181             </li>
9182             </ul>
9183             </li>
9184             <li> <strong>27 Mar 2001</strong> - <a href="http://twiki.org/cgi-bin/view/Main.PeterThoeny" title="'Main.PeterThoeny' on TWiki.org">TWiki:Main.PeterThoeny</a>
9185             <ul>
9186             <li> The table syntax has been enhanced to (i) render <code><b>| *bold* |</b></code> cells as table headers, (ii) render space padded cells <code><b>| &nbsp; center aligned &nbsp; |</b></code> and <code><b>| &nbsp; right aligned |</b></code>, (iii) span multiple columns using <code><b>| empty cells |||</b></code>. More in <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/TextFormattingRules">TextFormattingRules</a>. 
9187             </li>
9188             </ul>
9189             </li>
9190             <li> <strong>25 Mar 2001</strong> - <a href="http://twiki.org/cgi-bin/view/Main.PeterThoeny" title="'Main.PeterThoeny' on TWiki.org">TWiki:Main.PeterThoeny</a>
9191             <ul>
9192             <li> Security fix Questionable files like PHP scripts (executables) and <code><b>.htaccess</b></code> files that are attached to a topic get a <code><b>.txt</b></code> suffix appended to the file name. See also <a href="http://twiki.org/cgi-bin/view/Codev/FileAttachmentFilterSecurityAlert" title="'Codev/FileAttachmentFilterSecurityAlert' on TWiki.org">TWiki:Codev/FileAttachmentFilterSecurityAlert</a> 
9193             </li>
9194             </ul>
9195             </li>
9196             <li> <strong>28 Feb 2001</strong> - <a href="http://twiki.org/cgi-bin/view/Main.AndreaSterbini" title="'Main.AndreaSterbini' on TWiki.org">TWiki:Main.AndreaSterbini</a>, <a href="http://twiki.org/cgi-bin/view/Main.PeterThoeny" title="'Main.PeterThoeny' on TWiki.org">TWiki:Main.PeterThoeny</a>
9197             <ul>
9198             <li> New Wiki rule for headings, i.e. <code>---++ My Title</code>; and new <code>%TOC%</code> variable to build a table of content from headings in a topic. More in <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/TWikiVariables">TWikiVariables</a>. 
9199 rizwank 1.1 </li>
9200             </ul>
9201             </li>
9202             <li> <strong>28 Feb 2001</strong> - <a href="http://twiki.org/cgi-bin/view/Main.PeterThoeny" title="'Main.PeterThoeny' on TWiki.org">TWiki:Main.PeterThoeny</a>
9203             <ul>
9204             <li> New Wiki rule to specify arbitrary text for external links (i.e. <code>[[http://TWki.org][TWiki]]</code>) and internal links (i.e <code>[[WikiSyntax][syntax]]</code>). More in <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/TWikiVariables">TWikiVariables</a>. 
9205             </li>
9206             </ul>
9207             </li>
9208             <li> <strong>28 Feb 2001</strong> - <a href="http://twiki.org/cgi-bin/view/Main.PeterThoeny" title="'Main.PeterThoeny' on TWiki.org">TWiki:Main.PeterThoeny</a>
9209             <ul>
9210             <li> New Wiki rule for named anchors, e.g. links within a topic. Define a named anchor with <code>#MyAnchor</code> at the beginning of a line, and link to it with <code>[[#MyAnchor]]</code>. More in <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/TWikiVariables">TWikiVariables</a>. 
9211             </li>
9212             </ul>
9213             </li>
9214             <li> <strong>25 Feb 2001</strong> - <a href="http://twiki.org/cgi-bin/view/Main.NicholasLee" title="'Main.NicholasLee' on TWiki.org">TWiki:Main.NicholasLee</a>, <a href="http://twiki.org/cgi-bin/view/Main.PeterThoeny" title="'Main.PeterThoeny' on TWiki.org">TWiki:Main.PeterThoeny</a>
9215             <ul>
9216             <li> Use <code>Net::SMTP</code> module instead of <code>sendmail</code> if installed. 
9217             </li>
9218             </ul>
9219             </li>
9220 rizwank 1.1 <li> <strong>01 Feb 2001</strong> - <a href="http://twiki.org/cgi-bin/view/Main.PeterThoeny" title="'Main.PeterThoeny' on TWiki.org">TWiki:Main.PeterThoeny</a>
9221             <ul>
9222             <li> Added <code>&lt;verbatim&gt;</code> ... <code>&lt;/verbatim&gt;</code> tags to show source code "as is". Unlike the <code>&lt;pre&gt;</code> ... <code>&lt;/pre&gt;</code> tags, it also shows <code>&lt;</code>, <code>&gt;</code>, <code>&amp;</code> characters "as is". 
9223             </li>
9224             </ul>
9225             </li>
9226             <li> <strong>01 Feb 2001</strong> - <a href="http://twiki.org/cgi-bin/view/Main.PeterThoeny" title="'Main.PeterThoeny' on TWiki.org">TWiki:Main.PeterThoeny</a>
9227             <ul>
9228             <li> Fixed <a href="http://twiki.org/cgi-bin/view/Codev/CreateLinkToAttachedFileBug" title="'Codev/CreateLinkToAttachedFileBug' on TWiki.org">TWiki:Codev/CreateLinkToAttachedFileBug</a>. 
9229             </li>
9230             </ul>
9231             </li>
9232             <li> <strong>21 Jan 2001</strong> - <a href="http://twiki.org/cgi-bin/view/Main.PeterThoeny" title="'Main.PeterThoeny' on TWiki.org">TWiki:Main.PeterThoeny</a>
9233             <ul>
9234             <li> Added a "Minor change, don't notify" checkbox in preview. More in <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/DontNotify">DontNotify</a>. 
9235             </li>
9236             </ul>
9237             </li>
9238             <li> <strong>21 Jan 2001</strong> - <a href="http://twiki.org/cgi-bin/view/Main.PeterThoeny" title="'Main.PeterThoeny' on TWiki.org">TWiki:Main.PeterThoeny</a>
9239             <ul>
9240             <li> Added Bold Fixed formatting using double-equal signs, e.g. write <code>==Bold Fixed==</code> to get <code><b>Bold Fixed</b></code>. 
9241 rizwank 1.1 </li>
9242             </ul>
9243             </li>
9244             <li> <strong>20 Jan 2001</strong> - <a href="http://twiki.org/cgi-bin/view/Main.PeterThoeny" title="'Main.PeterThoeny' on TWiki.org">TWiki:Main.PeterThoeny</a>
9245             <ul>
9246             <li> Format changed of <code>%GMTIME{"..."}%</code> and <code>%SERVERTIME{"..."}%</code> variables. Format is now <code>"$hour:$min"</code> instead of <code>"hour:min"</code>. More in <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/TWikiVariables">TWikiVariables</a>. <strong><em>Attention:</em></strong> Check your existing topics when you upgrade TWiki! 
9247             </li>
9248             </ul>
9249             </li>
9250             <li> <strong>18 Jan 2001</strong> - <a href="http://twiki.org/cgi-bin/view/Main.PeterThoeny" title="'Main.PeterThoeny' on TWiki.org">TWiki:Main.PeterThoeny</a>
9251             <ul>
9252             <li> <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/WebChanges">WebChanges</a>, <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/WebSearch">WebSearch</a> and e-mail notification indicate also the revision number of a topic (i.e. <u>18 Jan 2001 16:43 r1.5</u>), or NEW for a new topic (i.e. i.e. <u>18 Jan 2001 16:43 <b>NEW</b></u>). 
9253             </li>
9254             </ul>
9255             </li>
9256             <li> <strong>16 Jan 2001</strong> - <a href="http://twiki.org/cgi-bin/view/Main.PeterThoeny" title="'Main.PeterThoeny' on TWiki.org">TWiki:Main.PeterThoeny</a>
9257             <ul>
9258             <li> New variable <code>%STARTINCLUDE%</code> and <code>%STOPINCLUDE%</code> variables to control what gets included of a topic. More in <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/TWikiVariables">TWikiVariables</a>. 
9259             </li>
9260             </ul>
9261             </li>
9262 rizwank 1.1 <li> <strong>16 Jan 2001</strong> - <a href="http://twiki.org/cgi-bin/view/Main.PeterThoeny" title="'Main.PeterThoeny' on TWiki.org">TWiki:Main.PeterThoeny</a>
9263             <ul>
9264             <li> TWiki skins Define a different page layout with a customized header and footer layout, i.e. a <code>print</code> skin for a printable view of a topic. More in <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/TWikiSkins">TWikiSkins</a> and <a href="http://twiki.org/cgi-bin/view/Codev/TWikiSkins" title="'Codev/TWikiSkins' on TWiki.org">TWiki:Codev/TWikiSkins</a>. 
9265             </li>
9266             </ul>
9267             </li>
9268             <li> <strong>07 Jan 2001</strong> - <a href="http://twiki.org/cgi-bin/view/Main.StanleyKnutson" title="'Main.StanleyKnutson' on TWiki.org">TWiki:Main.StanleyKnutson</a>
9269             <ul>
9270             <li> Better error handling when saving a topic. 
9271             </li>
9272             </ul>
9273             </li>
9274             <li> <strong>05 Jan 2001</strong> - <a href="http://twiki.org/cgi-bin/view/Main.PeterThoeny" title="'Main.PeterThoeny' on TWiki.org">TWiki:Main.PeterThoeny</a>
9275             <ul>
9276             <li> View authorization based on groups. Define who is allowed to see a TWiki web. More in <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/TWikiAccessControl">TWikiAccessControl</a> and <a href="http://twiki.org/cgi-bin/view/Codev/AuthenticationBasedOnGroups" title="'Codev/AuthenticationBasedOnGroups' on TWiki.org">TWiki:Codev/AuthenticationBasedOnGroups</a>. 
9277             </li>
9278             </ul>
9279             </li>
9280             <li> <strong>05 Dec 2000</strong> - <a href="http://twiki.org/cgi-bin/view/Main.PeterThoeny" title="'Main.PeterThoeny' on TWiki.org">TWiki:Main.PeterThoeny</a>
9281             <ul>
9282             <li> Improved include handling. Infinite recursion of includes are prevented; new variables <code>%BASEWEB%</code>, <code>%INCLUDINGWEB%</code>, <code>%BASETOPIC%</code> and <code>%INCLUDINGTOPIC%</code> to have more control over include handling. More in <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/TWikiVariables">TWikiVariables</a> and <a href="http://twiki.org/cgi-bin/view/Codev/IncludeHandlingImprovements" title="'Codev/IncludeHandlingImprovements' on TWiki.org">TWiki:Codev/IncludeHandlingImprovements</a>. 
9283 rizwank 1.1 </li>
9284             </ul>
9285             </li>
9286             <li> <strong>03 Dec 2000</strong> - <a href="http://twiki.org/cgi-bin/view/Main.PeterThoeny" title="'Main.PeterThoeny' on TWiki.org">TWiki:Main.PeterThoeny</a>
9287             <ul>
9288             <li> New <code>noheader="on"</code> switch in <code>%SEARCH{...}%</code> to suppress table header. More in <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/TWikiVariables">TWikiVariables</a>. 
9289             </li>
9290             </ul>
9291             </li>
9292             </ul>
9293             <p />
9294             <h2><a name="01_Dec_2000_Release"> </a> 01-Dec-2000 Release </h2>
9295             <p />
9296             <ul>
9297             <li> <strong>03 Nov 2000</strong> - <a href="http://twiki.org/cgi-bin/view/Main.PeterThoeny" title="'Main.PeterThoeny' on TWiki.org">TWiki:Main.PeterThoeny</a>
9298             <ul>
9299             <li> Flag <code>$doHidePasswdInRegistration</code> in <code>wikicfg.pm</code> to hide plain text password in registration email. 
9300             </li>
9301             </ul>
9302             </li>
9303             <li> <strong>01 Nov 2000</strong> - <a href="http://twiki.org/cgi-bin/view/Main.PeterThoeny" title="'Main.PeterThoeny' on TWiki.org">TWiki:Main.PeterThoeny</a>
9304 rizwank 1.1 <ul>
9305             <li> New variable <code>%VAR{"NAME" web="Web"}%</code> to get web specific preferences. More in <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/TWikiVariables">TWikiVariables</a>. 
9306             </li>
9307             </ul>
9308             </li>
9309             <li> <strong>01 Nov 2000</strong> - <a href="http://twiki.org/cgi-bin/view/Main.PeterThoeny" title="'Main.PeterThoeny' on TWiki.org">TWiki:Main.PeterThoeny</a>
9310             <ul>
9311             <li> Added a "Cancel" link in edit that releases the edit lock. 
9312             </li>
9313             </ul>
9314             </li>
9315             <li> <strong>23 Oct 2000</strong> - <a href="http://twiki.org/cgi-bin/view/Main.PeterThoeny" title="'Main.PeterThoeny' on TWiki.org">TWiki:Main.PeterThoeny</a>
9316             <ul>
9317             <li> Authorization based on groups. Define fine graned control who is allowed to change or create topics. More in <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/TWikiAccessControl">TWikiAccessControl</a> and <a href="http://twiki.org/cgi-bin/view/Codev/AuthenticationBasedOnGroups" title="'Codev/AuthenticationBasedOnGroups' on TWiki.org">TWiki:Codev/AuthenticationBasedOnGroups</a>. 
9318             </li>
9319             </ul>
9320             </li>
9321             <li> <strong>05 Oct 2000</strong> - <a href="http://twiki.org/cgi-bin/view/Main.PeterThoeny" title="'Main.PeterThoeny' on TWiki.org">TWiki:Main.PeterThoeny</a>
9322             <ul>
9323             <li> Remember user by IP address so that <code>view</code> "knows" the user once authenticated in <code>edit</code>. More in <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/TWikiUserAuthentication">TWikiUserAuthentication</a>. 
9324             </li>
9325 rizwank 1.1 </ul>
9326             </li>
9327             <li> <strong>26 Sep 2000</strong> - <a href="http://twiki.org/cgi-bin/view/Main.AlWilliams" title="'Main.AlWilliams' on TWiki.org">TWiki:Main.AlWilliams</a>, <a href="http://twiki.org/cgi-bin/view/Main.PeterThoeny" title="'Main.PeterThoeny' on TWiki.org">TWiki:Main.PeterThoeny</a>
9328             <ul>
9329             <li> Fixed <a href="http://twiki.org/cgi-bin/view/Codev/UppercaseAttachments" title="'Codev/UppercaseAttachments' on TWiki.org">TWiki:Codev/UppercaseAttachments</a> bug and added <code>png</code> image support. 
9330             </li>
9331             </ul>
9332             </li>
9333             <li> <strong>26 Sep 2000</strong> - <a href="http://twiki.org/cgi-bin/view/Main.HaroldGottschalk" title="'Main.HaroldGottschalk' on TWiki.org">TWiki:Main.HaroldGottschalk</a>, <a href="http://twiki.org/cgi-bin/view/Main.AndreaSterbini" title="'Main.AndreaSterbini' on TWiki.org">TWiki:Main.AndreaSterbini</a>, <a href="http://twiki.org/cgi-bin/view/Main.PeterThoeny" title="'Main.PeterThoeny' on TWiki.org">TWiki:Main.PeterThoeny</a>
9334             <ul>
9335             <li> Allow nesting of variables, i.e. <code>%INCLUDE{"%TWIKIWEB%.TWikiWebsTable"}%</code>. More in <a href="http://twiki.org/cgi-bin/view/Codev/BetterTWikiTagTemplateProcessing" title="'Codev/BetterTWikiTagTemplateProcessing' on TWiki.org">TWiki:Codev/BetterTWikiTagTemplateProcessing</a>. 
9336             </li>
9337             </ul>
9338             </li>
9339             <li> <strong>20 Sep 2000</strong> - <a href="http://twiki.org/cgi-bin/view/Main.ManpreetSingh" title="'Main.ManpreetSingh' on TWiki.org">TWiki:Main.ManpreetSingh</a>
9340             <ul>
9341             <li> New -q switch in <code>mailnotify</code> to suppress all normal output. 
9342             </li>
9343             </ul>
9344             </li>
9345             <li> <strong>19 Sep 2000</strong> - <a href="http://twiki.org/cgi-bin/view/Main.PeterThoeny" title="'Main.PeterThoeny' on TWiki.org">TWiki:Main.PeterThoeny</a>
9346 rizwank 1.1 <ul>
9347             <li> Fixed <a href="http://twiki.org/cgi-bin/view/Codev/AttachedNotificationLinksBug" title="'Codev/AttachedNotificationLinksBug' on TWiki.org">TWiki:Codev/AttachedNotificationLinksBug</a>. 
9348             </li>
9349             </ul>
9350             </li>
9351             <li> <strong>18 Sep 2000</strong> - <a href="http://twiki.org/cgi-bin/view/Main.ManpreetSingh" title="'Main.ManpreetSingh' on TWiki.org">TWiki:Main.ManpreetSingh</a>, <a href="http://twiki.org/cgi-bin/view/Main.PeterThoeny" title="'Main.PeterThoeny' on TWiki.org">TWiki:Main.PeterThoeny</a>
9352             <ul>
9353             <li> Added forced internal links. Write <code>[[text formatting FAQ]]</code> to get the link <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/TextFormattingFAQ">text formatting FAQ</a> that points to topic <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/TextFormattingFAQ">TextFormattingFAQ</a>. 
9354             </li>
9355             </ul>
9356             </li>
9357             <li> <strong>19 Aug 2000</strong> - <a href="http://twiki.org/cgi-bin/view/Main.PeterThoeny" title="'Main.PeterThoeny' on TWiki.org">TWiki:Main.PeterThoeny</a>
9358             <ul>
9359             <li> Ref-By link searches all webs (not just the current web.) 
9360             </li>
9361             </ul>
9362             </li>
9363             <li> <strong>16 Aug 2000</strong> - <a href="http://twiki.org/cgi-bin/view/Main.PeterThoeny" title="'Main.PeterThoeny' on TWiki.org">TWiki:Main.PeterThoeny</a>
9364             <ul>
9365             <li> New <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/TWikiPreferences">TWikiPreferences</a> variables <code>%HTTP_EQUIV_ON_VIEW%</code> , <code>%HTTP_EQUIV_ON_EDIT%</code> and <code>%HTTP_EQUIV_ON_PREVIEW%</code> that define the <code>&lt;meta http-equiv="..."&gt;</code> meta tags for the TWiki templates. This can be used for example to set a document expiration time. 
9366             </li>
9367 rizwank 1.1 </ul>
9368             </li>
9369             <li> <strong>29 Jul 2000</strong> - <a href="http://twiki.org/cgi-bin/view/Main.PeterThoeny" title="'Main.PeterThoeny' on TWiki.org">TWiki:Main.PeterThoeny</a>
9370             <ul>
9371             <li> New variables <code>%GMTIME{"..."}%</code> and <code>%SERVERTIME{"..."}%</code> . More in <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/TWikiVariables">TWikiVariables</a>. 
9372             </li>
9373             </ul>
9374             </li>
9375             <li> <strong>23 Jul 2000</strong> - <a href="http://twiki.org/cgi-bin/view/Main.PeterThoeny" title="'Main.PeterThoeny' on TWiki.org">TWiki:Main.PeterThoeny</a>
9376             <ul>
9377             <li> Changed include syntax from <code>%INCLUDE{"Web/TopicName.txt"}%</code> to <code>%INCLUDE{"Web.TopicName"}%</code> . Legacy syntax still supported. 
9378             </li>
9379             </ul>
9380             </li>
9381             <li> <strong>23 Jul 2000</strong> - <a href="http://twiki.org/cgi-bin/view/Main.PeterThoeny" title="'Main.PeterThoeny' on TWiki.org">TWiki:Main.PeterThoeny</a>
9382             <ul>
9383             <li> <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/BookView">BookView</a> search allows you show a set of topics for easy printing. 
9384             </li>
9385             </ul>
9386             </li>
9387             <li> <strong>22 Jul 2000</strong> - <a href="http://twiki.org/cgi-bin/view/Main.PeterThoeny" title="'Main.PeterThoeny' on TWiki.org">TWiki:Main.PeterThoeny</a>
9388 rizwank 1.1 <ul>
9389             <li> More forgiving syntax for <code>*bold*, <em>italic</em>, __bold italic__</code> and <code><b>fixed</b></code> , where it is not necessary anymore to have a trailing space before <code>.,;:?!</code> characters. 
9390             </li>
9391             </ul>
9392             </li>
9393             <li> <strong>22 Jul 2000</strong> - <a href="http://twiki.org/cgi-bin/view/Main.PeterThoeny" title="'Main.PeterThoeny' on TWiki.org">TWiki:Main.PeterThoeny</a>
9394             <ul>
9395             <li> Split the TWiki.Main web into TWiki.Main (users, company data) and TWiki.TWiki (TWiki related documentation, registration) 
9396             </li>
9397             </ul>
9398             </li>
9399             <li> <strong>07 Jul 2000</strong> - <a href="http://twiki.org/cgi-bin/view/Main.PeterThoeny" title="'Main.PeterThoeny' on TWiki.org">TWiki:Main.PeterThoeny</a>
9400             <ul>
9401             <li> Added an "Release edit lock" checkbox in preview to let other people edit the topic immediately without the one hour lock. 
9402             </li>
9403             </ul>
9404             </li>
9405             <li> <strong>07 Jul 2000</strong> - <a href="http://twiki.org/cgi-bin/view/Main.PeterThoeny" title="'Main.PeterThoeny' on TWiki.org">TWiki:Main.PeterThoeny</a>
9406             <ul>
9407             <li> Fixed problem of losing carriage returns when editing topics with KDE KFM browser or W3M browser. 
9408             </li>
9409 rizwank 1.1 </ul>
9410             </li>
9411             <li> <strong>21 Jun 2000</strong> - <a href="http://twiki.org/cgi-bin/view/Main.PeterThoeny" title="'Main.PeterThoeny' on TWiki.org">TWiki:Main.PeterThoeny</a>
9412             <ul>
9413             <li> Fixed problem that a page redirect on some server environments is not working (host name is needed in URL). 
9414             </li>
9415             </ul>
9416             </li>
9417             <li> <strong>21 Jun 2000</strong> - <a href="http://twiki.org/cgi-bin/view/Main.CrisBailiff" title="'Main.CrisBailiff' on TWiki.org">TWiki:Main.CrisBailiff</a>, <a href="http://twiki.org/cgi-bin/view/Main.PeterThoeny" title="'Main.PeterThoeny' on TWiki.org">TWiki:Main.PeterThoeny</a>
9418             <ul>
9419             <li> Fixed security issue to prevent a server side <code>%INCLUDE%</code> of arbitrary files. 
9420             </li>
9421             </ul>
9422             </li>
9423             <li> <strong>29 May 2000</strong> - <a href="http://twiki.org/cgi-bin/view/Main.PeterThoeny" title="'Main.PeterThoeny' on TWiki.org">TWiki:Main.PeterThoeny</a>
9424             <ul>
9425             <li> New <code>%GMTIME%</code> variable that shows the current GM time. 
9426             </li>
9427             </ul>
9428             </li>
9429             <li> <strong>28 May 2000</strong> - <a href="http://twiki.org/cgi-bin/view/Main.PeterThoeny" title="'Main.PeterThoeny' on TWiki.org">TWiki:Main.PeterThoeny</a>
9430 rizwank 1.1 <ul>
9431             <li> Lock warning shows remaining lock time in minutes. 
9432             </li>
9433             </ul>
9434             </li>
9435             <li> <strong>15 May 2000</strong> - <a href="http://twiki.org/cgi-bin/view/Main.PeterFokkinga" title="'Main.PeterFokkinga' on TWiki.org">TWiki:Main.PeterFokkinga</a>
9436             <ul>
9437             <li> Each topic can have its own template file. <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/TWikiTemplates">TWikiTemplates</a> has more. 
9438             </li>
9439             </ul>
9440             </li>
9441             <li> <strong>02 May 2000</strong> - <a href="http://twiki.org/cgi-bin/view/Main.KevinKinnell" title="'Main.KevinKinnell' on TWiki.org">TWiki:Main.KevinKinnell</a>, <a href="http://twiki.org/cgi-bin/view/Main.PeterThoeny" title="'Main.PeterThoeny' on TWiki.org">TWiki:Main.PeterThoeny</a>
9442             <ul>
9443             <li> Advanced search features like search multiple webs; sort by topic name / modified time / author; limit the number of results returned. More in <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/TWikiVariables">TWikiVariables</a>. 
9444             </li>
9445             </ul>
9446             </li>
9447             </ul>
9448             <p />
9449             <h2><a name="01_May_2000_Release"> </a> 01-May-2000 Release </h2>
9450             <p />
9451 rizwank 1.1 <ul>
9452             <li> <strong>21 Apr 2000</strong> - <a href="http://twiki.org/cgi-bin/view/Main.PeterThoeny" title="'Main.PeterThoeny' on TWiki.org">TWiki:Main.PeterThoeny</a>
9453             <ul>
9454             <li> New <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/TWikiVariables">TWikiVariables</a> <code>%HTTP_HOST%</code> , <code>%REMOTE_ADDR%</code> , <code>%REMOTE_PORT%</code> and <code>%REMOTE_USER%</code> . 
9455             </li>
9456             </ul>
9457             </li>
9458             <li> <strong>21 Apr 2000</strong> - <a href="http://twiki.org/cgi-bin/view/Main.JohnAltstadt" title="'Main.JohnAltstadt' on TWiki.org">TWiki:Main.JohnAltstadt</a>, <a href="http://twiki.org/cgi-bin/view/Main.PeterThoeny" title="'Main.PeterThoeny' on TWiki.org">TWiki:Main.PeterThoeny</a>
9459             <ul>
9460             <li> <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/TWikiRegistration">TWikiRegistration</a> is done separately for Intranet use (depends on remote_user) or Internet use (depends on .htpasswd file). 
9461             </li>
9462             </ul>
9463             </li>
9464             <li> <strong>20 Mar 2000</strong> - <a href="http://twiki.org/cgi-bin/view/Main.PeterThoeny" title="'Main.PeterThoeny' on TWiki.org">TWiki:Main.PeterThoeny</a>
9465             <ul>
9466             <li> Uploading a file (topic file attachment) will optionally create a link to the uploaded file at the end of the topic. The preference variable <code>%ATTACHLINKBOX%</code> controls the default state of the <strong><em>link</em></strong> check box in the attach file page. 
9467             </li>
9468             </ul>
9469             </li>
9470             <li> <strong>11 Mar 2000</strong> - <a href="http://twiki.org/cgi-bin/view/Main.PeterThoeny" title="'Main.PeterThoeny' on TWiki.org">TWiki:Main.PeterThoeny</a>
9471             <ul>
9472 rizwank 1.1 <li> Better security with taint checking ( <code>Perl -T</code> option ) 
9473             </li>
9474             </ul>
9475             </li>
9476             <li> <strong>25 Feb 2000</strong> - <a href="http://twiki.org/cgi-bin/view/Main.PeterThoeny" title="'Main.PeterThoeny' on TWiki.org">TWiki:Main.PeterThoeny</a>
9477             <ul>
9478             <li> New preference variables <code>%EDITBOXWIDTH%</code> and <code>%EDITBOXHEIGHT%</code> to specify the edit box size. 
9479             </li>
9480             </ul>
9481             </li>
9482             <li> <strong>25 Feb 2000</strong> - <a href="http://twiki.org/cgi-bin/view/Main.PeterThoeny" title="'Main.PeterThoeny' on TWiki.org">TWiki:Main.PeterThoeny</a>
9483             <ul>
9484             <li> Edit preferences topics to set TWiki variables. There are three level of preferences Site-level (<a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/TWikiPreferences">TWikiPreferences</a>), web-level (<a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/WebPreferences">WebPreferences</a> in each web) and user-level preferences (for each of the <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/Main/TWikiUsers">TWikiUsers</a>). With this, discontinue use of server side include of <code>wikiwebs.inc</code> , <code>wikiwebtable.inc</code> , <code>weblist.inc</code> , <code>webcopyright.inc</code> and <code>webcolors.inc</code> files.  
9485             </li>
9486             </ul>
9487             </li>
9488             <li> <strong>11 Feb 2000</strong> - <a href="http://twiki.org/cgi-bin/view/Main.PeterThoeny" title="'Main.PeterThoeny' on TWiki.org">TWiki:Main.PeterThoeny</a>
9489             <ul>
9490             <li> New variable <code>%SCRIPTSUFFIX%</code> / $scriptSuffix containing an optional file extension of the TWiki Perl script. Templates have been changed to use this variable. This allows you to rename the Perl script files to have a file extension like for example ".cgi". 
9491             </li>
9492             </ul>
9493 rizwank 1.1 </li>
9494             <li> <strong>11 Feb 2000</strong> - <a href="http://twiki.org/cgi-bin/view/Main.PeterThoeny" title="'Main.PeterThoeny' on TWiki.org">TWiki:Main.PeterThoeny</a>
9495             <ul>
9496             <li> New variable <code>%SCRIPTURLPATH%</code> / $scriptUrlPath containing the script URL without the domain name. Templates have been changed to use this variable instead of <code>%SCRIPTURL%</code> . This is for performance reasons. 
9497             </li>
9498             </ul>
9499             </li>
9500             <li> <strong>07 Feb 2000</strong> - <a href="http://twiki.org/cgi-bin/view/Main.PeterThoeny" title="'Main.PeterThoeny' on TWiki.org">TWiki:Main.PeterThoeny</a>
9501             <ul>
9502             <li> Changed the syntax for server side include variable from <code>%INCLUDE:"filename.ext"%</code> to <code>%INCLUDE{"filename.ext"}%</code> . (Previous syntax still supported. Change was done because of inline search syntax) 
9503             </li>
9504             </ul>
9505             </li>
9506             <li> <strong>07 Feb 2000</strong> - <a href="http://twiki.org/cgi-bin/view/Main.PeterThoeny" title="'Main.PeterThoeny' on TWiki.org">TWiki:Main.PeterThoeny</a>
9507             <ul>
9508             <li> Inline search. New variable <code>%SEARCH{"str" ...}%</code> to show a search result embedded in a topic text. <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/TWikiVariables">TWikiVariables</a> has more on the syntax. Inline search combined with the category table feature can be used for example to create a simple bug tracking system. 
9509             </li>
9510             </ul>
9511             </li>
9512             <li> <strong>04 Feb 2000</strong> - <a href="http://twiki.org/cgi-bin/view/Main.PeterThoeny" title="'Main.PeterThoeny' on TWiki.org">TWiki:Main.PeterThoeny</a>
9513             <ul>
9514 rizwank 1.1 <li> Access statistics. Each web has a <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/WebStatistics">WebStatistics</a> topic that shows monthy statistics with number of topic views and changes, most popular topics, and top contributors. (It needs to be enabled, <a class="twikiLink" href="">TWikiDocumentation</a> has more.) 
9515             </li>
9516             </ul>
9517             </li>
9518             <li> <strong>29 Jan 2000</strong> - <a href="http://twiki.org/cgi-bin/view/Main.PeterThoeny" title="'Main.PeterThoeny' on TWiki.org">TWiki:Main.PeterThoeny</a>
9519             <ul>
9520             <li> Fixed bug where TWiki would not initialize correctly under certain circumstances, i.e. when running it under mod_perl. Sub <code>initialize</code> in <code>wiki.pm</code> did not handle <code>$thePathInfo</code> correctly. 
9521             </li>
9522             </ul>
9523             </li>
9524             <li> <strong>24 Jan 2000</strong> - <a href="http://twiki.org/cgi-bin/view/Main.PeterThoeny" title="'Main.PeterThoeny' on TWiki.org">TWiki:Main.PeterThoeny</a>
9525             <ul>
9526             <li> Fixed bug where an email address starting with a <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/WikiName">WikiName</a> was rendered as an internal Wiki link instead of an email address, i.e. <a href="mailto:SomeWikiName@somewhere.test">SomeWikiName@somewhere.test</a> . 
9527             </li>
9528             </ul>
9529             </li>
9530             <li> <strong>10 Jan 2000</strong> - <a href="http://twiki.org/cgi-bin/view/Main.PeterThoeny" title="'Main.PeterThoeny' on TWiki.org">TWiki:Main.PeterThoeny</a>
9531             <ul>
9532             <li> No more escaping for '%' percent characters. (Number of consecutive '%' entered and displayed is identical.) 
9533             </li>
9534             </ul>
9535 rizwank 1.1 </li>
9536             <li> <strong>03 Oct 1999</strong> - <a href="http://twiki.org/cgi-bin/view/Main.PeterThoeny" title="'Main.PeterThoeny' on TWiki.org">TWiki:Main.PeterThoeny</a>
9537             <ul>
9538             <li> Limit the number of revisions shown at the bottom of the topic. Example <br> Topic TWikiHistory . { .....   <A href="../../rdiff/TWiki/TWikiHistory">Diffs</A>   r1.10   <A href="../../rdiff/TWiki/TWikiHistory?rev1=1.10&amp;rev2=1.9">&gt;</A>   <A href="../../view/TWiki/TWikiHistory?rev=1.9">r1.9</A>   <A href="../../rdiff/TWiki/TWikiHistory?rev1=1.9&amp;rev2=1.8">&gt;</A>   <A href="../../view/TWiki/TWikiHistory?rev=1.8">r1.8</A>   <A href="../../rdiff/TWiki/TWikiHistory?rev1=1.8&amp;rev2=1.7">&gt;</A>   <A href="../../view/TWiki/TWikiHistory?rev=1.7">r1.7</A>   <A href="../../oops/TWiki/TWikiHistory?template=oopsrev&amp;param1=1.10">&gt;...</A> } <br> Additional revisions can be selected by pressing the <code>&gt;...</code> link.  
9539             </li>
9540             </ul>
9541             </li>
9542             </ul>
9543             <p />
9544             <h2><a name="01_Sep_1999_Release"> </a> 01-Sep-1999 Release </h2>
9545             <p />
9546             <ul>
9547             <li> <strong>31 Aug 1999</strong> - <a href="http://twiki.org/cgi-bin/view/Main.PeterThoeny" title="'Main.PeterThoeny' on TWiki.org">TWiki:Main.PeterThoeny</a>
9548             <ul>
9549             <li> Fixed Y2K bug. (Date in year 2000 had wrong format.) 
9550             </li>
9551             </ul>
9552             </li>
9553             <li> <strong>08 Aug 1999</strong> - <a href="http://twiki.org/cgi-bin/view/Main.PeterThoeny" title="'Main.PeterThoeny' on TWiki.org">TWiki:Main.PeterThoeny</a>
9554             <ul>
9555             <li> New text formatting rule for creating tables. Text gets rendered as a table if enclosed in " " vertical bars. Example line as it is written and how it shows up  
9556 rizwank 1.1 </li>
9557             </ul>
9558             </li>
9559             <li> <strong>03 Aug 1999</strong> - <a href="http://twiki.org/cgi-bin/view/Main.PeterThoeny" title="'Main.PeterThoeny' on TWiki.org">TWiki:Main.PeterThoeny</a>
9560             <ul>
9561             <li> Online registration of new user using web form in <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/TWikiRegistration">TWikiRegistration</a>. Authentication of users. 
9562             </li>
9563             </ul>
9564             </li>
9565             <li> <strong>22 Jul 1999</strong> - <a href="http://twiki.org/cgi-bin/view/Main.PeterThoeny" title="'Main.PeterThoeny' on TWiki.org">TWiki:Main.PeterThoeny</a>
9566             <ul>
9567             <li> Flags <code>$doLogTopic*</code> in wikicfg.pm to selectively log topic view, edit, save, rdiff, attach, search and changes to monthly log file. 
9568             </li>
9569             </ul>
9570             </li>
9571             <li> <strong>21 Jul 1999</strong> - <a href="http://twiki.org/cgi-bin/view/Main.PeterThoeny" title="'Main.PeterThoeny' on TWiki.org">TWiki:Main.PeterThoeny</a>
9572             <ul>
9573             <li> Flag <code>$doRemovePortNumber</code> in wikicfg.pm to optionally remove the port number from the TWiki URL. Example <code>www.some.domain:1234/twiki</code> gets <code>www.some.domain/twiki</code> . 
9574             </li>
9575             </ul>
9576             </li>
9577 rizwank 1.1 <li> <strong>15 Jul 1999</strong> - <a href="http://twiki.org/cgi-bin/view/Main.PeterThoeny" title="'Main.PeterThoeny' on TWiki.org">TWiki:Main.PeterThoeny</a>
9578             <ul>
9579             <li> Search path for include files in <code>%INCLUDE:"file.inc"%</code> variable. Search first in the current web, then in parent data directory. Useful to overload default include text in the data directory by web-specific text, like for example <code>webcopyright.inc</code> text. 
9580             </li>
9581             </ul>
9582             </li>
9583             <li>  <strong>07 Jul 1999</strong> - <a href="http://twiki.org/cgi-bin/view/Main.ChristopheVermeulen" title="'Main.ChristopheVermeulen' on TWiki.org">TWiki:Main.ChristopheVermeulen</a>
9584             <ul>
9585             <li> Link a plural topic to a singular topic in case the plural topic does not exist. Example <code>TestVersion</code> / <code>TestVersions</code> , <code>TestPolicy</code> / <code>TestPolicies</code> , <code>TestAddress</code> / <code>TestAddresses</code> , <code>TestBox</code> / <code>TestBoxes</code> .
9586             </li>
9587             </ul>
9588             </li>
9589             </ul>
9590             <p />
9591             <h2><a name="01_Jul_1999_Release"> </a> 01-Jul-1999 Release </h2>
9592             <p />
9593             <ul>
9594             <li> <strong>23 Jun 1999</strong> - <a href="http://twiki.org/cgi-bin/view/Main.PeterThoeny" title="'Main.PeterThoeny' on TWiki.org">TWiki:Main.PeterThoeny</a>
9595             <ul>
9596             <li> New <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/TextFormattingRules">TextFormattingRules</a> to write <strong><em>bold italic</em></strong> text by enclosing words with double underline characters. 
9597             </li>
9598 rizwank 1.1 </ul>
9599             </li>
9600             <li> <strong>23 Jun 1999</strong> - <a href="http://twiki.org/cgi-bin/view/Main.PeterThoeny" title="'Main.PeterThoeny' on TWiki.org">TWiki:Main.PeterThoeny</a>
9601             <ul>
9602             <li> Separate wiki.pm into configuration (wikicfg.pm) and TWiki core (wiki.pm) . This is to ease the upgrade of TWiki installations, it also allows customized extensions to TWiki without affecting the TWiki core. 
9603             </li>
9604             </ul>
9605             </li>
9606             <li> <strong>21 May 1999</strong> - <a href="http://twiki.org/cgi-bin/view/Main.DavidWarman" title="'Main.DavidWarman' on TWiki.org">TWiki:Main.DavidWarman</a>
9607             <ul>
9608             <li> Externalize copyright text at the bottom of every page into a web-specific <code>webcopyright.inc</code> file. This is to easily customize the copyright text.  
9609             </li>
9610             </ul>
9611             </li>
9612             <li> <strong>20 May 1999</strong> - <a href="http://twiki.org/cgi-bin/view/Main.PeterThoeny" title="'Main.PeterThoeny' on TWiki.org">TWiki:Main.PeterThoeny</a>
9613             <ul>
9614             <li> Added meta tag so that robots index only /view/ of topics, not /edit/, /attach/ e.t.c. Tag &lt;META NAME="ROBOTS" CONTENT="NOINDEX"&gt; 
9615             </li>
9616             </ul>
9617             </li>
9618             <li> <strong>20 May 1999</strong> - <a href="http://twiki.org/cgi-bin/view/Main.PeterThoeny" title="'Main.PeterThoeny' on TWiki.org">TWiki:Main.PeterThoeny</a>
9619 rizwank 1.1 <ul>
9620             <li> New variables <code>%WIKIHOMEURL%</code> (link when pressing the icon on the upper left corner) and <code>%WIKITOOLNAME%</code> (the name of the wiki tool <code>TWiki</code> ). 
9621             </li>
9622             </ul>
9623             </li>
9624             <li> <strong>15 Apr 1999</strong> - <a href="http://twiki.org/cgi-bin/view/Main.PeterThoeny" title="'Main.PeterThoeny' on TWiki.org">TWiki:Main.PeterThoeny</a>
9625             <ul>
9626             <li> Topic locking Warn user if a topic has been edited by an <em>other</em> person within <em>one</em> hour. This is to prevent contention, e.g. simultaneous topic updates. 
9627             </li>
9628             </ul>
9629             </li>
9630             <li> <strong>26 Mar 1999</strong> - <a href="http://twiki.org/cgi-bin/view/Main.PeterThoeny" title="'Main.PeterThoeny' on TWiki.org">TWiki:Main.PeterThoeny</a>
9631             <ul>
9632             <li> File attachments Upload and download any file as a topic attachment by using the browser. <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/FileAttachment">FileAttachment</a> has more. 
9633             </li>
9634             </ul>
9635             </li>
9636             <li> <strong>26 Mar 1999</strong> - <a href="http://twiki.org/cgi-bin/view/Main.PeterThoeny" title="'Main.PeterThoeny' on TWiki.org">TWiki:Main.PeterThoeny</a>
9637             <ul>
9638             <li> New variables <code>%PUBURL%</code> (Public directory URL) and <code>%ATTACHURL%</code> (URL of topic file attachment). 
9639             </li>
9640 rizwank 1.1 </ul>
9641             </li>
9642             <li> <strong>09 Feb 1999</strong> - <a href="http://twiki.org/cgi-bin/view/Main.PeterThoeny" title="'Main.PeterThoeny' on TWiki.org">TWiki:Main.PeterThoeny</a>
9643             <ul>
9644             <li> New text formatting rule for creating <code>fixed font text</code> . Words get showns in <code>fixed font</code> by enclosing them in "=" equal signs. Example Writing =fixed font= will show up as <code>fixed font</code> . 
9645             </li>
9646             </ul>
9647             </li>
9648             <li> <strong>09 Feb 1999</strong> - <a href="http://twiki.org/cgi-bin/view/Main.PeterThoeny" title="'Main.PeterThoeny' on TWiki.org">TWiki:Main.PeterThoeny</a>
9649             <ul>
9650             <li> No new topic revision is created if the <em>same</em> person saves a topic again within <em>one</em> hour. 
9651             </li>
9652             </ul>
9653             </li>
9654             <li> <strong>03 Feb 1999</strong> - <a href="http://twiki.org/cgi-bin/view/Main.PeterThoeny" title="'Main.PeterThoeny' on TWiki.org">TWiki:Main.PeterThoeny</a>
9655             <ul>
9656             <li> Possible to view complete revision history of a topic on one page. Access at the linked date in the Changes page, or the <code>Diffs</code> link at the bottom of each topic, e.g. <br> <code> Topic TWikiHistory . { Edit   Ref-By   Diffs   r1.3   &gt;   r1.2   &gt;   r1.1 } <br> Revision r1.3 1998/11/10 01:34 by PeterThoeny </code> 
9657             </li>
9658             </ul>
9659             </li>
9660             <li> <strong>04 Jan 1999</strong> - <a href="http://twiki.org/cgi-bin/view/Main.PeterThoeny" title="'Main.PeterThoeny' on TWiki.org">TWiki:Main.PeterThoeny</a>
9661 rizwank 1.1 <ul>
9662             <li> Fixed bug when viewing differences between topic revisions that include HTML table tags like &lt;table&gt;, &lt;tr&gt;, &lt;td&gt;. 
9663             </li>
9664             </ul>
9665             </li>
9666             </ul>
9667             <p />
9668             <h2><a name="1998_Releases"> </a> 1998 Releases </h2>
9669             <p />
9670             <ul>
9671             <li> <strong>08 Dec 1998</strong> - <a href="http://twiki.org/cgi-bin/view/Main.PeterThoeny" title="'Main.PeterThoeny' on TWiki.org">TWiki:Main.PeterThoeny</a>
9672             <ul>
9673             <li> Signature is shown below the text area when editing a topic. Use this to easily copy &amp; paste your signature into the text. 
9674             </li>
9675             </ul>
9676             </li>
9677             <li> <strong>07 Dec 1998</strong> - <a href="http://twiki.org/cgi-bin/view/Main.PeterThoeny" title="'Main.PeterThoeny' on TWiki.org">TWiki:Main.PeterThoeny</a>
9678             <ul>
9679             <li> Possible to add a category table to a TWiki topic. This permits storing and searching for more structured information. Editing a topic shows a HTML form with the usual text area and a table with selectors, checkboxes, radio buttons and text fields. <a class="twikiLink" href="">TWikiDocumentation</a> has more on setup. The TWiki.Know web uses this category table to set classification, platform and OS version.  
9680             </li>
9681             </ul>
9682 rizwank 1.1 </li>
9683             <li> <strong>18 Nov 1998</strong> - <a href="http://twiki.org/cgi-bin/view/Main.PeterThoeny" title="'Main.PeterThoeny' on TWiki.org">TWiki:Main.PeterThoeny</a>
9684             <ul>
9685             <li> Internal log of topic save actions to the file <code>data/logYYYYMM.txt</code>, where <code>YYYYMM</code> the year and month in numeric format is. Intended for auditing only, not accessible from the web. 
9686             </li>
9687             </ul>
9688             </li>
9689             <li> <strong>10 Nov 1998</strong> - <a href="http://twiki.org/cgi-bin/view/Main.PeterThoeny" title="'Main.PeterThoeny' on TWiki.org">TWiki:Main.PeterThoeny</a>
9690             <ul>
9691             <li> The email notification and the Changes topic have now a topic date that is linked. Clicking on the link will show the difference between the two most recent topic revisions. 
9692             </li>
9693             </ul>
9694             </li>
9695             <li> <strong>10 Nov 1998</strong> - <a href="http://twiki.org/cgi-bin/view/Main.PeterThoeny" title="'Main.PeterThoeny' on TWiki.org">TWiki:Main.PeterThoeny</a>
9696             <ul>
9697             <li> View differences between topic revisions. Each topic has a list of revisions (e.g. <code>r1.3</code>) and differences thereof (e.g. <code>&gt;</code>) at the bottom <br> <code> Topic TWikiHistory . { Edit   Ref-By   r1.3   &gt;   r1.2   &gt;   r1.1 } <br> Revision r1.3 1998/11/10 01:34 by <a href="http://twiki.org/cgi-bin/view/Main.PeterThoeny" title="'Main.PeterThoeny' on TWiki.org">TWiki:Main.PeterThoeny</a> </code> 
9698             </li>
9699             </ul>
9700             </li>
9701             <li> <strong>26 Oct 1998</strong> - <a href="http://twiki.org/cgi-bin/view/Main.PeterThoeny" title="'Main.PeterThoeny' on TWiki.org">TWiki:Main.PeterThoeny</a>
9702             <ul>
9703 rizwank 1.1 <li> Added preview of topic changes before saving the topic. This was necessary to prevent unneeded revisions. 
9704             </li>
9705             </ul>
9706             </li>
9707             <li> <strong>26 Oct 1998</strong> - <a href="http://twiki.org/cgi-bin/view/Main.PeterThoeny" title="'Main.PeterThoeny' on TWiki.org">TWiki:Main.PeterThoeny</a>
9708             <ul>
9709             <li> Added revision control using RCS. Each topic has now a list of revisions at the bottom and a revision info, e.g. <br> <code> Topic TWikiHistory . { Edit   Ref-By   r1.3   r1.2   r1.1 } <br> Revision r1.3 1998/10/26 01:34:00 by <a href="http://twiki.org/cgi-bin/view/Main.PeterThoeny" title="'Main.PeterThoeny' on TWiki.org">TWiki:Main.PeterThoeny</a> </code> 
9710             </li>
9711             </ul>
9712             </li>
9713             <li> <strong>14 Oct 1998</strong> - <a href="http://twiki.org/cgi-bin/view/Main.PeterThoeny" title="'Main.PeterThoeny' on TWiki.org">TWiki:Main.PeterThoeny</a>
9714             <ul>
9715             <li> Refered-By Find out which topics have a link to the current topic. Each topic has a  Ref-By  link for that. Note Only references from the current web are shown, not references from other webs. 
9716             </li>
9717             </ul>
9718             </li>
9719             <li> <strong>13 Oct 1998</strong> - <a href="http://twiki.org/cgi-bin/view/Main.PeterThoeny" title="'Main.PeterThoeny' on TWiki.org">TWiki:Main.PeterThoeny</a>
9720             <ul>
9721             <li> Alphabetical topic index in <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/WebSearch">WebSearch</a>. 
9722             </li>
9723             </ul>
9724 rizwank 1.1 </li>
9725             <li> <strong>24 Sep 1998</strong> - <a href="http://twiki.org/cgi-bin/view/Main.PeterThoeny" title="'Main.PeterThoeny' on TWiki.org">TWiki:Main.PeterThoeny</a>
9726             <ul>
9727             <li> Corrected templates for automatic email notification so that MS Outlook can display attachment as an HTML file. 
9728             </li>
9729             </ul>
9730             </li>
9731             <li> <strong>13 Aug 1998</strong> - <a href="http://twiki.org/cgi-bin/view/Main.PeterThoeny" title="'Main.PeterThoeny' on TWiki.org">TWiki:Main.PeterThoeny</a>
9732             <ul>
9733             <li> <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/WikiNotation">WikiNotation</a> allows also numbers after the <code>AaA</code> sequence, e.g. <code>AaA1</code> is a valid <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/WikiTopic">WikiTopic</a> name, but not <code>Aa1</code>. 
9734             </li>
9735             </ul>
9736             </li>
9737             <li> <strong>07 Aug 1998</strong> - <a href="http://twiki.org/cgi-bin/view/Main.PeterThoeny" title="'Main.PeterThoeny' on TWiki.org">TWiki:Main.PeterThoeny</a>
9738             <ul>
9739             <li> Automatic email notification when something has changed in a TWiki web. Each web has a topic <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/WebNotify">WebNotify</a> where one can subscribe and unsubscribe. 
9740             </li>
9741             </ul>
9742             </li>
9743             <li> <strong>06 Aug 1998</strong> - <a href="http://twiki.org/cgi-bin/view/Main.PeterThoeny" title="'Main.PeterThoeny' on TWiki.org">TWiki:Main.PeterThoeny</a>
9744             <ul>
9745 rizwank 1.1 <li> Added server side include of files. Syntax is <code>%INCLUDE:"filename.ext"%</code> 
9746             </li>
9747             </ul>
9748             </li>
9749             <li> <strong>05 Aug 1998</strong> - <a href="http://twiki.org/cgi-bin/view/Main.PeterThoeny" title="'Main.PeterThoeny' on TWiki.org">TWiki:Main.PeterThoeny</a>
9750             <ul>
9751             <li> Signature and date is inserted automatically when creating a new topic. 
9752             </li>
9753             </ul>
9754             </li>
9755             <li> <strong>04 Aug 1998</strong> - <a href="http://twiki.org/cgi-bin/view/Main.PeterThoeny" title="'Main.PeterThoeny' on TWiki.org">TWiki:Main.PeterThoeny</a>
9756             <ul>
9757             <li> Separate templates for text of non existing topic and default text of new topic. (template file templates/Web/notedited.tmpl) 
9758             </li>
9759             </ul>
9760             </li>
9761             <li> <strong>04 Aug 1998</strong> - <a href="http://twiki.org/cgi-bin/view/Main.PeterThoeny" title="'Main.PeterThoeny' on TWiki.org">TWiki:Main.PeterThoeny</a>
9762             <ul>
9763             <li> Warn user if new topic name is not a valid Wiki name. (template file templates/Web/notwiki.tmpl) 
9764             </li>
9765             </ul>
9766 rizwank 1.1 </li>
9767             <li> <strong>31 Jul 1998</strong> - <a href="http://twiki.org/cgi-bin/view/Main.PeterThoeny" title="'Main.PeterThoeny' on TWiki.org">TWiki:Main.PeterThoeny</a>
9768             <ul>
9769             <li> Support for quoted text with a '&gt;' at the beginning of the line. 
9770             </li>
9771             </ul>
9772             </li>
9773             <li> <strong>28 Jul 1998</strong> - <a href="http://twiki.org/cgi-bin/view/Main.PeterThoeny" title="'Main.PeterThoeny' on TWiki.org">TWiki:Main.PeterThoeny</a>
9774             <ul>
9775             <li> Added TWiki variables, enclosed in % signs <code>%TOPIC%</code> (Topic name), <code>%WEB%</code> (web name), <code>%SCRIPTURL%</code> (script URL), <code>%DATE%</code> (current date), <code>%WIKIWEBMASTER%</code> (Wiki webmaster address), <code>%WIKIVERSION%</code> (Wiki version), <code>%USERNAME%</code> (user name), <code>%WIKIUSERNAME%</code> (Wiki user name). 
9776             </li>
9777             </ul>
9778             </li>
9779             <li> <strong>28 Jul 1998</strong> - <a href="http://twiki.org/cgi-bin/view/Main.PeterThoeny" title="'Main.PeterThoeny' on TWiki.org">TWiki:Main.PeterThoeny</a>
9780             <ul>
9781             <li> Topic <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/WebChanges">WebChanges</a> shows Wiki username instead of Intranet username, e.g. <code>PeterThoeny</code> instead of <code>thoeny</code> in case the Wiki username exists. Implementation Automatic lookup of Wiki username in topic <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/Main/TWikiUsers">TWikiUsers</a>. 
9782             </li>
9783             </ul>
9784             </li>
9785             <li> <strong>28 Jul 1998</strong> - <a href="http://twiki.org/cgi-bin/view/Main.PeterThoeny" title="'Main.PeterThoeny' on TWiki.org">TWiki:Main.PeterThoeny</a>
9786             <ul>
9787 rizwank 1.1 <li> Topic index. (Technically speaking a simple '.*' search on topic names.)  
9788             </li>
9789             </ul>
9790             </li>
9791             <li> <strong>28 Jul 1998</strong> - <a href="http://twiki.org/cgi-bin/view/Main.PeterThoeny" title="'Main.PeterThoeny' on TWiki.org">TWiki:Main.PeterThoeny</a>
9792             <ul>
9793             <li> Topic <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/WebSearch">WebSearch</a> allows full text search and and topic search with/without regular expressions. 
9794             </li>
9795             </ul>
9796             </li>
9797             <li> <strong>27 Jul 1998</strong> - <a href="http://twiki.org/cgi-bin/view/Main.PeterThoeny" title="'Main.PeterThoeny' on TWiki.org">TWiki:Main.PeterThoeny</a>
9798             <ul>
9799             <li> Added automatic links to topics in other TWiki webs by specifying &lt;web name&gt;.&lt;topic name&gt;, e.g. <code>Know.WebSeach</code> . 
9800             </li>
9801             </ul>
9802             </li>
9803             <li> <strong>23 Jul 1998</strong> - <a href="http://twiki.org/cgi-bin/view/Main.PeterThoeny" title="'Main.PeterThoeny' on TWiki.org">TWiki:Main.PeterThoeny</a>
9804             <ul>
9805             <li> Installed initial version, based on the JOS Wiki. See <a class="twikiLink" href="http://TWiki.org/cgi-bin/view/TWiki/WikiWikiClones">WikiWikiClones</a> for details.
9806             </li>
9807             </ul>
9808 rizwank 1.1 </li>
9809             </ul>
9810             <p />
9811             <h2><a name="Dev_Flow"> </a> Dev Flow </h2>
9812             <p />
9813             The typical TWiki development flow...
9814             <p />
9815             <ul>
9816             <li> <a href="http://twiki.org/cgi-bin/view/Codev.FeatureBrainstorming" title="'Codev.FeatureBrainstorming' on TWiki.org">TWiki:Codev.FeatureBrainstorming</a>: open forum for new ideas  
9817             </li>
9818             <li> <a href="http://twiki.org/cgi-bin/view/Codev.FeatureEnhancementRequest" title="'Codev.FeatureEnhancementRequest' on TWiki.org">TWiki:Codev.FeatureEnhancementRequest</a>: specific detailed request
9819             </li>
9820             <li> <a href="http://twiki.org/cgi-bin/view/Codev.FeatureToDo" title="'Codev.FeatureToDo' on TWiki.org">TWiki:Codev.FeatureToDo</a>: prioritized to up-next dev status
9821             </li>
9822             <li> <a href="http://twiki.org/cgi-bin/view/Codev.FeatureUnderConstruction" title="'Codev.FeatureUnderConstruction' on TWiki.org">TWiki:Codev.FeatureUnderConstruction</a>: currently in development
9823             </li>
9824             <li> <a href="http://twiki.org/cgi-bin/view/Codev.FeatureDone" title="'Codev.FeatureDone' on TWiki.org">TWiki:Codev.FeatureDone</a>: completed and implemented
9825             </li>
9826             <li> <a href="http://twiki.org/cgi-bin/view/Codev.DocRequest" title="'Codev.DocRequest' on TWiki.org">TWiki:Codev.DocRequest</a>: request for documentation
9827             </li>
9828             <li> <a href="http://twiki.org/cgi-bin/view/Codev.DocsToDo" title="'Codev.DocsToDo' on TWiki.org">TWiki:Codev.DocsToDo</a>: feature documentation pending
9829 rizwank 1.1 </li>
9830             <li> <a href="http://twiki.org/cgi-bin/view/Codev.FeatureDocumented" title="'Codev.FeatureDocumented' on TWiki.org">TWiki:Codev.FeatureDocumented</a>: documented feature
9831             </li>
9832             <li> <a class="twikiLink" href="">TWikiDocumentation</a>: reference manual for the latest TWiki
9833             </li>
9834             </ul>
9835             <p />
9836             </body></html>

Rizwan Kassim
Powered by
ViewCVS 0.9.2