Moved docs to gitbook, added news back
--- a/admin/news.php
+++ b/admin/news.php
@@ -85,7 +85,7 @@
$news->assign("newsdate", date("$dateformat $timeformat", $stories['date']) );
$news->assign("oddeven", ($count % 2 ? "even" : "odd"));
if($newscomments == "1")
- $news->assign("newscomments", "<a href=\"news.php?action=newsstory&nid=".$stories['nid']."\">".$stories['comments']." "._COMMENTS."</a>");
+ $news->assign("newscomments", "<a href=\"ffnews.php?action=newsstory&nid=".$stories['nid']."\">".$stories['comments']." "._COMMENTS."</a>");
if(isADMIN)
$news->assign("adminoptions", "<a href=\"admin.php?action=news&form=".$stories['nid']."\">"._EDIT."</a> | <a href=\"admin.php?action=news&delete=".$stories['nid']."\">"._DELETE."</a>");
$count++;
--- a/blocks/news/init.php
+++ b/blocks/news/init.php
@@ -26,6 +26,6 @@
if(!defined("_CHARSET")) exit( );
-dbquery("INSERT INTO ".TABLEPREFIX."fanfiction_blocks(`block_name`, `block_title`, `block_status`, `block_file`, `block_variables`) VALUES('news', 'Site News', '0', 'news/news.php', '');");
-$blocks["news"] = array("title" => "Site News", "status" => "1", "file" => "news/news.php", "num" => "3");
+dbquery("INSERT INTO ".TABLEPREFIX."fanfiction_blocks(`block_name`, `block_title`, `block_status`, `block_file`, `block_variables`) VALUES('news', 'Site News', '0', 'news/ffnews.php', '');");
+$blocks["news"] = array("title" => "Site News", "status" => "1", "file" => "news/ffnews.php", "num" => "3");
?>
--- a/blocks/news/news.php
+++ b/blocks/news/news.php
@@ -41,7 +41,7 @@
$news->newBlock("newsbox");
//assign values
- if(!empty($blocks['news']['sumlength']) && isNumber($blocks['news']['sumlength'])) $newsStory = truncate_text($stories['story'], $blocks['news']['sumlength'])."<div class='newsReadMore'><a href='news.php?action=newsstory&nid=".$stories['nid']."'>"._READMORE."</a></div>";
+ if(!empty($blocks['news']['sumlength']) && isNumber($blocks['news']['sumlength'])) $newsStory = truncate_text($stories['story'], $blocks['news']['sumlength'])."<div class='newsReadMore'><a href='ffnews.php?action=newsstory&nid=".$stories['nid']."'>"._READMORE."</a></div>";
else $newsStory = format_story($stories['story']);
$news->assign("newstitle" , $stories['title'] );
$news->assign("newsstory" , $newsStory);
@@ -51,7 +51,7 @@
$news->assign("newsid", $stories['nid']);
$news->assign("skindir", $skindir);
if($newscomments)
- $news->assign("newscomments", "<a href=\"news.php?action=newsstory&nid=".$stories['nid']."\">".$stories['comments']." "._COMMENTS."</a>");
+ $news->assign("newscomments", "<a href=\"ffnews.php?action=newsstory&nid=".$stories['nid']."\">".$stories['comments']." "._COMMENTS."</a>");
if(isADMIN)
$news->assign("adminoptions", "<a href=\"admin.php?action=news&form=".$stories['nid']."\">"._EDIT."</a> | <a href=\"admin.php?action=news&delete=".$stories['nid']."\">"._DELETE."</a>");
$count++;
--- a/docs/NewFeatures.txt
+++ /dev/null
@@ -1,47 +1,1 @@
-- Ability to remove Featured Story status from Admin panel as well as retire a Featured Story. You can also now
-do this when editing a story.
-- Ability to edit and delete news comments from news archive page.
-- Time format in settings. Removed separate news date format.
-- Added pagination in news.php
-- Ability to set your own classifications in addition to warnings and genres (i.e. Spoilers, Episode Related,
-Pairings, Language, Story Length, Story Type)
-- Ability to add custom pages from the admin panel.
-- You can now customize the up and down arrows used throughout the script in the same way the other graphics
-(stars, etc) can be customized. The variables are $up and $down
-- Added pagination to individual series page.
-- Story counts are back. :)
-- Moved the javascript into header.php so no more problems with the formselect.js not regenerating. The info will
-get pulled each time the page loads.
-- Added Table of Contents link to the storyblock and viewstory page for stories.
-- Changed admin links for featured stories in story block to let you either remove or retire the feature.
-- Co-authors :) Yes. plural.
-- Chapter end notes.
-- Story notes.
-- The validation function in the admin panel now uses storyblock.php for a more consistent look of story information
-across the site.
-- When previewing a story in the the add/edit story functions, the script now uses storyblock.php for a more consistent
-look for story information across the site.
-- The default yes and no letters (subject and text) when validating stories can now be customized using {variables} for:
- {sitename}- the name of the site;
- {adminname} - the penname of the admin sending the letter (text of letter only)
- {rules} - a link to the submission rules (text of letter only)
- {storytitle} - the title of the story
- {chaptertitle} - the title of the chapter within the story
-- You can now add custom admin panels.
-- The main admin page will now tell you how many stories are in the validation queue. So does the info block.
-- Session and cookie variables will now use a sitekey so that multiple sites on the same domain won't have problems with crossed login info.
-- News comments are now saved under uid instead of penname so that changes in penname will carry over to comment info.
-- TinyMCE can now be toggled on/off on the page.
-- Members can now turn tinyMCE and story indexes on/off for themselves
-- Members can choose the default story sort for themselves.
-- Challenges have been made into an optional module you can install and uninstall as you choose
-- Admins can now decide whether or not to allow anonymous challenges
-- The number of responses to a challenge is now listed in the information for the challenge.
-- Maintenance mode.
-- Action log.
-- Stories updated within the time frame of your "recent days" setting will now also be marked as "New!" (you can also define your own text or assign a graphic using $new in variables.php)
-- You can now define what "Top 10's" lists to include and add your own through the admin panel.
-- You can now "hide" skins from regular members through the admin panel.
-- Customized fields in the author profile page.
-
--- a/docs/Skin Changes 2.0 to 3.0.txt
+++ /dev/null
@@ -1,69 +1,1 @@
-Note: This is not a tutorial on how to update a skin. It's pretty much my notes on what will eventually have to
-go into a tutorial. Therefore, there's probably things missing. We'll be working on a real tutorial.
-Optional additions to listings.tpl for stories:
-{toc} - Table of Contents link to story index
-{count} - The view/read count
-{new} - The text "New!" for new stories or alternately a graphic (use the URL to the graphic from the main directory).
-{featuredtext} - The words "Featured Story" or "Past Featured Story" to use instead of the graphics if you wish
-
-This is already done for you in the default_tpls folder.
-
-Also in listings.tpl you will need to add {comment} to both the seriesblock and storyblock sections. This
-will be used for favorite stories to show the member's comments about the story. Style the comment with
-favcomment.tpl. See the default_tpls folder for an example.
-
-In viewstory.tpl optional addtion:
-
-{toc} - Table of Contents link to story index
-
-The story and chapter notes (beginning and end) have been moved into blocks in viewstory.tpl This will let you
-style them any way you wish and also hide those blocks when there are no notes to display. (See the default_tpls
-for an example)
-
-For any new classifications you add you will need to modify listings.tpl, series_title.tpl, and optionally
-viewstory.tpl and storyindex.tpl to include those additional classifications. Optionally, you can use {classifications}
-to include all your classifications at one time. The default_tpls/listings.tpl uses {classifications}
-
-In reviews.tpl you can now add a quick review form to the bottom of the list of reviews instead of the
-"Submit a Review" link using the {reviewform} variable. Already done in default_tpls.
-
-The reviewsblock has been pulled into its own .tpl so it can be reused in places other than the reviews page
-(such as the user panels)
-
-The profile section of the user page has been pulled into its own .tpl, again so that it can be re-used.
-It should also make it easier for people modding skins. There is also now a setting in your admin settings for
-whether or not to show the profile at the top of the view user page all the time or only when it's selected.
-
-In user.tpl you no longer have individual variables for the tabs. Instead it's been put into a block to
-allow more tabs to be added dynamically without editing the tpl's each time.
-
-<!-- START BLOCK : paneltabs -->
-<div {class}>{link} {count}</div>
-<!-- END BLOCK : paneltabs -->
-
-You can also use {linkcount} to include the count of items inside the link instead of next to it. You don't have
-to use <div>'s. This is just an example.
-
-Rather than have the news archive link hardcoded into the news block at the bottom, I've assigned it to a global
-link (i.e. {home}) so that you can put it where you want. It's assigned as {newsarchive}
-
-There are a large number of new links you can add to your skins and the menu block. The list is in the "Page
-Links" section of the admin panel.
-
-In default_tpls, we changed the "classification" CSS class to "label". It's more clear what the purpose is
-and shorter. :)
-
-For the new profile block, if you add new fields to the profile information, you will need to either add the
-individual links such as {yahoo} or remove the individual links and make use of the new {authorfields} variable
-that displays the complete list of custom fields. If you're creating skins for the use of others, you're
-encouraged to use {authorfields} instead of the individual links.
-
-The $current variable for the index page was changed to home to solve a conflict with the variable name for the
-pagelink. This will affect skins like Romance that use the current setting as the name of a containing div.
-
-For the featured, recent, and random blocks, if you use the .tpl option you'll need to remove the name of the
-block from each of the variables. For instance {recenttitle} will now be {title}. This is because each of
-these blocks now uses the storyblock.php code. Therefore, you can also add any of the information you can
-use in the listings.tpl to your random, featured, and recent blocks.
-
--- a/docs/convertingskins.htm
+++ /dev/null
@@ -1,274 +1,1 @@
-<html>
-<head>
-<meta http-equiv="Content-Language" content="en-us">
-<meta name="GENERATOR" content="Microsoft FrontPage 5.0">
-<meta name="ProgId" content="FrontPage.Editor.Document">
-<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
-<title>Converting 1</title>
-</head>
-
-<body>
-
-<p align="center">Converting 1.1 skins to 3.0 skins.</p>
-<p>This file is a work in progress. We'll flesh it out later as we all get
- more expertise with converting 1.1 skins to the 3.0 format.</p>
-<p>1. Open a new folder for your converted skin.</p>
-<p>2. Open the default.tpl file in the skin you wish to convert.
-Everything <i><b>before</b></i> {output} transfer into header.tpl in your new
-folder then enclose it with start and close tags for the header block. A sample header.tpl might look like this.</p>
-<pre></pre>
-
-</div>
-
-<p style="margin: 0 5%; border: 1px solid #000;"> <!-- START BLOCK : header --><br>
-<body><br>
-
-<div id="<span style="background-color: #FFFF00">{</span><span
-style="background-color: #FFFF00">page_id</span><span
-style="background-color: #FFFF00">}</span>"><br>
-
-<div id="header"><br>
-
-<div id="banner"><br>
-
-<div id="skin"><span style="background-color: #FFFF00">{</span><span
-style="background-color: #FFFF00">skinchange_content</span><span
-style="background-color: #FFFF00">}</span><span style="padding: 15px;"><span
-style="background-color: #FFFF00">{</span><span
-style="background-color: #FFFF00">rss</span><span
-style="background-color: #FFFF00">}</span></span></div><br>
-
-</div><br>
-
-<div id="menu_container"><br>
-<span style="background-color: #FF00FF">
-{home}&nbsp;{recent}&</span><span style="background-color: #FF00FF">nbsp;{catslink</span><span
-style="background-color: #FF00FF">}&nbsp;{authors}&nbsp;{titles}&nbsp;{help}<br>
-
-&nbsp;{search}&nbsp;{login}&nbsp;{logout}&nbsp;{adminarea}</span><br>
-
-</div><br>
-
-</div><br>
-
-<div id="mainpage"><br>
-<!-- END BLOCK : header --></p>
-<p>The {page_id} variable was new to 2.0. This variable gives you a unique
- name to use in the css for each page. In the example above it's used as
- a containing tag.
-<p>The {rss} variable
-defines where the orange rss image link appears.
-<p>The other variable highlighted in yellow is a mod some people had previously
- installed. If you have previously added the skin change mod change {skinform}
- to {skinchange_content} to include that block. You will also need to activate
- that block and set it to the correct status in the blocks page in the admin
- area.
-<p>The links highlighted in pink are still available in 3.0. You can convert
- these links to the new menu block if you wish or leave them as is.
-<p>3. From your original default.tpl again, select everything <i>
-<b>after</b></i> {output} and place it in your footer.tpl<p> <p style="margin: 0 5%; border: 1px solid #000;"><!-- START BLOCK :
-footer --><br>
-
-</div><br>
-
-<div id="footer"><span style="background-color: #FF00FF">{footer}</span></div></div><br>
-
-<div id="footermenu"><span style="background-color: #FFFF00">{</span><span
-style="background-color: #FFFF00">tos}{rules}{contactus</span><span
-style="background-color: #FFFF00">}</span></div><br>
-<!-- END BLOCK : footer --><p>The {footer} variable is the same as in 1.1<p>
-The other three variables you see in yellow are new page links added in 2.0. <p> <div
-align="center">
- <center>
- <table border="1" cellpadding="3" cellspacing="0"
- style="border-collapse: collapse" bordercolor="#111111">
- <tr>
- <th width="100%" colspan="2">New Page Links in 2.0</th>
- </tr>
- <tr>
- <td width="50%">{tos}</td>
- <td width="50%">Terms of Service</td>
- </tr>
- <tr>
- <td width="50%">{rules}</td>
- <td width="50%">Submission Rules</td>
- </tr>
- <tr>
- <td width="50%">{contactus}</td>
- <td width="50%">Contact Us</td>
- </tr>
- <tr>
- <td width="50%">{featured}</td>
- <td width="50%">Featured Stories</td>
- </tr>
- <tr>
- <td width="50%">{members}</td>
- <td width="50%">Members</td>
- </tr>
- <tr>
- <td width="50%">{series}</td>
- <td width="50%">Series</td>
- </tr>
- <tr>
- <td width="50%">{challenges}</td>
- <td width="50%">Challenges</td>
- </tr>
- <tr>
- <td width="50%">{tens}</td>
- <td width="50%">The Tens</td>
- </tr>
- </table>
- </center>
-</div>
-<p> <div align="center">
- <center>
- <table border="1" cellpadding="3" cellspacing="0"
- style="border-collapse: collapse" bordercolor="#111111">
- <tr>
- <th width="100%" colspan="2">Changed from 1.1</th>
- </tr>
- <tr>
- <td width="50%">{authors}</td>
- <td width="50%">Authors (was members list)</td>
- </tr>
- </table>
- </center>
-</div>
-<p>3. In your new skin folder create a new file called variables.php.
-As this is a conversion from 1.1 to 2.0 you will want to set some options in the
-blocks settings.</p>
-<p style="margin: 1em 5%; border: 1px solid #000;"><?php<br>
-$blocks["info"]["status"] = '1'; <br>
-$blocks["info"]["style"] = '1';<br>
-$blocks["login"]["status"] = '1';<br>
-$blocks["news"]["status"] = '1';<br>
-$blocks["news"]["tpl"] = '1';<br>
-$blocks["recent"]["status"] = '1';<br>
-$blocks["recent"]["tpl"] = '1';<br>
-$blocks["categories"]["status"] = '1';<br>
-$blocks["categories"]["columns"] = '0';<br>
-$blocks["categories"]["tpl"] = '1';<br>
-$blocks["featured"]["tpl"] = '1';<br>
-$blocks["featured"]["status"] = '1';<br>
-?></p>
-<p>Technically, this is probably overkill. You will definitely want to set
-"tpl" to 1 for categories, recent, and featured if your skin uses them. If
-in the past you used {totalstories} and {totalauthors}, activate the info block
-and set the style to 2. Note that this will also give you {totalmembers}
-to include. All of these blocks should be set to a "status" of 1 to
-include them only on the index page.
-If your skin doesn't use them, I suggest you set the status to 0. It will
-make the page load a tiny bit faster, but for busy sites tiny bits will add up.</p>
-<p>4. Copy the 1.1 index.tpl skin into your new folder and open it. Locate
-the point where your header information stops. Delete everything before
-that and replace it with:</p>
-<p><!-- INCLUDE BLOCK : header --></p>
-<p>Find where your footer information starts and replace everything below it with</p>
-<p><!-- INCLUDE BLOCK : footer --></p>
-<p>We took care of all the blocks except news in the previous step. Find
-where your news is included in the index.tpl and replace the block with {news_content}
-You can also remove {newspageprev} and {newspagenext} as those are replaced by
-the newsarchive link and are included in {news_content}. To style the news
-archive link use #newsarchive in your style.css. The #newsarchive id is a
-div around the archive link.</p>
-
-<p>5. Copy your newsbox.tpl file into the new folder. No changes need to
-be made to that. Note however that the style will be carried over to the
-news archive.</p>
-
-<p>6. Open your style.css and style the following elements. The
-information after the dash is suggested styles to match 1.1 where possible or
-just general ideas</p>
-
-<p>#pagetitle - text-align: center; font-size: 150%; margin: 1ex;<br>
-#alphabet, #pagelinks - text-align: center; margin: 1em;<br>
-LABEL - font-weight: bold;<br>
-#sort - text-align: center; margin: 1ex; (Sort options on categories.php)<br>
-#profile #sort - text-align: right; (Sort options on the viewuser
-page)</p>
-
-<p>.sectionheader - text-align: center; font-weight: bold; (this is the
-"Series" and "Stories" sub-headers)<br>
-#titleblock - margin: 0 10%; border: 1px solid #000; <br>
-(this is the title block at the top of the series and challenges pages when a
-single series/challenge is listed)</p>
-
-<p>To convert the tabs in the viewuser page from 1.1 to 2.0 you'll need to add
-the #tabs style group to your style.css. This is the tabs information for
-the skin in default_tpls. It's a good place to start. 2.0 gives you more
-options in styling this section of the viewuser page, but this styling will be
-close to what you previously used in 1.1 with some tweaking. The #active
-styling is the tab currently active in the window. In 1.1 this would have
-been the table cell with the background color.</p>
-
-<p>#tabs {<br>
-padding: 0;<br>
-margin: 0;<br>
-clear: both;<br>
-border-top: 3px double #000;<br>
-border-bottom: 3px double #000;<br>
-}<br>
-<br>
-#tabs DIV{ <br>
-width: 33%;<br>
-float: left;<br>
-color: #000;<br>
-text-align: center;<br>
-background: #CCC; <br>
-font-size: 11pt;<br>
-}<br>
-<br>
-#tabs #centertab {<br>
-background: transparent;<br>
-border-right: 3px double #000;<br>
-border-left: 3px double #000;<br>
-width: 98%;<br>
-}<br>
-<br>
-#tabs a { color: #000; }<br>
-#tabs a:active, a:hover { text-decoration: none; color: #555; }<br>
-<br>
-#tabs #active { background: #555; width: 34%; color: #FFF; }<br>
-#tabs #active a { color: #FFF; }<br>
-#tabs #active a:active, a:hover { text-decoration: none; color: #555; }</p>
-
-<p>7. The last thing you'll probably need to do is convert your storyblock.tpl.
-If you wish, you can rely on the default and set the appearance of both the
-stories and series blocks through your style.css. The default uses the .listbox
-class with child classes of .title, .tail, .adminoptions, .content, and
-.classification. You can also use .odd and .even to alternate style of
-blocks every other one.</p>
-
-<p>/* Formatting for the divs for series and stories. */<br>
-.listbox { margin: 0 5%; border: 2px solid #900; margin-bottom: 1em; background:
-#FFF; background-position: 0 5px;}<br>
-.listbox .title { font-weight: bold; padding: 4px; color: #900; border-bottom:
-3px double #900;}<br>
-.listbox .title a:link { color: #900; text-decoration: underline;}<br>
-.listbox .title a:visited { color: #C66; text-decoration: underline;}<br>
-.listbox .title a:hover { color: #900; text-decoration: underline overline; }<br>
-.listbox .content { padding: 5px; padding-top: 10px; padding-bottom: 10px;}<br>
-.listbox .tail, .listbox .respond { border-top: 3px double #900;}<br>
-.listbox .classfication { font-weight: bold; }<br>
-/* End listbox formatting. */</p>
-
-<p>If you don't want to use the default, I suggest you copy listings.tpl from
-the default_tpls folder then paste the contents of your storyblock.tpl into the
-storyblock section then replicate it for the series section. Pay attention
-to the additional information for the story block. You may now include
-challenges and series information. There are also adminoptions to be
-included as well. If you don't use the default you will also need to
-separately style the challenges block (if you choose to use challenges on your
-site).
-Copy challenges.tpl from the default_tpls folder and style it as you wish.
-<u>Do<b><i> NOT </i></b>save it back to default_tpls. </u><b> </b>Save it
-to your skin's folder.</p>
-
-<p>That's a basic conversion from 1.1 to 2.0. You can further define other
-areas of the script such as the title blocks in series and challenges. If
-you wish to change the look of these areas, copy the applicable .tpl from
-default_tpls and make your changes. Then save that .tpl to your skin
-folder NOT back to the default_tpls. </p>
-
-</body></html>
--- a/docs/creating_blocks.htm
+++ /dev/null
@@ -1,110 +1,1 @@
-<html>
-<head>
-<meta http-equiv="Content-Language" content="en-us">
-<meta name="GENERATOR" content="Microsoft FrontPage 5.0">
-<meta name="ProgId" content="FrontPage.Editor.Document">
-<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
-<title>Creating Blocks</title>
-</head>
-
-<body>
-
-<h2 align="center">Creating Blocks</h2>
-<p>For those that want to create their own blocks to share with others or just
- tweak the ones included already, here's the basics. There are two files
- needed for each block: blockname.php an init.php. Technically, if you
- added the block manually, you wouldn't need the init.php file. It is only
- used when the block is first initialized, and can be deleted afterward.
- Though I would suggest keeping a backup somewhere, just in case.</p>
-<p>The init.php file is very simple composed simply of a mysql statement that
- adds the block tot he database. As in the example below.</p>
-<p><?php<br>
- dbquery("INSERT INTO ".TABLEPREFIX."fanfiction_blocks(`block_name`,
- `block_title`, `block_status`, `block_file`, `block_variables`) VALUES('categories',
- 'Main Categories', '0', 'categories/categories.php', '');");<br>
- ?></p>
-<p>This also shows the basic parameters needed for a block: name, title, status,
- file, and variables. The title can be an empty string if you don't need
- a title for that particular block. If the block doesn't need any variables,
- that too can be left empty. The file should be a subfolder/file of the blocks
- folder for the sake of consistency. The status should generally start off as
- 0 for inactive. There are 3 status options for blocks: </p>
-<div align="center">
- <center>
- <table border="1" cellpadding="5" cellspacing="0"
- style="border-collapse: collapse" bordercolor="#111111">
- <tr>
- <th colspan="2">Status</th>
- <th> Associated .tpl file</th>
- <th>Appears</th>
- </tr>
- <tr>
- <td>0</td>
- <td>Inactive</td>
- <td>The block is off. </td>
- <td>nowhere</td>
- </tr>
- <tr>
- <td>1</td>
- <td>Active</td>
- <td>The block is on.</td>
- <td>anywhere</td>
- </tr>
- <tr>
- <td>2</td>
- <td>Index only</td>
- <td>index page only.</td>
- <td>anywhere on the index page.</td>
- </tr>
- </table>
- </center>
-</div>
-<p> </p>
-<p>Any default configuration you want for the block can be included in the init.php
- as well. The variables are an array encoded using PHP's serialize function.
- For instance, the categories block currently has two options: one column and
- multiple columns. The default is a single column lists. If I were
- to change the init file as follows, the default would then become a multiple
- column list.</p>
-<p><?php<br>
- dbquery("INSERT INTO ".TABLEPREFIX."fanfiction_blocks(`block_name`,
- `block_title`, `block_status`, `block_file`, `block_variables`) VALUES('categories',
- 'Main Categories', '0', 'categories/categories.php', '".serialize(array("columns"
- => "1"))."');");<br>
- ?></p>
-<p> When you change any of the settings for the blocks from the admin panel the
- information stored in the database about the block is updated.</p>
-<p>The block.php file creates the content that is placed inside the {blockname_content}
-variable. This content is placed inside a variable $content which is then
-assigned to {blockname_content} So a very simple example of a block would
-be:</p>
-<p><?php<br>
-$content = "Hello World!";<br>
-?></p>
-<p>There are two other optional files. The first is an admin file which
-will be called from the admin panel to make changes to the settings in the
-block. Creating one of those is for another day. </p>
-<p>The second file (or multiple files) is a language file that defines any text
-you use in your block. These files take the same format as the main
-language file in the languages folder and are named similarly. So for
-instance, an English language file would be named en.php. For Spanish, it
-would be es.php. </p>
-<p>Most often, you might need to define some wording for your admin.php file.
-If you need to add a language file, use the following code in either admin.php
-or blockname.php</p>
-<p>if(file_exists("blocks/categories/{$language}.php")) include_once("blocks/categories/{$language}.php");</p>
-<p>The if(...) isn't technically necessary, but it will prevent errors if the
- file ends up missing. For instance, the site's language is set to Russian,
- but the block doesn't have a Russian translation. You might also want
- to include an else statement to load a default language file you have created
- if the site's chosen language is missing.</p>
-<p>if(file_exists("blocks/categories/{$language}.php")) include_once("blocks/categories/{$language}.php");<br>
- else include_once("blocks/categories/en.php");</p>
-<p>To keep your block files secure from hackers you are strongly encouraged to
- include this line at the top of each file just under the <?php</p>
-<p>if(!defined("_CHARSET")) exit( );</p>
-<p> </p>
-</body>
-
-</html>
--- a/docs/creating_skins.htm
+++ /dev/null
@@ -1,973 +1,1 @@
-<html>
-<head>
-<meta http-equiv="Content-Language" content="en-us">
-<meta name="GENERATOR" content="Microsoft FrontPage 5.0">
-<meta name="ProgId" content="FrontPage.Editor.Document">
-<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
-<title>Creating Skins</title>
-<style type="text/css">
-<!--
-.sample {
- background-color: #CCCCCC;
- margin: 1em;
- border: 1px solid #000000;
- padding: 1ex;
-}
-.sampleLabel {
- margin-bottom: -1em;
- margin-left: 1em;
- font-weight: bold;
-}
--->
-</style>
-</head>
-
-<body>
-
-<h2 align="center">Creating Skins - WIP</h2>
-<p>In theory, there is no limit to the number of skins you can create for your
-site. If you have created skins for eFiction 1.1, you won't find many differences. The number and names of the .tpl files have changed
-some though.
-A complete skin will include the following files.</p>
-<div align="center">
- <center>
- <table border="1" cellpadding="5" cellspacing="0"
- style="border-collapse: collapse" bordercolor="#111111">
- <tr>
- <th width="50%">.tpl file</th>
- <th width="50%">Related pages</th>
- </tr>
- <tr>
- <td><a href="#browse">browse.tpl</a></td>
- <td>Browse Pages</td>
- </tr>
- <tr>
- <td><a href="#categories">categories.tpl</a></td>
- <td>Browse Categories</td>
- </tr>
- <tr>
- <td><p><a href="#comments">comments.tpl</a></p></td>
- <td>News</td>
- </tr>
- <tr>
- <td><a href="#default">default.tpl</a></td>
- <td>Most pages</td>
- </tr>
- <tr>
- <td><a href="#favcomment">favcomment.tpl</a></td>
- <td>Favorites Lists</td>
- </tr>
- <tr>
- <td><a href="#footer">footer.tpl</a></td>
- <td>All pages</td>
- </tr>
- <tr>
- <td><a href="#header">header.tpl</a></td>
- <td>All pages</td>
- </tr>
- <tr>
- <td><a href="#index">index.tpl</a></td>
- <td>Index</td>
- </tr>
- <tr>
- <td><a href="#listings">listings.tpl</a></td>
- <td>Any page listing stories or series</td>
- </tr>
- <tr>
- <td><a href="#newsbox">newsbox.tpl</a></td>
- <td>News & news block</td>
- </tr>
- <tr>
- <td><a href="#printstory">printstory.tpl</a></td>
- <td>View Story (Printable)</td>
- </tr>
- <tr>
- <td><a href="#profile">profile.tpl</a></td>
- <td>User Profile</td>
- </tr>
- <tr>
- <td><a href="#reviewblock">reviewblock.tpl</a></td>
- <td>Reviews</td>
- </tr>
- <tr>
- <td><a href="#reviews">reviews.tpl</a></td>
- <td>Reviews</td>
- </tr>
- <tr>
- <td><a href="#seriestitle">series_title.tpl</a></td>
- <td>View Series</td>
- </tr>
- <tr>
- <td><a href="#storyindex">storyindex.tpl</a></td>
- <td>Story Table of Contents</td>
- </tr>
- <tr>
- <td><a href="#user">user.tpl</a></td>
- <td>User Profile/Info</td>
- </tr>
- <tr>
- <td><a href="#viewstory">viewstory.tpl</a></td>
- <td>View Story</td>
- </tr>
- </table>
- </center>
-</div>
-<p>Now, to quote Douglas Adams...Don't Panic! That's the most number of
- files a skin would use. Most skins will consist of quite a few less.
- If you install add-on modules, those modules may require additional .tpl files
- which will be included with the module. </p>
-<p>Within the script files is a folder called default_tpls. It includes
- a very basic complete skin that will be used if for whatever reason your site's
- default skin or your member's chosen skin are missing. If any of these
- .tpl files (except for header.tpl and footer.tpl) are missing the script will
- fall back on the files in the default_tpls folder. Many of the tpl files
- are generic enough that they can easily be left to the ones in default_tpls
- and styled using CSS. In addition to the .tpl files you will have a style.css
- file and optionally, a variables.php file. The variables.php file allows
- you to override certain universal settings for this skin such as where blocks
- load and the graphics used for your ratings and featured stories.</p>
-<p>A fewimportant things to pay attention to when modifying the template files:</p>
-<ol>
- <li><b>Variables</b>: Items in curly brackets are variables, i.e. {output} or
- {authors}. This contains the actual content that will be printed out on the
- page. You can surround these attributes with any kind of html that you want
- -- font tags, tables, whatever. Some variables are required on some of the
- template pages and some are optional. </li>
- <li><b>Blocks</b>: These are items that generate multiple instances of content
- in a loop -- for example, in your index.tpl template file, you only need to
- indicate where the news items should display on the page with the following:<br>
- <!-- INCLUDE BLOCK : newsbox --><br>
- This line is telling the script to include the newsbox.tpl file, and the template
- files will understand that it should print out several news stories in a loop,
- with just that one line of code. Another kind of block you may see is the
- following:<br>
- <!-- START BLOCK : categoriesblock --><br>
- <br>
- Content goes here, which will also include attributes, such as {category}
- or {description}<br>
- <br>
- <!-- END BLOCK : categoriesblock --><br>
- This is similar to the included block, except that rather than pulling in
- the block from another file, as in the case of the newsbox.tpl, this one is
- just defining the block at this very moment. As you read through the individual
- template file instructions below and look at the actual templates, all of
- this will make more sense. <b> Block declarations should go on lines
- by themselves.</b></li>
- <li><b>Blocks vs. Blocks: </b>The template blocks in the .tpl files are
- not the same as the blocks you configure in the admin panel. The blocks
- in the admin panel are "blocks" of code that generate content they
- place inside template variables. The blocks in the .tpl files are "blocks"
- of content. While there is some overlap, thinking of them as being separate
- from each other will help you keep things straight. Each "code
- block" will generate two "content blocks": {blockname_title}
- and {blockname_content}. You may or may not include the {blockname_title}
- variable in your skin. It's up to you. However, using the {blockname_title}
- in your skin means if you ever want to change the title of the block you only
- have to do it in one place instead of in each skin. You assign where
- the block will be assigned to in the admin panel. There are 3 choices:
- <br>
-
- <div align="center">
- <center>
- <table border="1" cellpadding="5" cellspacing="0"
- style="border-collapse: collapse" bordercolor="#111111">
- <tr>
- <th width="50%">Status</th>
- <th width="50%"> Associated .tpl file</th>
- </tr>
- <tr>
- <td width="50%">Inactive</td>
- <td width="50%">The block is off. </td>
- </tr>
- <tr>
- <td width="50%">Active</td>
- <td width="50%">The block is on. Can appear on every page.</td>
- </tr>
- <tr>
- <td width="50%">Index Only</td>
- <td width="50%">Appears on the index page only.</td>
- </tr>
- </table>
- </center>
- </div>
- <p>You may also override these settings for an individual skin by placing
- information for that block in the variables.php file. More on that later.</li>
- <li>The .tpl files do not have some of the usual tags at the beginning, such
- as <head> or <title>. That is because those tags are included
- in the header file. Most of the template files begin with the header block
- and end with the footer block except for a couple of the blocks (newsblock.tpl,
- comments.tpl and listings.tpl)</li>
- <li>Using "hooks" various 3rd party and included modules (such as
- challenges) can add their own variables to these templates. Check the documentation
- for the modules for specific additions. </li>
-</ol>
-<p>Feel free to use the files in the default_tpls/ folder as templates for your
- own skins. Copy the files into a new skin folder and modify them there.
- <strong><font color="#FF0000">Do not modify the files in default_tpls/ if at
- all possible. They're often used for diagnostic purposes if the site isn't functioning
- as expected.</font></strong> <u>Also, you are in no way limited to CSS
- for the layout of your skins. Feel free to use tables to your heart's
- content. </u></p>
-<hr>
-<p><a name="browse"></a>browse.tpl</p>
-<p>This file controls the look of the browse pages (categories, classifications,
- etc.) The header, footer, and listing blocks are included in this file along
- with a block for the sort form that is displayed when there are story results.
- In addition you will want to include two other variables:</p>
-<p>You will need to start by including the header block.</p>
-<p class="sample"><!-- INCLUDE BLOCK : header --></p>
-<p>And end by including the footer block.</p>
-<p class="sample"> <!-- INCLUDE BLOCK : footer --></p>
-<p>{output} - Miscellaneous information on the pages including the page title.<br>
- {otherresults} - The list of other results (challenges, series, etc.) that fit
- the criteria for the page.</p>
-<p>Within the sort form the following variables are used:</p>
-<p>{sortbegin} - the beginning of the sort menu form<br>
- {charactermenu1} - A list of characters to choose from<br>
- {charactermenu2} - A second list of characters<br>
- {classmenu} - A dropdown list for each of the site's classification types (genres,
- warnings, etc.)<br>
- {ratingmenu} - A list of ratings<br>
- {sortmenu} - Choose how the stories will be sorted alphabetically or by most
- recently updated<br>
- {completemenu} - Choose all stories or only completed stories<br>
- {sortend} - the end of the sort menu form</p>
-<p>You may include all or none of these and in whatever order you wish, except
- the {sortbegin} and {sortend} variables must be at the beginning and end of
- the list of variables in the form.</p>
-<p class="sampleLabel">Sample: </p>
-<p class="sample"><!-- INCLUDE BLOCK : header --><br>
- {output}{otherresults}<br>
- <!-- START BLOCK : sortform --><br>
- <div id="sortform">{sortbegin}{categorymenu} {charactermenu1}
- {charactermenu2} {ratingmenu} {classmenu} {sortmenu} {completemenu} {sortend}</div><br>
- <!-- END BLOCK : sortform --><br>
- <!-- INCLUDE BLOCK : listings --><br>
- <!-- INCLUDE BLOCK : footer --></p>
-<p><a name="categories"></a>categories.tpl</p>
-<p>The categories.tpl controls the look of the individual category on the categories
- browse page. <strong>Note:</strong> The appearance of the categories block is
- controlled separately through the block's admin panel. </p>
-<p>The block must start with:</p>
-<p class="sample"><!-- START BLOCK : categoryblock --></p>
-<p>and end with:</p>
-<p class="sample"><!-- END BLOCK : categoryblock --></p>
-<p>The following variables are available to use in the block:</p>
-<p>{image} - The image associated with that category. Note: The name of the image
- is set in the Categories admin panel. The image file must be in the skin's directory.
- If the script can't find the image it will display nothing. (In 1.1 a broken
- image was displayed.)<br>
- {link} - The link to the category's browse page.<br>
- {count} - The count of stories within that category.<br>
- {description} - The category's description.</p>
-<p class="sampleLabel">Sample:</p>
-<p class="sample"><!-- START BLOCK : categoryblock --><br>
- {image} {link} {count} {description}<br>
- <!-- END BLOCK : categoryblock --></p>
-<p><a name="comments">comments.tpl</a></p>
-<p>This block controls the display of comments on the news.php page for a single
- story. </p>
-<p>You must start the file with:</p>
-<p class="sample"><!-- START BLOCK : commentbox --></p>
-<p>and end it with:</p>
-<p class="sample"><!-- END BLOCK : commentbox --></p>
-<p>This information should be placed on separate lines. Between these two
- lines the following variables should be included.</p>
-<p>{comment} - The comment from the member.<br>
- {uname} - The member's name as a hyperlink to their profile.<br>
- {date} - The date the comment was made.<br>
- {adminoptions} - Options visible to the administrator when viewing the page.</p>
-<p>The variable {oddeven} is optional, you can use it to assign alternating styles
- to each comment.</p>
-<p class="sampleLabel">Sample:</p>
-<p class="sample"><!-- START BLOCK : commentbox --><br>
- <div class="comment {oddeven}"><br>
- {comment}<br>
- <div class="commentsig">- {uname} on {date}</div><br>
- <div class="adminoptions"> {adminoptions}</div><br>
- </div><br>
- <!-- END BLOCK : commentbox --></p>
-<p><a name="default">default.tpl</a></p>
-<p>The majority of pages use this for their layout. Most likely you won't
- need to include it in your skin at all.</p>
-<p>You must include the <a href="#header">header</a>, <a href="#listings"> listings</a>,
- and <a href="#footer">footer</a> block as seen below and include the {output}
- variable BEFORE the listings block. The {output} variable provides various
- text like the page title and alphabet list for titles. You will probably not
- need to replicate this file in your skin since there's nothing much to change
- really.</p>
-<p class="sampleLabel">Sample:</p>
-<p class="sample"><!-- INCLUDE BLOCK : header --><br>
- {output}<br>
- <!-- INCLUDE BLOCK : listings --><br>
- <!-- INCLUDE BLOCK : footer --></p>
-<p></p>
-<p><a name="favcomments"></a>favcomment.tpl</p>
-<p>In eFiction 3.0 when favorites are turned on by the admin, members have the
- option of not only marking a story as a favorite, but also including a comment
- as to why it is their favorite. The favcomment.tpl us used to display these
- comments in the user's profile.</p>
-<p>The block must start with:</p>
-<p class="sample"><!-- START BLOCK : comment --></p>
-<p>and end with:</p>
-<p class="sample"><!-- END BLOCK : comment --></p>
-<p>In addition the following variables can be used within the block:</p>
-<p>{comment} - The member's comment<br>
- {commentoptions} - Options concerning this comment for admin and the person
- who commented<br>
- {oddeven} - This variable can be used to style alternating comments differently.</p>
-<p class="sampleLabel">Sample:</p>
-<p class="sample"><!-- START BLOCK : comment --><br>
- <div class="comment{oddeven}"><br>
- {comment}<br>
- {commentoptions}<br>
- </div><br>
- <!-- END BLOCK : comment --></p>
-<p><a name="footer">footer.tpl</a></p>
-<p>You must start the file with:</p>
-<p class="sample"><!-- START BLOCK : footer --></p>
-<p>and end it with:</p>
-<p class="sample"><!-- END BLOCK : footer --></p>
-<p>In addition to the <a href="#pagelinks">universal page links</a>, the footer.tpl
- also has one other variable assigned to it. </p>
-<p>{footer} - Your copyright statement.</p>
-<p>Content assigned to the footer in the admin panel or in the skin's variables.php
- file will also be included here.</p>
-<p class="sampleLabel">Sample: </p>
-<p class="sample"><!-- START BLOCK : footer --><br>
- </div><br>
- <div id="footer">{footer}</div></div><br>
- </body></html><br>
- <!-- END BLOCK : footer --></p>
-<p></p>
-<p><a name="header">header.tpl</a></p>
-<p>You must start the file with:</p>
-<p class="sample"><!-- START BLOCK : header --></p>
-<p>and end it with:</p>
-<p class="sample"><!-- END BLOCK : header --></p>
-<p>In addition to the <a href="#pagelinks">universal page links</a>, the
-header.tpl also has two other variables assigned to it. The use of these
-variables is optional.</p>
-<p>{sitename} - Your site name<br>
-{slogan} - Your site slogan</p>
-<p>Content assigned to the header in the admin panel or in the skin's
-variables.php file will also be included here.</p>
-<p class="sampleLabel">Sample: </p>
-<p class="sample"><!-- START BLOCK : header --><br>
- <body><br>
- <div id="container"><br>
- <div id="banner"><div style="font-size: 40pt; font-style:
- oblique;">{sitename}</div><div style="font-size: 13pt;">{slogan}</div><div
- id="skin">{skinchange_content}<div style="padding: 5px;">{rss}</div></div><br>
- </div><br>
- {menu_content}<br>
- <div id="mainpage"><br>
- <!-- END BLOCK : header --></p>
-<p><a name="index">index.tpl</a></p>
-<p>This file controls the look of your site's home/index page. </p>
-<p>You will need to start by including the header block.</p>
-<p class="sample"><!-- INCLUDE BLOCK : header --></p>
-<p>And end by including the footer block.</p>
-<p class="sample"> <!-- INCLUDE BLOCK : footer --></p>
-<p>In addition to the <a href="#pagelinks">universal page links</a>, the
-index.tpl also has one other variable assigned to it. </p>
-<p>{welcome} - Your welcome message.</p>
-<p>Content assigned to "index only" in the admin panel or in the skin's
-variables.php file will also be included here. The sample below creates a
-two column index page via positioning. See the style.css in the
-default_tpls for the leftindex and rightindex style declarations.</p>
-<p class="sampleLabel">Sample: </p>
-<p class="sample"><!-- INCLUDE BLOCK : header --><br>
-<div style="padding: 1em 0; margin-bottom: -2em;" class="clearfix"><br>
-<div id="leftindex"><br>
-<div class="block"><br>
-<div class="title">{info_title}</div><br>
-<div class="content">{welcome}{info_content}<br><div style="width: 130px;
-text-align: center; margin: 0 25px;">{login_content}</div></div><br>
-</div><br>
-<div class="block"><br>
-<div class="title">{random_title}</div><br>
-<div class="content">{random_content}</div><br>
-</div><br>
-</div><br>
-<div id="rightindex"><br>
-<div class="block"><br>
-<div class="title">{categories_title}</div><br>
-<div class="content"><div style="width: 95%">{categories_content}</div></div><br>
-</div><br>
-<div class="block"><br>
-<div class="title">{recent_title}</div><br>
-<div class="content">{recent_content}</div><br>
-</div><br>
-<div class="block"><br>
-<div class="title">{news_title}</div><br>
-<div class="content">{news_content}</div><br>
-</div><br>
-</div><br>
-</div><br>
-<!-- INCLUDE BLOCK : footer --></p>
-<p><a name="listings">listings.tpl</a></p>
-<p>This block is included in all pages where stories or series are listed such
-as titles, categories, user's profile page, search results, etc. It is an
-expansion of storyblock.tpl from 1.1. </p>
-<p>You must start the file with:</p>
-<p class="sample"><!-- START BLOCK : listings --></p>
-<p>and end it with:</p>
-<p class="sample"><!-- END BLOCK : listings --></p>
-<p> In addition, the following variable should be included just above the end
- line:</p>
-<p>{pagelinks} - If the results for the page require pagination, this variable
- will contain the list of page links.</p>
-<p>This block contains 2 inner blocks that control the appearance of the
-individual series and stories.</p>
-<p>Both the seriesblock and storyblock should contain the following variables:</p>
-<p>{title} - Title of the story/series<br>
- {author} - Author (Owner if it's an open series) of the story/series<br>
- {score} - The story/series rating by members like/dislike or stars<br>
- {reviews} - A link to the reviews for the story/series<br>
- {numreviews} - the number of reviews linked to a listing of reviews for the
- story/series<br>
- {summary} - The summary for the story/series<br>
- {category} - The categories for the story/series<br>
- {classifications} - The list of classifications for the story/series (genres,
- warnings, etc.)<br>
- {characters} - The characters for the story/series<br>
- {reportthis} - A link to report problems, errors, etc. with this story/series<br>
- {addtofaves} - The option to add the story/series to favorites.<br>
- {comment} - Will be used for favorite stories and also in certain reviews pages
- to display comments and reviews about the story/series</p>
-<p>Optional for both seriesblock and storyblock is the variable {oddeven}.
- This variable can be used to assign "odd" or "even" status
- to the block for CSS styling.</p>
-<p>The seriesblock will have the following additional variables:</p>
-<p> {adminoptions} - Options visible to the admin when viewing the page. <br>
- {open} - Whether or not the series is open to contributions from others (like
- a round robin)<br>
- {parentseries} - If the series is a sub-series of another, the parent series
- will be listed here.<br>
- {numstories} - The number of stories within the series.<br>
-</p>
-<p>The storyblock will have the following additional variables:</p>
-<p>{adminlinks} - Options visible to the admin when viewing the page.<br>
- {serieslinks} - If the story is part of a series this will contain a link to
- those series.<br>
- {numchapters} - The number of chapters in the story.<br>
- {completed} - Whether or not the story is complete.<br>
- {wordcount} - The total number of words in the story (all chapters)<br>
- {toc} - A link to the story's table of contents<br>
- {count} - The count for the number of times the story has been viewed.<br>
- {roundrobin} - If this story is a round robin an icon will be displayed showing
- this.<br>
- {new} - If the site has set a "recent" date range new or updated stories
- falling within that range will be flagged a "New!" using this variable.<br>
- {featuredstory} - If the story is listed as a featured story or a retired feature
- story an icon will be displayed showing this status.<br>
- {published} - The date the story was published.<br>
- {updated} - The date the story was last updated.</p>
-<p class="sampleLabel">Sample:</p>
-<p class="sample"><!-- START BLOCK : listings --><br>
- <!-- START BLOCK : seriesblock --><br>
- <div class="listbox {oddeven}"><br>
- <div class="title">{title} by {author}{score} [{reviews} - {numreviews}]</div><br>
- <div class="content"><span class="label">Summary:
- </span>{summary}<br /><br>
- <span class="label">Parent Series:</span> {parentseries}<br
- /><br>
- <span class="label">Categories:</span> {category}<br
- /><br>
- <span class="label">Characters: </span>{characters}<br
- /><br>
- {classifications}<br>
- <span class="label">Stories:</span> {numstories}<br
- /><br>
- <span class="label">Open:</span> {open} {addtofaves} {reportthis}<br>
- {adminoptions}</div><br>
- </div><br>
- {comment}<br>
- <!-- END BLOCK : seriesblock --><br>
- <!-- START BLOCK : storyblock --><br>
- <div class="listbox {oddeven}"><br>
- <div class="title">{title} by {author} <span class="label">Rated:</span>
- {rating} {roundrobin} {score} [{reviews} - {numreviews}] {new} </div><br>
- <div class="content"><span class="label">Summary:
- </span>{featuredstory}{summary}<br /><br>
- <span class="label">Categories:</span> {category} <br
- /><br>
- <span class="label">Characters: </span> {characters}<br
- /><br>
- {classifications}<br>
- <span class="label">Series:</span> {serieslinks}<br
- /><br>
- <span class="label">Chapters: </span> {numchapters} {toc}<br
- /><br>
- <span class="label">Completed:</span> {completed} <br>
- <span class="label">Word count:</span> {wordcount} <span
- class="label">Read Count:</span> {count}<br>
- {adminlinks}</div><br>
- <div class="tail"><span class="label">{addtofaves}
- {reportthis} Published: </span>{published} <span class="label">Updated:</span>
- {updated}</div><br>
- </div><br>
- {comment}<br>
- <!-- END BLOCK : storyblock --><br>
- {pagelinks}<br>
- <!-- END BLOCK : listings --></p>
-<p><a name="newsbox">newsbox.tpl</a></p>
-<p>This block displays one news story, and will be called by the news block and
- is also used in the news archive page.</p>
-<p>You must start the file with:</p>
-<p class="sample"><!-- START BLOCK : newsbox --></p>
-<p>and end it with:</p>
-<p class="sample"><!-- END BLOCK : newsbox --></p>
-<p>At a minimum, the following variables should be included in the block.
-</p>
-<p>{newstitle} - The title of the news story<br>
- {newsstory} - The content of the news story<br>
- {newsauthor} - The author of the news story<br>
- {newsdate} - The date the news item was added to the site<br>
- {newscomments} - The number of comments the story has received with a link to
- view the comments.</p>
-<p>Additionally, if you wish administrator options to appear when an admin views
- the story you should include:</p>
-<p>{adminoptions}</p>
-<p>Finally, if you want alternating stories to appear with different CSS options
- you can include:</p>
-<p>{oddeven} - Where this variable is placed the word "even" will appear
- in even numbered stories and the word "odd" will appear in odd numbered
- stories.</p>
-<p class="sampleLabel">Sample:</p>
-<p class="sample"><!-- START BLOCK : newsbox --><br>
- <div class="newsbox_{oddeven}"><br>
- <div class="newstitle">{newstitle} {adminoptions}</div><br>
- {newsstory}<br /><br /><br>
- --{newsauthor} on {newsdate} {newscomments}<br>
- </div><br>
- <!-- END BLOCK : newsbox --></p>
-<p><a name="printstory"></a>printstory.tpl</p>
-<p>This template is used when the print story function is used. Generally this
- is another block that you can probably leave to the default_tpls. The following
- variables should be included in this template:</p>
-<p>{title} - The title of the story<br>
- {author} - The author(s) of the story<br>
- {featuredstory} - The featured/retired icon will be displayed here if the story
- is featured.<br>
- {summary} - The summary of the story<br>
- {category} - The story's categories<br>
- {characters} - The story's character list<br>
- {classifications} - The other classification information for the story (genres,
- warnings, etc.)<br>
- {challengelinks} - The challenges to which this story is a response<br>
- {serieslinks} - The list of series to which this story belongs<br>
- {numchapters} - The number of chapters in the story<br>
- {completed} - Whether or not the story is complete<br>
- {wordcount} - The word count for the story<br>
- {count} - The read count for the story<br>
- {published} - The date the story was published<br>
- {updated} - The date the story was updated<br>
- {copyright} - The print version of the site's copyright notice<br>
- {archivedat} - A statement of where the story is archived at.</p>
-<p>In addition to these variables there are several blocks included in this template.
- The storynotes block will be displayed if the story contains notes. It contains
- one variable, {storynotes}. The next block should be the storyindexblock. For
- multi-chapter stories, this will be the table of contents. The storyindexblock
- will be one chapter's worth of information about the story. The following variables
- can be included in the storyindexblock:</p>
-<p>{title} - The chapter's title<br>
- {author} - The author of the chapter<br>
- {chapternumber} - The chapter number.</p>
-<p>The next block will be the chapter information for each chapter. This block
- contains blocks inside it for the chapter notes and endnotes. The following
- variables can be included in the chapterblock:</p>
-<p>{chaptertitle} - The title of the chapter<br>
- {chapterauthor} - The author of the chapter<br>
- {chaptertext} - The text of the chapter<br>
- {back2top} - An anchor back to the top of the document.</p>
-<p>The notes block contains a single variable {notes} and the endnotes block contains
- a single variable {endnotes}. These blocks plus the storynotes block are placed
- in blocks so that html can be used around the blocks if the information is present
- and hidden when not.</p>
-<p class="sampleLabel">Sample:</p>
-<p class="sample"><div id="pagetitle">{title} by {author}</div><br>
- <div class="infobox"><br>
- <div class="content">{featuredstory}<span class="label">Summary:
- </span>{summary}<br /><br>
- <span class="label">Categories:</span> {category} <span
- class="label">Characters: </span> {characters}<br /><br>
- {classifications}<br>
- <span class="label">Challenges:</span> {challengelinks}<br
- /> <span class="label">Series:</span> {serieslinks}<br
- /><br>
- <span class="label">Chapters: </span> {numchapters} <span
- class="label">Completed:</span> {completed} <br>
- <span class="label">Word count:</span> {wordcount} <span
- class="label">Read:</span> {count}<br>
- <span class="label"> Published: </span>{published} <span
- class="label">Updated:</span> {updated} </div><br>
- </div><br>
- <!-- START BLOCK : storynotes --><br>
- <div class='notes'><div class='title'><span class='label'>Story
- Notes:</span></div><div class='noteinfo'>{storynotes}</div></div><br>
- <!-- END BLOCK : storynotes --><br>
- <!-- START BLOCK : storyindexblock --><br>
- <p><b>{chapternumber}.</b> {title} by {author}</p><br>
- <!-- END BLOCK : storyindexblock --><br>
- <!-- START BLOCK : chapterblock --><br>
- <div class='chaptertitle'>{chaptertitle} by {chapterauthor}</div><br>
- <!-- START BLOCK : notes --><br>
- <div class='notes'><div class='title'><span class='label'>Author's
- Notes:</div><div class='noteinfo'>{notes}</div></div><br>
- <!-- END BLOCK : notes --><br>
- <div class='chapter'>{chaptertext}</div><br>
- <!-- START BLOCK : endnotes --><br>
- <div class='notes'><div class='title'><span class='label'>End
- Notes:</div><div class='noteinfo'>{endnotes}</div></div><br>
- <!-- END BLOCK : endnotes --><br>
- <div class='toplink'>{back2top}</div><br>
- <!-- END BLOCK : chapterblock --><br>
- <div id="copyright">{copyright}</div><br>
- <div id="archivedat">{archivedat}</div></p>
-<p><a name="profile"></a>profile.tpl</p>
-<p>This template is used in the author's profile page. It's been separated out
- of the user.tpl so that it can be re-used in other panels if needed.</p>
-<p>You must start the file with:</p>
-<p class="sample"><!-- START BLOCK : profile --></p>
-<p>and end it with:</p>
-<p class="sample"><!-- END BLOCK : profile --></p>
-<p>The following variables can be included in this file:</p>
-<p>{realname} - The member's real name<br>
- {userpenname} - The member's penname<br>
- {membersince} - The date the member joined the site<br>
- {userlevel} - The member's user level Member or Admin (if the person viewing
- the page is an admin they will see the admin level)<br>
- {image} - The member's image from their bio information<br>
- {bio} - The autor's bio<br>
- {authorfields} - The list of admin defined author fields. i.e. aol, icq, etc.<br>
- {adminoptions} - A list of admin options about the member (visible only to admins)<br>
- {reportthis} - A report this link for the members profile</p>
-<p>For each active authorfield, you will also have a variable for that information.
- For instance, if you've activated the AOL authorfield, the variable {aol} will
- also output the aol information for the member. </p>
-<p>Note: this is for a non-bridged site. If you've bridged your site, the variables
- available to your profile will depend on how your bridge is set up.</p>
-<p class="sampleLabel">Sample:</p>
-<p class="sample"><!-- START BLOCK : profile --><br>
- <div id="profile"><br>
- <div id="bio"><br>
- <div id="biotitle"><span class="label">Penname:
- </span>{userpenname} <span class="label">Real name: </span>{realname}</div><br>
- <div id="biocontent"><br>
- <span class="label">Member Since: </span>{membersince}<br
- /><br>
- <span class="label">Membership status:</span> {userlevel}<br
- /><br>
- <span class="label">Bio:</span><br>{image}{bio}<br
- /><br>
- {authorfields} <br>
- </div><br>
- </div><br>
- {adminoptions} {reportthis}<br>
- </div><br>
- <!-- END BLOCK : profile --></p>
-<p><a name="reviewblock"></a>reviewblock.tpl</p>
-<p>This block controls the display of an individual review. It's been separated
- from the reviews.tpl file so it can be re-used in other panels.</p>
-<p>You must start the file with:</p>
-<p class="sample"><!-- START BLOCK : reviewsblock --></p>
-<p>and end it with:</p>
-<p class="sample"><!-- END BLOCK : reviewsblock --></p>
-<p>The following variables can be included in this file:</p>
-<p>{reviewer} - The name of the reviewer<br>
- {member} - The words Signed or Anonymous depending on whether the reviewer was
- a member<br>
- {rating} - The thumbs up/down or star rating the reviewer gave<br>
- {reportthis} - A link to report trouble with this review<br>
- {reviewdate} - The date the review was given<br>
- {chapter} - The title of the item being reviewed (chapter if it's a story and
- the chapter is named)<br>
- {review} - The text of the review<br>
- {adminoptions} - Admin options for the review</p>
-<p class="sampleLabel">Sample:</p>
-<p class="sample"><!-- START BLOCK : reviewsblock --><br>
- <div class="listbox"><br>
- <div class="content{oddeven}"><br>
- <span class="label">Reviewer: </span>{reviewer} <span
- class="label">{member}</span> {rating} {reportthis}<br
- /><br>
- <span class="label">Date: </span>{reviewdate}<br>
- <span class="label">Title: </span>{chapter}<br>
- <p>{review}</p><br>
- {adminoptions}<br>
- </div><br>
- </div><br>
- <!-- END BLOCK : reviewsblock --></p>
-<p><a name="reviews">reviews.tpl</a></p>
-<p>This block controls the display of the reviews page. This .tpl includes
-an inner block that formats the individual reviews on the page. The
-following variables are included in the reviews.tpl</p>
-<p>{pagetitle} - The title of the page<br>
- {output} - Used for error and confirmation messages. Should probably be
- included just below {pagetitle}<br>
- {jumpmenu} - Displays the jump menu for reviews pages that require it.<br>
- {reviewpagelinks} - Used for pagination. Should be included AFTER the
- reviewsblock<br>
- {reviewslink} - Link inviting visitor to submit a review (Optional can use {reviewsform}
- instead) <br>
- {reviewsform} - The review form. (Optional can use {reviewslink} instead)</p>
-<p>You will need to start by including the header block.</p>
-<p class="sample"><!-- INCLUDE BLOCK : header --></p>
-<p>And end by including the footer block.</p>
-<p class="sample"> <!-- INCLUDE BLOCK : footer --></p>
-<p class="sampleLabel">Sample:</p>
-<p class="sample"><!-- INCLUDE BLOCK : header --><br>
- {pagetitle}<br>
- <div class="respond">{reviewslink}</div><br>
- <div class="jumpmenu">{jumpmenu}</div><br>
- {output}<br>
- <!-- INCLUDE BLOCK : reviewsblock --><br>
- {reviewpagelinks}<br>
- {reviewform}<br>
- <!-- INCLUDE BLOCK : footer --></p>
-<p><a name="seriestitle"></a>series_title.tpl</p>
-<p>This template displays the title block information on a series page. </p>
-<p>You must start the file with:</p>
-<p class="sample"><!-- START BLOCK: series --></p>
-<p>and end it with:</p>
-<p class="sample"><!-- END BLOCK : series --></p>
-<p>The following variables can be included in this file:</p>
-<p>{pagetitle} - This will be the series title and author links<br>
- {rating} - The thumbs up/down or star rating for the series<br>
- {summary} - The series' summary<br>
- {category} - The category information for the series<br>
- {characters} - The characters for the series<br>
- {classifications} - The other classification information for the series (genres,
- warnings, etc.)<br>
- {parentseries} - If this series has a parent, this will be a link to the parent
- series<br>
- {numstories} - The number of stories in the series<br>
- {open} - The open status of the series <br>
- {adminoptions} - The admin options for the series<br>
- {addtofaves} - The link to add the series to favorites<br>
- {jump} - The dropdown list of options for the series.</p>
-<p class="sampleLabel">Sample:</p>
-<p class="sample"><!-- START BLOCK : series --><br>
- <div id="pagetitle">{pagetitle} {rating}</div><br>
- <div id="titleinfo"> [{reviews} - {numreviews}]</div><br>
- <div id="titleblock"><br>
- <span class="label">Summary:</span> {summary}<br /><br>
- <span class="label">Categories:</span> {category}<br
- /><br>
- <span class="label">Characters:</span> {characters}<br
- /><br>
- {classifications}<br>
- <span class="label">Parent Series:</span> {parentseries}<br
- /><br>
- <span class="label">Stories:</span> {numstories}<br
- /><br>
- <span class="label">Open Series:</span> {open}<br /><br>
- <span class="label">{adminoptions}{addtofaves}<br /><br>
- </div><br>
- <div class="jumpmenu">{jump}</div><br>
- <!-- END BLOCK : series --></p>
-<p><a name="storyindex"></a>storyindex.tpl</p>
-<p>This template controls the story index (table of contents) for an individual
- story. </p>
-<p>You will need to start by including the header block.</p>
-<p class="sample"><!-- INCLUDE BLOCK : header --></p>
-<p>And end by including the footer block.</p>
-<p class="sample"> <!-- INCLUDE BLOCK : footer --></p>
-<p>The following variables may be included in this template:</p>
-<p>{title} - The title of the story<br>
- {author} - The author(s) of the story<br>
- {reviews} - A link to the reviews for the story with the word "Reviews"
- as text<br>
- {numreviews} - A link to the reviews for the story with the number of reviews
- as the text<br>
- {score} - The thumbs up/down or star rating for a story<br>
- {jumpmenu} - The dropdown menu of chapters in the story<br>
- {featuredstory} - The featured/retired icon<br>
- {summary} - The summary of the story<br>
- {rating} - The story's content rating<br>
- {category} - The story's categories<br>
- {characters} - The list of characters for the story<br>
- {classifications} - The other classifications for the story (genres, warnings,
- etc.)<br>
- {serieslinks} - The list of series to which the story belongs<br>
- {numchapters} - The number of chapters in the story<br>
- {completed} - Yes or No depending on the status of the story<br>
- {wordcount} - The total word count for the story<br>
- {count} - The read count for the story<br>
- {published} - The date the story was published<br>
- {updated} - The date the story was last updated<br>
- {adminlinks} - The admin options for the story<br>
- {addtofaves} - The option to add this story to favorites<br>
- {roundrobin} - The option to contribute to the round robin<br>
- {jumpmenu2} - The drop down menu of options concerning the story<br>
- {reviewform} - A form to submit a review of the story<br>
- {reviewslink} - A link to review the story</p>
-<p>In addition there are two included blocks. The first is storynotes which includes
- one variable {storynotes} for the story notes. The second is the storyindexblock.
- The following information can be included in the storyindexblock for each chapter
- of the story:</p>
-<p>{chapternumber} - The chapter number<br>
- {title} - The title of the chapter<br>
- {author} - The author of the chapter<br>
- {reviews} - The reviews link for reviews for that chapter<br>
- {numreviews} - The number of reviews that chapter has received<br>
- {ratingpics} - The thumbs up/down or star rating for that chapter<br>
- {wordcount} - The word count for that chapter<br>
- {chapternotes} - The chapter notes for that chapter (end notes are not displayed)<br>
- {adminoptions} - Admin options for that chapter</p>
-<p class="sampleLabel">Sample:</p>
-<p class="sample"><!-- INCLUDE BLOCK : header --><br>
- <div id="pagetitle">{title} by {author}</div><br>
- <div id="sort"> [{reviews} - {numreviews}] {score}{printicon}</div><br>
- <div id="output"><br>
- <div class="jumpmenu">{jumpmenu}</div><br>
- <div class="listbox"><br>
- <div class="content">{featuredstory}<span class="label">Summary:
- </span>{summary}<br /><br>
- <span class="label">Rated:</span> {rating}<br /><br>
- <span class="label">Categories:</span> {category} <span
- class="label">Characters: </span> {characters}<br /><br>
- {classifications}<br>
- <span class="label">Challenges:</span> {challengelinks}<br
- /> <span class="label">Series:</span> {serieslinks}<br
- /><br>
- <span class="label">Chapters: </span> {numchapters} <span
- class="label">Completed:</span> {completed} <br />
- <br>
- <span class="label">Word count:</span> {wordcount} <span
- class="label">Read:</span> {count}<br /><br>
- <span class="label"> Published: </span>{published} <span
- class="label">Updated:</span> {updated} </div><br>
- {adminlinks}<br>
- </div><br>
- <div style='text-align: center;'>{addtofaves}</div><br>
- <!-- START BLOCK : storynotes --><br>
- <div class='notes'><div class='title'><span class='label'>Story
- Notes:</span></div><div class='noteinfo'>{storynotes}</div></div><br>
- <!-- END BLOCK : storynotes --><br>
- <!-- START BLOCK : storyindexblock --><br>
- <p><b>{chapternumber}. {title} </b>by {author} [{reviews}
- - {numreviews}] {ratingpics} ({wordcount} words)<br /><br>
- {chapternotes}{adminoptions}</p><br>
- <!-- END BLOCK : storyindexblock --><br>
- <div id="pagelinks"><div class="jumpmenu">{jumpmenu2}</div></div><br>
- <div class="respond">{roundrobin}</div><br>
- {reviewform}<br>
- </div><br>
- <!-- INCLUDE BLOCK : footer --> </p>
-<p><a name="user">user.tpl</a></p>
-<p>This page displays the user profile page. </p>
-<p>You will need to start by including the header block.</p>
-<p class="sample"><!-- INCLUDE BLOCK : header --></p>
-<p>And end by including the footer block.</p>
-<p class="sample"> <!-- INCLUDE BLOCK : footer --></p>
-<p>In addition you will want to include the profile block as well.</p>
-<p class="sample"><!-- INCLUDE BLOCK : profile --></p>
-<p>The user.tpl file includes one other block used to form the "tabs"
- for the profile panels. You can build these tabs any way you wish. The sample
- below places them inside a div with each individual tab as a span. Another idea
- is to use an unordered list. Within this block you can use the following variables:</p>
-<p>{class} - The class for that "tab" used to differentiate the current/active
- tab from the inactive tabs.<br>
- {link} - The link to the tab<br>
- {count} - The count of items in the tab (may be empty)<br>
- {linkcount} - The link to the tab with the count of items in the tab included
- in the link</p>
-<p>In addition to these blocks, the following variables can be included:</p>
-<p>{adminoptions} - Options regarding this member's account<br>
- {sort} - Gives the sort for when displaying the user's stories.<br>
- {output} - Used for various messages and errors in panels.</p>
-<p class="sampleLabel">Sample: </p>
-<p class="sample"><!-- INCLUDE BLOCK : header --><br>
- <div id="profile"><br>
- <!-- INCLUDE BLOCK : profile --><br>
- {adminoptions}<br>
- <div id="sort">{sort}</div><br>
- </div><br>
- <div id="tabs"><br>
- <!-- START BLOCK : paneltabs --><br>
- <span {class}>{link} {count}</span><br>
- <!-- END BLOCK : paneltabs --><br>
- <div class='cleaner' style='clear: both;'>&nbsp;</div><br>
- </div><br>
- {output}<br>
- <!-- INCLUDE BLOCK : listings --><br>
- <!-- INCLUDE BLOCK : footer --></p>
-<p><a name="viewstory">viewstory.tpl</a></p>
-<p>This page displays the story/chapter text. </p>
-<p>You will need to start by including the header block.</p>
-<p class="sample"><!-- INCLUDE BLOCK : header --></p>
-<p>And end by including the footer block.</p>
-<p class="sample"> <!-- INCLUDE BLOCK : footer --></p>
-<p>Three included blocks are used to display the story notes, chapter notes, and
- chapter end notes.</p>
-<p>In addition, the following variables may be included:</p>
-<p>{title} - The title of the story<br>
- {author} - The author(s) of the story<br>
- {reviews} - A link to the reviews for the story with the word "Reviews"
- as text<br>
- {numreviews} - A link to the reviews for the story with the number of reviews
- as the text<br>
- {score} - The thumbs up/down or star rating for a story<br>
- {jumpmenu} - The dropdown menu of chapters in the story<br>
- {featuredstory} - The featured/retired icon<br>
- {summary} - The summary of the story<br>
- {rating} - The story's content rating<br>
- {category} - The story's categories<br>
- {characters} - The list of characters for the story<br>
- {classifications} - The other classifications for the story (genres, warnings,
- etc.)<br>
- {serieslinks} - The list of series to which the story belongs<br>
- {numchapters} - The number of chapters in the story<br>
- {completed} - Yes or No depending on the status of the story<br>
- {wordcount} - The total word count for the story<br>
- {count} - The read count for the story<br>
- {published} - The date the story was published<br>
- {updated} - The date the story was last updated<br>
- {adminlinks} - The admin options for the story<br>
- {addtofaves} - The option to add this story to favorites<br>
- {roundrobin} - The option to contribute to the round robin<br>
- {jumpmenu2} - The drop down menu of options concerning the story<br>
- {reviewform} - A form to submit a review of the story<br>
- {reviewslink} - A link to review the story</p>
-<p></p>
-<p class="sampleLabel">Sample: </p>
-<p class="sample"><!-- INCLUDE BLOCK : header --><br>
- <div id="pagetitle">{title} by {author}</div><br>
- <div class="storyinfo"> [{reviews} - {numreviews}]<br /><br>
- {toc} {reportthis}<br /><br>
- {printicon} <br /><br>
- {adminlinks} </div><br>
- <div class="jumpmenu">{textsizer}{jumpmenu}</div><br>
- <!-- START BLOCK : storynotes --><br>
- <div class='notes'><br>
- <div class='title'><span class='label'>Story Notes:</span></div><br>
- <div class='noteinfo'>{storynotes}</div><br>
- </div><br>
- <!-- END BLOCK : storynotes --><br>
- <!-- START BLOCK : notes --><br>
- <div class='notes'><div class='title'><span class='label'>Author's
- Chapter Notes:</span></div><div class='noteinfo'>{notes}</div></div><br>
- <!-- END BLOCK : notes --><br>
- <div id="story">{story}</div><br>
- <!-- START BLOCK : endnotes --><br>
- <div class='notes'><div class='title'><span class='label'>Chapter
- End Notes:</span></div><div class='noteinfo'>{endnotes}</div></div><br>
- <!-- END BLOCK : endnotes --><br>
- <div id="prev">{prev}</div><div id="next">{next}</div><br>
- {storyend}{last_read}<br>
- <div class="jumpmenu2">{jumpmenu2}</div><br>
- <div class="respond">{addtofaves} {roundrobin}</div><br>
- {reviewform}<br>
- <!-- INCLUDE BLOCK : footer --></p>
-<p><br>
- </p>
-<p> </p>
-
-<p> </p>
-</body>
-
-</html>
--- a/docs/default_panels.htm
+++ /dev/null
@@ -1,142 +1,1 @@
-<html>
-<head>
-<meta http-equiv="Content-Language" content="en-us">
-<meta name="GENERATOR" content="Microsoft FrontPage 5.0">
-<meta name="ProgId" content="FrontPage.Editor.Document">
-<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
-<title>Admin Panels</title>
-</head>
-
-<body>
-<p>Admin Panels:<br>
- <br>
- The admin panels control the different admin options for the site. In
- 2.0 the list was static. Putting the admin options into panels allows
- site owners the option of changing the access level for the various features.
- It also allows new options to be added without editing everything. The
- 0-4 levels in the panel are most applicable here. The levels 1 to 4 indicate
- the admin level required to access a certain feature.<br>
- <br>
- Message Settings <a href="#1">(1)</a><br>
- Rejection Letter <a href="#1">(1)</a><a href="#2">(2)</a><br>
- Validation Letter <a href="#1">(1)</a><a href="#2">(2)</a><br>
- Validate Submission <a href="#1">(1)</a><a href="#2">(2)</a><br>
- Censor <a href="#1">(1)</a><br>
- Categories<br>
- Panels<br>
- Characters<br>
- Settings<br>
- Blocks<br>
- Ratings<br>
- Add New Story<br>
- Add New Series<br>
- Custom Pages<br>
- Classifications<br>
- News<br>
- Members<br>
- Featured Stories<br>
- Submissions<br>
- Page Links<br>
- Admins<br>
- Mail Users<br>
- Skins<br>
- PHP Info<br>
- Action Log<br>
- Profile Information<br>
- <br>
- Browse Panels:<br>
- <br>
- Browse panels control the "Browse By" area of the site. <br>
- <br>
- Most Recent <a href="#1">(1)</a><br>
- Featured Stories <a href="#1">(1)</a><br>
- Classes <a href="#1">(1)</a><a href="#2">(2)</a><br>
- Categories<br>
- Characters<br>
- Ratings<br>
- Series<br>
- Titles<br>
- <br>
- Favorite Panels:<br>
- <br>
- The favorites panels are included both in the member "Account Info"
- page and the list of panels in the profile. In the "Account Info"
- area the panel must be set to level 1 to be visible in the list of options. Otherwise,
- they're used as part of the "Manage Favorites" panel.<br>
- <br>
- Favorite Stories <a href="#1">(1)</a><br>
- Favorite Series <a href="#1">(1)</a><br>
- Favorite Authors <a href="#1">(1)</a><br>
- {author}'s Favorites<br>
- <br>
- Top 10 List Panels:<br>
- <br>
- The Top 10 panel. They're all turned on my default. If you turn favorites
- off, it is suggested that you hide, not delete, the favorites panels. (You could
- change your mind later.)<br>
- <br>
- 10 Largest Series<br>
- 10 Smallest Series<br>
- 10 Most Reviewed Series<br>
- 10 Longest Stories<br>
- 10 Shortest Stories<br>
- 10 Most Reviewed Stories<br>
- 10 Most Read Stories<br>
- 10 Most Responded to Challenges<br>
- 10 Most Favorite Stories<br>
- 10 Most Prolific Reviewers<br>
- 10 Most Prolific Authors<br>
- 10 Most Reviewed Recommendations<br>
- <br>
- Profile Panels:<br>
- <br>
- These are the panels that will be displayed on the user's profile page along
- with the non-hidden favorites panels. <br>
- <br>
- Contact <a href="#1">(1)</a><a href="#2">(2)</a><br>
- Stories by {author}<br>
- Series by {author}<br>
- Reviews by {author}<br>
- <br>
- Submissions Panels:<br>
- <br>
- The submission panels will only be displayed in the user panel if submissions
- are turned on. They were placed in a type separate from the user panels so they
- would be turned on and off<br>
- together based on the submission site settings.<br>
- <br>
- Add New Story<br>
- Manage Stories<br>
- Add New Series<br>
- Manage Series<br>
- Manage Images<br>
- <br>
- User Account Panels:<br>
- <br>
- As an extra level of security here. The "level" of the panel
- should be set to either 0 or 1. Panels with level 0 will be displayed
- to anyone. Panels with level 1 will be displayed only to logged in<br>
- members. The login, register, and lost password panels are currently the
- only panels set to level 0 for the user account area.<br>
- <br>
- Login <a href="#1">(1)</a><br>
- Your Reviews <a href="#1">(1)</a><br>
- Reviews Received <a href="#1">(1)</a><br>
- Review Response <a href="#1">(1)</a><a href="#2">(2)</a><br>
- Lost Password<br>
- Register<br>
- Edit Bio<br>
- Edit Preferences<br>
- View Your Statistics<br>
- Manage Favorites<br>
- Logout<br>
- <br>
- (1)<a name="1"></a> Hidden by default.<br>
- (2)<a name="2"></a> System panels. You should not need to alter
- these settings and may cause errors if you do.</p>
-
-</body>
-
-</html>
-
--- a/docs/pagelinks.sql
+++ b/docs/pagelinks.sql
@@ -1,8 +1,8 @@
INSERT INTO `e107_fanfiction_pagelinks` (`link_id`, `link_name`, `link_text`, `link_url`, `link_target`, `link_access`) VALUES (1, 'home', 'Home', 'index.php', '0', 0),
(2, 'recent', 'Most Recent', 'browse.php?type=recent', '0', 0),
-(3, 'login', 'Login', 'user.php?action=login', '0', 0),
+(3, 'login', 'Login', 'member.php?action=login', '0', 0),
(4, 'adminarea', 'Admin', 'admin.php', '0', 2),
-(5, 'logout', 'Logout', 'user.php?action=logout', '0', 1),
+(5, 'logout', 'Logout', 'member.php?action=logout', '0', 1),
(6, 'featured', 'Featured Stories', 'browse.php?type=featured', '0', 0),
(7, 'catslink', 'Categories', 'browse.php?type=categories', '0', 0),
(8, 'members', 'Members', 'authors.php?action=list', '0', 0),
@@ -16,11 +16,11 @@
(16, 'rules', 'Rules', 'viewpage.php?page=rules', '0', 0),
(17, 'tos', 'Terms of Service', 'viewpage.php?page=tos', '0', 0),
(18, 'rss', '<img src=''images/xml.gif'' alt=''RSS'' border=''0''>', 'rss.php', '0', 0),
-(19, 'login', 'Account Info', 'user.php', '0', 1),
+(19, 'login', 'Account Info', 'member.php', '0', 1),
(20, 'titles', 'Titles', 'browse.php?type=titles', '0', 0),
-(21, 'register', 'Register', 'user.php?action=register', '0', 0),
-(22, 'lostpassword', 'Lost Password', 'user.php?action=lostpassword', '0', 0),
-(23, 'newsarchive', 'News Archive', 'news.php', '0', 0),
+(21, 'register', 'Register', 'member.php?action=register', '0', 0),
+(22, 'lostpassword', 'Lost Password', 'member.php?action=lostpassword', '0', 0),
+(23, 'newsarchive', 'News Archive', 'ffnews.php', '0', 0),
(24, 'browse', 'Browse', 'browse.php', '0', 0),
(25, 'charslink', 'Characters', 'browse.php?type=characters', '0', 0),
(26, 'ratings', 'Ratings', 'browse.php?type=ratings', '0', 0);
--- /dev/null
+++ b/ffnews.php
@@ -1,1 +1,152 @@
+<?php
+// ----------------------------------------------------------------------
+// Copyright (c) 2007 by Tammy Keefer
+// Based on eFiction 1.1
+// Copyright (C) 2003 by Rebecca Smallwood.
+// http://efiction.sourceforge.net/
+// ----------------------------------------------------------------------
+// LICENSE
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of the GNU General Public License (GPL)
+// as published by the Free Software Foundation; either version 2
+// of the License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// To read the license please visit http://www.gnu.org/copyleft/gpl.html
+// ----------------------------------------------------------------------
+$current = "news";
+
+include ("header.php");
+
+if(file_exists("$skindir/default.tpl")) $tpl = new TemplatePower( "$skindir/default.tpl" );
+else $tpl = new TemplatePower("default_tpls/default.tpl");
+
+include("includes/pagesetup.php");
+
+
+if(isset($_REQUEST['nid'])) $nid = $_REQUEST['nid'];
+if(!isset($nid) || !isNumber($nid)) $nid = false;
+$cid = isset($_REQUEST['cid']) && isNumber($_REQUEST['cid']) ? $_REQUEST['cid'] : false;
+
+if($nid) {
+
+ $output .= "<div id=\"pagetitle\">"._NEWS."</div>";
+ if(isset($_POST['submit']))
+ {
+ $comment = escapestring(format_story(replace_naughty(strip_tags($_POST['comment'], $allowed_tags))));
+ if(!$cid && USERUID) {
+ $insert = dbquery("INSERT INTO ".TABLEPREFIX."fanfiction_comments (nid, uid, comment, time) VALUES ('$nid', '".(USERUID ? USERUID : 0)."', '$comment', now())");
+ if($insert) dbquery("UPDATE ".TABLEPREFIX."fanfiction_news SET comments = comments + 1 WHERE nid = '$nid' LIMIT 1");
+ }
+ else if($cid) {
+ dbquery("UPDATE ".TABLEPREFIX."fanfiction_comments SET comment = '$comment' WHERE cid = '$cid'");
+ }
+ unset($comment);
+ }
+ if(isset($_GET['del']) && isADMIN && uLEVEL < 4 && !empty($cid)) {
+ $insert = dbquery("DELETE FROM ".TABLEPREFIX."fanfiction_comments WHERE cid = '$cid'");
+ if($insert) dbquery("UPDATE ".TABLEPREFIX."fanfiction_news SET comments = comments - 1 WHERE nid = '$nid' LIMIT 1");
+ }
+ $newsquery = dbquery("SELECT n.*, UNIX_TIMESTAMP(n.time) as date FROM ".TABLEPREFIX."fanfiction_news as n WHERE n.nid = '$nid' LIMIT 1");
+ $stories = dbassoc($newsquery);
+ if(file_exists("./$skindir/newsbox.tpl"))
+ $news = new TemplatePower( "./$skindir/newsbox.tpl" );
+ else $news = new TemplatePower( "./default_tpls/newsbox.tpl" );
+ $news->prepare( );
+ //create a new number_row block
+ $news->newBlock("newsbox");
+
+ //assign values
+ $news->assign("newstitle" , stripslashes($stories['title']) );
+ $news->assign("newsstory" , format_story($stories['story']) );
+ $news->assign("newsauthor", stripslashes($stories['author']) );
+ $news->assign("newsid", $stories['nid']);
+ $news->assign("oddeven", "odd");
+ $news->assign("skindir", $skindir);
+ $news->assign("newsdate", date("$dateformat $timeformat", $stories['date']) );
+ if($newscomments)
+ $news->assign("newscomments", "<a href=\"ffnews.php?action=newsstory&nid=".$stories['nid']."\">".$stories['comments']." "._COMMENTS."</a>");
+ if(isADMIN && uLEVEL < 4)
+ $news->assign("adminoptions", "<a href=\"admin.php?action=news&form=".$stories['nid']."\">"._EDIT."</a> | <a href=\"admin.php?action=news&delete=".$stories['nid']."\">"._DELETE."</a>");
+ $output .= $news->getOutputContent( );
+
+ $cquery = dbquery("SELECT COUNT(cid) FROM ".TABLEPREFIX."fanfiction_comments WHERE nid = '$nid'");
+ list($ccount) = dbrow($cquery);
+ if($ccount) {
+ $query2 = dbquery("SELECT c.*, "._PENNAMEFIELD." as penname, UNIX_TIMESTAMP(c.time) as date FROM ".TABLEPREFIX."fanfiction_comments as c LEFT JOIN "._AUTHORTABLE." ON c.uid = "._UIDFIELD." WHERE c.nid = '$nid' ORDER BY time LIMIT $offset, $itemsperpage");
+ $output .= "<div class=\"sectionheader\">"._COMMENTS."</div>";
+ if(file_exists("$skindir/comments.tpl")) $c = new TemplatePower( "$skindir/comments.tpl" );
+ else $c = new TemplatePower( "default_tpls/comments.tpl" );
+ $c->prepare( );
+ $count = 0;
+ while($comments = dbassoc($query2)) {
+ $c->newBlock("commentbox");
+ $c->assign("comment", format_story($comments['comment']));
+ $c->assign("uname", $comments['penname']);
+ $c->assign("date", date("$dateformat $timeformat", $comments['date']));
+ if(isADMIN && uLEVEL < 4)
+ $c->assign("adminoptions", "<div class='adminoptions'><span class='label'>"._ADMINOPTIONS.":</span> [<a href=\"ffnews.php?action=newsstory&edit=".$comments['cid']."&nid=$nid\">"._EDIT."</a>] [<a href=\"ffnews.php?action=newsstory&cid=".$comments['cid']."&del=1&nid=$nid\">"._DELETE."</a>]</div>");
+ $c->assign("oddeven", ($count % 2 ? "odd" : "even"));
+ $count++;
+ }
+ $output .= $c->getOutputContent( );
+ if($ccount > $itemsperpage) $output .= build_pagelinks("ffnews.php?nid=$nid&", $ccount, $offset);
+ }
+ if(isMEMBER) {
+ $output .= "<form method=\"POST\" enctype=\"multipart/form-data\" action=\"ffnews.php?action=newsstory&nid=$nid\">";
+ if(isset($_GET['edit']) && isNumber($_GET['edit'])) {
+
+ $select = dbquery("SELECT * FROM ".TABLEPREFIX."fanfiction_comments WHERE cid = '".$_GET['edit']."' LIMIT 1");
+ list($cid, $nid, $uname, $comment, $time) = dbrow($select);
+ $output .= "<input type=\"hidden\" name=\"cid\" value=\"$cid\">";
+ }
+ else $comment = "";
+ $output .= "<table align=\"center\"><tr><td><strong>"._PENNAME.":</strong></td><td>".USERPENNAME."<INPUT type=\"hidden\" name=\"uname\" value=\"".USERPENNAME."\"></td></tr>
+ <tr><td><b>"._COMMENTS.":</b></td><td><TEXTAREA name=\"comment\" cols=\"35\" rows=\"6\">$comment</TEXTAREA></td></tr>
+ <tr><td><INPUT type=\"hidden\" name=\"nid\" value=\"$nid\"><INPUT name=\"submit\" id=\"submit\" type=\"submit\" value=\""._SUBMIT."\"></td></tr></table></form>";
+ }
+ $tpl->assign("output", $output);
+}
+else {
+ $output .= "<div id=\"pagetitle\">"._NEWS."</div>";
+ if(file_exists("./$skindir/newsbox.tpl"))
+ $news = new TemplatePower( "./$skindir/newsbox.tpl" );
+ else $news = new TemplatePower( "./default_tpls/newsbox.tpl" );
+ $news->prepare( );
+ $cquery = dbquery("SELECT count(nid) FROM ".TABLEPREFIX."fanfiction_news");
+ list($count) = dbrow($cquery);
+ $newsquery = dbquery("SELECT n.*, UNIX_TIMESTAMP(n.time) as date FROM ".TABLEPREFIX."fanfiction_news as n ORDER BY n.time DESC LIMIT $offset, $itemsperpage");
+ $counter = 0;
+ while($stories = dbassoc($newsquery)) {
+
+ //create a new number_row block
+ $news->newBlock("newsbox");
+
+ //assign values
+ $news->assign("newstitle" , $stories['title']);
+ $news->assign("newsstory" , nl2br($stories['story']) );
+ $news->assign("newsauthor", $stories['author']);
+ $news->assign("newsdate", date("$dateformat $timeformat", $stories['date']) );
+ $news->assign("newsid", $stories['nid']);
+ $news->assign("skindir", $skindir);
+ if($newscomments)
+ $news->assign("newscomments", "<a href=\"ffnews.php?action=newsstory&nid=".$stories['nid']."\">".$stories['comments']." "._COMMENTS."</a>");
+ if(isADMIN && uLEVEL < 4)
+ $news->assign("adminoptions", "<a href=\"admin.php?action=news&form=".$stories['nid']."\">"._EDIT."</a> | <a href=\"admin.php?action=news&delete=".$stories['nid']."\">"._DELETE."</a>");
+ $news->assign("oddeven", ($counter % 2 ? "even" : "odd"));
+ $counter++;
+ }
+ $output .= $news->getOutputContent( );
+ if ($count > $itemsperpage) $output .= build_pagelinks("ffnews.php?", $count, $offset);
+ $tpl->assign("output", $output);
+}
+
+$tpl->printToScreen();
+dbclose( );
+?>