
---+!! Instant TWiki Site Enhancements

These quick enhancements are aimed at improving and customising your TWiki.  New TWiki site administrators are especially encouraged to review this document for ideas before deploying a new TWikiSite. The metaphor of building a house is useful.  The listed enhancements are some of the details possible when moving into a new office or home. These small changes can make a *big* differences for user satisfaction at your site. All modifications can be done through your Web browser, and they don't take more then in a couple of minutes.  No system administration expertise is required. Some of these enhancements are also mentioned in the reference manual and other topics.

Many of these tips are based on setting some special TWikiVariables.

%S% We recommend implementing at least __some__ of these enhancements __right after installation__ to get a taste for what is possible.  Some of these tips and enhancements _should_ be implemented before or during initial roll-out.

This may spark your imagination to *really* customize your site so that it's optimal for *your* users.  Slightly more advanced customization tips are listed in TWiki:TWiki.TWikiAdminCookBook.

%TOC%

---
---++ Tips using TWiki Variables

TWikiVariables are a great resource to customize your site. You need to know the variable name and decide where to put it.

---+++ Change Colors of Page Header/Footer

Incredibly obvious, maybe, but some TWiki site admins don't get around to changing the default web colors right off, whether they like them or not. Simply changing the defaults will make a huge difference in the overall look. 

*What we are doing*

We want to set variable WEBBGCOLOR in topic WebPreferences to one of the StandardColors. <nop>WebPreferences is, as you can guess, a topic which holds all kind of preference setting for each TWiki Web[[ManagingWebs][{*}]]. Each web has its own <nop>WebPreferences, and you can set them differently for each web.

*How to do it*

   1 Pick color code from company or product references, the StandardColors table (recommended for 8-bit client compatibility), or some other color reference. 
   2 Go to WebPreferences in each web, and edit the topic.
   3 Set your preferred WEBBGCOLOR preferences variable, and save the topic.
   4 %X% Add a new line immediately after the color code. If there is (invisible) space after the color code, the page header might get strange colors (e.g. black).

It's just as easy to refine later on, so you're not locked in, just looking better.

---+++ Set Page Background Color 

Without getting into the TWikiTemplates system yet, you can easily edit the ==view.tmpl== (in the =templates= directory). In the HTML at the top, the body tag has the page background hardcoded to white ==bgcolor="#ffffff"==. You can change that color value to new variable. First, define a new preferences variable in the site-level [[%LOCALSITEPREFS%]], e.g. =* Set =PAGEBGCOLOR = #d0d0d0=, then edit the ==view.tmpl== template file and change ==bgcolor="#ffffff"== to ==bgcolor="%<nop>PAGEBGCOLOR%"==. If you want, you can set the page background color individually per web, simple add a =* Set =PAGEBGCOLOR = #d0d0d0= bullet to the WebPreferences to overload the site-level preferences. (Without font color control, you'll have to stick to light colors.)

---+++ Titles-Only Topic List - !WebTopicList

WebTopicList is a __good first navigation tool for new users,__ a fast-loading linked list (page titles only) of a web's topics is a quick and easy way see what's available. By default, slower, but more powerful WebIndex is used. 

Without explaining what WEBTOPICLIST is, just try it: 

   1 Go to WebPreferences in each web, and edit the topic.
   2 In WEBTOPICLIST variable, replace =WebIndex= with =WebTopicList=, and save.

---+++ Simple way to create %RED% colored text %ENDCOLOR% and graphics

This should be enabled, see the "Miscellaneous Settings" in the TWikiPreferences, . If not, look at TWiki:TWiki/TWikiPreferences. Look for variables RED, BLUE etc (which define HTML tag FONT). To copy/paste the variables defining the colors you need to see the source text, but =Edit= is disabled. Instead, go to =More= and view the topic in ==raw== format.

---+++ EZ Graphic Icons to Highlight Text

Icons can do a lot to enhance scannability of topics. For instance, on *HELP* pages, most people tend to jump around looking for answers rather than reading through - icons help point out the most important bits.

TWikiDocGraphics has a whole collection of ready icon images. You can use these images in any topic by referring to their name. For example, !TWikiDocGraphics has an image attachment called =days.gif=. To show this image in a topic, write =%<nop>ICON{"days"}%= to get %ICON{"days"}%.

