Tuesday 23 December 2014

Top 10 social extensions for Joomla

1. Joomla Coala Web Social Links

ACoalaWeb Social Links is a Joomla social extension that help site visitors bookmark content on your site as well as follow you through a variety of social networks. You can choose which bookmark and follow us links to display depending on your website needs plus it’s packed full of other configuration options to make it as flexible as possible. CoalaWeb Social Links is a complete social media package to help your site visitors bookmark content, follow you through a variety of social networks and vote for particular content with social buttons.

Download: http://coalaweb.com/extensions/joomla-extensions/coalaweb-social-links

2. Joomla Social Share and Vote button

Social Share/Vote Button is a popular Joomla plugin that shows social share or vote button in articles / content. It contains all popular social networks or share/bookmark sites that supports button/badge for vote/share.

Download: http://codeboxr.com/product/social-sharevote-button-plugin-for-joomla

3. JoomShareBar

Ultimate Social Sharing for Joomla! / K2
  • Display as Floating Skyscraper or Horizontal Bar
  • Lazy Loading (asynchronous) Buttons = performance!
  • Social buttons follow when scrolling your page
  • Fits Your website (design it yourself)

Download: http://www.joomarketer.com/joomla-extensions/joomsharebar

4. JExtBOX Social Share Buttons

This plugin adds social share buttons to your article, making it easy for your visitors to submit your articles and build traffic to your website.

The plugin supported Mongolian social websites (Biznetwork.mn) and new Google+.
Features
  • Postion – The positions (Top, Bottom and Both) of the buttons into your article
  • Excluded/included categories, articles
  • Excluded/included views (full article, featured, category)
  • Show or hide title. Title – The text which is located on the icons
  • Custom CSS
  • Facebooks og:tags, Twitter tags
Supported social sites
  • Biznetwork.mn
  • Facebook
  • Twitter
  • Google Plus
Download: http://jextbox.com/jextbox-social-share-buttons.html

5. BT SocialShare plugin

BT Social Share is a joomla extension that add social icons to your joomla article. Extension can be published at various locations in content, with 2 options display top or bottom of article. Plugin has backend settings where you can customize it. You can enable/disable each social network individually or show or hide them on specific sections, categories, individual articles or specific menus.

Download: http://bowthemes.com/joomla-extensions/bt-social-share-plugin.html

6. JFBConnect

Complete Facebook, Twitter, Google+ and LinkedIn integration for Joomla! Add Facebook, Twitter and Google+ Login and other Facebook features to your site.

Provides Facebook, Google+ AND Twitter registration; Facebook Open Graph; Facebook Invites, Facebook, Google, Twitter and LinkedIn social widgets; Facebook Page Tab & Canvas support.
Download: http://extensions.joomla.org/extensions/social-web/social-display/facebook-integration/7215

7. Joomla Youtube Plugin

YouTube plugin is the best, simplest and the most popular Youtube plugin! Youtube plugin now supports versions 2.5 and 3.0!

This simple little YouTube plugin will display the YouTube Flash player in your articles when inserting the YouTube ID for chosen Youtube video, Youtube playlist or Youtube custom player, between a starting youtube tag and an ending youtube tag. Both defined with brackets (simple instruction is included when you install the youtube plugin).
Download: http://extensions.joomla.org/extensions/social-web/social-media/video-channels/3659

8. KA Facebook Like Box

Fan box also known as Like box is a Joomla Module that displays Facebook Fanbox/Likebox into Joomla websites. 
The Fan Box lets users:
  • See how many users are already fans/like
  • Read recent posts from the Page
  • Let visitors become a fan with 1-click

What You Need:
Before you add a Like Box to your website, you need the following:
  • A Joomla 1.5, 1.6, 1.7 or 2.5 website,
  • Ability to install modules
  • A Facebook Page that promotes your website

Download: http://www.khawaib.co.uk/component/kadirectory/downloads/item/4-ka-facebook-live-stream.html

9. We Ultimate Facebook Comments

Facebook comments WITH SEO BOOST! for your Joomla site is here! With the plugin you can add the ability to your visitors to comments your artciles with their Facebook Account! With module you can add the same ability to any page/menu you want! Ultimate Facebook Comments supports multiply components intergration like K2,LyftenBloggie etc


Download: http://extensions.joomla.org/extensions/social-web/social-comments/13880

10. Joomla Simple Disqus Comments

Simple Disqus Comments is a Joomla! plugin that enables you to integrate Disqus Comments on your website.
By using unique identifiers, Simple Disqus Comments is compatible with all SEF extensions and also with JoomFish. Using unique identifiers, Simple Disqus Comments will always identify the Disqus comments associated with an article regardless of the article URL.
Simple Disqus Comments is able to automatically detect Disqus language based on article language.
Simple Disqus Comments enables you to separate or merge Disqus comments ​​on multilingual websites.

Download: http://extensions.joomla.org/extensions/social-web/social-comments/19482

11 most famous Joomla Twitter Modules

