<?xml version="1.0" encoding="UTF-8"?>        <rss version="2.0"
             xmlns:atom="http://www.w3.org/2005/Atom"
             xmlns:dc="http://purl.org/dc/elements/1.1/"
             xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
             xmlns:admin="http://webns.net/mvcb/"
             xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
             xmlns:content="http://purl.org/rss/1.0/modules/content/">
        <channel>
            <title>
									Version 3.x Mod Discussion and Development - eFiction Community Forums				            </title>
            <link>https://efiction.org/community/version-3-x-mod-discussion-and-development/</link>
            <description>Discussion Board</description>
            <language>en-US</language>
            <lastBuildDate>Thu, 23 Apr 2026 15:11:21 +0000</lastBuildDate>
            <generator>wpForo</generator>
            <ttl>60</ttl>
							                    <item>
                        <title>reCatpcha Mod?</title>
                        <link>https://efiction.org/community/version-3-x-mod-discussion-and-development/recatpcha-mod/</link>
                        <pubDate>Fri, 01 Jan 2021 22:17:38 +0000</pubDate>
                        <description><![CDATA[Hey All,
 
This is Pari, been on this forum since the beginning but had to create a new account on this new forum.
 
Anyway, I was wondering if anyone has modded Google reCaptcha into eF...]]></description>
                        <content:encoded><![CDATA[<p>Hey All,</p>
<p> </p>
<p>This is Pari, been on this forum since the beginning but had to create a new account on this new forum.</p>
<p> </p>
<p>Anyway, I was wondering if anyone has modded Google reCaptcha into eFicition yet? I would appreciate any help as I am finding the built-in captcha is not stopping spam. I have had to turn off registration and reviews because it has gotten so bad.</p>
<p>Thank you :)</p>]]></content:encoded>
						                            <category domain="https://efiction.org/community/version-3-x-mod-discussion-and-development/">Version 3.x Mod Discussion and Development</category>                        <dc:creator>Parisian</dc:creator>
                        <guid isPermaLink="true">https://efiction.org/community/version-3-x-mod-discussion-and-development/recatpcha-mod/</guid>
                    </item>
				                    <item>
                        <title> Likes Tally/Kudos Feature (work in progress)</title>
                        <link>https://efiction.org/community/version-3-x-mod-discussion-and-development/mod-likes-tally-kudos-feature-work-in-progress/</link>
                        <pubDate>Thu, 22 Jun 2017 00:05:26 +0000</pubDate>
                        <description><![CDATA[I&#039;m not very satisfied with the Stars or the Like/Dislike ratings system on eFic (I detail a bit on why here) so I&#039;ve been working on making it a little more like the Kudos system ...]]></description>
                        <content:encoded><![CDATA[I&#039;m not very satisfied with the Stars or the Like/Dislike ratings system on eFic (I detail a bit on why <a class="go2wpf-bbcode" rel="nofollow" target="_blank" href="https://efiction.org/forums/index.php?topic=8931.msg46209#msg46209">here</a>) so I&#039;ve been working on making it a little more like the Kudos system on Archive of our own (which... is basically a &quot;Like&quot; button :-D). I used this <a class="go2wpf-bbcode" rel="nofollow" target="_blank" href="https://efiction.org/forums/index.php?topic=769">2.0 mod</a> as a jumping off point. <br><br>I&#039;m still testing this out and hoping to get a some questions answered and figure out a couple more things before I actually add this mod to my live archive, so at this point I suggest to others interested in this mod to <b>not put this in their live archives yet</b>, but add it to your test site and report back with any problems or tweaks.<br><br><b>How Likes/Dislikes currently work:</b> In the Like/Dislike system, when you &quot;like&quot; a story, you give it a rating of 1, if you dislike it you give a rating of 0. eFic averages this out and if the average is above half (0.5) it will display a thumbs up. If it&#039;s below 0.5, thumbs down. My issue with this: There&#039;s no displayed tally of how many &quot;Likes&quot; a story got, if it got 1 or 50 it will display the same thumbs up. Also, the thumbs down part of it I don&#039;t feel fosters the welcoming, encouraging environment I want our archive to have.<br><br><b>What this mod does:</b> Rather than average the likes, it tallies up the number of &quot;like&quot; reviews a story has and displays them, like a social media &quot;like&quot; count. The &quot;dislike&quot; is taken out as an option, you either like the story or you select &quot;None&quot;. If you are converting from the star ratings to &quot;likes&quot;, this still works fine (provided your archive is like mine and very few people give low star reviews.). <b>Warning</b>: you will definitely not want to go back to the star rating system after initiating this mod, since giving a story a &quot;like&quot; = a value of 1, but in the star ratings that&#039;s a half star.<br><br><b>Before Modifying Any Code:</b><br>In your Efiction Admin Menu, select &quot;Settings&quot; then &quot;Review Settings&quot; then make sure it&#039;s set to &quot;Rating System: Like/Dislike&quot;. (if you are converting from star ratings, it will basically convert every starred rating from 1-10 as a &quot;like&quot;. If your users mostly give each other high ratings, then this shouldn&#039;t be a problem, Otherwise, you may want to do a few search/replaces&quot; in the &quot;Reviews&quot; Table of your database.)<br><br>Up to you if you want to allow ratings only, that makes it a bit more like a &quot;like&quot; button system. If you don&#039;t, only when someone reviews can they leave a &quot;like&quot;.<br><br><b>Next step,</b> at least for me, it stops counting the number of &quot;likes&quot; at 127. There is probably a better, slicker way to do this but I just went into the phpadmin for my database and on the &quot;stories&quot;, &quot;chapters&quot; and &quot;series&quot; tables, I select &quot;Structure&quot; and changed the Ratings settings from &quot;tinyint(4)&quot; to &quot;int(11)&quot;<br><br>So now that the rating system is set to &quot;like/dislike&quot; and the database has been modified to display larger numbers, here are the code modifications:<br><br><b>1. Change every instance of &quot;SELECT AVG&quot; to &quot;SELECT COUNT&quot;</b><br>You can find &quot;SELECT AVG&quot; in the following files:<br><br>admin/maintenance.php around lines 34 and 43<br>includes/corefunctions.php around line 173<br>includes/seriesreviews.php around lines 37 and 61<br>reviews.php around lines 74, 77, 145 and 149<br>update.php around 179 and 188<br>(also in install/upgrade11.php on lines 399 and 408 but you shouldn&#039;t have this folder unless you are upgrading)<br><br>Change them all to SELECT COUNT<br><br><b>2. In includes/corefunctions.php find (around line 467):</b><br><pre>if($ratings == &quot;2&quot;) {<br>if($rating &gt;= 0.5)<br>$ratingpics = ($like ? $like : &quot;&lt;img src="&quot;&quot;._BASEDIR.&quot;images/like.gif&quot;" alt=&quot;&quot;._LIKED.&quot;&quot;&gt;&quot;);<br>else if(($rating &lt; 0.5) &amp;&amp; ($rating &gt; 0))<br>$ratingpics = ($dislike ? $dislike :&quot;&lt;img src="&quot;&quot;._BASEDIR.&quot;images/dislike.gif&quot;" alt=&quot;&quot;._DISLIKED.&quot;&quot;&gt;&quot;);<br>else $ratingpics = &quot;&quot;;<br>}</pre><br><br>and replace with:<br><pre>if($ratings == &quot;2&quot;) {<br>if($rating &gt;= 1)<br>$ratingpics = &quot;&lt;span title=&quot;number of likes&quot;&gt;&lt;img src="&quot;&quot;._BASEDIR.&quot;images/like.gif&quot;&gt;&lt;b&gt;&quot;.$rating.&quot;&lt;/b&gt;&lt;/span&gt;&quot;;"<br>else $ratingpics = &quot;&quot;;<br>}</pre><br>Once the story gets some &quot;likes&quot;, it will display the thumbs up and the number of &quot;likes&quot; next to it.<br><br>If you are adding this mod to an archive where people have left star ratings, you can go to the Admin menu in eFiction, select &quot;Archive Maintenance&quot; and then &quot;Recalculate Reviews&quot;. Now it will convert any star ratings to a &quot;like&quot; and tally it up.<br><br><b>3. Remove the &quot;dislike&quot; option from the review form</b><br><br>in includes/reviewform.php find:<br><pre>if($ratings == &quot;2&quot;){<br>$form .= &quot;&lt;div&gt;&lt;label for=&quot;rating&quot;&gt;&quot;._OPINION.&quot;&lt;/label&gt; &lt;select id=&quot;rating&quot; name=&quot;rating&quot; class=&quot;textbox&quot;&gt;<br>&lt;option value=&quot;1&quot;&quot;.($review&#091;&#039;rating&#039;] == 1 ? &quot; selected&quot; : &quot;&quot;).&quot;&gt;&quot;._LIKED.&quot;&lt;/option&gt;&lt;option value=&quot;0&quot;&quot;.($review&#091;&#039;reviewid&#039;] &amp;&amp; !$review&#091;&#039;rating&#039;] ? &quot; selected&quot; : &quot;&quot;).&quot;&gt;&quot;._DISLIKED.&quot;&lt;/option&gt;&lt;option value=&quot;-1&quot;&quot;.($review&#091;&#039;rating&#039;] == -1 || $action == &quot;add&quot; ? &quot; selected&quot; : &quot;&quot;).&quot;&gt;&quot;._NONE.&quot;&lt;/option&gt;&lt;/select&gt;&lt;/div&gt;&quot;;<br>}<br></pre><br><br>replace with:<br><pre>if($ratings == &quot;2&quot;){<br>$form .= &quot;&lt;div&gt;&lt;label for=&quot;rating&quot;&gt;&quot;._OPINION.&quot;&lt;/label&gt; &lt;select id=&quot;rating&quot; name=&quot;rating&quot; class=&quot;textbox&quot;&gt;<br>&lt;option value=&quot;1&quot;&quot;.($review&#091;&#039;rating&#039;] == 1 ? &quot; selected&quot; : &quot;&quot;).&quot;&gt;&quot;._LIKED.&quot;&lt;/option&gt;&lt;option value=&quot;-1&quot;&quot;.($review&#091;&#039;rating&#039;] == -1 || $action == &quot;add&quot; ? &quot; selected&quot; : &quot;&quot;).&quot;&gt;&quot;._NONE.&quot;&lt;/option&gt;&lt;/select&gt;&lt;/div&gt;&quot;;<br>}<br></pre><br>Now on the review form, it will only give the options of &quot;Liked&quot; and &quot;None&quot;<br><br><b>4. Modify the wording of the following lines in languages/en.php</b><br><br><pre>define (&quot;_REVIEWNOTE&quot;, &quot;&lt;span style=&quot;text-decoration: underline; font-weight: bold;&quot;&gt;Note:&lt;/span&gt; You may submit either a rating or a review or both.&quot;);<br><br>define (&quot;_LIKED&quot;, &quot;Liked&quot;);<br><br>define (&quot;_OPINION&quot;, &quot;Opinion&quot;);<br><br>define (&quot;_MISSINGINFO&quot;, &quot;You must supply either a review or a rating.&quot;);<br></pre><br><br>Here are some suggestions but change them to whatever fits your archive!<br><br><pre>define (&quot;_REVIEWNOTE&quot;, &quot;&lt;span style=&quot;text-decoration: underline; font-weight: bold;&quot;&gt;Note:&lt;/span&gt; You may submit either a thumbs up or a review or both.&quot;);<br><br>define (&quot;_LIKED&quot;, &quot;Yes, add a thumbs up&quot;);<br><br>define (&quot;_OPINION&quot;, &quot;Add a thumbs up?&quot;);<br><br>define (&quot;_MISSINGINFO&quot;, &quot;You must supply either a thumbs up or a rating.&quot;);<br></pre><br><br>Now you your have a &quot;Like&quot; system on your archive!<br><br>See next post for what I want to figure out, and maybe someone with some PHP knowledge can help me?]]></content:encoded>
						                            <category domain="https://efiction.org/community/version-3-x-mod-discussion-and-development/">Version 3.x Mod Discussion and Development</category>                        <dc:creator>LD-MTT</dc:creator>
                        <guid isPermaLink="true">https://efiction.org/community/version-3-x-mod-discussion-and-development/mod-likes-tally-kudos-feature-work-in-progress/</guid>
                    </item>
				                    <item>
                        <title>Handmade &quot;Bad behavio(u)r 2&quot; include</title>
                        <link>https://efiction.org/community/version-3-x-mod-discussion-and-development/handmade-bad-behaviour-2-include/</link>
                        <pubDate>Sat, 13 Aug 2016 10:11:08 +0000</pubDate>
                        <description><![CDATA[Hi there!After having included it into eFiction 5 (which is still progressing), _and_ having some fellow archives being hit by spam registration, I decided to rework the &quot;bad behaviour&amp;...]]></description>
                        <content:encoded><![CDATA[Hi there!<br><br>After having included it into eFiction 5 (which is still progressing), _and_ having some fellow archives being hit by spam registration, I decided to rework the &quot;bad behaviour&quot; filter for eFiction 3.<br><br>If you have never heard of this project, please <a class="go2wpf-bbcode" rel="nofollow" target="_blank" href="http://bad-behavior.ioerror.us/about/">go to their website</a> and check it out.<br><br>Now this is not a module that simply works by uploading, but instead requires some handwork.<br><br>#1 - Language files (start simple)<br>Add this at the very end of your language file, right before the closing &quot;?&gt;&quot; tag:<br><br>english:<pre>// Bad Behaviour<br><br>define (&quot;_BADBEHAVIOUR&quot;, &quot;Bad Behaviour&quot;);<br>define (&quot;_BB_BLOCKSTRING&quot;, &quot;has blocked &lt;strong&gt;%1$s&lt;/strong&gt; access attempts in the last 7 days.&quot;);</pre><br><br>german:<pre>// Bad Behaviour<br><br>define (&quot;_BADBEHAVIOUR&quot;, &quot;Bad Behaviour&quot;);<br>define (&quot;_BB_BLOCKSTRING&quot;, &quot;hat in den letzten 7 Tagen &lt;strong&gt;%1$s&lt;/strong&gt; Zugriffe blockiert.&quot;);</pre><br><br>The variable encapsulated in the &lt;strong&gt; tags is the counter, so you can easily rewrite this for your language - or rewrite it at all.<br><br>#2 - Upload files:<br>Extract the attached archive, which is mainly the core bad behaviour files as found at their site, the renamed setting files, a .htaccess file to protect the ini-files (which is not exactly necessary, but hey) and the eFi3 specific loader.<br>The files and the folder need to be uploaded into the includes/ folder.<br><br>#3 - Enable:<br>Open the header.php file (since this file will be loaded by every module).<br>Look for the string &quot;includes/corefunctions.php&quot; - this should exist only once, at around line 110.<br>Right below, add this line: <pre>include_once(_BASEDIR.&quot;includes/bad-behaviour-efiction3.php&quot;);</pre><br><br>Well, technically, that&#039;s it - the module will auto-create its log table and do its work.<br><br>If you want some stats displayed, here are the steps:<br><br>#4a - Stats (1)<br>Open includes/pagesetup.php.<br>At around line #109, there should be this:<pre>$tpl-&gt;assign( &quot;footer&quot;, $copyright);</pre><br>Right below, add this:<pre>	if ( function_exists(&#039;bb2_insert_stats&#039;) )<br>$tpl-&gt;assign(&quot;bb2stats&quot;, bb2_insert_stats() );</pre><br><br>#4b - Stats (2)<br>Open the footer.tpl for the skin you want to modify, and wherever you want to, add this:<pre>{bb2stats}</pre><br><br>For the stats to show, &quot;display_stats&quot; in the settings file has to be true.<br><br>If there&#039;s an error, simply comment or remove the line you included in step #3, this will at least keep your site running until fixed.<br><br>Update: Latest BB sources<div class="wpforo-attached-file"><a class="wpforo-default-attachment go2wpf-inline-attach" href="//efiction.org/wp-content/uploads/wpforo/attachments/0/45761=136-efi3_badbehaviour2.2.22.zip"><i class="fas fa-paperclip"></i> efi3_badbehaviour2.2.22.zip</a></div>]]></content:encoded>
						                            <category domain="https://efiction.org/community/version-3-x-mod-discussion-and-development/">Version 3.x Mod Discussion and Development</category>                        <dc:creator>Sheepcontrol</dc:creator>
                        <guid isPermaLink="true">https://efiction.org/community/version-3-x-mod-discussion-and-development/handmade-bad-behaviour-2-include/</guid>
                    </item>
				                    <item>
                        <title> ePubVersion</title>
                        <link>https://efiction.org/community/version-3-x-mod-discussion-and-development/module-epubversion/</link>
                        <pubDate>Sun, 16 Jan 2011 06:05:54 +0000</pubDate>
                        <description><![CDATA[Description: Module to create and download .ePub versions of stories. Current Version: v1.3 Update 1 – (v1.3u1 Fixes installer.php and update.php errors present in version 1.3 and referenced...]]></description>
                        <content:encoded><![CDATA[<ul><b>Description:</b> Module to create and download .ePub versions of stories. <br><br><b>Current Version</b>: v1.3 Update 1 – (v1.3u1 Fixes installer.php and update.php errors present in version 1.3 and referenced in comments and the eFiction.org/de forums)<br><br><b>Demo: </b>http://www.tgfiction.net (visit any story, and look for the ePub icon under DisplayWord and Printer friendly)<br><br><b>Requirements</b>: <br><ul><br><li>efiction 3.x </li><br><li>PHP – 5.3.2 because of functions used in the ePub Class</li><br><li>I use don’t use any specialized MySQL functions. I use MySQL5 for testing and development, but again, have no specific requirements other than that. </li><br><li>PHP needs to be compiled with TIDY in order to use the TIDY option. </li><br><li>Apache Mod_Rewrite is needed for Search/Stanza friendly URL’s </li><br><li>PHP needs to be compiled with CURL support to enable CURL as an option for image retrieval.<br></li><li>PHP needs to have URL_FOPEN enabled to enable URL_FOPEN/get_file_contents() as an option for image retrieval. </li><br><li>I make GREAT use of preg_match/preg_replace so your webhost needs to have perl regular expressions (regexp) enabled in PHP. </li><br></ul>.<br><br><b>Mod History:</b> <br><ul><br><li>v0.7 initial release. Broken Installer, No Image Support, Hardcoded formatting.</li><br><li>v0.8 Added small configuration section at the top of epubversion.php that can be used to configure $sitename, $siteurl, and $sitetagline which are used for the OPF File’s publisher line, and the “Brought to you by” line on the cover-page.</li><br><li>v0.8 Added ‘exit();’ right after the epub is sent to the user inorder to stop erroneous/extra data being sent and causing some ebook readers to detect a bad ebpu/zip container.</li><br><li>v0.9 – copied formatstory() and nblr2() functions from corefunctions.php to epubversion.php to remove errors caused by stories with content warnings.</li><br><li>v0.9 – Removed includes for TemplatePower, corefunctions.php. pagesetup.php</li><br><li>v0.9 – more general code cleanup.</li><br><li>v1.0 – Added Image Support</li><br><li>v1.0 – Added Admin Configure/Options PaneL</li><br><li>v1.0 – Added Author Configure/Manage Panel</li><br><li>v1.0 – Added ePub Browse Panel</li><br><li>v1.0 – Added Update script</li><br><li>v1.0 – Added Tidy support</li><br><li>v1.0 – Added ability to turn off ePub Creations for non logged in users</li><br><li>v1.0 – Fixed double header error on Cover page (caused crash in Stanza)</li><br><li>v1.0 – Added Title Sanitation (Caused crash in Stanza)</li><br><li>v1.0 – Cleaned up code where needed. Compacted some bits</li><br><li>v1.0u1 – Fixed INSTALL Script</li><br><li>v1.0u1 – Fixed UPDATE Script</li><br><li>v1.0u1 – Added MASTER Uninstall script that keeps removing ePub related info from the database even after errors ( modules/epubversion/dropall.php )</li><br><li>v1.1 – Added choice of URL_FOPEN/get_file_contents() support for those whom don’t have CURL for image retrieval.</li><br><li>v1.1 – Added choice of NONE which filters all IMG tags from the source material, and creates a image-less ePub eBook.</li><br><li>v1.2 – Added Dynamic Banner option to banners list.</li><br><li>v.1.2 – Incorporated changes to browse pages to fix errors as reported by Calash (THX!)</li><br><li>v1.2 – Added ePub Download Counter</li><br><li>v1.2 – Added pre-processing preg_replace filter for pre-processing conversion of &lt;b&gt;&lt;i&gt;&lt;u&gt;&lt;em&gt;&lt;s&gt;&lt;strong&gt; into span tags.</li><br><li>v1.2 – Added routine for a Combined TIDY+PURE. This option creates the largest resource hit on your server, as it essentially processes each page 4 times. (once for images, once for pre-processing, and then once each to filter through TIDY and HTMLPurifier). Each step improves the output book for better compatibility on more readers).</li><br><li>v1.2 – Added support for HTMLPurifier (PURE). HTMLPurifier outputs pretty XHTML compliant source pages that make for optimally redered ePub eBooks.</li><br><li>v1.3 – Added {printepub} {epubcount} {cover} {printthumb} tags to available TPL coding tags.</li><br><li>v1.3 - Added support for changing the ePub &quot;Language&quot; identifier.</li><br><li>v1.3 – Added support for site wide &quot;Cover&quot; images for stories.</li><br><li>v1.3 – Added support for author uploaded/custom &quot;Cover&quot; images for stores.</li><br><li>v1.3 – Upgraded EPub.php to current released version.</li><br><li>v1.3 – Upgraded HTML Purifier to current released version.</li><br><li>v1.3 – Added the ability to use &quot;Cover&quot; images on your eFiction Front page and Stories pages...</li><br><li>v1.3 – Improved handling of extraneous character sets.</li><br><li>v1.3 – Fixed several reported errors.</li><br><li>v1.3 – Fixed Dynamic Banner code.</li><br><li>v1.3u1 – Fixed installer and update.php errors present in version 1.3 and referenced in comments and the eFiction.org/de forums.</li><br></ul><br><br><b>Download</b>: http://storyportal.net/software/epub/<br><br><b>Current Issues:</b><br><ul><br><li>All Formatting is currently hardcoded into ePubVersion (I will work on putting the Template.Power template support back in in a later release, but I was having issues mixing the EPub class and the Template.Power class).</li><br></ul><br><br><img class="go2wpf-bbcode" src="http://storyportal.net/wp-content/uploads/epv-cflow-trans.png"><br><br><b>Basic Documentation:</b><br><blockquote>To install this module:<br><br>1. Upload the entire epubversion folder to the the modules folder within your <br>eFiction installation.<br><br>2. Go to http://yoursite.com/admin.php?action=modules&nbsp; or <br>http://www.yoursite.com/modules/epubversion/install.php where <br>www.yoursite.com is your eFiction site&#039;s address.<br><br>3. Goto the main default_tpls folder.&nbsp; Open up viewstory.tpl and <br>storyindex.tpl and add {printepub} where you want the ePub icon/options <br>to appear. <br><br>4. Do the same for any skins with their own viewstory.tpl and/or storyindex.tpl<br><br>You can define $epubicon in your skin&#039;s variables.php to override the <br>default ePub icon if you so desire.<br><br>There is one language definition in the en.php file in the languages folder<br>that provides the alt text for the ePub icon as well as the various text bits <br>for the rest of the expanded modules..<br><br>The configuration variables that used to be set at the top of epubversion.php<br>are now set via the modules admin options panel. You can access this by <br>visiting http://yoursite.com/admin.php?action=modules&amp;module=epubversion&amp;admin=true<br>or by goting to the &quot;Admin&quot; page, clicking on &quot;Modules&quot; and then clicking on the<br>&quot;Options&quot; link next to ePubVersion.<br><br>These variables are used to configure you &quot;Brought to you by&quot; line on the cover <br>page, and the OPF&#039;s publisher information line<br><br>This module now has the ability for Authors to turn on/off ePub editions for<br>each of their stories. This is done via the User/Account menu, by clicking on<br> &quot;Manage ePub Stories&quot;. By default, the ePub bit is set to &quot;0&quot; or &quot;Off&quot; for <br>all authors. They must &quot;Opt In&quot; <br><br>5) We have added several new tags to ePubVersion that can be added to your templates.<br><br>{printepub} -- Displays a direct Download link for ePub version of a Story.<br><br>{printthumb} -- Displays a thumbnail Image of the epub/Book Cover is one has been <br>set in &quot;Manage ePub Stories&quot;. Cover image is dynamicaly resized so that max width<br>or height is no larger than 100px. Original Aspect ratios are kept. <br>Requires PHP Compiled with GD, and GD compiled with PNG/JPG/GIF support.<br><br>{cover} -- Displays an Image of the epub/Book Cover is one has been set in &quot;Manage <br>ePub Stories&quot;. Cover image is dynamicaly resized so that max width&nbsp; &nbsp; <br>&nbsp; &nbsp; &nbsp; &nbsp; or height is no	larger than 250px. Original Aspect ratios are kept. <br>&nbsp; &nbsp; &nbsp; &nbsp; Requires PHP Compiled with GD, and GD compiled with PNG/JPG/GIF	support.<br><br>{epubcount} -- Returns the number of times a Story has been downloaded as &quot;epub&quot; <br>in numerical form.<br><br>Below you will find sample usage of the new skin tags as found in my index.tpl (recentblock) <br>and listings.tpl (storyblock). I have made use of CSS to make the various &quot;boxes&quot; size <br>properly around the images.</blockquote><br><br></ul><pre>&lt;!-- START BLOCK : recentblock --&gt;<br><br>&lt;div style=&quot;min-height:100px; height:auto!important; height:100px;&quot;&gt;<br>&lt;span style=&quot;font-weight: bold; font-size: 1.2em; border-bottom: 1px dashed #999; margin-bottom: 5px;&quot;&gt;<br>{printthumb}{title} by {author} {printepub}&lt;/span&gt;&lt;br /&gt;<br>&lt;span class=&quot;label&quot;&gt;Summary: &lt;/span&gt;{summary}&lt;br /&gt;<br>&lt;span class=&quot;label&quot;&gt;Rated:&lt;/span&gt; {rating} {score} &lt;span class=&quot;label&quot;&gt;Categories:&lt;/span&gt; {category} {classes}&lt;/span&gt;<br>&lt;br /&gt;<br>&lt;/div&gt;<br>&lt;hr&gt;<br>&lt;!-- END BLOCK : recentblock --&gt;</pre><br><br><pre>&lt;!-- START BLOCK : storyblock --&gt;<br>&lt;div class=&quot;listbox {oddeven}&quot;&gt;<br>&lt;div class=&quot;title&quot;&gt;&lt;span class=&quot;t2&quot;&gt;{title}&lt;/span&gt; by {author} &lt;span class=&quot;label&quot;&gt;Rated:&lt;/span&gt; {rating} {roundrobin} {score}  {new} &lt;/div&gt;<br>&lt;div style=&quot;min-height:250px; height:auto!important; height:250px;&quot;&gt;<br>{cover}<br>&lt;div class=&quot;content&quot;&gt;&lt;span class=&quot;label&quot;&gt;Summary: &lt;/span&gt;{featuredstory}{summary}&lt;br /&gt;<br>&lt;span class=&quot;label&quot;&gt;Categories:&lt;/span&gt; {category} &lt;br /&gt;<br>&lt;span class=&quot;label&quot;&gt;Characters: &lt;/span&gt; {characters}&lt;br /&gt;<br>{classifications}<br>&lt;span class=&quot;label&quot;&gt;Series:&lt;/span&gt; {serieslinks}&lt;br /&gt;<br>&lt;span class=&quot;label&quot;&gt;Chapters: &lt;/span&gt; {numchapters} {toc}&lt;br /&gt;<br>&lt;span class=&quot;label&quot;&gt;Completed:&lt;/span&gt; {completed}<br>&lt;span class=&quot;label&quot;&gt;Word count:&lt;/span&gt; {wordcount} &lt;span class=&quot;label&quot;&gt;Read Count:&lt;/span&gt; {count}&nbsp; &lt;span class=&quot;label&quot;&gt;ePub Downloads:&lt;/span&gt; {epubcount}<br>{adminlinks}&lt;/div&gt;&lt;/div&gt;<br>&lt;div class=&quot;tail&quot;&gt;&lt;span class=&quot;label&quot;&gt;{printepub} {addtofaves} {reportthis} Published: &lt;/span&gt;{published} &lt;span class=&quot;label&quot;&gt;Updated:&lt;/span&gt; {updated}&lt;/div&gt;<br>&lt;/div&gt;<br>{comment}<br>&lt;!-- END BLOCK : storyblock --&gt;</pre><ul><br><br>Please leave my info in any derivative works, as I have left Tammy’s. This module is released under GPL and is free to use. Use it to your hearts content.<br><br><b>You can post comments/complaints here or @ my wordpress site, but the wordpress site (storyportal.net) will probably get replies first.</b><br>-HuGgLeS-<br>-P/KAF/PT<br></ul>]]></content:encoded>
						                            <category domain="https://efiction.org/community/version-3-x-mod-discussion-and-development/">Version 3.x Mod Discussion and Development</category>                        <dc:creator>Piper</dc:creator>
                        <guid isPermaLink="true">https://efiction.org/community/version-3-x-mod-discussion-and-development/module-epubversion/</guid>
                    </item>
				                    <item>
                        <title>List of &quot;hooks&quot; in the script</title>
                        <link>https://efiction.org/community/version-3-x-mod-discussion-and-development/list-of-hooks-in-the-script/</link>
                        <pubDate>Mon, 09 Apr 2007 22:30:53 +0000</pubDate>
                        <description><![CDATA[The following is a list of &quot;hooks&quot; where code can be added to the script via the PREFIXfanfiction_codeblocks table.&nbsp; This gives developers the ability to easily add functional...]]></description>
                        <content:encoded><![CDATA[The following is a list of &quot;hooks&quot; where code can be added to the script via the PREFIXfanfiction_codeblocks table.&nbsp; This gives developers the ability to easily add functionality at certain points of the without hacking the files.<br><br>Each &quot;hook&quot; is assigned a name.<br><br>Developers will enter the following information into the database:<br><br>code_id - An auto-increment id number. Let the database assign this.<br><br>code_text - The text of your code additions.&nbsp; A smart idea is to put an include statement here pointing to the additional code.&nbsp; That way you don&#039;t have to change the code text in the database each time you make a change in your code. Especially makes things easier during development. :)<br><br>code_type - The &quot;hook&quot; location.&nbsp; <br><br>code_module - Assign a module name to this code text.&nbsp; This is assigned to quickly allow code blocks to be added and removed. <br><br>The current list of &quot;hook&quot; names:<br><br>addchapter - Used in stories.php to add information from custom chapter options to the database.<br><br>addseries - Used in series.php to add information from custom series options to the database.<br><br>addstory - Used in stories.php to add information from custom story options to the database.<br><br>adminnotices - Used in the main admin.php page and in the info block to assign admin notices.&nbsp; This information will be appended to the notice of the number of chapters in the submission queue.<br><br>AO - Used in the User Statistics panel to add custome items to the &quot;Author of:&quot; list.<br><br>browsesorts - Used to add custome select options to the sort form on the browse pages.<br><br>browseterms - Used to add custom selection to the queries on the browse pages.&nbsp; You will most likely use this in conjunction with the browsesorts hook.<br><br>delcategory - Used when a category is deleted to update information for the items on the site.&nbsp; <br><br>delchapter - Used to remove custom information from the database associated with a specific chapter that is being deleted.<br><br>delchar - Used when a character is deleted to update all the items on the site.<br><br>delclass - Used when a classification or classification_type is deleted from the site to update the items on the site.<br><br>deleteseries - Used in series.php to delete custom content concerning a series from the database.&nbsp; <br><br>delstory - Used to remove custom information from the database associated with a specific story that is being deleted. <br><br>deluser - Used to delete all items associated with a member when that member is deleted.<br><br>editchapter - Used in stories.php to update information from custom chapter options in the database.<br><br>editseries - Used in series.php to update information from custom series options in the database.<br><br>editstory - Used in stories.php to update information from custom story options in the database.<br><br>logtype - Used in the Admin log area to add new log types to the list.<br><br>membersList - Used to add new options to the selections available on the &quot;Members&quot; page.&nbsp; <br><br>otherresults - Used to select other results and display them in a list on the browse pages.&nbsp; <br><br>revadd - Used in reviews.php to add a review for an item that is not a story or series.<br><br>revauthor - Used to select the author of a reviewed item.&nbsp; This is used in reviews.php to determine if the visitor has permission to respond, edit, or delete the review.<br><br>revdelete - Used in reviews.php to delete a review that is not for a story or series.<br><br>revfix - Used in the Archive Maintenance page.&nbsp; If you have custom review types, use this to supply a way to recalculate the reviews for your custom type.<br><br>reviewsby - Used in the Reviews By panel to display the &quot;block&quot; of information about the specific item the review is for.<br><br>revreceived - Used in the Reviews Received panel to display the list of reviews that are not for stories or series.&nbsp; Will be appended to the end of the table under the stories list.<br><br>revqueries - Used in reviews.pphp to select the reviews for an item that is not a story or a series.<br><br>revtitle - Used in reviews.php to build the title for a review that is for an item that is not a story or a series.<br><br>searchform - Used in search.php to add new selection options for the advanced search form.&nbsp; In most cases this will be the same code you will use in the browsesorts hook.&nbsp; <br><br>seriesblock - Used to display custom information about a series in the series listings.<br><br>seriesform - Used in series.php to add custom options to the add and edit forms for a series.<br><br>seriestitle - Used to add custom information to the series title block. <br><br>sitestats - Used in the info block to add custom stats to the list.<br><br>storyblock - Used to display custom information about a story in the listing of stories.&nbsp; This information will also be used in the viewstory.<br><br>storyend - Used to add custom information to the display of the last chapter of a story in viewstory.php.<br><br>storyform - Used in includes/storyform.php to add custom information to the form displayed when adding or editing a story.<br><br>storyindex - Used to add custom information to the story index page in viewstory.php<br><br>userTabs - Used to add special information to the &quot;tabs&quot; in the viewuser.php page.<br><br>viewstory - Used to add custom information to the viewstory.php page.<br><br>]]></content:encoded>
						                            <category domain="https://efiction.org/community/version-3-x-mod-discussion-and-development/">Version 3.x Mod Discussion and Development</category>                        <dc:creator>Tammy</dc:creator>
                        <guid isPermaLink="true">https://efiction.org/community/version-3-x-mod-discussion-and-development/list-of-hooks-in-the-script/</guid>
                    </item>
				                    <item>
                        <title>Tips for Modding Your Site</title>
                        <link>https://efiction.org/community/version-3-x-mod-discussion-and-development/tips-for-modding-your-site/</link>
                        <pubDate>Wed, 21 Mar 2007 04:05:12 +0000</pubDate>
                        <description><![CDATA[Note: This was originally posted in the 2.0 Modding Forum.1.&nbsp; Don&#039;t start modding until you&#039;ve got eFiction installed and confirmed that everything&#039;s working.2.&nbsp; Ins...]]></description>
                        <content:encoded><![CDATA[<b>Note:</b> This was originally posted in the 2.0 Modding Forum.<br><br>1.&nbsp; Don&#039;t start modding until you&#039;ve got eFiction installed and confirmed that everything&#039;s working.<br><br>2.&nbsp; Install one mod at a time.<br><br>3.&nbsp; If the mod requires additions/modifications to the database, do those first.&nbsp; This way when you get to modifying the .php files you won&#039;t get errors from the database when you follow the next piece of advice.<br><br>4.&nbsp; Test each step along the way.&nbsp; For example, if you need to modify the user.php and viewuser.php.&nbsp; Don&#039;t start modifying viewuser.php until you&#039;re sure the changes to user.php are working. Likewise if there are six steps in modifying user.php, test for errors after each step.&nbsp; Hit refresh and make sure the page still loads.&nbsp; It&#039;s easier to find your mistake when you&#039;ve only edited 5 lines than when you&#039;ve edited 50.&nbsp; <br><br>5.&nbsp; Errors are our friends.&nbsp; If you get an error look for the line number.&nbsp; Most of the time that&#039;s where you&#039;ll find the error. (Ctrl-G will take you to that line in most programs)&nbsp; If you can&#039;t find the error on that line, check the line directly above it.&nbsp; If that doesn&#039;t work keep working upwards, the error will in almost every case be either on the line it says or above.<br><br>6.&nbsp; Check for characters that should be paired and aren&#039;t: &quot;&quot;, &#039;&#039;, ( ), , { }.&nbsp; If you opened it, you must close it.<br><br>7.&nbsp; If you get an error like:<br><blockquote><br><b>Parse error:</b> parse error, unexpected $end in PATH/TO/YOUR/FILE.php on line <b>###</b><br></blockquote><br><br>You&#039;re most likely missing a closing } in your script somewhere.<br><br>8.&nbsp; Make sure you escape nested &quot; and &#039; characters by adding a  in front of them.<br><br><pre><br>$test = &quot;Say &quot;Hello World!&quot;&quot;;<br></pre><br><br><span style="color:red">Wrong.</span><br><br><pre><br>$test = &quot;Say &quot;Hello World!&quot;&quot;;<br></pre><br><br><span style="color:green">Right.</span><br><br>9. Don&#039;t trust user input.&nbsp; If information is being passed by $_GET, $_POST, $_COOKIE, $_SESSION (anything the user can touch) don&#039;t trust that it&#039;s safe.&nbsp;  Use the functions built into eFiction to make this information safe.&nbsp; <br><br>If you&#039;re expecting a number use the &quot;isNumber&quot; function to check.<br><br><pre><br>if(isset($_GET) &amp;&amp; !isNumber($_GET) accessDenied(); <br></pre><br><br>If you&#039;re inserting text into the database use the &quot;escapestring&quot; function on the text before insertion.<br><br><pre><br>$mystring = escapestring($mystring);<br></pre><br><br>10.&nbsp; If you can&#039;t find your error, comment out everything in that section and remove the commenting one line at a time until the error re-appears.&nbsp; The error is on that line.&nbsp; Take this example:<br><br><pre><br>function(str) {<br>$bug = false;<br><br>$bug2 = &quot;There&#039;s a bug on this line;<br><br>$bug3 = false;<br>}<br><br></pre><br><br>Now comment out the section between the { and }<br><br><pre><br>function(str) {<br>/* This is the start of the comment.<br>$bug = false;<br><br>$bug2 = &quot;There&#039;s a bug on this line;<br><br>$bug3 = false;<br>This is the end of the comment */<br>}<br><br></pre><br><br>Move the start of the comment down one line at a time until you find the line that causes the error.<br><br><pre><br>function(str) {<br>$bug = false;<br>/* This is the start of the comment.<br><br>$bug2 = &quot;There&#039;s a bug on this line;<br><br>$bug3 = false;<br>This is the end of the comment */<br>}<br><br></pre><br><br>No error.&nbsp; There&#039;s no error on the line beginning with $bug.<br><br><br><pre><br>function(str) {<br>$bug = false;<br><br>$bug2 = &quot;There&#039;s a bug on this line;<br>/* This is the start of the comment.<br><br>$bug3 = false;<br>This is the end of the comment */<br>}<br><br></pre><br><br>The error re-appeared.&nbsp; The error is on the line beginning with $bug2.<br><br>If you use this technique make sure your comments don&#039;t comment out the opening or closing { }, , &quot;&quot;, &#039;&#039;, ( ) as that will give you different errors.&nbsp; Using the same example as above:<br><br><pre><br>function(str) {<br>/* This is the start of the comment.<br>$bug = false;<br><br>$bug2 = &quot;There&#039;s a bug on this line;<br><br>$bug3 = false;<br>}<br>This is the end of the comment */<br><br></pre><br><br>This would cause an error because the closing&nbsp; } is inside the comment.<br>]]></content:encoded>
						                            <category domain="https://efiction.org/community/version-3-x-mod-discussion-and-development/">Version 3.x Mod Discussion and Development</category>                        <dc:creator>Tammy</dc:creator>
                        <guid isPermaLink="true">https://efiction.org/community/version-3-x-mod-discussion-and-development/tips-for-modding-your-site/</guid>
                    </item>
				                    <item>
                        <title> Recommendations</title>
                        <link>https://efiction.org/community/version-3-x-mod-discussion-and-development/module-recommendations/</link>
                        <pubDate>Sat, 27 Jan 2007 21:07:37 +0000</pubDate>
                        <description><![CDATA[Description: Recommendations module to allow the &quot;archiving&quot; of off-site stories on your site. Demo:http://efiction.hugosnebula.comClick the downloads link.&nbsp; You must be a mem...]]></description>
                        <content:encoded><![CDATA[Description: Recommendations module to allow the &quot;archiving&quot; of off-site stories on your site. <br><br>Demo: http://sgxover.hugosnebula.com<br><br>Download: http://efiction.hugosnebula.com<br><br>Click the downloads link.&nbsp; You must be a member of my site to get to the downloads themselves.<br>]]></content:encoded>
						                            <category domain="https://efiction.org/community/version-3-x-mod-discussion-and-development/">Version 3.x Mod Discussion and Development</category>                        <dc:creator>Tammy</dc:creator>
                        <guid isPermaLink="true">https://efiction.org/community/version-3-x-mod-discussion-and-development/module-recommendations/</guid>
                    </item>
				                    <item>
                        <title> Mod List/Submitting Mods</title>
                        <link>https://efiction.org/community/version-3-x-mod-discussion-and-development/wiki-mod-list-submitting-mods/</link>
                        <pubDate>Fri, 19 Jan 2007 23:17:39 +0000</pubDate>
                        <description><![CDATA[Wiki List of eFiction 3.x Mods: Click HereMod SubmissionPertaining to Carissa&#039;s Why this forum? topic, if you are submitting a mod, please add the prefix of  to the title of your t...]]></description>
                        <content:encoded><![CDATA[<span style="font-size:14ptpx">Wiki List of eFiction 3.x Mods: <a class="go2wpf-bbcode" rel="nofollow" target="_blank" href="https://efiction.org/wiki/index.php5?title=Mod_List">Click Here</a></span><br><br><span style="font-size:12ptpx"><b>Mod Submission</b></span><br>Pertaining to Carissa&#039;s <a class="go2wpf-bbcode" rel="nofollow" target="_blank" href="https://efiction.org/forums/index.php?topic=4337.0">Why this forum?</a> topic, if you are submitting a mod, please add the prefix of  to the title of your topic. <br><br>It would also be helpful if you use the following format for your mod:<br><blockquote><b>Description:</b> What does your mod do?<br><br><b>Requirements:</b> Ex: Does it only work with a certain version of eFiction?<br><br><b>Mod History:</b> This is optional, to keep track of the work you have done on your mod.<br><br><b>Download Link:</b> Optional if you can simply post the mod within your topic.</blockquote><br><br>Simply copy and paste the below code:<br><pre><b>Description:</b> What does your mod do?<br><br><b>Requirements:</b> Ex: Does it only work with a certain version of eFiction?<br><br><b>Mod History:</b> This is optional, to keep track of the work you have done on your mod.<br><br><b>Download Link:</b> Optional if you can simply post the mod within your topic.</pre>]]></content:encoded>
						                            <category domain="https://efiction.org/community/version-3-x-mod-discussion-and-development/">Version 3.x Mod Discussion and Development</category>                        <dc:creator>Becca</dc:creator>
                        <guid isPermaLink="true">https://efiction.org/community/version-3-x-mod-discussion-and-development/wiki-mod-list-submitting-mods/</guid>
                    </item>
				                    <item>
                        <title>Default Panels List</title>
                        <link>https://efiction.org/community/version-3-x-mod-discussion-and-development/default-panels-list/</link>
                        <pubDate>Wed, 30 Aug 2006 20:52:22 +0000</pubDate>
                        <description><![CDATA[Admin Panels:The admin panels control the different admin options for the site.&nbsp; In 2.0 the list was static.&nbsp; Putting the admin options into panels allows site owners the option of...]]></description>
                        <content:encoded><![CDATA[Admin Panels:<br><br>The admin panels control the different admin options for the site.&nbsp; <br>In 2.0 the list was static.&nbsp; Putting the admin options into panels allows <br>site owners the option of changing the access level for the various features.<br>It also allows new options to be added without editing everything.&nbsp; The 0-4<br>levels in the panel are most applicable here.&nbsp; The levels 1 to 4 indicate the<br>admin level required to access a certain feature.<br><br>Message Settings (1)<br>Rejection Letter (1)(2)<br>Validation Letter (1)(2)<br>Validate Submission (1)(2)<br>Censor (1)<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 &quot;Browse By&quot; area of the site.&nbsp; <br><br>Most Recent (1)<br>Featured Stories (1)<br>Classes (1)(2)<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 &quot;Account Info&quot; <br>page and the list of panels in the profile.&nbsp; In the &quot;Account Info&quot; area<br>the panel must be set to level 1 to be visible in the list of options.&nbsp; <br>Otherwise, they&#039;re used as part of the &quot;Manage Favorites&quot; panel.<br><br>Favorite Stories (1)<br>Favorite Series (1)<br>Favorite Authors (1)<br>{author}&#039;s Favorites<br><br>Top 10 List Panels:<br><br>The Top 10 panel. They&#039;re all turned on my default.&nbsp; If you turn favorites off,<br>it is suggested that you hide, not delete, the favorites panels. (You could<br>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&#039;s profile page along with<br>the non-hidden favorites panels.&nbsp; <br><br>Contact (1)(2)<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.<br>They were placed in a type seperate 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.&nbsp; The &quot;level&quot; of the panel should be set to either 0 or 1.&nbsp; Panels<br>with level 0 will be displayed to anyone.&nbsp; Panels with level 1 will be displayed only to logged in<br>members.&nbsp; The login, register, and lost password panels are currently the only panels set to level 0<br>for the user account area.<br><br>Login (1)<br>Your Reviews (1)<br>Reviews Received (1)<br>Review Response (1)(2)<br>Lost Password<br>Register<br>Edit Bio<br>Edit Preferences<br>View Your Statistics<br>Manage Favorites<br>Logout<br><br>(1)&nbsp; Hidden by default.<br>(2)&nbsp; System panels.&nbsp; You should not need to alter these settings and may cause errors if you do.]]></content:encoded>
						                            <category domain="https://efiction.org/community/version-3-x-mod-discussion-and-development/">Version 3.x Mod Discussion and Development</category>                        <dc:creator>Tammy</dc:creator>
                        <guid isPermaLink="true">https://efiction.org/community/version-3-x-mod-discussion-and-development/default-panels-list/</guid>
                    </item>
							        </channel>
        </rss>
		