*Creating image variables*

You may find it easier to write shorthand graphic notation. You can create your own image variables by defining them in a preference topic (most likely [[%MAINWEB%.%WIKIPREFSTOPIC%]].)

A variable name may be one letter, like =Y=, or may be longer like =HELP=, =WARN= etc. You can also add your own images, e.g. a =NEW=, or a =ASK= to ask question.

For instance, if we want to write =%<nop>DOWN%= instead of =%<nop>ICON{"arrowbdown"}%=, define the new variable like this:
<verbatim>
   * Set DOWN = %ICON{"arrowbdown"}%
</verbatim>
Or if you have a custom image to use, attach this to [[%LOCALSITEPREFS%]] and write:
<verbatim>
   * Set DOWN = <img src="%ATTACHURL%/my_image.gif" border="0" alt="DOWN" width="16" height="16" />
</verbatim>

Most images in TWikiDocGraphics are 16 x 16 pixels.

   * __Related:__ There are other approaches for creating more extensive TWiki icon libraries. This is a simply and quick way to get started. See TWikiDocGraphics for more info.

---+++ Use TOC variable to create table of content

TOC is Table-Of-Content, generated automagically from headers (defined like that: ==---++== , see TWikiShorthand).

For example, you may want to put all your custom variables in [[%LOCALSITEPREFS%]] right on top of the page, and generate table of contents, like:

   * Preferences for easy creating nice pages 
      * Graphics icons in text 
      * Colored text 
   * System Preferences 
      * Contents of page header and footer 
      * User interface defaults 
      * Email 
      * Plugins 
      * Notes 

Non-admin users wil be interested only in first part, non-system preferences.

---
---++ Personal Productivity - Tools and Tips for Working Faster

Although this area applies to all TWiki setups, the initial focus is on TWiki site managers working on a Linux/Apache TWiki site, from a Windows local PC. The assumption being: if you're working with Linux as your desktop, you're probably a programmer or system admin and have these basics handled!

---+++ Use your favorite text editor for major edits

When you have a fair bit of TWiki formatting work - for example, compiling new info pages from various cut'n'paste sources, editing multiple TWiki topics or contributed material - it's often easier to use a real *[[TextEditor]]* instead of the browser's text edit box.  There are several methods for doing this.  For Windows, there are several well-recommended text editors.

