Helping someone move from Joomla to Django

409 views
Skip to first unread message

Kevin

unread,
Sep 28, 2011, 3:58:33 AM9/28/11
to Django users
Hello,

I have a friend who is doing website design, not any backend
programming tasks. He actually would like me to do the backend
coding. The unfortunate case is that he is currently using Joomla,
which I know almost nothing about, and the apps/plugins for it are not
reusable in other website frameworks, not even other PHP frameworks,
icky! I really enjoy Django because if you create a reusable app, and
say use Pinax, it will most likely work as well in say Django-CMS or
another CMS build on top of Django and Python.

This question is really for anyone who has previously used Joomla
and knows how the editor works for web designers and content
managers. I have seen and used it's site manager only a few times. I
took a look at both Pinax and Django-CMS. After looking at Django-
CMS, it has a similar feel to that of Joomla with in page editing and
is overall very simple for a content manager/web designer. It's also
very straight forward and supports a lot right out of the box.

My current task with my friend is to create a music player, I have
been working with jPlayer recently and finding out how I can integrate
it with Joomla, haven't took too much time yet. I'm quiet happy about
that choice now, since Django-CMS actually has a plugin just for this
player.

How would you recommend I go about this task of moving my friend
over to a Django/Python based system over a Joomla/PHP based system?
How easy will it be to say convert a Joomla template to a Django
compatible one? This will be another issue, is template management.
Since there is really no standard for website templates, every CMS/
framework uses it's own system. I believe Joomla's templates even
embed PHP code directly into the template itself, another icky.

I am going to pitch the idea and use the jPlayer plugin for Django-
CMS as a sweet spot. I'm also tempted on copying over all the
existing content to a Django-CMS site to show him how it will look and
feel.

He is requesting some other interesting features, which apparently
someone else is working on implementing, and it's actually taking this
other person a few days, or maybe weeks to add. Where I know I can
implement it in Django in a matter of hours. If the other person is a
PHP programmer, me pitching this idea may scare the other person. PHP
programmers are sometimes very proud and are hard to turn. I, myself
used to be like this, that is until I found myself getting byte by a
huge Python, it's venom changed my life entirely. I saw the light.

What is everyone elses opinions on development in Django verses a
rival CMS such as Joomla? Just looking at how the Joomla source tree
is scares me from even looking at how to code anything in it. After
using Django for awhile, I like how nicely everything is organized.

Derek

unread,
Sep 29, 2011, 2:19:30 AM9/29/11
to Django users
First up, I am not a PHP/Joomla programmer... but some of my good
friends are/were PHP-junkies!

I really think you have mostly answered your own questions here. It's
your own experience, and your ability to compare both tools/systems,
that gives you the insight you need. For example, you say "it's
actually taking this other person a few days, or maybe weeks to add.
Where I know I can implement it in Django in a matter of hours." So,
do it. 'A few lines of solid code is worth a thousand powerpoint
presentations.' If your friend currently believes PHP is "the best",
you won't convert him by saying "Django is better" (this is not how
programmers think...). What you can do is say "wouldn't it be cool to
try something new for a change ... but you can always go back to PHP
later?" Challenge (or work with) him to try and do the template
conversion, for example - diving in is the best way to learn, and you
may even end up with an article to sell to an online magazine, or at
least a blog post or two to impress your fellows. Working with him
allows you to easily answer all the small issues that always pop-up
when trying to learn an unfamiliar tool/system, and helps ensure that
these are not road-blocks on the path to "enlightenment".

My 2c!
Derek

Baurzhan Ismagulov

unread,
Sep 29, 2011, 5:42:16 AM9/29/11
to Django users
On Wed, Sep 28, 2011 at 11:19:30PM -0700, Derek wrote:
> > � How would you recommend I go about this task of moving my friend

> > over to a Django/Python based system over a Joomla/PHP based system?
...
> > � He is requesting some other interesting features, which apparently

> > someone else is working on implementing, and it's actually taking this
> > other person a few days, or maybe weeks to add. �Where I know I can

> > implement it in Django in a matter of hours.
...
> > � What is everyone elses opinions on development in Django verses a

> > rival CMS such as Joomla?

If I had to add features or integrate stuff, I'd stay away from Joomla
(or any heavyweight CMS like Zope / Plone, for that matter). Can you
implement or at least prototype a few URLs in Django? In that way you
could answer your question about templates and demonstrate the
advantages to your friends.

If you don't succeed,
http://groups.google.com/group/django-users/browse_thread/thread/4981ed32e8b910cd/601e5b97e1c43de8?lnk=gst&q=animuchan#601e5b97e1c43de8
could be an option.

With kind regards,
--
Baurzhan Ismagulov
http://www.kz-easy.com/

Kevin

unread,
Oct 6, 2011, 4:22:34 AM10/6/11
to Django users
I might say just 'WOW!'... I just took some time to go over the
Joomla documentations to see what I was up against. Why do developers
even use this thing? Sure maybe the frontend is nice and polished,
but the backend looks horrible, at least compared to Django. Django
code looks much more cleaner, and what's up with this statement at the
top of almost every page:

<?php defined( '_JEXEC' ) or die( 'Restricted access' );?>

If I had to place that in all my source code, I'd go crazy! You
shouldn't need to use such a thing in sane programming.

If you look at how they built their MVC implementation, it's rather
messy and very confusing. On top of that, Django documentation and
tutorials are much more better organized. I couldn't a non-HelloWorld
example, such as even a Poll example which Django uses.

The template system is not really a template system, but rather a hack
and uses PHP inline to implement functionality. There appears to be
some template tags, but aren't compatible with web authoring software,
as the tag use < and >.

