After much rewriting, reworking, debugging, and at times wanting to take it out back and shoot it, I am happy to announce:
JFiction for Joomla 1.5 Native has been released!
JFiction is now an official project at JoomlaCode. The project home page is at:
http://forge.joomla.org/gf/project/jfiction/
You can download the package directly at:
http://forge.joomla.org/gf/project/jfiction/frs/
Public front-end test server is located at:
http://lab.flyingmaverick.com
If you have a site already populated, please back it up first! You should do this whenever any major change to your site is made.
THE PACKAGE
JFiction consists of two parts - Joomla and eFiction (duh!). The Joomla side has three (3) parts: a core component, an authentication plugin and the corresponding user plugin. You must install all three parts. Don't forget to enable the plugins! I'm embarrassed to admit I did that on my test server, and wasted a good hour hunting ghosts (d'oooooooh!).
The eFiction side is actually simple. All you need to do is overwrite specific core files with the altered bridge versions, plus copy one specific file to eFiction's root. As an option, the package contains three (3) blocks that recreate or mimic Joomla's login, user and main menu modules within eFiction. Use all of them, a few, or none at all, as you wish. Just remember that these blocks act just like any other eFiction blocks, so they need to be enabled and your skin must be edited appropriately.
JFiction is a "bi-directional" bridge when it comes to sharing user data. That means the user tables for BOTH systems are populated and maintained. Joomla gets user data in its required format, and so does eFiction. π
Also, the bridge has been designed to work on pre-populated sites as well as empty ones. So, if you already have eFiction or Joomla installed with members, JFiction should work for you. Ideally, only ONE of these systems should already have members, but JFiction has been tested in my coding lab with both systems having members and did OK.
Full documentation is included as a separate PDF within the package itself. As a convenience, I've uploaded it separately. It's located at the same link as the package core, again that's:
http://forge.joomla.org/gf/project/jfiction/frs/
Please read the provided documentation carefully!!!
SUMMARY
JFiction is a bridge between Joomla and eFiction. The bridge was developed using Joomla 1.5.14, eFiction 3.5.1 and Community Builder 1.2.1. Please note that Community Builder is NOT required, but provides some cool functionality for your members should you opt to use it. π
The bridge basically shares critial user information common to both systems. That includes usernames, passwords, email addresses and (optionally) sessions. Because it is a full CMS and the more complex system, Joomla is the "master", meaning that it controls login/logout, registration, and other core user functions. eFiction is "slaved" to Joomla, and therefore shared user functions are disabled. Functions unique to eFiction (such as, of course, stories) are unaffected and eFiction just happily behaves as usual. The bridge is "bi-directional" in the sense that both sets of user tables are kept updated. That way, should you choose to uninstall the bridge, Joomla and eFiction should behave as they did before.
The current version is released as JFiction 1.2 due to all of the reworking of the code.
As you can expect, bridging these two systems has been trying, to put it mildly. π₯ First, I had to convert Joomla 1.0 code to Joomla 1.5 native. Then, I had to use code workarounds because you simply cannot readily embed one in the other. You cannot even include core files due to conflicts. For example, including eFiction's native configuration file within Joomla's front-end (i.e., the plugins) causes a conflict. Likewise, calling Joomla's front-end within eFiction caused a fatal error (which did not happen in the prior Joomla 1.0 version, btw). Joomla's password schema made things even more complex. Because of the hashing and salting, eFiction simply cannot use Joomla passwords. This presented a special challenge as, within Joomla and Community Builder, a member can literally change every part of his information. The ONLY thing (s)he cannot alter is the user id. You can see how easily things could get out of sync. To avoid this, I had to add a Joomla id tracker to the eFiction author table. It is a very minor change for bridging purposes only, and does not affect eFiction functionality at all. The bridge automatically adds the id column once you've saved the configuration, so you don't need to do it yourself.
A LOT of time has been spent working all this out, but finally I think I have something that actually behaves itself.
Please note that the package HAS NOT undergone extensive testing with SEF enabled. Because of the sheer number of SEF "flavors" available for Joomla, I focused instead on trying to produce clean, working code without the additional complexity. JFiction should not cause much problem, as all of the URLs used are constructed from each of the core systems. However, I do anticipate there could be hiccups. If this happens, just file a Trouble Report (see below).
Also, as a matter of principle, I typically do not use servers that run PHP in so-called "safe mode" and JFiction hasn't been tested in that environment. Again, I tried to write straightforward code that doesn't use PHP's more exotic features, or require special Apache settings. In theory, JFiction should work just fine, but please do report any problems.
TROUBLE REPORTING
As usual, be on the lookout for bugs and unexpected behaviors. The project area for Trouble Reporting is located here:
http://forge.joomla.org/gf/project/jfiction/tracker/
Here, you can log any problems you're having in as much detail as you can give. You can also use this same section of the site for Feature Requests. π
Speaking of which...
FEATURE REQUESTS
JFiction modules and Community Builder plugins are already in development, so you don't need to request these. π
When done, they will be uploaded separately, so there will be no need to download the entire package again.
If there are any other features you can think of, you can put in a formal request in the same project area where you report bugs (when you visit the link, it should all make sense).
DEVELOPERS WANTED
JFiction is a rather involved bit of coding, and I had to literally learn Joomla 1.5 on the fly as I went along. Additionally, you have the eFiction side of the bridge which is a whole 'nuther animal. Anyone who has experience with Joomla or eFiction coding is welcome to join the project. My "real life" gets hectic, and JFiction suffers when that happens, so it would be great to have someone take the reigns at least when I'm AWOL.
SO, WHY THE THREAD?
Basically, the JoomlaCode project home is for formal project tracking, to officially log bugs, make request features (basically all project record-keeping). The forum here is generally to talk about JFiction in more creative terms or get quick help. For example, maybe a question about a setting, how members are using the package, links to member sites to showcase their installations, design aesthetics, etc. This isn't a hard-and-fast-rule, so we'll just feel this out as we go along. π
I just got my first beta reports in (YAY!)
Actually, it has to do with the documentation. There are some changes I need to make, and those will be released by next weekend. But, I want to cover them here just to give you a head's up:
- Settings prefix versus table prefix. Currently, the bridge only uses the settings prefix. I completely forgot that some tables can use a different prefix! π³
For those of you doing new eFiction installations, simply make these both the same and you should have no problems. For those with existing installations where your settings and table prefixes are different, I will address this in the next full release of JFiction. - User id synchronization. I forgot to cover this in the documentation, and this has caused some confusion. When the Joomla id tracking column is added to the eFiction table, all values will initially be zero. This is normal. You DO NOT need to manually add your members' Joomla IDs. JFiction will synchronize your members upon valid login. That is because you cannot safely "pre-sync" Joomla and eFiction due to incompatible passwords (eFiction uses MD5, Joomla uses a complex salting and hashing routine). At login JFiction can grab the passwords and send each to its respective system for validation. THAT is when the IDs can be synchronized.
Thanks to my tester for pointing this out. I'll get the documentation updated ASAP.
I've made quite a few tweaks to the JFiction 1.2 code base, including changes to the documentation. You can get everything through the direct link here:
http://joomlacode.org/gf/project/jfiction/frs/?action=FrsReleaseBrowse&frs_package_id=4865
For your convenience, I've posted the changelog for you below:
JFICTION 1.2 UPDATES
The changes to JFiction are documented below. These are included in the master changelog for the project.
COMPONENT CHANGES
FRONTEND
jfiction.php
- included proper check for bridge files
- fixed redirect which had been accidentally omitted from file (to create component link).
class.jfiction.php
- Added stronger text truncation function
- Removed deprecated code
- Added module render class used for all JFiction modules
BACKEND (ADMINISTRATOR)
efic.bridge.php
- Removed deprecated code
AUTHENTICATION PLUGIN
jfiction.php
- Fixed initial eFiction member retrieval to mimic Joomla's (this corrected
password that was being passed prematurely)
- Added code to both plugins to call en-GB.com_jfiction.ini
for all language requirements
- Added buffer controls due to header problems reported when using hardened php
security
USER PLUGIN
jfiction.php
- Language file name change per documented Joomla conventions
LANGUAGE CHANGES
en-GB.com_jfiction.ini is now the single language file for ALL extensions
All needed language definitions have been rolled into this file.
Joomla extensions, including modules and CB plugins, have thus far tested successfully in the lab, and should be uploaded this weekend.
Awesome!!! I was waiting for that one to come out since I've been busily redesigning a fansite of mine and am moving it to Joomla. That's such awesome timing too. π
Jacynthe
Archives: http://fanfics.e-authors.net
Version: 3.5.3
Modified? Somewhat...
PHP: 5.3.3
MySQL: 5.0.91-community
Hope the bridge works for you!
CORE PACKAGE UPDATED!
The JFiction 1.2 package has been re-uploaded to the project site. Several changes were made to correct bugs and/or improve functionality.
The separate update files are for existing installations. If you are downloading and installing JFiction for the first time, simply download the main package as it is now current with all fixes to date.
Remember that, for JFiction 1.2, your settings prefix and table prefix MUST be the same value!!!!
JFiction 1.3 will introduce the corrected code that properly pulls setting prefix and table prefix separately (FYI, Joomla doesn't have this feature - all tables use a singular prefix).
ADD-ONS NOW AVAILABLE
JFiction add-ons (modules and Commmunity Builder plugins) are now uploaded to the system and ready for download. Please remember to unzip the packages first and follow any enclosed instructions.
JFICTION 1.3
The JFiction project is currently listed as being in Alpha phase due to need for more extensive feed-back from those using it in a live environment. This is when the hidden "gotchas" (if any) are found. To date, reported issues have been fairly minor and were fairly quickly fixed (as reflected in the recently updated JFiction 1.2 package).
I am waiting for the next two (2) weeks to see if I receive serious trouble reports (such as the dreaded "White Screen of Death"). Barring that, starting with JFiction 1.3 the entire project will be upgraded to Beta status. So, please report any problems you have to help with the project!
Also, this is a good time to get in any feature requests. As of right now, I don't have any serious feature additions for JFiction 1.3 (other than to perhaps address the multilevel menu issue for the JMenu block).
JFICTION MVC
For Joomla geeks only. π
As stated earlier, JFiction is Joomla 1.5 native. However, it is not in MVC (Model-View-Controller) format. This is primarily due to the fact that JFiction for Joomla 1.5 is a port of the original JFiction for Joomla 1.0 which does not use this paradigm. I thought it far more important to get a J!1.5 native version up and running than it was do do a full MVC rewrite. In fact, several discussions at the official Joomla forums seem to indicate that this is indeed the way to go when porting extensions from 1.0 to 1.5 (as writing code in MVC format requires that you literally tear apart your extension and rebuild it from the ground up). Frankly, I don't have that kind of time right now, and probably won't until some time next year. Hope that's OK with everyone!
Of course, if you are a real Joomla guru and want to donate your time to the project for an MVC rewrite, feel free to contact me as I would love to hear from you. π
That's all for now! π
I'm working on bugs found in the JFiction modules. They mostly work well, just a few things need tweaking.
The problem is, I do not have an actual stories database to use for development (which is why this entire project has been going slowly).
I need to have access to a populated eFiction database in order to test my work!
If you can send me a copy of your database (i.e., an exported SQL file), I'll be MUCH obliged!
I need this ASAP so I can continue development. Thanks! π
UPDATE
It seems I'll be OK. I believe I have found a solution for live testing. π
Just send me trouble reports if you have problems with your installations. Those help a lot with trouble-shooting.
I've gone through the Joomla Code archive and have cleaned up a lot of files.
The JFiction modules have been updated and uploaded to the system. All old versions have been removed.
The core component language file and main class file have likewise been changed. You must download and install both of these FIRST before installing the modules.
Final trouble reports are pending (and probably won't be in until some time next week), but hopefully this should take care of some nagging issues.
Of course, let me know if you have any problems.
Hi, all. I just wanted to put in a quick word about overall site development and SEF (Search Engine Friendly) URLs:
It pains me to no end to see people making SEF one of the FIRST things they do!
SEF is actually one of the very LAST items on your To Do list. It is much more important to make sure all of your extensions work well first. SEF can introduce complications depending upon what "flavor" you use.
When submitting a trouble report regarding JFiction, you must indicate if you have any form of SEF enabled.
Also, just a gentle reminder to please submit your trouble reports either here or at JoomlaCode (which is the official project home). I simply cannot troll every forum here to find problems. Detailed problem reports really do help me track down and fix issues.
Thanks!
Do you still need testers? I don't know anything about Joomla, but I have been wanting to get into a new CMS, so I think this would be a good opportunity. ; )
Hi Lyndsie.
GO FOR IT!!!
Testers are ALWAYS needed and welcome. I especially need those with existing eFiction installations, since for my site all my existing member data is Joomla.
The package is freely available for everyone to download, so you don't need to register. Just download, follow the instructions and install.
As posted above, there is the core package, and I made some changes yesterday to the core language and class files. These are uploaded separately to the repository and clearly marked with yesterday's date (11/4/09). Once you install the core package, just overwrite existing files with these changed ones.
Finally, you also have the Joomla modules Community Builder plugins. These are optional, but add functionality.
Whatever you do, report, report, report! I just finished with one super beta-tester whose feedback helped me find and squash a LOT of bugs, and I couldn't have done it without her.
Thanks!
I think I'll try this this weekend. I still have an old backup of my main eFiction site's database up on my test server, which is just over 13,000 members, so I'll let you know how that goes. ; )
Found out I cannot use this as of now because the sites arlready exist with distinct databases for each of the component (joomla and efiction). Bummer!
Jacynthe
Archives: http://fanfics.e-authors.net
Version: 3.5.3
Modified? Somewhat...
PHP: 5.3.3
MySQL: 5.0.91-community
Hi, Jacynthe.
I am putting together my feature list for JFiction 1.3, and connecting to separate DBs may be do-able.
I'm just trying to wait for final JFiction 1.2 error reports so that I can start the next version. Right now, I only have a couple of Must-Do items for JFiction 1.3, and I could squeeze this on my list. π
Thanks Brat that would be awesome if that worked. π Lord knows this would allow for a more seamless experience for the users and myself. LOL
Jacynthe
Archives: http://fanfics.e-authors.net
Version: 3.5.3
Modified? Somewhat...
PHP: 5.3.3
MySQL: 5.0.91-community
Good news! π
I have the code that allows Joomla to connect to external databases (that is, a database where Joomla's data tables aren't located).
I just need to integrate it into the JFiction code base.
So, it looks like external DB support is indeed on the table for JFiction 1.3 π