The following sections describe some common problems and solutions.
Here's a list of some of the more common questions we get about the installation and configuration of Tapestry.
Most likely, you have not copied the tapestry folder into the appropriate place on your host. You should copy the tapestry theme folder into the sites/all/themes folder. You should also ensure that the tapestry folder has appropriate perrmissions (usually x755).
Most likely, you have not installed (or not enabled) the ThemeSettingsAPI module. If you downloaded Tapestry from our website, the ThemeSettingsAPI module is included in the download. However, you'll still need to install the module. If you download the theme from somewhere else, you may also need to download the module from drupal.org. After installing the module, you must enable it.
Possibly you have not installed (or not enabled) the Block Theme module. If you downloaded Tapestry from our website, the Block Theme module is included in the download. However, you'll still need to install the module. If you download the theme from somewhere else, you may also need to download the module from drupal.org. After installing the module, you must enable it.
Possibly you have not configured the Block Theme Module. After installing the module, you'll need to do a one time configuration so that the module knows about the block theme templates provided by Tapestry.
When you create a new block in Drupal 5 by clicking on the Add block tab of the admin/build/block page, Drupal only allows you to specify the block description, the block body, and the input type. Only after you've created the block does Drupal let you modify the many other block attributes. After creating your block, click the configure link next to the block name on the admin/build/block page. You should see the Custom theme selection box below the Input type selector.
Possibly you have not configured the menu options properly. A common mistake is to forget to check the Expanded checkbox for one or more parent items.
There's a lot of things going on when Drupal generates a page of XHTML code for visitors to your site. Some of this code is generated by Tapestry, some by the modules you have installed and enabled, some by Drupal itself, and some by your unique site content. If one component of this process is broken, the entire page can fail to render properly.
Broken layouts are the result of invalid or incomplete markup somewhere in the page. The most common problems occur whenever there are one or more unclosed HTML elements in the page. A single <div> without a matching </div> can cause the entire page to 'fall apart'.
There are many possible sources of such incomplete markup. But there are three sources of layout problems that we encounter so frequently that they warrant special attention.
The default home page for a standard Drupal site is a list of node teasers. A teaser is simply the beginning portion of a node. Drupal doesn't really store a separate teaser. It simply marks a point in the node content called the teaser break. Whenever Drupal displays a node teaser, it displays the content of the node up to the teaser break.

You can configure the point in a node where Drupal will insert teaser breaks to some degree. The Post Settings page (admin/content/node-settings) allows you to set the default teaser break location to occur after a fixed number of characters (i.e. insert teaser break after 200 characters.) You can also set this value to Unlimited, which will disable node teasers. By default, a standard Drupal install will insert teaser breaks after 600 characters.
Be aware that changing this value will not change the teaser break location for existing nodes. It will only change the default value imposed on newly created or edited nodes.
Teaser breaks aren't really a problem if your nodes contain nothing but plain text. But what if your nodes contain HTML code? And what if this HTML code includes tables or divs that span across multiple lines. And what if Drupal decides to insert a teaser break right in the middle of that HTML code? Things could turn ugly.
If your nodes contain anything other than plain text, then the Drupal default mechanism of arbitrarily inserting a teaser break after a fixed number of characters probably won't work for you. There are essentially three effective alternatives.
If you don't want or need teasers, then change the Length of trimmed posts value to Unlimited. Drupal will not insert teaser breaks, and thus an improperly trimmed post will never break your layout.
Another option is to manually insert teaser breaks by including the string <!--break--> at an appropriate point in your node content. The presence of this manual teaser break in a node will override the default Drupal teaser behavior. See this drupal.org handbook page for further information.
A third option is to install a module that automatically corrects invalid HTML code, like the HTML corrector. This module is so useful that it's been made part of the Drupal 6.0 core.
Many Drupal users install a WYSIWYG editor so that they can format their site content without having to manually create the HTML code. Editors such as TinyMCE and FCKeditor are basically mini-HTML editors for Drupal node content.
The code generated by these editors contains HTML markup... sometimes, a LOT of it. As such, nodes created with such editors are particularly susceptible to the teaser break issues described above. If you are using one of these editors, then you should absolutely also be running the HTML corrector module.
This one is simple to understand. If you publish a block that contains a 600-pixel-wide image to a sidebar that is configured to be 300 pixels wide, something has to give.
There are things that we could have done to Tapestry in an attempt to 'contain the damage' caused by such situations (like applying the overflow:hidden attribute to blocks.) However, such attempts would inhibit the ability to use the theme in creative ways (like using negative margins to make an image 'break out' of a block's boundaries.) So we've chosen to make you, the content provider, responsible here. Ensure that your content is compatible with your layout.