Showfolio Mod
Downloads of Showfolio Mod are restricted to logged in users. If you do not have a user account on the TNG Wiki use the Request Account link to request a user account | ||
If you have trouble downloading with Google Chrome, Vivaldi, Brave or other Chromium based browser, try using a right-click and select Open in new Window, then F5, or use another browser such as Firefox
|
This Mod works with all versions of TNGv11 through current versions of TNGv13. Earlier versions require you do some manual configuration of the mod options (see article below.) |
|
Showfolio mod | ||||
---|---|---|---|---|
Summary | Integrates with TNG to show folios | |||
Validation | n/a | |||
Mod Updated | see Revision History | |||
Download link | version 13.0.0.32.zip
| |||
Download stats | view statistics | |||
Author(s) | Rick Bisbee | |||
Homepage | A Bisbee Family History | |||
Mod Support | Support for Showfolio_Mod | |||
Contact Developer | As above | |||
Latest Mod | 13.0.0.32 | |||
Min TNG V | 11.0.3 | |||
Max TNG V | 14+ | |||
Files modified | globallib.php, genlib.php, admin_media.php, customconfig.php | |||
Related Mods | ||||
Notes |
Introduction
Updated July 15, 2023. The image magnifier is now selectable by visitors. Beginning with this release, folio control files must be named folio.php. Index.php and init.php are no longer supported. If you have a large investment in one of these other control file names, please contact me and I will help you convert them.
This mod's author has recently begun to use Showfolio to publish some very large books on several live websites. Some of these books have had over 2000 pages, but because of Showfolio's nature, all individual pages display quickly. A side benefit as compared with PDF books is they cannot be downloaded in their entirety. If someone wants to download or screen-shoot 2000 pages a page at a time, we can't really stop them, but this is the next best thing. Folios can be individually set to display to the public or for logged in members only.
Each folio has an administrative option to download a PDF file containing the contents of the folio. For example, a newsletter whose pages consist of individual JPG files, can contain a link to download a PDF version of the newsletter.
The mod includes a utility that allows for storage of PDF documents in the private area of the site above the document root that is not accessible to a browser, but will download them upon request from an authorized visitor -- a member who is logged in to the site.
With large publications, the tab map is very handy for synchronizing tab labels with page file titles or numbers. As explained below, a tab map inserted into the folio.php control file provides a concise way to create page tabs with individual labels or ranges of page numbers, either plain or prefixed, as might be the case with an Index section where each page might start with an "i" (i3, i4, i5, etc.) The map for that would be something like: "Cover, [1-109], Index, i[1-16]".
Compatibility
Version | v1003-1013 | v11 all | v12 all | v13 all | v14 all |
---|---|---|---|---|---|
13.0.0.32 | PHP 5.6/7.4/8.0 | PHP 7.4/8.2 |
*green: compatible red: not compatible white: not tested
This version of Showfolio may work in TNG installations prior to version 12, but mod options may have to be set manually prior to version 10.0.3. Web hosting services are rapidly upgrading their versions of PHP and MySQL, but as long as your TNG website is working, Showfolio should continue to work. If you have a special need to keep Showfolio functional in earlier versions of TNG, please let me know.
See Multisite Testbed for information on how this mod is tested and managed.
What is a Folio?
A folio simulates a multipage document handled as if it were a single TNG media object. Opening a folio displays a cover page (optional) and page navigation links to the rest of the pages (images or html/php), all using your website's TNG styling.
Possible uses for a folio might include Old Books and Manuscripts, Civil War pension files, probate files, land records, diaries, letters, or a collection of personal records pertaining to a single individual or family. Only one folio needs to be linked to an individual or family, rather than creating each page as a TNG document and linking them all separately.
Expanding the Concept
A folio is a method, not a document type. A single folder contains all of its page files (jpg, gif, png, htm, html, and/or php) named so they will alpha-sort in the order you want them displayed. Page files are added or deleted simply by adding or deleting them from the folder. In addition to the page files, each folder contains a folio.php (index.php or init.php in older versions) control file that is registered in TNG as a media file. When requested for viewing, showfolio.php opens it, sets some options specific to that individual folio, then displays the contents of the folder page-by-page.
Note 1: Folio images are displayed in their uploaded sizes/resolutions. For best viewing image widths should not exceed 800-900 pixels. Height can be whatever is needed. Faster load times can be achieved by using 72-100px resolution.
Note 2: Folio icons serve as links back to the main media listing to which the folio belongs. TNG media icons are "dead" -- do nothing. If you want to make the TNG icons behave in the same way, download and install the Media_Icons_Mod.
Custom Titles For Page Tabs (NEW)
Suppose you have a book with numbered pages and you want the Showfolio tabs to match the page numbers. Now you can. Suppose you have pages with Roman numerals? No problem. What if the number of pages is really, really large, maybe in the thousands. No problem.
You can also determine the number of page tabs to show for each folio. If your Folio is just a collection of unconnected documents, you can number them sequentially, starting with a cover page if you choose. Or you can label the tabs individually to describe the underlying page content, for example, "Birth", "Death", etc.
To customize the tabs you must provide a tab map in the folio.php control file containing one entry for each page in the Folio. A tab map gives you a syntax to express a range of sequentially numbered pages, starting at the point where it is found in the map and continuing until reaching the final page in the range, for example, "[14-321]". You won't have to type all the page numbers from 14 to 321 in your tab map.
You are not required to use a tab map. If none is found, the Showfolio defaults will be used.
In the tab map string you can label each page individually using a number or text, you can use a range of numbers inside square brackets -- [4-56], or you can use a prefixed page number range -- x[1-12], where each page number will be prefixed by the single letter.
Here is an example of a tab map for a book which contains a title page, front matter (Roman numerals), several hundred numbered pages (ranges) and images. The map is an array defined in standard PHP syntax.
// Map labels for this Folio tabs $tabmap = array( 'Title', 'iii','iv','v','vi','img 1', '[1-12]', 'img 2','[13-422]', 'i[1-23], 'Back' ); // Number of inner tabs to show on either side of a selected tab (default=2) $sidetabs = 5;
For those unfamiliar with PHP arrays, a simpler alternative mapping allows you to use a plain string. As you can see in the example below, you may split the string over several lines for readability, but it must be enclosed in double quotes ("") and terminated with a semicolon (;) after the final quote.
$tabmap = " Title, iii, iv, v, vi, img 1, [1-12], img 2, [13-422], i[1-23], Back";
Please Note: If you add or remove a page from the folio, you must adjust the tab map accordingly or tab labels will become unsynchronized. Also Note: You must enter the tab map with a code editor. The next version of the administrative mod for Showfolio will assist you in entering a map if you choose to use one.
To repeat, it is not necessary to use a tab map if you only need the default tabs numbered according to the order of pages shown.
Number of Tabs Displayed
The folio.php control file can set the number of tabs to display on each side of the current page tab. The default is 2, but to expand the number of visible tabs you can set $sidetabs, for example: $sidetabs = 4. That places the preceding four page tabs before the current tab, and the following four tabs after the current tab. The tab line will also include the previous and next buttons plus the anchor tabs (first and last page) which are fixed. Your choice will depend on the size of the tab labels chosen for a particular Folio.
Turning PDF Into a Folio Book
1. Download and use a utility to break up a PDF file into JPG page images. There is a built-in utility in Windows 10, but I recommend IceCream PDF because it handles any number of PDF pages, you can control the quality of the output JPG files, and the files tend to be smaller to speed up display time.
2. Name the JPG page files to alpha sort correctly -- for example, page0001.jpg, page0002.jpg, etc. Note that to alpha sort, the numbers must be padded to a fixed length.
3. Add a $tabmap array to folio.php and optionally add a $sidetabs setting (see above).
Compatibility with Existing Folios
If you are already invested in folios, we recommend you first install and run this on a test site. You should be able to run your existing folios as they are, with no changes to them. If you wish, you can convert your existing folios to the Showfolio Mod standard (see #Converting Folios to Showfolio). The mod developer has been running the showfolio mod on his production site (now TNGv14.0.1) and on several test sites going back to TNGv9.1.0 with no particular problems.
Disclaimer: As a practical matter Showfolio Mod has not been run on every single version of TNG since TNGv9.0. We analyzed those we were not able to test directly and find no reason to believe Showfolio Mod is not %100 compatible with all of them. If you experience any problems in this regard, please let us know.
Protecting PDF Files
We provide a PDF fetch capability to grab and download PDF files stored in a private area of your website located above the public_html. This prevents URL downloading of files restricted to members only. It is triggered from the control file with a new parameter: $pdffetch = "filename.pdf"; You must place the server path to your private pdf folder in your customconfig.php file to use it. For example: $pdfpath = "/home/smythe/pdf/"; where the information in quotes is your actual server path.
Revisions
Version | Date Released | Showfolio — What's New |
---|---|---|
version 13.0.0.32 |
| |
version 13.0.0.31 |
| |
version 13.0.0.30 |
| |
version 13.0.0.29 |
| |
version 13.0.0.28 |
| |
version 13.0.0.27 |
| |
version 13.0.0.26 |
| |
version 13.0.0.25 |
| |
version 13.0.0.24 |
| |
version 13.0.0.23 |
| |
version 13.0.0.22 |
| |
version 13.0.0.21 version 12.0.0.21 |
| |
version 13.0.0.20 version 12.0.0.20 |
| |
version 13.0.0.19 version 12.0.0.19 |
| |
version 13.0.0.18 |
| |
version 12.0.0.17 |
| |
version 12.0.0.16 |
| |
version 12.0.0.15 |
| |
version 12.0.0.14 |
| |
version 12.0.0.13 |
| |
version 12.0.0.12 |
| |
version 10.1.1.11 |
| |
version 10.1.1.10 |
| |
version 10.1.1.9 |
| |
version 10.1.1.8 |
| |
version 10.1.1.7 |
| |
version 10.1.1.6 |
| |
version 10.1.1.5 |
| |
version 10.1.1.4 |
| |
version 10.1.1.3 |
| |
version 9-10.1.1.2 |
| |
version 9-10.1.1.1 |
|
Installing Showfolio
If you are using an earlier version of the Folios add-on, go to its setup page and uninstall it. Then go to the TNG root folder and remove pdffetch.php if it exists.
If you have been using the previous Folio Mod, go to Mod Manager in the TNG Admin area and uninstall it.
Showfolio is a TNG Mod Manager mod. Download the correct version from this page according to the version of TNG you are using. Unzip the package and place the file and folder in your TNG 'mods directory, then use Mod Manager to install it. Set your preferences with the mod editor as shown in the following graphic.
Finally, add the private pdf server path to your customconfig.php, for example:
$pdfpath="/home6/smith/pdf/";
Your folios should continue to display as before. If not, contact the mod developer for help.
Uninstalling Showfolio Mod
You can uninstall the mod from your Mod Manager. Removing the mod does not remove the folders or database records for any folios you have created, but the material in the folio folders will not be accessible as media via TNG.
You can reinstall or update the Showfolio Mod and your folios will be accessible again.
If you wish to uninstall all folio records from your database, you can use the Showfolio Admin Mod.
Create a New Folio
Page Files
A folio consists of one or more page files. Page files can be of the following types: .jpg, .gif, .png, .htm, .html, or .php.
Page files can be individual images or formatted content that may contain images. There is a restriction on web content files -- they must not contain header, header content or body tags. This is because the folio "wrapper" provides all that; otherwise an error will be generated.
All page files are contained within a single folder that also contains a control file named folio.php, the content of which is explained below. For now, just understand that folio.php will be registered in TNG as a media file.
Add Control File
With Showfolio, the only purpose of a control file -- named folio.php in the folios -- is to provide options that are unique to this folio. If there are no unique options for this folio, if you don't need to override any global options, the control file can be empty, or it can contain comments (each line preceded with a double slash)) for your own information.
Following is an example control file and a list of local options/overrides you might want to consider for a given folio:
<?php header("Location:../../showfolio.php?mediaID=1678"); /************************************************************************* FOLIO: military/cw24/folio.php (Sat, 08 Aug 2015) Cheney B. Bisbee Civil War Pension File *************************************************************************/ // Treat first page as cover sheet $usecover=true; // ignore any files in the folder with extensions .html or .htm $exclude[] = ".htm"; $exclude[] = ".html"; // add link to download pdf from the site's private area $pdffetch ="cbisibee.pdf"; ?>
Set Local Options
Options in the folio.php control file only pertain to the current folio. No options are required -- they will all default to the global values set with mod manager or the setup page for the add-on version. A control file must be present, but it can be empty if no customizations are required.
Here are some options you can (but don't have to) use in the control file to customize the current folio:
User Options | Explanation |
---|---|
$exclude[] = ".jpg"; $exclude[] = ".png"; |
Exclude certain file types from being included as a document page in this folio. The control file is excluded automatically. No allowed files (except the control file) are excluded by default. |
$useCover=1; $buttonLabel="cover"; |
Treat the first page as a cover page for the folio and provide a button label for it. You might want a cover page, for example, if you want to summarize the contents of the folio. If $buttonLabel can be found in the cust_text.php file in your chosen language as an index into the $text array (for example, $text['cover']="Contents"), the value provided there ("Contents") will be used. If not, the label itself will be used ("cover"). This allows you to "internationalize" it in as many languages as you support. |
$pdflink = "filename.pdf"; | Places PDF download links at top and bottom of folio pages and downloads the file from the folio folder. IMPORTANT! This HTML link must be relative to the folio control folder -- folio.php. Since PDF is not an allowed Folio page file, you can place it right in the Folio if you wish. Best practice would be to place it in a subfolder of the folio, so the link might look something like 'inc/mydoc.php'. The same subfolder would also be a good place for any image files that are displayed in html pages. Because they are in a subfolder, they will not display separately as folio pages. |
$pdffetch = "filename.pdf"; | Adds PDF download links to top and bottom of folio pages. Fetches PDF files from a private area of the website so they cannot be downloaded using a browser url. Server path to private PDF file directory must be defined in customconfig.php. For example, $pdfpath="/home6/subserv2/pdf/"; Notice the trailing forward slash. |
$sidetabs = 2; | Sets the number of page tabs that will appear on either side of the currently selected page. The longer your tab labels the fewer you will want showing at the top of your page. |
Global Overrides | |
$restrict=true; | Restrict folio access to registered users -- redirect the rest to TNG login page. |
$bordersize=1; $bordercolor="#aaa"; |
Select a border for image pages in this folio. |
Note that all value statements in folio.php must end with a semicolon (;). String values must be enclosed in quotes.
Registering a Folio As TNG Media
After creating a folio (folder) inside any media collection (folder) such as Documents or Histories, go to your TNG Admin >> Media page, select the collection, find the folder and then select its folio.php as the media file. Fill out the rest of the required Media information fields and link it to a person or family. After saving it to the database, it will list with whatever collection it belongs to, and will display as a multi-page folio.
Chances are good you will want to create your own media collections at some point, for example, military, newsletters, obituaries, or clippings and base them either on TNG Documents or Histories to better manage your different types of folios.
Following is a diagrammatic example of how you might organize a collection of folders.
Please consult your TNG documentation for instructions on creating a TNG media collection.
Organizing this way appeals to the tidy mind, but makes it very tedious to enter new media into the TNG system. Personal Photos, census returns, marriage records, death certificates, are all entered into separate collections with their own maintained structures.
Folios can greatly simplify this aspect of adding new media. For instance, you can create a collection and call it, say, "Exhibits".
Under Exhibits you can create folios associated with persons, using their personID as folio names, then register the folios as TNG media and associate them with the appropriate person.
Thereafter, place all new media in the person's folio, available for immediate inspection by site visitors. You can maintain a tab map for custom labels such as '1950 Census' if you like, or you can just allow folios to number them sequentially according to the order of their page file names.
There is a way you can link a media document that exists in one folio, into another folio's pages. For example, a headstone with both husband and wife's name can be physically placed in both folios, or can be placed in one folio and just linked as a page in the other. Actually it's quicker to duplicate them -- efficiency vs convenience.
If you need to register a document contained in the folio and associate it with an event such as 'Birth', go ahead and do it using the "Exhibits" collection and folio name/doc.jpg as the medium. For example, 'exhibits/p004352/bc4352.jpg. Note that I've prefixed and padded the PID so that it will alpha-sort properly. I use prefix 'bc' for birth certificates and the file is forever linked with personID 4352. This is a strictly personal choice. There are many other ways to do things.
Folio Screenshot
Example of a working folio.
Note that this particular folio has tab mapped labels. In a large folio, it is convenient to use the Enter Tab window to jump to a far tab you want. If you enter a number, Showfolio first looks to see if there is a mapped label beginning with that number. If none found, it searches for an exact match with an indexed page number.
A cover page can be inserted at the beginning of the folio to provide a description/transcription of the folio contents, and/or show links to other interesting information on the site or externally on sites such as Find A Grave.
In admin mode (shown) there is a link (icon) to edit the media in TNG.
A PDf download link can be set in the folio.php control file to provide visitors with a PDF version of the folio, or any other associated PDF you want. Even if the site is open to all, you can specify that the download for this folio is available only to logged in members.
Although these options are easily edited directly into the folio.php control file, the companion admin_showfolio Mod helps set them up for you and is much quicker.
Obligatory Disclaimer
There is no warranty. Use the mod at your own risk. It has been tested in all the TNG template styles without any particular problems.
Sites Using
The following sites have installed Showfolio Mod and contain folios which are viewable without login.
- A Bisbee Family History mod developer and TNG Forum user Kazooter's site
- Grandfather's World War One Service Record WP/TNG v14.0.0 Mod v13.0.0.23 -- Fantastic Mod
- Family tree of Marcin & Emilia Senderski
- William Ernest Moffat Roger Moffat's site incorporated with WordPress
- Chamberlain & Eidenbenz Genealogy Used this mod from day 1. Just gets better and better!
- Kleinmann Genealogy Love this mod!
- R G Strong Family Genealogy Great!
- Nordic Ancestry Great addition to TNG !
- The Shardalow name and variations of. Took a while to get the hang of it, but now love it!
- The Clist Connections This mod is essential IMHO and I couldn't imagine TNG life without it!
- Ostfrieslands Ortssippenbücher Die Seite lebt von dieser MODifikation
The following private sites have installed Showfolio Mod and contain folios which are only viewable with a login.
- A Line of Malkins' in New Zealand - Nu Tirani WP/TNG v14.0.2 Mod v13.0.0.31 -- Excellent Mod