There doesn't seem to be an ORM of any kind, or lack thereof an
example for it. The database example I stumbled upon in the
documentation uses RAW SQL code. This can be prone to security issues
if not properly coded and filtered.

Django really needs to be advertised more, and perhaps an easier
method to deploy and manage templates/apps. I can see how Joomla has
the community it has, installing templates and components(as they call
them) are very simple and mostly pain-free.

Does Django have an app which makes managing templates and apps and
the settings.py file easy for novice users? I, myself am able to use
Django quite fully, but for new users who might be looking for an
alternative from other frameworks, should have a good solution for
this.

The ability for new developers to easily "dive in" and test drive
Django will be a nice bonus. Given that a good chunk of the world
uses Windows on their desktop PCs, a nice easy way to get a Django
development environment up and running should be looked into. I
recently found a nice website(which is no longer there),
instantdjango.com, they provided a nice self-extracting 7zip EXE file
with a contained django environment. A batch file launched the
command prompt with the correct python environment variables set, it
was rather nice. There needs to be an official django release of such
a development environment. I still have a copy of the downloaded
environment if anybody wants to check it out/distribute it amongst
friends:

http://c18321.r21.cf1.rackcdn.com/django.exe

I can see plenty of users moving over to Django if they just saw how
much easier it is to code in Django.

On Sep 29, 4:42 am, Baurzhan Ismagulov <i...@radix50.net> wrote:
> On Wed, Sep 28, 2011 at 11:19:30PM -0700, Derek wrote:
> > > How would you recommend I go about this task of moving my friend
> > > over to a Django/Python based system over a Joomla/PHP based system?
> ...
> > > He is requesting some other interesting features, which apparently
> > >someoneelse is working on implementing, and it's actually taking this
> > > other person a few days, or maybe weeks to add. Where I know I can
> > > implement it in Django in a matter of hours.
> ...
> > > What is everyone elses opinions on development in Django verses a
> > > rival CMS such as Joomla?
>
> If I had to add features or integrate stuff, I'd stay away from Joomla
> (or any heavyweight CMS like Zope / Plone, for that matter). Can you
> implement or at least prototype a few URLs in Django? In that way you
> could answer your question about templates and demonstrate the
> advantages to your friends.
>
> If you don't succeed,http://groups.google.com/group/django-users/browse_thread/thread/4981...

graeme

unread,
Oct 6, 2011, 9:12:21 AM10/6/11
to Django users
Joomla may have those shortcomings, but its not the only alternative.
If someone likee PHP, already knows PHP or has to use PHP, there are
a lot of PHP fraeworks: from light ones, to ones feature comparable
to
Django (although I do not know of any framework that can match
Django Admin).

The best answer to the original question may be to persuade him to try
a better PHP CMS or framework. I am looking at some myself at the
moment.

On Oct 6, 1:22 pm, Kevin <kveron...@gmail.com> wrote:
> I might say just 'WOW!'...  I just took some time to go over the
> Joomla documentations to see what I was up against.  Why do developers
> even use this thing?  Sure maybe the frontend is nice and polished,
> but the backend looks horrible, at least compared to Django.  Django
> code looks much more cleaner, and what's up with this statement at the
> top of almost every page:
>
> <?php defined( '_JEXEC' ) or die( 'Restricted access' );?>

That is in case someone tries to execute the file directly rather than
through
the rest of Joomla. Its standard for PHP. Its a fallback for missing/
bad server configuration.
Its the price for being able to run some scripts without loading
your framework (or only chosen bits of it) simply by creating them in
the right place in the filesystem.


>
> The template system is not really a template system, but rather a hack
> and uses PHP inline to implement functionality.  There appears to be
> some template tags, but aren't compatible with web authoring software,
> as the tag use < and >.

PHP is a template system :) I rather like that.

>
> There doesn't seem to be an ORM of any kind, or lack thereof an
> example for it.  The database example I stumbled upon in the
> documentation uses RAW SQL code.  This can be prone to security issues
> if not properly coded and filtered.

There are PHP ORMs and frameworks that use them. Joomla,
unfortunately,
does not use one of them.

>
> Django really needs to be advertised more, and perhaps an easier
> method to deploy and manage templates/apps.  I can see how Joomla has
> the community it has, installing templates and components(as they call
> them) are very simple and mostly pain-free.

Agreed.

PHP is also very easy and cheap to host. I can run a small PHP site
on reliable hosting for $1 a month. The cost matters to people running
lots of
sites, or kids who are tomorrows developers, and for hobby sites. Lots
of
people are also more inclined to try something their existing hosting
supports.

Greg Maruszeczka

unread,
Oct 6, 2011, 10:00:39 AM10/6/11
to django...@googlegroups.com
On Thu, 6 Oct 2011 06:12:21 -0700 (PDT)
graeme <graeme....@gmail.com> wrote:

> Joomla may have those shortcomings, but its not the only alternative.
> If someone likee PHP, already knows PHP or has to use PHP, there are
> a lot of PHP fraeworks: from light ones, to ones feature comparable
> to
> Django (although I do not know of any framework that can match
> Django Admin).
>
> The best answer to the original question may be to persuade him to try
> a better PHP CMS or framework. I am looking at some myself at the
> moment.
>

+1

Joomla sucks IMHO and not a great example of PHP-based framework/CMS.

FWIW I think Symfony is a pretty good PHP framework. Uses OOP,
alternative ORMs and a pretty good admin interface right out of the box.
I found moving from it to Django relatively easy...

Reply all
Reply to author
Forward
0 new messages