__Windows&nbsp;Example:__ [[http://textpad.com][TextPad]] is a low-cost, top flight Windows program, with an extended trial period. You can download from a well-stocked library of user-contributed macros, dictionaries, and syntax and clip files. You can also easily create a TWiki clip collection that allows you to format text with TWiki code: select a text string and click for bold, italic, links, bullet lists - just like a regular HTML editor - and also insert blocks of TWiki code, use simple or regex search and replace, more.

__Copy&nbsp;&amp;&nbsp;Paste:__ Using the web window this can work very well.  System differences may present difficulties with this method but it is simple and reliable in most cases.

__Browser&nbsp;Integration:__ Some web browsers can be configured to automatically use an external editor.  See your browser documentation for details.  Such a configuration and a small tool for Linux is described in an example on TWiki.org. TWiki:Codev/EditDaemonWithGVimIntegration

__Alternate&nbsp;Browser:__ While your main browser might not have the features for TWiki topic editing, another one might.
   * An example on the Linux platform is the =w3m= pager/browser for Linux.  This is a text based version similar to =lynx= but it includes text editor features and a configurable command set to act like =lynx= if you are more accustomed to it.

---++ Ready to use SEARCH 

---+++ Personal directory of topics you're involved in

Here's how you can create your own personal directory of topics you've contributed to recently. Copy the text below (between *Start Copy* and *End Copy*) and paste it into your personal page (%WIKIUSERNAME%). You can add other webs to search by duplicating one of the web subsections and editing the string {web ="webname"} in the search parameters to refer to the specific web you want to search. This script would also work for a group.

*Start Copy*
<verbatim>
__Here's a list of topics I've been involved in recently:__

---++++ Codev

%SEARCH{ "%TOPIC%" web="Codev" scope="text" nosearch="on" nosummary="on" noheader="on" nototal="on" order="modified" reverse="on" limit="20"}%
---++++ Support

%SEARCH{ "%TOPIC%" web="Support" scope="text" nosearch="on" nosummary="on" noheader="on" nototal="on" order="modified" reverse="on" limit="20"}%

---++++ TWiki

%SEARCH{ "%TOPIC%" web="TWiki" scope="text" nosearch="on" nosummary="on" noheader="on" nototal="on" order="modified" reverse="on" limit="10"}%

</verbatim>
*End Copy*

The SEARCH variable has many more formatting options, see TWikiVariables.

---+++ Recently changed pages 
Here are the last 15 changed pages, formatted into a neat table.

<verbatim>
<table>
%SEARCH{ "\.*" scope="topic" regex="on" nosearch="on" nototal="on" order="modified" reverse="on"  format="<tr><td>  [[$topic][$topic]] </td><td>  $wikiusername  </td><td> $date  </td></tr>" limit="15" }%
</table>
</verbatim>

---
---++ Hidden Edit Lock for Individual Topics

When you're creating main gateway pages, you may want to temporarily (or permanently) restrict editing to yourself or a limited group of people. You can do this with a Preference setting that includes one or more users and groups. Only auhorized users will be able to use ==Edit==.
   * __Example:__ ==Set ALLOWTOPICCHANGE = <nop>%MAINWEB%.UserName, <nop>%MAINWEB%.GroupName==
   * %T% *To hide the setting:* Use HTML comment tags - put ==&lt;!--== on the line _above the setting, and ==--&gt;== on the line below.

---
---++ Change the Default Logo

If you want to change the logo per TWiki web, simply attach a new logo.gif to the web's <nop>WebPreferences, and change the logo's filename by overriding the name using WEBLOGONAME in <nop>WebPreferences:  
   * =Set WEBLOGONAME = filename.gif=

Other cusomtisations are possible using =WEBLOGOIMG=, =WEBLOGOURL=, and =WEBLOGOALT= (they mirror the =WIKILOGO*= TWiki variables, but are applied to each web, rather than to the %<nop>WIKITOOLNAME%-based references)

If you'd like to have the same customised logo for all the webs, make these changes in %LOCALSITEPREFS% instead of each web's <nop>WebPreferences, e.g.,
   * =Set WEBLOGOIMG = %<nop>PUBURLPATH%/%MAINWEB%/WebPreferences/mylogo.gif=

----
---++ Customize Topic Classification Forms

With a simple one or two-line default topic form available for every topic  - in *Edit* mode, click the ==[Add]== button, and select the form if it isn't already enabled. Then, click the title to get to the actual form, ==[Edit]==, and carefully change values, probably basic page classifications. You'll get some increased value, and hands-on experience with TWikiForms, without having to read up about them first. %X% __(add the corresponding search per category - copy a default and change)__


---
---++ Add Your Favorite <nop>JavaScript Features

You're no doubt familiar or better with HTML, JS, and "webmastering". Without getting into the TWikiTemplates system yet, you can easily edit the ==view.tmpl== (in the =templates= directory) for some dramatic effects. The top of the template is mostly regular HTML with some variables. Open up some space in the ==&lt;head&gt;== area, and you can drop in reliable <nop>JavaScripts - a pop-up window script, for example - or tag it as an external script.

   * %T% Obviously, you can do the same - place a link to an external stylesheet as well. If you set values for standard HTML tags, you can control a good deal of the type size, style and color with out adding CSS tags. __example__

%X% Depending on what you load up, you may change the overall cross-browser compatibility - however be careful that your site does not look beat up in various other browsers. The scripts you choose will determine compatibility.

---
---++ Customize The Left Navigation Bar

Customize the contents of the WebLeftBar for each web to include important topics for that web, or to link to an important topic for the overall site. Each web has its own WebLeftBar page. (This is specific to the PatternSkin.) 

----
%T% __NOTE:__ Feel free to add your own tips to TWiki:%WEB%.%TOPIC% as quick notes at the end of the list, following the existing format!

__Related Topics:__ AdminDocumentationCategory

-- __Contributors:__ TWiki:Main.GrantBow, TWiki:Main.LynnwoodBrown, TWiki:Main.MikeMannix, TWiki:Main.PeterMasiar, TWiki:Main.PeterThoeny, TWiki:Main.MattWilkie, TWiki:Main.AmandaSmith