1. Latestweets
Latestweets, one of the best multi twitter module in Joomla allows you to display your latest tweets on your Joomla site or blog. You can display any twitter-user tweets on your site by simply adding the twitter user-name. The best feature with this plugin is, it supports both single and multi-user tweets display. This Joomla module is compatible with all advanced versions of Firefox, Chrome and Internet Explorer 7, 8. It is very easy to configure and has been developed in a user friendly manner. This module is also available for Magento.
2. Twitter Fan Page
This ultimate Joomla module allows you to display your twitter fans on your site. Twitter Fan Page also allows you to display your fan list on your twitter page. It is its awesome look that stands to be a best feature. While adding the fans, there occurs no page refresh or reload. It supports all modern web browsers (Firefox, Chrome, IE7, etc).
3. Twitter Show
Twitter Show is a Joomla module to display your tweets with features to choose and include colors that match the theme of your website. This extension is recognized as one of the best Joomla twitter module, with classes for widget type, profile or search. The module has a wide variety of options for appearance, preferences and number of tweets.
4. Twitter Feed
Twitter Feed is a simple module that displays a configurable number of updates (Tweets) based on the Twitter Search API. The result is a powerful component that enables you to have a great deal of control over which updates are posted to your website. Right from filtering out certain hashtags to displaying items with links, this module serves the best. It also allows you to apply a custom CSS styling to the rendered links. The tweet updates are rendered in CSS friendly DIV tags and can be easily styled to fit the look and feel of your website. It undergoes a simple configuration and the only required field is your Twitter username. The module allows you to display or hide updates as links, with configurable link text. It also comes with advanced filtering and search capabilities that leverages the Twitter search API.
5. Twitter-Roll
Twitter roll is an updated extension for Joomla 1.5 &2.5. This is a free plugin which allows you to have an unlimited number of scrolling tweets with in your Joomla content. Twitter roll can be used to display a specific Twitter search or an advanced Twitter search. By clicking on your tagged Twitter search keyword, a styled pop-up box will be displayed, which shows up to 15 recent scrolling tweets based on your search tag. The module makes use of jQuery library script and has been tested on every available Joomla versions.
6. Twitter FollowMe
Twitter FollowMe, again a Joomla module that shows your last tweet, follower count and you can be followed in the same browser window. It is the lightweight factor that is unique with this kind of module.
7. Tweetme
Tweetme is a Joomla CMS module that supports 10 URL shortening services. With this module, you can define your own Twitter username in the retweets. You are also able to choose between the Standard button or a Compact button. You can exclude or include the button from specific Section, Categories or Articles. Another best feature with this plugin is, you can define your own CSS for the button placement or background. While installation of new versions, it is not needed that the old versions need to be un-installed first. It is very simple, light weight and looks better on any site.
8. Jtweet
JTweet is a Joomla module that is based on the jquery script developed by Sea of Clouds. It comes with an elegant interface for displaying your twitter tweets in Joomla site. The module has been upgraded to version 2 and the update includes the following new features:
* Drag and drop tweet templating.
* New layout options including pagination and scroller.
* New theme options.
* Automatically refresh the tweet stream.
* Intelligent admin interface
* Display retweet, favourite and reply button.
* Open links in a new window
9. TwitterTalk
The TwitterTalk widget will display the most recent tweets for any twitter user who has their tweets set as public. It allows you to display up to 20 tweets and includes a link to your twitter profile and a twitter icon or your profile picture. The module updates automatically and looks excellent in any sidebar or widget area. It displays real time search results. TwitterTalk is available for Joomla 1.5, 1.6, 1.7, 2.5.
10. Custom Twitter Display
Custom Twitter Display, a Joomla Twitter module that comes with a plenty of features like twitter search query, Twitter title caption, customized twitter dimensions, customized twitter width / height, auto twitter width appearance, customize twitter shell background, custom twitter shell text, custom twitter color tweet background, custom tweet color link color preferences, twitter scrollbar and much more.
11. Twitter Master
Twitter Master is the Joomla module that will put your website in the world of social share. This plugin can be a best way to make your websites cope up with some of the most important social networks existing. It comes with a Follow Us button and Re-Tweet button that boosts your website visits and user interaction. The module is available in more than 30 languages and therefore is able to suit the requirements of any Joomla site location. Twitter Master is tested with all the latest versions of Chrome, Firefox and IE.

Monday 22 December 2014

10 Free Photo Gallery Extensions for Joomla

1. Sigplus

Simple and powerful extension that delivers a great set of useful features including lightbox, slider and carousel options among others. Also you can configure many important features such as image margin, border, padding, slider/rotator orientation, animation speed and so on.

* * *

2. Phoca Gallery

This extremely popular and efficient Joomla photo gallery solution has a bunch of cool features that will make your photo gallery simply perfect. Lightboxes, slideshows, shadowbox effects and many other wonderful options are available with using Phoca Gallery.

* * *

3. Art Sexy Lightbox Lite

Art Sexy Lightbox Lite displays images with cool lightbox effect, supports multiple galleries on one page and it has 6 various themes that you can easily change to spice up your gallery’s appearance.

