From Fedora Project Wiki
(Initial Page) |
|||
(One intermediate revision by the same user not shown) | |||
Line 821: | Line 821: | ||
|| [[#t13:33|13:33]] | || [[#t13:33|13:33]] | ||
|} | |} | ||
[[Category:Documentation_CMS_Option]] |
Latest revision as of 15:40, 21 November 2009
zk-Simon | Sparks: We're very interested in giving you a hand if we can | 11:55 |
---|---|---|
Sparks | zk-Simon: So I'd definitely like to document Zikula as much as possible so we can see if this is a good solution. | 11:55 |
zk-Simon | Sparks: I've always been a fan of Fedora too, so I would like to give something back. | 11:55 |
* Sparks brings up his CMS Template | 11:56 | |
-!- stickster_afk is now known as stickster | 11:57 | |
* stickster puts Rahul's content in F11 Alpha release notes one-sheet page | 11:57 | |
zk-Simon | Sparks: would you like me to go through each point in turn? | 11:58 |
Sparks | zk-Simon: Let me ask you a few questions, first, and if you have anything else that I miss to add please let me know. | 11:58 |
zk-Simon | Sparks: ok, shoot :) | 11:59 |
Sparks | stickster: I'm going to finish wiping those pages today. | 11:59 |
stickster | Sparks: That would be super, thanks for helping out with that! | 11:59 |
Sparks | stickster: Good golly... I renamed 48 pages last night. | 12:00 |
Sparks | stickster: That was insane! | 12:00 |
stickster | Awesome | 12:00 |
* stickster wonders if ianweller ever get round to running the wikibot for renaming the stuff in wikirename.git | 12:00 | |
Sparks | zk-Simon: Okay, can you give me a brief summary of your CMS, what it is designed to do and why it would be a good choice for Fedora? | 12:00 |
zk-Simon | Sparks: sure, give me a sec | 12:01 |
Sparks | zk-Simon: No problem. | 12:01 |
Sparks | stickster: We need to get ianweller a ticketing system. | 12:01 |
Sparks | :) | 12:01 |
zk-Simon | Sparks: I don't know how much you know about CMS history, but the Zikula project has been around in one form or another since 2001, | 12:04 |
previously as PostNuke. Since the PostNuke days we've completely rewritten the core from the ground up, trying to keep a nice balance | ||
between practicality, performance and good architecture design. There's a strong API, we've had templating for years so output is easily | ||
modified by anyone who k | ||
zk-Simon | Sparks: Many of the things we initially had as a differentiating factor, i.e APIs (most PHP CMSs didn't even have this when PostNuke | 12:06 |
started out), templating and so on are now in every CMS on the market. One thing we have maintained is the security focus, and I think we | ||
have that still over competitors. | ||
Sparks | zk-Simon: Great. I think the first paragraph got cut off. ...modified by anyone who...? | 12:07 |
zk-Simon | Sparks: Now, the obvious competitors that come to mind like Joomla and Drupal will have more modules, we can't claim to have such a large | 12:07 |
backing (though the community is big), but I can honestly say that I have never wanted for a module to build one of my sites - and I must | ||
have built hundreds. We are lucky in that a few super-powerful modules are flexible enough to cover 90% of situations. | ||
zk-Simon | ... modified by anyone who knows a bit of HTML and CSS, and our biggest thing is enterprise level security | 12:08 |
Sparks | zk-Simon: Excellent! | 12:09 |
stickster | Sparks: Actually, having a fedora-wiki ticket system might not be a bad idea if there are going to be things only paritcular people can do | 12:10 |
with the wiki. | ||
Sparks | stickster: Yeah. | 12:11 |
Sparks | zk-Simon: What is the project website for Zikula? | 12:11 |
zk-Simon | Sparks: For Fedora, I think the highlights are the security, our caching system (based on smarty), the fine grained permissions system, | 12:12 |
custom authentication and of course we are modular. The long, 8 year history tells you we're not going to disappear on you, Zikula will be | ||
around for a long time yet. | ||
zk-Simon | Sparks: www.zikula.org - please excuse the slightly disorganised content, we recently refreshed our site and we're still in the process of | 12:13 |
updating the content and navigation to our liking. | ||
Sparks | zk-Simon: No problem. Websites are fluid. | 12:13 |
Sparks | zk-Simon: What are the hardware requirements for Zikula? | 12:14 |
zk-Simon | Sparks: Apache/IIS (recommend Apache to get the best friendly URLs), PHP 5+ (though our 1.x series will work on PHP 4 I can't in good | 12:15 |
conscience recommend using it) and MySQL 4 or 5 (preferably 5) | ||
zk-Simon | Sparks: That's it. Gettext for the upcoming 1.2 version as an extension to PHP | 12:15 |
Sparks | zk-Simon: Excellent. | 12:16 |
Sparks | zk-Simon: Now the fun part. These are feature questions that we had outlined as items that we need or want. | 12:17 |
Sparks | zk-Simon: Does Zikula have a good security record? | 12:17 |
zk-Simon | Sparks: Well, I can't point you to vulnerability stats for Zikula, we've never had a security flaw reported. PostNuke may have some | 12:19 |
relevance, and we've had very few vulnerabilities there as well | ||
Sparks | zk-Simon: Yeah, I think someone brought that to my attention yesterday. | 12:19 |
Sparks | zk-Simon: How proactive is your developer community to fixing issues? | 12:20 |
zk-Simon | Sparks: The code has been reviewed by an automated scanning tool, output compares very favourably with e.g a comparable Joomla release. We | 12:20 |
have an arrangement with a third party who reviews our code, and he's said it's clean though it is constantly under review | ||
Sparks | zk-Simon: Excellent | 12:21 |
zk-Simon | Sparks: Security issues are usually fixed and patched within 48 hours, often 24. If they come to us first through our contact forms then | 12:21 |
we usually fix them before they get near the advisory sites. | ||
Sparks | zk-Simon: Our authentication system (FAS) utilizes a application called json as the interface. Can Zikula use this to authenticate? | 12:22 |
zk-Simon | Sparks: We have what we call Auth Modules, which allow us to authenticate against external sources. This can either take the details | 12:24 |
entered on the site, and send them elsewhere for checking, or alternatively I have previously redirected people to an external page to | ||
authenticate and the result of that is passed back to Zikula. | ||
zk-Simon | Sparks: I've personally implemented a system to authenticate against 'Raven' which is the authentication system used at the University of | 12:25 |
Cambridge here in the UK, and we have an OpenID module too | ||
Sparks | zk-Simon: Okay, I'll put those notes down and I'll let the Infrastructure Team see if they can do that. | 12:25 |
Sparks | zk-Simon: OpenID might work as well. | 12:25 |
Sparks | zk-Simon: How about RSS feeds? | 12:26 |
zk-Simon | Sparks: Providing, or using? | 12:26 |
Sparks | providing, I think | 12:27 |
zk-Simon | Sparks: We have a special theme which outputs RSS headers, and then any module can provide RSS templates for their list output. If a | 12:27 |
module doesn't have it, 20 minutes work adding templates gives you a feed. | ||
Sparks | zk-Simon: Okay, that works. | 12:28 |
Sparks | zk-Simon: We have a translator workforce. How would Zikula handle translations? | 12:28 |
zk-Simon | Sparks: This is the one I wanted to talk about. With 1.2 (in development), our core at least is translated through gettext. That would be | 12:31 |
any strings inside the core, e.g status messages and the like | ||
zk-Simon | Sparks: Content is a bit different. We have on our roadmap a plan to provide a generic way of translating content, however it's not there | 12:33 |
yet. So, translations are dependent on the module you use at the moment. I realise that might not be ideal, but presumably you would be | ||
using one main module for most content, so we could code up a better translations interface for one or two modules if it turns out to be a | ||
problem. | ||
zk-Simon | Sparks: how does your workflow for translations go at the moment? | 12:34 |
Sparks | zk-Simon: Well... There is a mixed answer because it really isn't standardized. | 12:35 |
Sparks | zk-Simon: Currently they are listed along with the other languages. | 12:35 |
Sparks | zk-Simon: I think what we would like is to be able to select the language the person wants to read and those would be the ones they are | 12:36 |
presented to. stickster probably has a better idea, however. | ||
Sparks | zk-Simon: We can probably address this as a group to get ideas, though. | 12:37 |
zk-Simon | Sparks: That is the way the system works at the moment from a user perspective | 12:37 |
Sparks | zk-Simon: Cool. What about output for Transifex? | 12:37 |
zk-Simon | The language is selectable on registration and for unregistered users is stored for the duration of the session | 12:37 |
zk-Simon | Sparks: THis is a system I don't know much about - could you enlighten me a bit? | 12:38 |
Sparks | zk-Simon: Sorry, I can't. I'm not familiar with it, either. | 12:39 |
Sparks | zk-Simon: I'll just leave that one blank for now and we can come back to that later once I get a better explanation. | 12:39 |
Sparks | zk-Simon: Probably a big one is the ability to manage content workflow. | 12:40 |
zk-Simon | Sparks: Ok, well with some more info I'll be able to comment on our ability to support it | 12:40 |
Sparks | zk-Simon: What we would like to do is have writers write, then pass the document for an editor to look over, and then have the editor be able | 12:40 |
to publish. | ||
zk-Simon | Sparks: Our main content modules are workflowed as you describe | 12:40 |
Sparks | zk-Simon: Excellent. Do you ahve an interal version control with rollback capability? | 12:41 |
Sparks | s/interal/internal | 12:42 |
zk-Simon | Sparks: Absolutely, in our most complex module a full revisions hisotry is kept | 12:42 |
Sparks | zk-Simon: How about content expiration. Can you set a date and time for a certain file to expire and be removed from pubic view? | 12:43 |
zk-Simon | Sparks: Yes, pages can have a 'go offline date', certainly | 12:44 |
Sparks | zk-Simon: How about the other way around? Can you have a go live date and time? | 12:44 |
zk-Simon | Sparks: I believe so, though that's a feature I've not used. If not, can be added in a few minutes | 12:45 |
Sparks | zk-Simon: Okay, it wasn't on my list but it just hit me as something that might be useful. | 12:45 |
Sparks | zk-Simon: Going back to the content workflow, can you set multiple roles (writer, editor, etc) to a single user? | 12:46 |
zk-Simon | Sparks: We have a group/permissions system, and any user can be a member of multiple groups. The default would be comment access, allowing | 12:47 |
someone to submit pages for approval, rising to edit/moderate access for editors, and delete access for those who are permitted to delete | ||
things. Full admin access would be restricted to those with a real need to access everything. | ||
Sparks | zk-Simon: Excellent. | 12:48 |
Sparks | zk-Simon: Can you categorize or tag content for organization? | 12:48 |
zk-Simon | Sparks: We have two systems, a site wide cateogries system (not yet supported by all modules, but by quite a few), where any content from | 12:49 |
any module can be categorised in a category tree, or alternatively a tagging system with your standard tag cloud etc. | ||
Sparks | zk-Simon: Excellent. I only have five more quick questions for you. | 12:50 |
Sparks | zk-Simon: How well does your search work? | 12:50 |
zk-Simon | Sparks: Two systems, the old system is database-based and IMO does not work that well. We have a new system from the GSOC to replace it | 12:52 |
based on Zend Search Lucene which is a proper indexer and very nice. Needs some further development but is in a basically working state. | ||
Sparks | zk-Simon: I'm guessing that Zikula was a CMS from the beginning? | 12:53 |
-!- stickster is now known as stickster_food | 12:55 | |
* quaid pops his head in | 12:55 | |
quaid | woah,that's some buffer to read ... | 12:55 |
quaid | Sparks, zk-Simon : I | 12:55 |
quaid | 'll read the buffer, but let me know if there are any standing questions ... | 12:55 |
Sparks | quaid: Maybe you could comment on the tranlation portion of how we want the CMS to work. | 12:56 |
Sparks | quaid: (All of this is going into the wiki. | 12:56 |
zk-Simon | Sparks: Yes, we were orignally a CMS/portal, now we're an application framework and do lots of different things, but we still have very | 12:57 |
strong content management in the background | ||
zk-Simon | quaid: Sorry, I can be a bit verbose at times | 12:57 |
-!- abadger1999 [n=abadger1@65.78.187.8] has quit [Read error: 60 (Operation timed out)] | 12:57 | |
Sparks | zk-Simon: Okay. How is the data stored? Is the data protable to another CMS? | 12:57 |
-!- biertie [n=bert@19.159-136-217.adsl-dyn.isp.belgacom.be] has joined #fedora-docs | 12:58 | |
zk-Simon | Sparks: It's just in MySQL tables. We'll have, in 2.0 a generic import/export XML framework, but there's no 'export this to x' | 12:59 |
functionality (I don't know of any system with this sort of thing). Data structures are as you'd expect, so with some effort you could | ||
port it all. | ||
Sparks | zk-Simon: That's true. As long as it isn't encrypted in some manner... :) | 12:59 |
zk-Simon | Sparks: As it's just a MySQL database you wouldn't have trouble extracting the data, it's a long way from a proprietary flat file or | 13:00 |
something weird like that. Something I could have mentioned earlier is that we support mutliple databases (e.g. Postgres), however I would | ||
recommend MySQL as that gets the most extensive testing by some distance. | ||
Sparks | zk-Simon: Can Zikula make certain pages or content areas static/non-database driven? | 13:01 |
* quaid almost caught up, 1 more min. | 13:01 | |
quaid | ok! | 13:03 |
quaid | working backwards quickly ... | 13:03 |
zk-Simon | Sparks: Not completely, no. The caching system either allows full page or page-element caching. Full page caching will reduce SQL queries | 13:03 |
to 3 or 4, element caching depends on the module. If you were using a particular Short-URL system we could make the pages completely | ||
static without breaking anything | ||
quaid | I think the plan from Fedora Infrastructure is to let the CMS team have a slightly stand-alone area | 13:03 |
quaid | so having e.g. MySQL is fine; it doesn't to be in the main Infra dbase. | 13:03 |
Sparks | quaid: I was told by Infra that MySQL or PostgreSQL was fine. | 13:04 |
quaid | Sparks: I forget if the static stuff is MUST or SHOULD, but we've largely eliminated the need for MUST with proxy caching. | 13:04 |
quaid | Sparks: cool | 13:04 |
Sparks | quaid: It is in the "must" list. | 13:04 |
quaid | zk-Simon: so let me explain the l10n a bit more ... | 13:04 |
quaid | zk-Simon: the deal is, we author in DocBook XML with the source in an SCM (git mainly, some svn) | 13:04 |
quaid | translators grab the POT file via translate.fedoraproject.org (Transifex runs there) | 13:05 |
zk-Simon | Sparks: Depending on your infrastructure, with full page caching on Zikula could handle a lot. | 13:05 |
quaid | and they submit back through the same interface to the SCM. | 13:05 |
quaid | when we build docs, our toolchain uses xml2po to interleave the translated strings from the PO files with the XML | 13:05 |
quaid | and we get translated HTML and PDF | 13:05 |
quaid | so the basic idea with a CMS is to treat those as language-specific blobs | 13:06 |
quaid | we just pull them in and publish them so that Apache can serve the proper one by browser lang setting. | 13:06 |
zk-Simon | quaid: Right, how does this work along with the revisions control etc that you wanted? | 13:07 |
quaid | a Ultimate Grail solution would be a CMS that could use the XML and PO/POT files to build itself, so it could present DocBook built PDFs but | 13:07 |
not have to deal with the same HTML (or something). | ||
Sparks | quaid: Thanks... I didn't remember that. | 13:07 |
quaid | zk-Simon: well, we've always just had it manually | 13:07 |
quaid | http://docs.fedoraproject.org/release-notes/f10/ | 13:07 |
quaid | when we do an update, we'll push all that down and mark it as original content (10.0.0) and put the latest at the top (10.0.1 for example.) | 13:08 |
quaid | we don't update this content _that_ often ... maybe once or twice a release. | 13:08 |
quaid | but we could do it more if it were easier; in that case, we'd want it obvious which version was what. | 13:08 |
zk-Simon | quaid: We'd be talking a custom built interface for something like that then, I can't think of any generic frameworks for such a process. | 13:09 |
quaid | zk-Simon: fwiw, we are totally flexible in the what and how; maybe we're not looking at the problem the right way due to having done it the | 13:09 |
hard way for so long :) | ||
quaid | maybe we don't want to expose older versions, for example -- why install buggy software? why use buggy documents? | 13:10 |
quaid | zk-Simon: how does Zikula handle document blogs? I.e., I've got an OO.org document I want to publish in this CMS, etc. | 13:11 |
zk-Simon | It's a difficult one actually, I'd have to have a think. | 13:11 |
quaid | ok | 13:11 |
quaid | it may be that we want to just use the native gettext, if we can figure out what to do with the XML | 13:11 |
zk-Simon | quaid: Depends how you want it to work, we have a standard WYSIWYG editor with the usual copy and paste functions, but there's also a | 13:12 |
module called 'MediaAttach' which allows uploading of e.g. PDFs and provides inline reading/previewing. | ||
quaid | still, we've been looking forward to having downloadable PDFs for a while; people also like tar/zip archives of the HTML. | 13:12 |
quaid | does MediaAttach have a way to associate it with a workflow? | 13:13 |
quaid | that is, can a MediaAttach(ed) item be put in a workflow like a regular chunk of content? | 13:13 |
-!- abadger1999 [n=abadger1@nat/redhat/x-8f64f9c0a0b4d61c] has joined #fedora-docs | 13:13 | |
zk-Simon | quaid: Yes, absolutely. Through the WYSIWYG you can click a button, browse through available media and insert a tag - this then pulls in | 13:13 |
the media attach item when displaying the page | ||
zk-Simon | Bad example, but the only one that springs to mind would be: http://www.wolfsonhillel.enfield.sch.uk/index.php - the video and pcitures are | 13:15 |
inserted into the cotent from mediaattach using a visual editor. That was authored by some school teachers after a couple of hours | ||
training. | ||
-!- LinuxCode [n=Titan@fedora/LinuxCode] has joined #fedora-docs | 13:16 | |
quaid | so we might be looking at customizing or making a new module to deal with HTML as blobs. | 13:18 |
zk-Simon | quaid: I wouldn't necessarily start completely from scratch, because we already have a module that does >90% of what you need with | 13:18 |
revisions and so on. How we'd integrate the translations system to that would be the key. | ||
quaid | zk-Simon: the main site under fedoraproject.org is going to need a CMS; we're doing a sort-of proving grounds with docs.fedoraproject.org; so | 13:19 |
far it seems clear Zikula could do all that fedoraproject.org needs, it's a much more classic example of a website built with a CMS. | ||
* quaid was just thinking outloud :) | 13:19 | |
zk-Simon | I've built websites with complex translation flows before - but sadly it seems there is no holy grail, everyone needs a solution that works | 13:20 |
slightly differently | ||
quaid | aye | 13:20 |
quaid | still, one thing about our need ... | 13:20 |
quaid | Transifex is gaining wider usage and acceptance | 13:20 |
quaid | and our workflow is built from how we translate packages | 13:20 |
quaid | so it's possible that work here will actually be useful to other e.g. open source projects :) | 13:20 |
zk-Simon | quaid: We have been looking at our translations system for a while, so a bit of experience on best-practice will be helpful for sorting it | 13:21 |
out. | ||
quaid | Transifex is mainly an interface in front of N version control systems, which can be hosted anywhere; the SCM admin just adds a 'transif' user | 13:21 |
that has permissions to add/edit PO files and the LINGUAS file. | ||
quaid | so for example, Zikula could extract strings to a POT file and put it in git, then Transifex would handle all the translations, and you'd use | 13:22 |
gettext to build the translated pages with the PO files from git. | ||
quaid | (we could use an SCM at fedorahosted.org so that could be external and specific to the project, to make it a more reusable hack) | 13:23 |
zk-Simon | Your best case workflow? Write in English docbook, commit to SVN, export to HTML/PDF, upload to website? Translators use transiflex to | 13:23 |
translate English, export and this is automatically associated with the English content on the website? | ||
zk-Simon | I'd need to be clear on exactly how it should work before I could think about the solution to the problem :) | 13:24 |
zk-Simon | I'll be back in 5 minutes, apparently I'm wanted | 13:25 |
quaid | zk-Simon: I think you have that best case correct, although I think there is some flexibility in the end points -- the association with a | 13:26 |
source version. | ||
quaid | that is, English isn't always going to be the original language. | 13:26 |
quaid | the automatic association is more with a specific content area (RElease Notes, installation guide, user guide, etc.) | 13:26 |
quaid | i.e., docs.fp.org/release-notes is the container for release notes | 13:27 |
quaid | release-notes/f11 is the container for Fedora 11 released notes | 13:27 |
quaid | within that final container is N language-specific versions of the release notes | 13:27 |
quaid | ... and they could get updated with fresh content individually, so we could have an updated english and spanish, with the others having the | 13:28 |
previous version of content. | ||
* quaid has to do some stuff, will check back in a few too | 13:28 | |
-!- stickster_food is now known as stickster | 13:28 | |
Sparks | quaid: Do you have any other questions? | 13:28 |
Sparks | quaid: I think I'm out. | 13:28 |
zk-Simon | Back. Ok, I'll consider on that and see if I can figure a solution | 13:30 |
Sparks | zk-Simon: Is there a good way we can contact you (email?) that I can put on the wiki? | 13:31 |
zk-Simon | simon@zikula.org is best for Zikula-related stuff. I can drop into IRC whenever if you'd like me to answer questions in real time again. | 13:32 |
Sparks | zk-Simon: That would be great. We have our Docs Project meeting on Wednesdays at 1900 UTC. | 13:32 |
Sparks | zk-Simon: Those meeting are held in #fedora-meeting. | 13:32 |
Sparks | You'll see the post I'm going to make on the listserv. | 13:33 |
zk-Simon | Ok, I'm happy to drop in if you feel it's helpful | 13:33 |
Sparks | zk-Simon: I appreciate you taking time to talk with quaid and I today. | 13:33 |