Joomla 3 Plugin Design - php

Does anybody know of any good references/tutorials for plugin/extension design for Joomla 3? I'm struggling to find up to date information.
Specifically I want to make a plugin to extend the K2 registration functionality so information on how to integrate plugins with other Joomla extension would also be great!
I'm reasonably proficient with php but I've only started to look at Joomla code so maybe that's worth considering!

For Joomla! specific information use the Joomla Docs website at http://docs.joomla.org, it has a Developers page. While most documents have been updated for the 3.x series it's worth knowing that a lot of the 2.5.x articles are still relevant.
Joomla supports three main extension types — modules, plug-ins and components.
Joomla! Magazine had a series starting back in Feb 2013 on Extension Development as well.
Finally there are also a range of good books/eBooks, including official Joomla! Press titles, and 3rd Party books, the most recent I'm aware of is "Learning Joomla! 3 — Extension Development" from PackTPub. [Disclaimer: I own a copy of this book and know the author from the Sydney Joomla User Group that he co-ordinates & hosts each month.]
For K2, I would suggest the community forums and Google (as their developer focused documentation is, shall we say, very scarce).
The other good way is to look at how existing K2 extensions are written.

Related

How to build a bespoke website driven by Wordpress

My questions about Wordpress
From what I can gather, Wordpress is fast becoming the norm for building content managed websites. Up until now, I have used my own CMS systems to allow my clients to manage their sites content etc. However, I was recently asked to build a Wordpress driven website, and as the client insisted on using Wordpress, I subsequently lost the contract...
Resultantly, I am very keen to learn how to build and program a Wordpress site from scratch. I am not interested in templates provided when you install Wordpress on your server, I am only interested in building a fully bespoke website, with the ability to update the content using the Wordpress management engine.
I therefore have the following questions with regards to how Wordpress works (I am completely new to this).
Can I build a completely bespoke designed website and have Wordpress manage the content?
Are there any limitations to using Wordpress to manage the content?
Can I specify which content is editable?
Are there any 'from the ground up' tutorials on starting to build bespoke Wordpress driven websites?
Where can I find the documentation for the Wordpress API (if there is one)?
Do I install Wordpress in the same way that I would if I was using the built in template engine? In other words, do I still install Wordpress as a package in Plesk for the particular domain?
Does the code have to be in a specific format, or structure?
I effectively would like to find (or be pointed to) an article that clearly explains how Wordpress works and how advanced web developers can make the most of it.
I appreciate that this question is not really related to programming, if it needs to be moved then please advise as to where I can re-post it.
My Research
I appreciate that the answers to these questions will be located somewhere on the web, but thus far, I have been unable to find any really helpful tutorials on this specific topic.
I have read through pages such as the following, and whilst they were helpful, they do not really explain 'in brief' what Wordpress is and how it can be manipulated:
Where to start
Features and Functions
I below is my answer.
Can I build a completely bespoke designed website and have Wordpress manage the content?
Yes you can. Here you can find some sites that are built on wordpress. You can get an idea of what kind of stuff can be done.
http://designwoop.com/2011/12/best-wordpress-themes-of-the-year-2011/
http://www.tripwiremagazine.com/2012/07/wordpress-websites-examples.html
Are there any limitations to using Wordpress to manage the content?
According to my experience building wordpress websites, plugins and widgets, I would say you will rarely come across where you want to do something and you can't. If you know well enough php and understand OOP you can basically build whatever you want. In fact there are so many plugins that most of the time you could even get away with not writing anything (in your case this is irrelevant as you want to learn).
Can I specify which content is editable?
Yes. Other wise there is no point of using any CMS. I am sure this would be the most basic feature of any CMS out there.
Are there any 'from the ground up' tutorials on starting to build bespoke Wordpress driven websites?
Here are few tutorials you can start with.
nettuts
css-tricks
wptuts
And of course the best way to learn is the starter theme that comes as default with wordpress installation. You can find more themes here.
Where can I find the documentation for the Wordpress API (if there
is one)?
The wordpress documentation is quite detailed covers most of the things. While learning or even further this will be your best resource. I usually tend to read the code itself if I want to know how the function works and other details which of course documentation won't cover.
Do I install Wordpress in the same way that I would if I was using
the built in template engine? In other words, do I still install
Wordpress as a package in Plesk for the particular domain?
Installing wordpress is as simple as copying it to your server and accessing it via the browser. You will get on screen step by step instruction. It could not be easier than that. And if somehow you got stuck, there are hundreds of tutorial online or you can visit the wordpress codex site.
Does the code have to be in a specific format, or structure?
Of course you would be following the wordpress coding style (not necessary for but recommended for sake of being consistent). Depending on your skill level you will fairly pick up the standards.
If you are building plugins or widgets, which I assume if you want to build sophisticated websites, you must follow the coding standards.
By the sounds of it, you need to learn about writing a theme from scratch. A Wordpress theme gives you absolute control over the HTML that's outputted by the engine. You can therefore customise your site to look however you want it to look. My company website, tec20, was designed this way without any themes used from wordpress.com. Obviously the themes are aimed at writing blog sites, but you don't have to include any of the commenting hooks, for example.
These tutorials may help:
http://rockablethemes.com/wordpress-themes-tutorials/