* * *

4. Sige

Simple Image Gallery Extended plugin among its most important features has such useful options as integration of Slimbox, Lytebox, Shadowbox and Mootools, thumbnail generation and storage, download option and watermark function.

* * *

5. Ignite Gallery

It has been said before that this is the only one extension from our list that you can use for commercial purposes. Among functional features delivered by Ignite Gallery we should mark out slideshows, lightbox effect and multiple image uploader with resizing before upload.

* * *

6. Ozio

This gallery extension allows to present photos in a very spectacular way by using fascinating 3D animation with tilt-viewer. Your visitors will love to play with your photos because it is very entertaining. So far this is the most beautiful photo gallery implementation in our list.

* * *

7. JoomGallery

Fresh Joomla extension called JoomGallery offers 3 sizes of displaying images (thumbnails, detail images and original images), also you can enjoy fascinating Thickbox or Slimbox effects, configurable watermarks and many more.

* * *

8. Simple Image Gallery

This extension is all about simplicity so if you want to quickly and simply display photos at your website – this one will be perfect for you. All images are presented in grid with Polaroid-like background for the thumbnails and lightbox effects for the full-size images.

* * *

9. RSGallery2

This Joomla component was around since the days when Mambo was around and it is so nice to see that these guys are sharing their huge experience with the Joomla fans. Just install this full photo gallery component to your website and enjoy perfect performance.

* * *

10. CSS Gallery

The main secret behind the CSS Gallery is that this extension works only with X-HTML and CSS without JavaScript, Flash or any other script/player. So, maybe it will be interesting to use for the devoted CSS fans and those who love when simple things work great.

Wednesday 17 December 2014

5 most famous Free and Open Source CRM Software


Here are 5 more free and open-source Customer Relationship Management (CRM) software (in no particular order):

Dolibarr
Dolibarr is an ERP/CRM software designed for small and medium companies, foundations or freelancers. Although loaded with features for Enterprise Resource Planning (ERP) and Customer Relationship Management (CRM), it also includes features for different activities. Dolibarr is highly modular and is known by its easy installation process and ease of use despite the vast number of features that can be activated by way of modules. Written in PHP and uses MySQL databases, it works with all PHP configurations without having the need to install additional PHP modules.


ERP5
Based on Python and Zope, ERP5 is a high quality and full-featured free and open-source ERP/CRM/MRP/SCM/PDM used by numerous businesses and government agencies. It utilizes the Unified Business Model introduced by Smets and Carvalho. The UBM abstraction is dependent on 5 generic concepts, specifically Node, Resource, Movement, Item and Path. Because of this unification, a usual ERP5 implementation only consists of 20 to 30 tables compared to ERP based on traditional enterprise modeling that needs up to tens of thousands of tables since they have to piece together different elements.


epesiBIM
epesiBIM is a web-based Customer Relationship Management (CRM) multiuser application that has a main goal of providing functionality greater than what's offered on usual CRM software. It is based on epesi framework that provides a collection of libraries and modules for rapid development of new modules. Since it has a modular design, it can be easily customized and modified to match your processes and workflow. epesiBIM is made to work on any operating system with http server with php 5.x and MySQL or PostgreSQL database server.


JFire
 From its project website, JFire is described as a comprehensive, free and powerful open-source ERP solution with a high degree of flexibility. It also has a broad range of ready-to-use features for business analysis, customer relationship management (CRM), and many more. JFire is written entirely in Java and is based on the technologies Java EE 5 (formerly J2EE), JDO 2, and Eclipse RCP 3. As a result, both client and server can be easily extended and offers greater flexibility, requiring only relatively low efforts when customizing it for specific sectors or companies needs.


Sugar Community Edition


Sugar Community Edition is a complete Customer Relationship Management (CRM) software for small to large businesses. It provides features for sales automation, marketing campaigns, support cases, project management, and calendaring among others. Sugar Community Edition offers modules that represent a specific functional aspect of CRM like Accounts, Activities, Leads, and Opportunities. SugarCRM is considered as one of the most widely used CRM software in the world with more than 250,000 community members, 25,000 developers, and over 850 extension projects.

phpBB to Kunena Comparison: Choose your Perfect Forum




One of the most essential things in making your website live, up-to-date, and attractive for your followers is a forum. With forum, you will have not only an active community, but also the pot of ideas and generated thoughts. However, all the difficulties run into one – the choice of the appropriate forum platform.
Running a website is like an addiction – once you start doing this, it’s impossible to back away. This engaging process is not only the way to spend your time, but also a great source for your income. Expanding your website with various subprojects, like blog, forum, online shop, intranet, etc., you may turn your website into a full-cycled profitable business.
Basically, two types of forum building tools may be denoted: bulletin boards that are developed for forum or blog creation, and those ones that are unified with CMS platforms. In order to catch the detailed differences of these tools, let’s have a look at phpBB and Joomla with Kunena forum module.


  • User and Owner Convenience. With completely modularised user control panel, your forum visitors have a full control over their accounts on the boards.
  • A to Z Customization. Within your admin panel, you may easily customize and configure almost every detail of your web project to your convenience.
  • Strong Level of Security. phpBB possesses a high level of security. It offers its users password hashing providing them with the reliable protection of their info.
  • CMS Integration. In case you want to integrate your forum with your site or blog, you have to create one and then establish the connection bridge with your forum. Keep in mind that your followers should have two accounts for the site and forum separately.

