Since its introduction in 2005, Joomla has become the first choice of PHP based web site developers. More and more developers are turning to open source CMS products, and Joomla is their first pick due to several reasons. Some of them are listed below -
1.Joomla is free and its source code is available
Joomla’s most striking feature is that it is completely free for personal and commercial use, it doesn’t have any hidden costs, and it is open source. Many people do not like to use free software unless it is also open source. The reluctance could be due to a hidden fear of malicious coding, viruses or adware. All these factors do not affect Joomla since it’s source code is freely available on its own web site. Anyone with enough knowledge of PHP and MySQL can download the source code and look for themselves. You can even modify the source code to suit your needs if you are ambitious.
2.The Menus are created in real time
In most other CMS packages, menus are hard coded when you develop the web site. It is fine for the first time, but it becomes very difficult to make changes to those menus afterwards. It becomes a nightmare to update hundreds of web pages just to make a slight change in menu system. With Joomla, the scene is different. Its menus are created in real time. This means, you can add the menu items using any standard text editor like notepad or myedit, and paste the changes once into the Joomla editor. Joomla takes care of reflecting those changes in all affected web pages. Same thing is applicable for images and other objects.
3.Templates, Templates and more Templates
No CMS software is complete without support for additional modules. All commercial and most of the free CMS products offer support for external modules. Nothing comes even closer to Joomla in this case. With a dedicated team of several thousand developers worldwide, there are practically thousands and thousands of templates, plug-ins and extensions ready for downloading. Most of them are free of cost. Even those which are commercial cost much less than other commercial packages.
Availability of free extensions is probably second biggest reason for the popularity of Joomla. (The first reason is obvious – it’s free)
4.Control Panel – The best one around
However powerful a CMS product might be, there are times when you need to add, remove or modify its contents. Joomla excels in this area too, since its interface is user friendly, help is always available, and the user forum (With hundreds of users willing to offer you their advice) is great!
5.Joomla has one of the largest user base
Don’t underestimate this. This means there are plenty of user forums, free advice, feedbacks, free code, bug fixes, templates, suggestions available to you at any time. It is almost one of the liveliest communities on the web with something new to offer every time you visit their sites.
I've now completed editing of module parameters in a modal popup. Edit icons appear next to the module titles which can be clicked to edit the module parameters. I've deliberately disallowed editing of advanced and other parameters from the modal popup at the front-end to avoid complexity. If it is a custom HTML module, then its content can also be edited via the modal popup.
There are bugs in article & module editing which I'll be fixing in the coming weeks along with adding support for IE and other browsers.
As bobbravo2 pointed out, I'm not sure if the edit icons should be hidden/revealed when editing is toggled or the toggle function should only work for enabling/disabling of editing of titles in-place. The only reason a user will click an edit icon is if she wants to edit the article/module. But then, it makes sense to either enable or disable editing completely rather than partially. I would like your point of view on this.
I'm not sure if I can implement in-place editing any other way ( other than the current way of background-color on hover and clicking to edit ) which will not interfere with the template and at the same time be user-friendly. I don't want popups to be clogging the UI every time you hover over a title as it will be difficult to ascertain the right position where the popup should appear ( template dependent ).
To make it easier to enter or leave editing mode, I've implemented a shortcut key 'e', using which you can toggle editing On/Off. So, anytime you want to perform editing, just press 'e'.
The next task I'll be taking up is of drag & drop placement of modules. Hence, in the coming week, I'll be fixing bugs plus starting up with drag & drop placement of modules.
The sh404SEF Plugin makes Joomla SEO easy. I’ll be posting some simple Joomla seo tips to make Joomla sites work better in Google.
First up – download and install the Joomla sh404SEF Plugin or rather Component.
You can read what others say about this plugin on the Joomla forum, and the instructions to get working are printed below.
sh404SEF Install Documenttation & Instructions
IMPORTANT : if you plan to use mod_rewrite (.htaccess) rewriting :
BEFORE making any attempt to activate this component and use its URL rewriting functions, your Joomla installation should already be compatible with URL rewriting. This is not required if you select no .htaccess rewrite mode in sh404SEF advanced parameters (but this mode may not always work as well, depending on your server settings).
Remember : if you are having difficulties with this, it is unlikely to be a joomla problem, but most likely something related to your server setup. For instance, many times, you will be faced with 404 errors or Internal server errors 500 display. This indicates that there is something in your .htacces file that is not compatible with your apache server setup.
If you face this kind of errors, I will suggest you contact your hosting company for assistance.
More advice on .htaccess:
Joomla standard .htaccess is very FINE. It will work with most hosting companies. You should use it unmodified, at least to start with. Just remember it comes named as htaccess.txt, so you need to rename it to .htaccess before anything.
Joomla standard .htaccess comes configured for Joomla standard SEF system (which makes sense!). To use it with sh404SEF (or OpenSEF, Artio JoomSEF, SEF Advance), you must open it up in an editor, and make the few changes explained in it:
If you scroll down towards the end of the file, you’ll see two sections, one marked Begin – Joomla! core SEF Section, and just next to it another marked : ########## Begin – 3rd Party SEF Section
Now the tricky part : you should type # at the beginning of each line of the first section, and remove those # in front of those in the second section, so that the whole things looks like :
########## Begin – Joomla! core SEF Section ############# Use this section if using ONLY Joomla! core SEF ## ALL (RewriteCond) lines in this section are only required if you actually ## have directories named ‘content’ or ‘component’ on your server ## If you do not have directories with these names, comment them out. # #RewriteCond %{REQUEST_FILENAME} !-f #RewriteCond %{REQUEST_FILENAME} !-d #RewriteCond %{REQUEST_URI} ^(/component/option,com) [NC,OR] ##optional – see notes## #RewriteCond %{REQUEST_URI} (/|\.htm|\.php|\.html|/[^.]*)$ [NC] #RewriteRule ^(content/|component/) index.php # ########## End – Joomla! core SEF Section ########## Begin – 3rd Party SEF Section ############# Use this section if you are using a 3rd party (Non Joomla! core) SEF extension – e.g. OpenSEF, 404_SEF, 404SEFx, SEF Advance, etc # RewriteCond %{REQUEST_URI} ^(/component/option,com) [NC,OR] ##optional – see notes## RewriteCond %{REQUEST_URI} (/|\.htm|\.php|\.html|/[^.]*)$ [NC] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule (.*) index.php # ########## End – 3rd Party SEF Section
Notes : this is from the .htaccess that comes with Joomla 1.0.12. If you are using a more recent version of Joomla, in the 1.0.x series, use the latest version of the file instead of this one.
* If you get 404 errors or Internal error 500, or similar, when clicking on a rewritten URL, then you should try adding another # at the beginning of this line (near the top of the file): Options FollowSymLinksso that it looks like:#Options FollowSymLinks
* If that does not work, and if your Joomla site is in a sub-directory, you should look for the line that looks like:
#RewriteBase /
and replace it with : RewriteBase /sub_directory_of_your_joomla_install
* On some servers, even if your site is not in a sub-directory, you may want to try replacing
#RewriteBase /
by
RewriteBase /
* Try changing only one thing at a time, and check the result before moving to next step<br>
sh404SEF Configuration :
sh404SEF configuration is generally easy. For more information on each item hover your mouse over the blue (i) images when you are in the configuration screen. When you save the configuration it will remove all your URL’s from the database.
If you have a high traffic site it may be wise to put it offline before saving sh404SEF config or purging the database. After doing that, you should use an online tool to build automatically a sitemap or check for broken links. Those spiders will go through all of your site, and therefore all of your links, so they will be all automatically placed in the cache, thus speeding access for your next visitors.
The caching system of sh404SEF is transparent,and will be rebuild automatically whenever required. Using the cache will vastly speed up the page load time, by dramatically reducing the number of database queries. Beware that URL caching uses up a lot of memory though. Its size can be limited using the appropriate parameter, and it can also be turned off completely.
If you have a multi-lingual site, you can turn on or off URL translation. Normally, URL elements will be translated into the user language. However, it sometimes better not to translate, such as when using non-latin characters based languages. On such occasions, default site language will always be used You may want to purge the 404 log before creating fresh urls.<br>
Modifying URL's : You can modify Joomla URL’s to your liking and make them seo friendly.<br>
Go into Joomla Admin, then sh404SEF Control Panel and
click ‘ View/Edit SEF Urls’.
Select the URL you wish to modify.
If you click the check box labeled ‘Save as Custom Redirect’ it will place this URL into the ‘Custom Redirect’ area which you can navigate to from the sh404SEF Control Panel.
When you click ‘View/Edit Custom Redirects’ you will see your URL in here now instead. These urls will not be removed when you save the config. You can modify these and save them as you wish.
This is particularly useful if you are updating from an old site because any URL’s that are no longer availble will be logged.
You can view these URL’s by clicking ‘View/Edit 404 Logs’ in the sh404SEF Control Panel.
You can redirect visitors to the new page by selecting the URL you wish to modify and entering the new url.
The steps outlines on how you can make any joomla component to appear in the Home page of your website. Create an menu in the mainmenu as a link-component to the desired component.
Login in the administrator of the website
Navigate as Menu >> mainmenu
Click on "New"
Click on "Link - Component Item"
You will reach the page called Add Menu Item :: Component. Fill the following values to the form" Name: Name of the component that you want to link Component: Select the desired component that you want to appear in the site main page and leave the other options to default value
Click the Save icon
Once that is done, move the newly created menu item to the top, so that it appears 1st in the menu order.
The idea is to automate the process of Tag Cloud generation as soon as user writes a post or content on a page. It can be divided into two steps:
Generate Tag Clouds from the content.
Ideally, we would like PHP code to extract relevant tags (keywords) from the content. We do not want common words like “is”, “this”, “the” to be keywords. We can set up our own set of rules depending on the requirement.
Sample PHP code:
function generateTagCloud($content){ $minTagLength=5; $maxTagLength=14; $baseFont=16; $returnArray=array();
After we have all the tags (keywords) we need to display then according their occurrence or presence in the content. In other words, the tag which is present more times in the content will be displayed in bigger fonts as the rest.
Sample PHP code to achieve this is as follows:
function displayTagCloud($tagCloudArray){ $buffer=""; foreach($tagCloudArray as $tags=>$key) { $font=($baseFont+($key*10)); $font=$font."px"; $buffer.=" $tags "; }$buffer.=""; return $buffer; }
Step 1 - Search through the numerous available Joomla templates, and download one that suits your needs. This download will be a compressed zip file. Save the template to a specific folder.
Step 2 - Next, log in to the administrator panel of your Joomla website. Click on the link for the Installer’s menu.
Step 3 - Click on the Templates-Site option. Click Browse on the page that opens up.
Step 4 - Select the Joomla installation file that you had downloaded. Next, click on the Upload and install button, and then click Continue. This brings you to the Templates Manager. Select the radio button of your new template.
Step 5 - Next click Default, which will make this template the default design for your Joomla website. And you’re .
Setting up a Joomla Blog is not that difficult, you just need to be aware of some things before your start to crate your articles.
First thing your need to do is to crate a section that will hold all the categories of the topics you want to blog about. In my case that is a section called Joomla Blog....pretty cool he?
After that, create the categories for you blog section.
Start out with the basic topics you want to write about. For me it starts witj Joomla Blog setup, Joomla Blog components and Joomla Blog templates.
After those are completed, create a sperate menu for your Blog to hold the categories. Create the links to the categories and choose the blog layout so that you can easily give an overview of your articles.
Start writing your articles, but make sure you use the "More" tag after your article introduction. If possible create some small images that your can use per topic that you can incorporate in your intro. The picture size is up to you, but I use a 100 x 100 pixels on this website.
In this article we discuss the outlines of building a custom backend Joomla component structured on the MVC model.
The details and complete code are covered in the members area
We make a component that will write text to a text file. The user will enter the text in the component administrator interface. We shall name the component mytext. We will use our localhost installation to develop the component.
Step 1
Make a folder called com_mytext in the admin components folder.
administrator/components /com_mytext
Step 2
Create the component entry file. This is a php file with the name admin.mytext
Our model file will deal with the file handling. We extend the standard JModel class. In this case we will use PHP file handling routines to open our text file and write new text to the file
Example
class mytextModelmytext extends JModel
function getFile() { $file=JPATH_SITE.DS."mytext.txt"; $fh = fopen($file, 'r'); $this->_text=fread($fh, filesize($file));
The template view file displays the output and accepts input from the user. In our eaxmple we use an html form for this. The form will display the current text and allow the user to enter the new text. The form action method will invoke the corresponding action from the controller file.
Step 7
Create the install xml file
administrator/components/com_mytext/mytext.xml
Here we tell the Joomla installer what files exist for this component
In our example we will manually install this component.
Step 8
After testing your component locally, FTP the folders and files to the actual Joomla site
Step 9
Register the component in the database (jos_components)
That concludes this article on creating a custom back-end Joomla MVC component.
Replace $mosConfig_absolute_path with $this->baseUrl
Replace $mosConfig_live_site with JURI::base()
Replace fixed strings with translatable strings. For example, replace echo 'Hello' with echo JText::_( 'Hello' )
Replace calls to mosGetParam with calls to JRequest::getVar. For example, replace $id = mosGetParam( $_REQUEST, 'id', 0 ); with $id = JRequest::getVar( 'id', 0 );
Replace mosShowHead(); with <jdoc:include type="head" />
Replace mosMainBody() with <jdoc:include type="component" />
Replace mosLoadModules( $position_name, $style ); with <jdoc:include type="modules" name=$position_name style=$style />. (Note: the 1.0 template's PHP syntax may use single or double quotes. Jdoc expressions require double quotes, and won't work with single quotes.)
Sometimes your template will lose all its styles and images when navigating away from the Frontpage. This is caused by an incorrect path to the stylesheet due to SEF errors. If you've enabled SEF, make sure your htaccess.txt file is renamed to .htaccess. You may need to temporarily disable SEF. For more information on the correct way to set up SEF in Joomla! 1.5, see the official doc item at joomla.org: SEF URLs in Joomla! 1.5
SEF quick checklist:
Make sure htaccess.txt is renamed to .htaccess if SEF is enabled
Make sure your server/host supports all requirements