How do you do simple stuff in Magento?

So I've been following tutorials from
http://www.webspeaks.in/2010/07/create-your-first-magento-module.html?showComment=1331751126549#c2304517526193268399
and
How to create a simple 'Hello World' module in Magento?
I have some basic understanding but what I'm really trying to do is just make a text area box that can store information to the database. One is a comment box for the payment information and another is a notes area regarding clients. Any links or tutorials will help, thank you!
There are heaps of thorough resources, blog posts, and of course Stack Overflow.
Here's a list of my favorites:
alanstorm.com - Alan is a notorious developer who has contributed a lot to the Magento community. Also, his Magento Quickies tumblr is sweet.
aschroder.com - A Kiwi who must've cloned himself to do all of the things that he's done.
www.fabrizio-branca.de Fabrizio is another tireless worker in the Magento world, and he shares lots of information about Magento and Typo3 on his blog.
inchoo.com - Inchoo are a Croatian development firm, and they have been deciphering the framework and posting information to all for several years.
magebase.com - A collection of Magento developers who put out posts that can help out quite a bit
Magento Knowledgebase - Magento has a full knowledgebase, and Alan Storm's developers series is a must-read for folks new to the frameowrk
Magento U - Magento recognized that they needed to get more information out there, so you can get the Fundamentals of Magento development course for free or take it in-person
Stack Overflow Magento Questions - One of my favorites!
The codebase - There's no learning without firing up your IDE and stepping through things.
Have fun. Magento is distinct!
There really is no such thing as 'simple' in Magento. That being said it is a very consistent MVC architected system, allowing for extension and overriding to achieve the system you want.
I have found that one of the best resources for learning Magento development is Alan Storm.
Another good resource is Pierre Fay, Pierre's target is creating a Magento Plugin from start to finish, but it gives you a good view of the internals of Magento.
I find new info on Magento development every day, just by googling certain features.
Enjoy!

Joomla 1.6 and CakePHP integration

I dont seem to understand how do you integrate CakePHP framework with Joomla 1.6 CMS?
I have been reading and JAKE is commonly mentioned for the integration.
How does Jake assist in the integration, there are very limited resources online which guide me on this.
Is there any site where I can get a good understanding on the linkage between CakePHP with Joomla 1.6 using JAKE.
Thank you.
Max (the guy who made Jake) wrote an article back in 2007 explaining exactly how the linkage between Cake and Joomla works:
http://www.gigapromoters.com/blog/2007/01/28/joining-powers-of-two-great-systems-joomla-and-cakephp/
However, the official Jake site seems to be down and there has been very little talk of anything relating to Cake/Joomla since 2007.
Since then, however, there have been several CMSes created specifically for Cake, so perhaps one of those ones will do what you're looking for? Here's a good blog article with a mini-review of 13 different CakePHP CMSes:
http://blog.dreamcss.com/content-management-system/cakephp-based-cms/
The Jake project was a great idea, but as you note it wasn't maintained for some time and the last release in 2007 is incompatible with the current stable versions of CakePHP and Joomla.
That in mind, I went ahead and upgraded it to work with the current CakePHP and Joomla, after adding in a feature to support friendlier URLs. Feel free to check it out at http://blog.echothis.com/2012/09/26/jake-2-0-released/.
Here is a CakePHP component for Joomla 3 :
https://github.com/ahmad24/JCake
you can access the controller and action by passing the parameter tasks=controllername.actionname
Back end example:
localhost/joomla_32/administrator/index.php?option=com_jcake&tasks=tests.index
Front end example:
localhost/joomla_32/index.php?option=com_jcake&tasks=tests.index