Joomla Kunena: Seamless Integration


  • Full CMS Integration. Joomla Kunena is not a standalone forum platform, but a Joomla extension that should be installed to your site core. In contrast to standalone bulletin board like phpBB, you don’t have to create a subdomain to connect your forum with the site.
  • One Registration for Website and Forum. There’s need to create the connection between your site and forum, and operate all your web projects within one dashboard. Besides, the users don’t have to register twice.
  • Single Design Solution. Joomla template is suitable for Kunena forum, however the tablet responsive design is currently under experimental maintenance. Also, you may manage your layout separately from the styles.
  • Old Kunena Versions – Support in the Past. As far as there’s no business company behind Kunena and its developers are professional enthusiasts, all the old Kunena versions are not supported any more and all the development processes are based on the new Kunena releases.

Update your Drupal site from one minor 7.x version to another minor 7.x version

This post contains the information of upgrade.txt that is relevant to a minor Drupal core upgrade. To see the full upgrade.txt that was formerly posted here, go here: http://drupal.org/node/1285892

Introduction

This document describes how to update your Drupal site from one minor 7.x version to another minor 7.x version; for example, from 7.8 to 7.9, or from 7.6 to 7.10.

First steps and definitions:

  • If you are upgrading to Drupal version x.y, then x is known as the major version number, and y is known as the minor version number. The download file will be named drupal-x.y.tar.gz (or drupal-x.y.zip).
  • All directories mentioned in this document are relative to the directory of your Drupal installation.
  • Make a full backup of all files, directories, and your database(s) before starting, and save it outside your Drupal installation directory. Instructions may be found at http://drupal.org/upgrade/backing-up-the-db
  • Always try an update or upgrade on a test copy of your site before applying it to your live site. Even minor updates can cause your site's behavior to change.
  • If you used an install profile make sure to keep it when performing step 3 (remove all old core files). If you remove your install profile your site will begin throwing "undefined index" errors. (http://drupal.org/node/1186196).

Upgrade problems

If you encounter errors during this process:
  • Note any error messages you see.
  • Restore your site to its previous state, using the file and database backups you created before you started the upgrade process. Do not attempt to do further upgrades on a site that had update problems.
  • Consult one of the support options listed on http://drupal.org/support
  • Also consider consulting the #drupal channel on IRC
  • Upgrading your Drupal Core files using drush may also result in "undefined index" erros. http://drupal.org/node/1170362
More in-depth information on upgrading can be found at http://drupal.org/upgrade

Minor version upgrades

To update from one minor 7.x version of Drupal to any later 7.x version, after
following the instructions in the First steps and definitions section at the top of this file:
  1. Log in as a user with the permission "Administer software updates".
  2. Go to Administration > Configuration > Development > Maintenance mode. Enable the "Put site into maintenance mode" checkbox and save the configuration.
  3. Remove all old core files and directories, except for the 'sites' directory, the original install profile in the 'profiles' directory and any custom files you added elsewhere.
    • If you made modifications to files like .htaccess or robots.txt, you will need to re-apply them from your backup, after the new files are in place.
    • Sometimes an update includes changes to settings.php (this will be noted in the release announcement). If that's the case, replace your old settings.php with the new one, and copy the site-specific entries (especially the lines giving the database name, user, and password) from the old settings.php to the new settings.php.
  4. Download the latest Drupal 7.x release from http://drupal.org/project/drupal to a directory outside of your web root. Extract the archive and copy the files into your Drupal directory.
    • On a typical Unix/Linux command line, use the following commands to download and extract:
      wget http://drupal.org/files/projects/drupal-x.y.tar.gz
      tar -zxvf drupal-x.y.tar.gz
    • This creates a new directory drupal-x.y/ containing all Drupal files and directories. Copy the files into your Drupal installation directory:
      cp -R drupal-x.y/* drupal-x.y/.htaccess /path/to/your/installation
    • If you do not have command line access to your server, download the archive from http://drupal.org using your web browser, extract it, and then use an FTP client to upload the files to your web root.
  5. Re-apply any modifications to files such as .htaccess or robots.txt.
  6. Run update.php by visiting http://www.example.com/update.php (replace www.example.com with your domain name). This will update the core database tables. If you are unable to access update.php do the following:
    • Open settings.php with a text editor.
    • Find the line that says:
      $update_free_access = FALSE;
    • Change it into:
      $update_free_access = TRUE;
    • Once the upgrade is done, $update_free_access must be reverted to FALSE.
  7. Go to Administration > Reports > Status report. Verify that everything is working as expected.
  8. Ensure that $update_free_access is FALSE in settings.php.
  9. Go to Administration > Configuration > Development > Maintenance mode. Disable the "Put site into maintenance mode" checkbox and save the configuration.

Easy steps to upgrade wordpress from older version to current version

WARNING: The upgrade process will affect all files and folders included in the main WordPress installation. This includes all the core files used to run WordPress. If you have made any modifications to those files, your changes will be lost.
You should always update WordPress to the latest version. When a new version of WordPress is available you will receive an update message in your WordPress Admin Screens. To update WordPress, click the link in this message.
There are two methods for updating - the easiest is the one-click update, which will work for most people. If it doesn't work, or you just prefer to be more hands-on, you can follow the manual update process.
If you are updating across multiple versions, follow the procedure at Upgrading WordPress - Extended Instructions

Back up WordPress

Before you get started, it's a good idea to back up your website. This means if there are any issues you can easily restore your website. Complete instructions to make a backup can be found in the WordPress Backups section of the Codex.

Automatic Background Updates

For WordPress 3.7+, you don’t have to lift a finger to apply minor and security updates. Most sites are now able to automatically apply these updates in the background. If your site is capable of one-click updates without entering FTP credentials, then your site should be able to update from 3.7 to 3.7.1, 3.7.2, etc. (You’ll still need to click “Update Now” for major feature releases.)
See Also: Configuring Automatic Background Updates

One-click Update

Current versions of WordPress (2.7+) feature one-click updates. You can launch the update by clicking the link in the new version banner (if it's there) or by going to the Dashboard > Updates screen. Once you are on the "Update WordPress" page, click the button "Update Now" to start the process off. You shouldn't need to do anything else and, once it's finished, you will be up-to-date.
One-click updates work on most servers. Here's the technical criteria for what must be satisfied:
(a) file ownership: all of your WordPress files must be owned by the user under which your web server executes. In other words, the owner of your WordPress files must match the user under which your web server executes. The web server user (named "apache", "web", "www", "nobody", or some such) is not necessarily the owner of your WordPress files. Typically, WordPress files are owned by the ftp user which uploaded the original files. If there is no match between the owner of your WordPress files and the user under which your web server executes, you will receive a dialog box asking for "connection information", and you will find that no matter what you enter in that dialog box, you won't be able to update using the "Update Now" button.
(b) file permissions: all of your WordPress files must be either owner writable by, or group writable by, the user under which your Apache server executes.
On shared hosts, WordPress files should specifically NOT be owned by the web server. If more then one user owns different files in the install (because of edits made by deleting and re-uploading of files via different accounts, for example), the file permissions need to be group writable (for example, 775 and 664 rather then the default 755 and 644). File permissions (in general) should be adjusted as appropriate for the server environment (the shared host RackSpace CloudSites for example recommends 700 and 600 for a single ftp user, or 770 and 660 for multiple ftp users). See the file permission section for more (some files and folders require stricter permissions).
If you see a "failed update" nag message, delete the file .maintenance from your WordPress directory using FTP. This will remove the "failed update" nag message.
If the one-click upgrade doesn't work for you, don't panic! Just try a manual update.

Manual Update

These are the short instructions, if you want more check out the extended upgrade instructions. If you experience problems with the Three Step Update, you may want to review the more detailed upgrade instructions
For these instructions, it is assumed that your blog's URL is http://example.com/wordpress/.

Step 1: Replace WordPress files

  1. Get the latest WordPress zip (or tar.gz) file.
  2. Unpack the zip file that you downloaded.
  3. Deactivate plugins.
  4. Delete the old wp-includes and wp-admin directories on your web host (through your FTP or shell access).
  5. Using FTP or your shell access, upload the new wp-includes and wp-admin directories to your web host, in place of the previously deleted directories.
  6. Upload the individual files from the new wp-content folder to your existing wp-content folder, overwriting existing files. Do NOT delete your existing wp-content folder. Do NOT delete any files or folders in your existing wp-content directory (except for the one being overwritten by new files).
  7. Upload all new loose files from the root directory of the new version to your existing wordpress root directory.
NOTE - you should replace all the old WordPress files with the new ones in the wp-includes and wp-admin directories and sub-directories, and in the root directory (such as index.php, wp-login.php and so on). Don't worry - your wp-config.php will be safe.
Be careful when you come to copying the wp-content directory. You should make sure that you only copy the files from inside this directory, rather than replacing your entire wp-content directory. This is where your themes and plugins live, so you will want to keep them. If you have customized the default or classic themes without renaming them, make sure not to overwrite those files, otherwise you will lose your changes. (Though you might want to compare them for new features or fixes..)
Lastly you should take a look at the wp-config-sample.php file, to see if any new settings have been introduced that you might want to add to your own wp-config.php.

Step 1.5: Remove .maintenance file

If you're upgrading manually after a failed auto-upgrade, delete the file .maintenance from your WordPress directory using FTP. This will remove the "failed update" nag message.

Step 2: Update your installation

Visit your main WordPress admin page at /wp-admin. You may be asked to login again. If a database upgrade is necessary at this point, WordPress will detect it and give you a link to a URL like http://example.com/wordpress/wp-admin/upgrade.php. Follow that link and follow the instructions. This will update your database to be compatible with the latest code. You should do this as soon as possible after step 1.

Step 3: Do something nice for yourself

If you have caching enabled, your changes will appear to users more immediately if you clear the cache at this point (and if you don't, you may get confused when you see the old version number in page footers when you check to see if the upgrade worked).
Your WordPress installation is successfully updated. That's as simple as we can make it without Updating WordPress Using Subversion.
Consider rewarding yourself with a blog post about the update, reading that book or article you've been putting off, or simply sitting back for a few moments and letting the world pass you by.

Final Steps

Your update is now complete, so you can go in and enable your Plugins again. If you have issues with logging in, try clearing cookies in your browser.

Troubleshooting

If anything has gone wrong, then the first thing to do is go through all the steps in our extended upgrade instructions. That page also has information about some of the most common problems we see.
If you run into a request for FTP credentials with trying to update WP on a IIS server automatically, it may well be a matter of rights. Go into the IIS Management Console, and there to the application pool of your blog. In its advanced settings, change the Process Model Id into LocalSystem. Then on Sites, choose your blog, right click, click on Edit permissions and on security tab add authenticated users. That should do it.
If you experience problems after the upgrade, you can always restore your backup and replace the files with ones from your previous version from the release archive.

Other options

If you have some knowledge of unix shells you should check out wp-cli.

Access Database Outside Of WordPress

Sometimes I've needed to build a new page outside of WordPress but still have the ability to access the WordPress database from this new page. This would normally use custom tables you've created.

To access the WordPress database normally you would just need to use the global variable $wpdb. This object connects to your database using the credentials found in the wp-config.php in the constant variables DB_NAME, DB_HOST, DB_USER, DB_PASSWORD.

function access_db()
{
global $wpdb;
}
 
The $wpdb object has a number of methods that you can use to interact with the database, you are able to use the following:
  • query() - To run a custom SQL query on the database.
  • get_var() - Get a single value from the database and add as a variable.
  • get_row() - Get the single row from the database.
  • get_col() - Get the column information from the database.
  • get_results() - Get all the results from SQL query.
  • insert() - Insert a row into the database
  • replace() - Replace the data in the row.
  • update() - Allows you to update a row in the database.
  • delete() - Allows you to delete a row from the database.
  • prepare() - Used for SQL escaping when processing the SQL query.
If you're using custom database tables in your application then you will be able to access them by using the $wpdb object and writing your own custom queries.
For more information on creating custom tables in WordPress use this tutorial.

Custom Tables In WordPress

If you're creating a page outside of the WordPress application you won't have access to the $wpdb object, so you will need to instantiate the WordPress application before you can access it. To do this in WordPress it's very easy. If you look at the .htaccess file you will see some code like this.

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On

RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
 
This will send all requests on the domain to go through the index.php file, then if you look inside the index.php file you will see how WordPress will be loaded, simply by loading the file wp-blog-header.php.

require( dirname( __FILE__ ) . '/wp-blog-header.php' );
 
When this is loaded it will create the WordPress application and instantiate all the variables that you will need. You will have access to the $wpdb object which will automatically connect to the datbase in the wp-config.php file.
Now you will be able to use this variable in your new page outside of the WordPress application.
Create a new file, this example is a new file at the root level of your WordPress files. First require the wp-blog-header.php file and this will instantiate WordPress outside of the application.

<?php
// Get access to WordPress
require( dirname( __FILE__ ) . '/wp-blog-header.php' );

// Get all posts
$posts = $wpdb->get_results('SELECT * FROM '. $wpdb->prefix.'posts');

Try Joomla 3 Now!

Try Joomla 3 Now!

We’ve partnered with Siteground to provide a 90-day free Joomla! demo account. Get an instant Joomla website today!

Update Joomla! 2.5.x

Joomla 2.5 is the previous version of Joomla, which will be supported until December 31, 2014. For upgrade instructions to Joomla 3, please see the FAQs below.

Joomla! Download Frequently Asked Questions:

How do I install Joomla locally?

Need help installing Joomla? Read Getting Started with Joomla! for a quick introduction or visit the Joomla 3 Installation forum with any questions you have. Visit the General Questions Forum for 3.3 or 2.5 if you have other questions about Joomla.

Can I install Joomla on my hosting account?

Yes you can. Download the package of Joomla that you want to use, unpack the files locally and then upload them to your account directly using FTP. You’ll also want to create a database with a username and password. When you’re done, visit the front end of your site, and you will see the installer page and you can begin the installation process. Click here to read detailed installation instructions for Joomla 3.

Does Joomla come in multiple languages?

You can easily download and install language packages for your Joomla site. Browse through Joomla language packages, and incorporate the languages that you need.

How can I extend Joomla?

There are over 8,000 extensions available in the Joomla community ready for you to download. Visit the Joomla! Extensions Directory to get help unlocking Joomla extended features.

How do I upgrade Joomla?

The first step in any migration process is planning. Joomla 2.5 core extensions will upgrade with a “one-click update.” All third party extensions including template need to be addressed individually. We have resources available to help with your migration planning.

Where can I find legacy versions of Joomla?

You can find legacy versions of Joomla here.

Tuesday 16 December 2014

Dynamic Forms with PHP

In this tutorial we are going to create HTML forms with dynamically modifiable filed (or a set of fields) using Java Script & HTML Tables and PHP code to process them in the back end. The idea behind this demo is to make a form that is able to expand its fields on user requirement, we won't be focusing much on the design and the form field verification.
The Agenda of this article is to make a Form that can.
  • Allow user to add fields (or set of fields) as and when required.
  • The added fields can also be removed by the user within the set limits.
  • PHP script to fetch the data from the dynamically added field.

HTML

As we discussed earlier we won't be considering the design part as that is not in the agenda of this article, I have added some basic styles just to make it pleasant for human eyes.
The key idea in this method is to treat all the fields that are to be made modifiable by the user as a row of a table, using Java script we can replicate the rows as required. Just to make the article short and focus on the key areas only the HTML code for modifiable fields is shown below, you can get the full code in the file.
Although we are not concerned about form field verification HTML5 required="required" is used to force input here, it's advised to employ further verification with Java script or in the back end when using this on a production environment.
The key elements to be noted in HTML is to make the names of the modified fields end with square brackets [ ] , since these fields are treated as an array its a necessary to access the data in it.
<p> 
<input type="button" value="Add Passenger" onClick="addRow('dataTable')" />
<input type="button" value="Remove Passenger" onClick="deleteRow('dataTable')" />
<p>(All acions apply only to entries with check marked check boxes only.)</p>
</p>

<table id="dataTable" class="form" border="1">
<tbody>
<tr>
<p>
<td >
<input type="checkbox" name="chk[]" checked="checked" />
</td>
<td>
<label>Name</label>
<input type="text" name="BX_NAME[]">
</td>
<td>
<label for="BX_age">Age</label>
<input type="text" class="small" name="BX_age[]">
</td>
<td>
<label for="BX_gender">Gender</label>
<select id="BX_gender" name="BX_gender">
<option>....</option>
<option>Male</option>
<option>Female</option>
</select>
</td>
<td>
<label for="BX_birth">Berth Pre</label>
<select id="BX_birth" name="BX_birth">
<option>....</option>
<option>Window</option>
<option>No Choice</option>
</select>
</td>
</p>
</tr>
</tbody>
</table>
You may have noticed the two input buttons, linked with Java script, The two function addRow('dataTable') and deleteRow('dataTable') is used to duplicate and remove the rows, we will see in detail below.

Java Script

The magic happens here, the functions addRow & deleteRow are called passing the Table ID in the argument to fetch the table details for the respective operations.

function addRow(tableID) {
var table = document.getElementById(tableID);
var rowCount = table.rows.length;
if(rowCount < 5){ // limit the user from creating fields more than your limits
var row = table.insertRow(rowCount);
var colCount = table.rows[0].cells.length;
for(var i=0; i<colCount; i++) {
var newcell = row.insertCell(i);
newcell.innerHTML = table.rows[0].cells[i].innerHTML;
}
}else{
alert("Maximum Passenger per ticket is 5");

}
}

function deleteRow(tableID) {
var table = document.getElementById(tableID);
var rowCount = table.rows.length;
for(var i=0; i<rowCount; i++) {
var row = table.rows[i];
var chkbox = row.cells[0].childNodes[0];
if(null != chkbox && true == chkbox.checked) {
if(rowCount <= 1) { // limit the user from removing all the fields
alert("Cannot Remove all the Passenger.");
break;
}
table.deleteRow(i);
rowCount--;
i--;
}
}
}
Limiting Row addition : To limit the user for adding more than permissible fields / entry is essential, that is possible here too,rowCount stores the number of fields (rows) already created by the user and it can be used to limit the addition beyond your limit. In the example I have used 5 you can modify it to your needs.
Limiting Row Removal : Similar to the above function, it's also possible to prevent users from removing the rows completely, in the above code its already embedded, the limits are set to 1, again its modifiable.

PHP

Things here are fairly simple, non modifiable field is fetched as its done usually, but these fields will have an array of data regardless of whether the user used multiple fields or single field, all we need in is a loop to access them. In here I just echoed them out, there is no insertion into databases.

<?php if(isset($_POST)==true && empty($_POST)==false){
$chkbox = $_POST['chk']; // array
$bus = $_POST['bus'];
$day = $_POST['day'];
$month = $_POST['month'];
$mob = $_POST['mob'];
$type = $_POST['type'];
$from = $_POST['from'];
$to=$_POST['to'];
$root=$_POST['root'];
$BX_NAME=$_POST['BX_NAME']; // array
$BX_age=$_POST['BX_age']; // array
$BX_gender=$_POST['BX_gender']; // array
$BX_birth=$_POST['BX_birth']; // array
}
?>

You may have noted that all the variable including modifiable fields are accepted just as a normal variable, but they arrays accessing them is a bit different, foreach loop is employed in the demo any loops will work fine.
For the demo I just echoed them on another page.
Regarding the check box we used for identification in Java script can also be used here for the same purpose as well.

<?php foreach($BX_NAME as $a => $b){ ?>
<tr>
<p>
<td>
<?php echo $a+1; ?>
</td>
<td>
<label>Name</label>
<input type="text" readonly="readonly" name="BX_NAME[$a]" value="<?php echo $BX_NAME[$a]; ?>">
</td>
<td>
<label for="BX_age">Age</label>
<input type="text" readonly="readonly" class="small" name="BX_age[]" value="<?php echo $BX_age[$a]; ?>">
</td>
<td>
<label for="BX_gender">Gender</label>
<input type="text" readonly="readonly" name="BX_gender[]" value="<?php echo $BX_gender[$a]; ?>">
</td>
<td>
<label for="BX_birth">Berth Pre</label>
<input type="text" readonly="readonly" name="BX_birth[]" value="<?php echo $BX_birth[$a]; ?>">
</td>
</p>
</tr>
<?php } ?>

Monday 15 December 2014

How to Access Your Joomla Database in an Extension?

Sometimes when you are working on a project you may need to access your Joomla Website's Database to get some extra data for customizing your website.

Joomla API provides functionality to access your database secure and easily.

All you need to do is using JDatabase to access database, select and retrieve the data.


Access Joomla Database in an Extension

For an example, you have a module called mod_yourmodule and you want to print single result at this modules default tmpl file for a specific row (e.g. title of id = $some_value). For an example you want to show the latest entry title from selected table.

Steps you need to follow

Create your function for retrieving the data in module's helper.php
function latestTitle( $some_value ){
// database connection
$db = JFactory::getDbo();
$query = $db->getQuery(true);
// create the query
$query->select('title');
$query->from($db->quoteName('#__mycomponent_table'));
$query->where($db->quoteName('id')." = ".$db->quote($some_value));

$db->setQuery($query);
$result = $db->loadResult();
return $result;
}
Now you can call this function in your modules main php file as below:
// modYourModuleNameHelper is the class name in the helper.php
$latesttitle = modYourModuleNameHelper::latestTitle( $some_value );
You saved the result in $latesttitle

Now you can use this any place of your module's view ( mostly tmpl/default.php )
echo $latesttitle;
That is it!

Connect to Joomla database in standalone script

  1. //init Joomla Framework 
  2.          define( '_JEXEC', 1 ); 
  3.          define( 'JPATH_BASE'realpath(dirname(__FILE__).'/../..' )); // print this out or observe errors to see which directory you should be in (this is two subfolders in) 
  4.          define( 'DS', DIRECTORY_SEPARATOR ); 
  5.   
  6.          require_once ( JPATH_BASE .DS.'includes'.DS.'defines.php' ); 
  7.          require_once ( JPATH_BASE .DS.'includes'.DS.'framework.php' ); 
  8.          require_once ( JPATH_CONFIGURATION   .DS.'configuration.php' ); 
  9.          require_once ( JPATH_LIBRARIES .DS.'joomla'.DS.'database'.DS.'database.php' ); 
  10.          require_once ( JPATH_LIBRARIES .DS.'import.php' ); 
  11.   
  12.          //DB Connection 
  13.          $Config = new JConfig(); 
  14.          $db_driver      = $Config->dbtype;   // Database driver name 
  15.          $db_host        = $Config->host;     // Database host name 
  16.          $db_user        = $Config->user;     // User for database authentication 
  17.          $db_pass        = $Config->password; // Password for database authentication 
  18.          $db_name        = $Config->db;       // Database name 
  19.          $db_prefix      = $Config->dbprefix; // Database prefix (may be empty) 
  20.   
  21.          // Database prefix (if empty then remove prefixing double underscore) 
  22.          $db_prefix      = (trim($db_prefix)=="") ? "":$db_prefix
  23.   
  24.          $db_connect = mysqli_connect($db_host,$db_user,$db_pass); 
  25.   
  26.          $content_count = 0; 
  27.   
  28.          // CONNECTED! so run a SQL query as per usual 
  29.          if (!mysqli_connect_errno()) { 
  30.                  $query='SELECT COUNT(*) as ArticleCount FROM `'.$db_prefix.'content` WHERE id='.mysqli_real_escape_string($db_connect$_GET['id']); 
  31.                  if ($result = mysqli_query($db_connect$query, MYSQLI_USE_RESULT)) { 
  32.                          while($obj = $result->fetch_object()){ 
  33.                                  $content_count = $obj->ArticleCount; 
  34.                          } 
  35.                  } 
  36.          } 
  37.          echo $content_count
  38.          mysqli_free_result( $db_connect );