Joomla's extent for a custom but yet simple web social platform

I know Joomla as a CMS manager, which is a system that manages different contents (texts, media,... etc).
But people tend to say: ALWAYS use joomla for your pro projects... bla bla
Let's imagine I need to do the following:
A web site where registered users post quotes (like in chucknorrisfacts.com for example), quotes are moderated, then published to people. And quotes have comments (from registered users).
How would Joomla help me easily building such a website ?
Because I think I can develop it very fast by starting from the scratch, but in another hand I'm very very interested in using Joomla as a base in order to learn it, and experience CMS methodology.
The Joomla administration console helps putting components on the websites and all that stuff, but what happens when we do need to store user input, submit it to users moderation, then publish this content and allow comments on it ? Does this require Joomla plugin development ? Or is there another road that could be taken...
My question might seem noobish, that's because this is going to be my first experience with a CMS though.
Wow. Where to start. First, the Joomla core does not support all of the requirements as it does not have a built in commenting system. Next, plenty of "pro" sites use Joomla, Wordpress, and Drupal. Big sites with big traffic and big budgets. More and more corporate sites are going looking to OS CMS, they have really come a long way in the last couple of years. Last, Joomla 1.0 stopped being supported a LONG time ago. Since 1.0, 1.5 released and had 22 updates, and 1.6 released earlier this month.
As for the original question, Joomla would be an excellent choice for the requirements described because it can easily be done with just K2. You can set up a specific content type for quotes, assign registered users as authors that can submit content, and turn on commenting for registered users. All of this is built in to K2 without any modifications.
I think Joomla does support that from core.
The quote of using joomla on pro sites is WRONG.
The real pro sites are custom build or use a professional CMS.
The semi pro sites use joomla (or any other OSS CMS).
Why?
Joomla is (at least the 1.0 version) slow, and not friendly to your server.
Also Joomla is vulnerable to attacks from script kiddies.
Not as unsafe as Wordpress though...

eZ Publish beginner

i am trying to learn eZ publish CMS , and i could not find any decent tutorials which is easy to understand and learn , plz if anybody could help me out with the links to any useful tutorials i would really appreciate it....
The documentation, althought a bit sparse in places, should cover enough to get you started.
What are you looking to learn? The content management/user side, template development, module development?
The latter completely lacks documentation, but you can pick up template development by taking a look at ezwebin (bundled with the installation) and looking at the Reference section of the technical manual.
2 links :
A great collection of up-to-date tutorials : An Introduction to Developing eZ Publish Extensions, Creating a simple custom workflow event, A Quick and Friendly Introduction to eZPersistentObject, Fetching User Objects with PHP, Understanding and developing fetch functions, learning eZFind, etc.
Some other eZ Publish Tutorial on Siteground.com
You want to use this CMS or you want to develop it?
Try going to http://doc.ez.no/. Until I took the official eZ Publish Basics Training Course, I had a hard time grasping it as well. eZ language is not Smarty so don't try going that route. Read both the technical manual and user manuals which are currently written by Europeans so it's hard to read. An American copywriter is re-writing them for easier comprehension.
packt publishing also has an ez publish book available.
http://www.packtpub.com/Managing-eZ-Publish-Web-Open-Source/book
Adding these links for more relevant times.
Those who wish to explore eZ Publish, it now sits on the Symfony framework (full-stack).
eZ Publish 4.x and older versions are now considered the "Legacy Stack" ("LS"). eZ Publish LS will be supported throughout version 5.x with fallback functionality however the support may be dropped on versions 6.x and LS may even be removed from the download package in versions 7.x.
So here are some links to get you started:
eZ Publish 5.x Documentation which provides links to:
eZ Systems on GitHub
eZ Systems JIRA Tracker
eZ Publish on is on IRC: #ezpublish, irc.freenode.net
Symfony Documentation (for learning the framework's layout, yml, twig
etc)
Share.ez.no: Read tutorials, blogs and forum posts on the share portal
Get involved with the North America meetup. We have monthly code
shares and other meetups.

Categories