Tuesday, November 30, 2010

Wireframe: Information architecture designs for user testing

The Wireframe module allows designers to create information architecture designs for user testing. Web page wireframes are an information architecture deliverable that convey the information, the structure and relationships between information, and the flow and navigation of information on a web page. The wireframe module allows designers to share their wireframes with remote users, programmers, and visual designers to improve the development process. The wireframe module allows designers to add, re-use, and manage interface objects in their wireframes.

Designers can create new wireframe components for re-use in the design of their wireframes. They can change the interface objects and they will change in all wireframes in which they appear. Each wireframe page has a list of interface objects that it contains and interface objects can be removed from wireframe pages.
To create a wireframe, simple click on create content, choose page and then select 'PHP code' input format. You do not need to know PHP, just use HTML code. But you can reuse a 'wireframe component' you added before: type <?php print _wireframe_view(184) ?> to insert the contents of node/184, where node/184 is a 'wireframe component'. That's all PHP you'll need. A 'Wireframe component' can be any input format, typically these are simple HTML snippets but they also can be simple PHP nodes to display a list of users etc.

You can:
  • create an interface object at create content >> wireframe component (node/add/wireframe).
  • view a list of wireframe components at wireframe components(node/add/wireframe).
  • manage all wireframe components at manage wireframe components (wireframe/manage).
  • change and rename the wireframe component to a different wireframe component manage wireframe components >> component name (wireframe/manage/1234).
  • use with the CivicSpace theme wireframe theme skeleton, to ensure the visual design does not effect user testing.
  • file issues, read about known bugs, and download the latest version on the Wireframe project page.
For more information about Drupal Development, Drupal Expert, Drupal Developer and Drupal Programmer visit at http://www.dckap.com

Source: http://drupal.org/handbook/modules/wireframe

Sunday, November 28, 2010

Working with languages

This guide explains how to create a Drupal website that supports more than one language, or languages other than English, popularly known as a localized, internationalized or a multi-lingual website.
A multi-lingual or internationalized Drupal website has two key components for translation:
  1. User interface elements (Locale module)
  2. Content (Content translation module)
This two module functionalities can be extended by contributed modules for language and locale.
User interface elements include built-in system strings such as menu items, form labels, help text, and button labels such as 'Log in', 'Logout', 'Submit', 'View', 'Edit', 'Delete' etc.
Content means the actual user-created pages, stories, blocks, etc. of the website.

Steps for Core Interface Translation

  1. Install Drupal in English
  2. Enable localization related modules from the Core - optional group (Locale & Content Translation modules)
  3. Add desired languages by going to Administer > Site Configuration > Languages > Add Language (more details on the Locale module handbook page)
  4. Import an existing translation Administer > Site Building > Translate Interface > Import. You can check if the Drupal interface translation for your language is available at http://drupal.org/project/translations
  5. If you don't have a translation file for your language as per step 4, you may need to translate the interface on your own. Translate interface Administer > Site Building > Translate Interface > Search. View details on the Content Translation module handbook page

Steps for Content Translation

You need to follow the below mentioned steps only if you are building a bi-lingual or a multi-lingual website. For a non-English language, simply make your desired language the Default in the step 3 mentioned above and start adding content in your own language.
  1. Enable multi-lingual content capability for desired Content Types. Go to Administer > Content Management > Content Types, edit desired content types. Under workflow group, you will see an option for Multi-lingual support, choose the appropriate option (the 'Enabled with translation' option gives 'Translate' tab to all nodes for this content type).
  2. Once you enable Multi-lingual support for a content type, while adding new nodes of this content type, users will see a drop down of all enabled languages and they can select the desired language for the content and any translations they create.
  3. Also, for all existing nodes, users with Translate Content permission can see a Translate tab and will be able to add translations to existing nodes.

Translate menu, block and taxonomy

For a proper multi-lingual menu system and multi-lingual blocks and taxonomy install Internationalization module.

Find translations for Drupal core, modules and themes

Go to http://localize.drupal.org for translations of Drupal to various languages. You can automate translation discovery and updates with the Localization update module or start off installing Drupal with the Localized Drupal install profile to get the best experience.

Drupal language-related resources.

Help the Drupal project create localized versions of Drupal, see the section on translationg of the Getting Involved handbook.
Writing code for localized modules, see the Localization API section of the Developing for Drupal guide.

For more information about Drupal Development, Drupal Expert, Drupal Developer and Drupal Programmer visit at http://www.dckap.com

Source:http://drupal.org/node/324602

Friday, November 26, 2010

Anonymous user - registration page access denied

I first new there was a problem when I discovered that anonymous users were refused access to the registration page.

http://www.tablelandcyclesports.com/user/register

Reading Drupal forum notes etc... I started to explore the database and tables out the back.
- Repairing the database didn't work.
- The registration page isn't a node, so I can't edit the permissions to access it
- I discovered that the sessions UID's listed registered users (1 etc) but not UID = 0 (anonymous users)

Could this be related to the problem at hand? It's interesting anyway :-), especially since I did a bulk mail to all the club members that the website was up and running an hour before I discovered the glitch!

For more information about Drupal Development, Drupal Expert, Drupal Developer and Drupal Programmer visit at http://www.dckap.com

Source:http://drupal.org/node/981964

Thursday, November 25, 2010

Install Drupal in another language

Manual Drupal 7 setup

To install and use Drupal in a language other than English without additional module requirements:
See if a translation of this Drupal version is available in your language of choice on the translation server. Not all languages are available for every version of Drupal, but if yours is available, follow these steps to install Drupal in your language:
  1. Download the language file from the translation server.
  2. Rename the downloaded file retaining only the language code at the end of the file name and its extension. For example, if the file name is drupal-7.0.pt-br.po rename it to pt-br.po
  3. Create a directory named translations inside the directory of the profile you will be using. This is most likely inside profiles/standard.
  4. Move the renamed .po file inside the translations folder you just created.
  5. Install Drupal as per usual by visiting www.example.com/install.php.

Automating installation and updates

Once you start to add modules and a theme to the site, downloading and keeping translations updated manually can be tedious. It is suggested that instead you start off with the Localized Drupal installation profile or adapt the Localization update module to keep yourself updated.

Legacy translation downloads

You might find documentation mentioning drupal.org/project/translations as the source for Drupal translations. These projects only cover Drupal core and are packaged differently to the files available from localize.drupal.org. The new files and sources are better in many ways, so we are/were continually migrating to use localize.drupal.org only. It is suggested you look at localize.drupal.org as the primary source of language translations.

Drupal 5 and 6

See: How to install a different language

Drupal language resources

For more information about Drupal Development, Drupal Expert, Drupal Developer and Drupal Programmer visit at http://www.dckap.com

Source:http://drupal.org/localize

Wednesday, November 24, 2010

SimpleTest and Testing modules

The SimpleTest module (Drupal 6.x) or Testing module (Drupal 7.x and beyond) provides a framework for running automated unit and functional tests in Drupal. It can be used to verify a working state of Drupal before and after any code changes, or as a means for developers to write and execute tests for their modules. The original module was based on the SimpleTest PHP library.

Visit Administer >> Site building >> SimpleTest (Drupal 6.x) or Administration >> Configuration >> Development >> Testing (Drupal 7.x) to display a list of available tests. For comprehensive testing, select all tests, or individually select tests for more targeted testing. (Note: Selecting all tests may take several minutes to complete, and if you select too many, they may fail to complete.)

After the tests have run, a message will be displayed next to each test group indicating whether tests within it passed, failed, or had exceptions. A pass means that a test returned the expected results, while fail means that it did not. An exception normally indicates an error outside of the test, such as a PHP warning or notice. If there were fails or exceptions, the results are expanded, and the tests that had issues will be indicated in red or pink rows. Use these results to refine your code and tests until all tests return a pass.

For more information on creating and modifying your own tests, read the rest of the SimpleTest Documentation in the Drupal handbook.

For more information about Drupal Development, Drupal Expert, Drupal Developer and Drupal Programmer visit at http://www.dckap.com

Source: http://drupal.org/handbook/modules/simpletest

Tuesday, November 23, 2010

Cache Actions

Introduction

Cache Actions is a way to get complete control over your cache and when it should be invalidated. It does so by defining rules actions for the rules module. These actions can be used to define exactly how you want to invalidate your cache. You can for instance decide to clear the cache of some views when content of a specific type is created, or when a user with a specific role creates a comment.

Other cache invalidation techniques

Drupal Core and other contributed modules handles the way cache invalidation happens differently from the cache actions. Here are some examples:

Time-based cache

This is used by Drupal core page caching (if you set the maximum time to live) and the bundled views and panels modules. It basicly clears the cache after a specified period of time has passed. This method can be great if you don't have a need for always up-to-date content. 

Built-in caching logic

When you build a module, you can sometimes predict when the cache should be cleared for a particular item. You could for instance be quite sure that the caching for the node page should be invalidated when new content has been created. This is leveraged by Drupal Core for page caching of nodes, in order for new content in nodes and comments to show up.
Examples of module that use this technique is views content cache for views and the expire module that is used by boost and can be used to clear varnish pages.

The Cache Actions way of doing it

Cache Actions takes the configure more code less approach to the caching problem by letting you configure exactly the way you want the cache to be invalidated. By supporting views, panels and varnish, it is also a quite complete solution. It has the downside of being harder to configure than a built-in solution, but in return it gives you complete control of how the cache invalidation should work.

For more information about Drupal Development, Drupal Expert, Drupal Developer and Drupal Programmer visit at http://www.dckap.com

Source: http://drupal.org/node/927276 

Sunday, November 21, 2010

Is Drupal the right tool for the job?

Drupal is a powerful and flexible framework for building virtually any kind of website. Below are some circumstances in which Drupal is a particularly compelling choice.
  • You need a site that is flexible enough to evolve in any direction. For example, you might start with a blog but want the option of adding other features like a wiki, electronic commerce, forums etc.
  • You need a site that can easily be configured to interact with other sites or with other technologies.
  • You need a site that can easily handle complex forms and workflows.
  • You need the ability to create your own content types. For example, you need to add a custom field to a page.
  • You need the ability to quickly organize and display lists of information.
  • One or more of the many contributed Drupal modules addresses your needs.
  • You need to quickly develop custom functionality.
  • You need create web applications and mashups using third party API's.
On the other hand, for certain limited uses, Drupal may not be the best choice:
  • If your only requirement is to write a personal blog, you may also want to evaluate one of the more specialized blogging platforms like WordPress or a hosted blogging solution like Blogger. Although Drupal can serve as a blogging platform out-of-the-box, blog-specific software may have a simpler administration interface.
  • Similarly, if your only requirement is to create a wiki, you should probably consider using dedicated wiki software like MediaWiki or a hosted wiki solution. You can certainly configure Drupal so that anyone can edit content (and even enable advanced wiki features with the help of several contributed modules like wikitools and Diff), but it may be simpler for you to use a more specialized solution.
  • If your only requirement is to host discussion forums, you will want to consider a system such as SimpleMachines or phpBB with a mature set of Forum features, or Vanilla which has many plug-ins. If you need a custom forum, however, Drupal's forum module with forum enhancement modules like Advanced Forum may be better suited to extension.
With every release, Drupal is becoming easier to use; but like most powerful tools, it will always have a learning curve. If you or your organization are not prepared to spend some time learning how Drupal works (or if you are not able to hire Drupal expertise), it may not be your best option.

For more information about Drupal Development, Drupal Expert, Drupal Developer and Drupal Programmer visit at http://www.dckap.com

Source: http://drupal.org/node/346217

Friday, November 19, 2010

ImageX Media

At ImageX Media, we pride ourselves on building sites that are as visually remarkable as they are powerful. Founded in 2001 as a full service media firm, our accomplished team of senior Drupal engineers, designers, project managers, business and marketing professionals have spent the past four years exclusively refining our approach to building Drupal based sites. With a long history of commitment, participation, and contribution in the Drupal community -- and with over 100 successful Drupal site launches (for some pretty big names), we have the expertise needed to ensure success.

Working in partnership with our clients, we strive to meet or exceed their needs and help take their online operations to the next level. As a specialized Drupal firm we handle everything from strategy, planning, design, information architecture to development, quality assurance and beyond. After launch we work in conjunction with Acquia to tailor and create a support and service plan that meets our client's long term goals.
While we accept clients from many sectors, we have the greatest experience in the following areas:
  • Education - Arizona State University, Vancouver School Board, UC San Fransisco, UC Berkeley, Northland Pioneer College, Hong Kong University of Science and Technology
  • Media Publishing - The Discovery Educators Network, CreativePro, US Catholic
  • Technology - Adobe Systems
  • Entertainment - Warner Brothers Records, Word Records
  • Non profits - Usability Professionals Asscociation, Center for International Governance Innovation, BCLI, Global Oneness
  • Social Networks - Mothersclick, FreshBrain, Fantasy Sports Matrix
For more information about Drupal Development, Drupal Expert, Drupal Developer and Drupal Programmer visit at http://www.dckap.com

Source: http://drupal.org/node/950484 

Wednesday, November 17, 2010

Drupal Installation System Requirements

Resources

A minimum base installation requires at least 3MB of disk space but you should assume that your actual disk space will be somewhat higher. For example, if you install many contributed modules and contributed themes, the actual disk space for your installation could easily be 40 MB or more (exclusive of database content, media, backups and other files).
A useful FAQ (http://drupal.org/node/59680) explains how to use phpinfo to get the details of your system. For example, phpinfo will tell you if you have a database already installed and what version your system is running. Phpinfo will also tell you what php variables are set as well as many other helpful things.

Web server

Drupal has been deployed successfully on both Apache and IIS.
Apache (Recommended)
  • Drupal will work on Apache 1.3 or Apache 2.x hosted on UNIX/Linux, OS X, or Windows. The majority of Drupal development and deployment is done on Apache, so there is more community experience and testing performed on Apache than on other web servers.
  • You can use the Apache 'mod_rewrite' extension to allow for clean URLs.
    Microsoft IIS
    • Drupal core will work using IIS 5, IIS 6, or IIS 7 if PHP is configured correctly.
    • To achieve clean URLs you may need to use a third party product. For IIS7 you can use the Microsoft URL Rewrite Module or a third party solution.
    • When using Drupal on IIS 7 with fastcgi you must install Hotfix kb954946, or wait until the hotfix appears in a package update (recommended). KB954946 was included in Windows 2008 Server SP2
    Drupal is being developed to be web server independent, but we have limited or no reports of successful use on web servers not listed here.
    The total file size of your Drupal installation will depend on what you add to your site, but Drupal core files alone will take up approximately 2 to 3 MB uncompressed. The exact size depends on the version of Drupal you have installed. 

    Database server 

     Recommended: MySQL (or an equivalent such as MariaDB)
    • Drupal 5.x and earlier supports MySQL 3.23.17 or higher. MySQL 4.1 or higher is strongly recommended.
    • Drupal 6 supports MySQL 4.1 or higher.
    • Drupal 7 will only support MySQL 5.0.15 or higher, and requires the PDO database extension for PHP (see PHP section below).
    There are several drop-in replacements for MySQL. Drupal has been extensively tested with MariaDB, and version 5.1.44 (or greater) is recommended. It is also likely that other drop-in replacements will work well with Drupal, but they have not specifically undergone testing.

    NOTE: Drupal makes use of some features not available on some inexpensive hosting plans so please check that your host allows database accounts with the following rights:
    SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, INDEX, ALTER.
    These rights are sufficient to run Drupal core 6.x.
    Some contributed modules, and also Drupal core 5.x (but not Drupal core 6.x), additionally require the following rights:

    CREATE TEMPORARY TABLES, LOCK TABLES.

    Note: If your system/host is running MySQL 4.1 or newer and you receive the error "Client does not support authentication protocol requested by server", address the problem by following the instructions provided by MySQL AB. There is a minor OS issue with some MySQL 5+ installations primarily on Windows but affecting some versions of Unix/Linux as well.

    Note: When using Drupal 5.x or later, particularly with contributed modules, it may be necessary to set the system variable max_allowed_packet to at least 16M. Some inexpensive hosting plans set this value too low (the MySQL default is only 1M). In that case, you may need to choose a better hosting plan. A value of 1M may be sufficient for 5.x.

    Note: Drupal supports MyISAM and InnoDB table types. NDB tables (MySQL Cluster) are not supported.
    Note that if your web hosting account is set up with a graphic control panel such as Plesk or CPanel, it is very likely that you do not need to worry about installing a driver for MySQL -- it is probably already installed on your server. You might wish to simply create your database and proceed with installing Drupal, and then refer back to Drupal documentation for specific troubleshooting help if you run into problems.

    PostgreSQL

    Note: Some contributed modules are not as abstracted from MySQL-specific code as everyone would like. If you are familiar with PostgreSQL please file issues with those contributed modules as you find them.
    • Drupal 6 supports PostgreSQL 7.1 or higher
    • Drupal 7 will only support PostgreSQL 8.3 or higher
    • PHP 5.2.6 for Windows has a bug in its pgsql extension. You will need to replace it with the php_pgsql.dll from version 5.2.5.

    SQLite 3.x - Drupal 7 only

    Note: Some contributed modules are not as abstracted from MySQL-specific code as everyone would like. If you are familiar with SQLite please file issues with those contributed modules as you find them.

    Other database engines

    Microsoft SQL Server and Oracle are supported by an additional module.
    Please see discussions in the Enterprise Group if you are interested in working on database support.

    PHP

    Recommended: PHP 5.2.x
    Required: PHP version 4.4.0 or higher (Contributed modules may not support this version of PHP)
    • PHP 5.3 is not yet supported by Drupal 5.x, but is supported by Drupal 6.14 core and higher (see the release notes for 6.14) and also by Drupal 7.x. Note that some contributed modules may not be compatible with PHP 5.3, and that some PHP 5.3 configurations still show warnings with Drupal 6.14; work is ongoing to resolve the latter in #360605: PHP 5.3 Compatibility.
    • PHP 5.2 or higher will be a requirement for Drupal 7.
    • PHP memory requirements can vary significantly depending on the modules in use on your site. Drupal 6 core requires PHP's memory_limit to be at least 16MB, and Drupal 7 core requires 40MB. Warning messages will be shown if the PHP configuration does not meet these requirements. However, while these values may be sufficient for a default Drupal installation, a production site with a number of commonly used modules enabled (CCK, Views etc.) could require 64 MB or more. Some installations may require much more, especially with media-rich implementations. If you are using a hosting service it is important to verify that your host can provide sufficient memory for the set of modules you are deploying or may deploy in the future. (See the Increase PHP memory limit page in the Troubleshooting FAQ for additional information on modifying the PHP memory limit.)
    • The PHP extension for connecting to your chosen database must be installed and enabled. Drupal's currently supported database connectors are: mysql (the original MySQL extension), mysqli (an improved connector for newer MySQL installations), and pgsql (for PostgreSQL). Note: PHP 5.x no longer enables the mysql extension by default. Please read the links above for installing and enabling your chosen connector. Additionally, Drupal 6.x does not provide the option to select the mysql connector if mysqli is enabled in your PHP configuration.
    • PHP XML extension (for Blog API, Drupal, and Ping modules). This extension is enabled by default in a standard PHP installation; the Windows version of PHP has built-in support for this extension.
    • An image library for PHP such as the GD library is needed for image manipulation (resizing user pictures, image and imagecache modules). GD is included with PHP 4.3 and higher and usually enabled by default. ImageMagick is also supported for basic image manipulations in Drupal core but there is much less support from contributed modules.
      If you have administrator rights on a Debian/Ubuntu server, and GD is not already available (see your phpinfo) it can usually be installed by going:
      sudo apt-get install php5-gd
      or on Redhat/Centos:
      sudo yum install php-gd
      See the ImageMagick install instructions for your platform if you want that. 
    • PHP needs the following configuration directives for Drupal to work (only directives that differ from the default php.ini-dist / php.ini-recommended):
      • register_globals: off; this is the default value, but some hosts have it enabled
      • error_reporting set to E_ALL & ~E_NOTICE. Work is ongoing to change this to E_ALL for Drupal 6 and Drupal 7.
      • safe_mode: off. Safe mode may interfere with file and image uploads.
      • Php Data Objects (PDO) must be activated for Drupal 7 to install and run correctly. Look in your php.ini. Uncomment (remove the leading semicolon) at line extension=php_pdo.dll, extension=php_pdo_mysql.dll. If these lines are not there, you will need to add them. The PECL version of PDO is not compatible with Drupal 7 and cannot be used. More information can be found on the What is PDO page.
      • In addition, we recommend the following setting: session.cache_limiter: nocache
    • Some of these settings are contained in the default .htaccess file that ships with Drupal, so you shouldn't need to set them explicitly. Note, however, that setting PHP configuration options from .htaccess only works under the following conditions:
      • With Apache (or a compatible web server)
      • If the .htaccess file is actually read, i.e. AllowOverride is not None
      • If PHP is installed as an Apache module
    • See the PHP manual for how to change configuration settings for other interfaces to PHP.
    • Drupal 7 may require the time parameter to be at least 30 seconds.
    • In some shared hosting environments, access to these settings is restricted. If you cannot make these changes yourself, please ask your hosting provider to adjust them for you.
      For more information about Drupal Development, Drupal Expert, Drupal Developer and Drupal Programmer visit at http://www.dckap.com

      Source :http://drupal.org/requirements

      Tuesday, November 16, 2010

      Drupal documentation team leadership change

      We have some changes to announce relative to Drupal's documentation team.

      Firstly, I'd like to thank Addison Berry (add1sun) for her two years of service as the Drupal documentation lead. She has done a great job of coaching documentation contributors and developing a vision for Drupal's documentation during her time as the lead. Addison has recently decided it was time to step down from this role, and I am pleased to be able to have her pass the torch onto a pair of keen documentation contributors.

      I've appointed Ariane Khachatourians (arianek) and Jennifer Hodgdon (jhodgdon) as the new documentation co-leads. Ariane will be taking the primary responsibility for the Drupal documentation, and Jennifer will be taking primary responsibility for the Drupal API documentation. They will also be working together to strengthen and build the Drupal documentation team, drive the direction and strategy for documentation projects, communicate the priorities and status of the documentation effort to the greater community, and organize documentation sprints.

      Jennifer and Ariane co-led the Drupal 7 help page upgrade last winter, and have since been putting great efforts into maintaining the online and core documentation, managing their respective issue queues, running sprints at various DrupalCamps, Summits, and DrupalCons, and helping mentor other documentation contributors. Formalizing their roles within the community will help to allow them to continue and further their efforts to improve Drupal's documentation with the help of the documentation team.

      Drupal is a collaborative effort, so Ariane and Jennifer would love to have your help working on the documentation. One of their top priorities is to enable others to contribute. The documentation team has a Drupal group at http://groups.drupal.org/documentation-team, which you are encouraged to join -- this is a great venue for discussions of new ideas and directions. If you have ideas to share or need help getting started as a contributor, you can usually find Ariane (arianek) and Jennifer (jhodgdon) on the #drupal-contribute and #drupal-docs IRC channels.

      Addison, Ariane, Jennifer, and several other members of the documentation team will be meeting in early December in Vancouver (http://groups.drupal.org/node/105309) to work on the leadership transition and discuss strategies and priorities. This meeting will be followed by a day-long documentation sprint Saturday, December 11 -- the sprint will be both in person and on IRC, so please join in!

      For more information about Drupal Development, Drupal Expert, Drupal Developer and Drupal Programmer visit at http://www.dckap.com

      Source: http://drupal.org/node/972558 

      Monday, November 15, 2010

      Drupal Installation guide

      Drupal provides an installation script that automatically populates database tables and configures the correct settings in the settings.php file. This section covers preparing for installation, running the installation script itself, and the steps that should be done after running the installation script has completed. It also explains how to do a "multi site" installation, where a number of different Drupal sites run off the same code base.
      Before proceeding with your first Drupal installation, you should also review the best practices section. For help with Drupal terms, see the terminology page. 

      Other tools

      Some of the steps in the installation process can be performed with tools such as graphical applications for moving files and managing databases or tools that are provided by your hosting service. This documentation focuses on performing tasks at the command line. For information on using other tools, see the documentation that accompanies the application or is provided by your hosting service. 

      Creating a test site on a local computer

      It is considered a good practice to do all development work on a separate test site before making changes to a production site. A test site allows you to evaluate the impact of upgrades, new modules, modifications to themes etc. without causing disruption to your live site. For information about setting up a web server on a local computer, see the Local Server Setup section of the Developing for Drupal guide.

      Alternative methods for installation

       

      Some web hosting companies offer "one-click" installations of Drupal, or specific Drupal support. You may be able to locate one on the Drupal hosting handbook page.

      There is also a handbook page listing Drupal distributions, which include installation profiles and pre-packaged distributions of Drupal and modules. These may be of help as well.

      For more information about Drupal Development, Drupal Expert, Drupal Developer and Drupal Programmer visit at http://www.dckap.com

      Source : http://drupal.org/documentation/install 

      Sunday, November 14, 2010

      SimpleTest Tutorial (Drupal 7)

      Note: The code for this tutorial is maintained in the Examples for Developers module. This means:
      • You can grab a copy there and fiddle with it, change it, experiment with it.
      • If you find problems, file an issue there and get it fixed. Patches and improvements are welcome.
      This tutorial will take you through the basics of testing in Drupal. By the end you should be able to write your first test! For this example we will create a dummy module called "simpletest_example", which provides a content type called "simpletest_example". This content type is exactly the same as any basic Drupal node type (e.g., 'page'). The tutorial will then explain how to test this simpletest_example content type to ensure it functions properly.

      Setup for the tutorial

      First, we will need to make sure that the Simpletest module is installed.
      In Drupal 7, Simpletest is part of the core and is called Testing.
      If you have not done so already, you will need to make sure the Simpletest module is enabled.
      Simpletest verbose testing information is on by default in Drupal 7, but you need it and may want to check to make sure it's turned on. It gives you a screenshot of what the Drupal page looks like at every point in the test. Check it at admin/config/development/testing/settings.
      This tutorial makes use of the Simpletest Example module from http://drupal.org/project/examples.

      How Drupal's Simpletest works

      Most of Drupal is web-oriented functionality, so it's important to have a way to exercise these functions. Simpletest creates a complete Drupal installation and a virtual web browser and then uses the virtual web browser to walk the Drupal install through a series of tests, just like you would do if you were doing it by hand. It's terribly important to realize that each test runs in a completely new Drupal instance, which is created from scratch for the test. In other words, none of your configuration and none of your users exists! None of your modules are enabled beyond the default Drupal core modules. If your test sequence requires a privileged user, you'll have to create one (just as you would if you were setting up a manual testing environment from scratch). If modules have to be enabled, you have to enable them. If something has to be configured, you'll have to use Simpletest to do it, because none of the configuration on your current site is in the magically created Drupal instance that we're testing. None of the files in your files directory are there, none of the optional modules are installed, none of the users are created. We have magic commands to do all this within the Simpletest world, and we'll get to that in a little bit.

      About the Simpletest Example module

      The Simpletest Example module provides a custom node type (like 'page' or 'story'). It has a title and a body. That's it. It gives us a chance to demonstrate testing of content creation. To implement the node, we have to provide the node type to Drupal with hook_node_info() and provide a form for the node type with hook_form(). We implement permissions for the module (so that you need "create simpletest_example content" permissions to create one, or "edit own simpletest_example content" permissions to edit one.) And of course we need a simpletest_example.info.
      Note that our module has a bug in it: The permissions handling is not done correctly. So even though there's a permission string for 'edit own simpletest_example', it's not handled correctly by simpletest_example_access(), so when our properly privileged user tries to edit a node, it can't. Of course, the manual user tester was probably testing with user 1, so never saw this failure case. We'll get to this later.

      This code is maintained in the Examples for Developers module. It really helps to try out the code, change it a bit, experiment with dummy code like this before trying to do something serious.
      You're encouraged to grab it, enable the module, and work with the code.

      For more information about Drupal Development, Drupal Expert, Drupal Developer and Drupal Programmer visit at http://www.dckap.com

      Source: http://drupal.org/simpletest-tutorial-drupal7 

      Thursday, November 11, 2010

      Apps on Facebook.com (canvas pages)

      Applications on facebook.com, also known as canvas pages allow you to add new features to a user's facebook account. The features and content come from your server, but the user never leaves the facebook.com domain, and the pages have facebook's branding, look and feel.

      Create an Application on Facebook

      Required modules

      • fb_app.module
      • fb_canvas.module
      • fb_connect.module - despite the name, this module contains useful features for iframe canvas pages.
      • fb_user.module - not strictly required but most application will need this.

      Settings and Configuration

      Step 1: Remote settings

      1. Assuming you've created an application as described on the installation page, go to admin >> site building >> facebook applications.
      2. Under "Remote Settings" you'll see the application's ID. Click this link to go to the settings page on facebook.com.
      3. Click "Advanced Settings" on the left.
      4. Enable the "migrations" - Both "JSON Encoding Empty Arrays" and "OAuth 2.0 for Canvas (beta)" are required. Other migrations "Stream post URL security" and "Canvas Session Parameter" are safe to enable. (The latter seems to have no effect when oauth 2.0 is also enabled, but who knows for sure).
      5. Click "Facebook Integration" on the left.
      6. Look for "Canvas Page" and type your desired path into the field.
      7. Click "Save Changes". Retry as needed until you get a path not in use by any other application.
      Each canvas application get a URL something like apps.facebook.com/EXAMPLE.

      Step 2: Enable URL rewriting

      URL rewriting and other settings must be initialized before modules are loaded, so you must add this code to your settings.php. This is easily done by including fb_url_rewrite.inc before fb_setting.inc, near the end of your settings.php (usually sites/default/settings.php).

        include "sites/all/modules/fb/fb_url_rewrite.inc";
        include "sites/all/modules/fb/fb_settings.inc";

      (Remember to change the path if modules/fb is not in sites/all.) Q: Why rewrite URLs? A: In some cases, particularly when a user visits your canvas page without authorizing it or logging into facebook, facebook does not send any identifying information to the canvas page iframe. That is, Drupal will not know whether the request is for a canvas page or a regular page. To help Drupal figure it out, we embed the app's apikey inside the URL. We do this using Drupal's url rewriting technique.

      Step 3: Local settings

      You will need a theme designed for the 760 pixel wide canvas that facebook provides for your application.
      1. Return to your drupal admin pages. Specifically admin >> site building >> facebook apps.
      2. Under "Local Operations" click edit.
      3. Open the "Facebook Canvas Pages" fieldset.
      4. Select the theme you wish to use. If you don't see it, make sure you've enabled it under admin >> site building >> themes.
      5. Optionally, select a front page different from the default home page.
      [[TODO: add information about themes, autoresizing,...]]
      To confirm that your application is working, return to admin >> site building >> facebook applications. Click the link n the "canvas" column. This should bring you to your application's home canvas page.

      For more information about Drupal Development, Drupal Expert, Drupal Developer and Drupal Programmer visit at http://www.dckap.com 

      Source: http://drupal.org/node/923818 

      Tuesday, November 9, 2010

      Translate Drupal to your language

      The text that you see in Drupal's user interface is in English by default, such as the "Log in" button and the "Add new comment" text. These texts however can be translated. A translation of Drupal is the set of texts that are visible in the Drupal screens in any other language, such as texts on buttons, menus, field captions and messages. For many languages, there are completed or partly completed translations available; see the locale module on how to use them.
      There is always a need for contributions in translations. Some have only incomplete versions of the text in core, so that parts of the interface will show up in English, while others need corrections and improvements of the language. And no language has a complete set of translations for all contributed modules.

      How to contribute

      The translation process and translation tools have changed recently, and some translation teams are still using earlier solutions. To find the language you want to contribute to, follow these steps:
      1. First, look for the language on the Localization server. This is the main place for translation work, and all new projects should start here. To contribute, log in with your drupal.org account, and join the relevant language team(s). See How to contribute using a localization server for more information.
      2. A few languages still maintain separate localization servers, started before localize.drupal.org was available. See a list of these at the project page for the localization server. (These languages can be moved to localize.drupal.org if the translation teams request it, see step 4 below.)
      3. Some languages have only the old translation solution with a project page, and no translation server. You can find them in the list of translation projects, but note that most of the languages on that list have moved to the Localization server. To contribute, see How to contribute by editing .po files. (These languages can be moved to localize.drupal.org if the translation teams request it, see step 4 below.)
      4. If you want to translate a language which is new to Drupal, or if you want to move an existing team to localize.drupal.org, follow the procedure at the bottom of the localize.drupal.org landing page, under "Set up your group here".

      Read more about interface translation


      For more information about Drupal Development, Drupal Expert, Drupal Developer and Drupal Programmer visit at http://www.dckap.com 
       
      Source: http://drupal.org/contribute/translations

      Monday, November 8, 2010

      Installation of WYSIWYG image upload

      Just have a look in the video-podcast, as its explained there also.
      1. Dependencies: Install all dependencies and watch out for the correct versions! eg:
        1. jquery_ui module 6.x-1.4 (IMPORTANT: Install the jQuery UI Library according to this howto. You have to replace the jquery.ui folder with the (js library) with the 1.7.x version !!)
        2. jQuery Update (IMPORTANT: Be sure you have installed jquery_update 6.x-2.0-alpha1 or newer and NOT jquery_update 6.x-1.1)
        3. Jquery UI Dialog
        4. ImageCache
          • (IMPORTANT: Even though imagecache is automtically activated, the imageAPI implementations are not. Please activate 'ImageAPI GD2' or 'ImageAPI ImageMagic'.)
          • (IMPORTANT:You NEED to have at least one preset in imagecache, otherwise you wont see any images. Create at least one!)
        5. Wysiwyg (Then install and configure your required editor)
        6. Translatoins can be found on the localization server
      2. Enable (a) the WYSIWYG imageupload module
        (optional) Enable (b) the WYSIWYG Image upload Browser if you wish to be able to browse and insert images that have already been uploaded.
      3. Enable image uploading plugin in the WYSIWYG editor:, Go to the Wysiwyg setting, and click the "Edit" link on the required input format. Under "Buttons and plugins", check the new "Image uploading" option. You'll also need to check all the buttons and plugins you want.
      4. Input Filters: Activate the input filter "Drupal Wiki inline images" for all input-types you want to use wysiwyg_imageupload in. If you are using 'HTML filter' for your 'Input filter', you probably have to add img as a allowed html tag. Be sure to run the filter very early ( heavy weight ), otherwise other filters can strip out CSS
      5. Cache: Clear your cache once (theme cache)
      6. Easy check: Starting from 6.2-RC2 you can go to the status page (reports/status) and check the requirements ( shouldn`t look like this )
      7. Configuration: Under Settings ( admin/settings/wysiwyg_imageupload ) you can set the paths, styles, presets and other things
      8. Permissions: Give the roles you actually want to be able to use the wyswig image upload plugin the 'use wysiwyg image upload' user permission
      9. Translations: For translations check the official localize server. Just select your language and export the .po file or install the i10nupdate client to fetch the language (i18n module)

      Migration steps

      1. If you used wyswiyg_imageupload 6.1.x before, please read the migration guide

      Activating extensions (submodules)

      • If you want to use the Image-Browser, activate the submodule Wysiwyg ImageUpload Browser
      • If you want to have lightbox integration, activate the submodule Wysiwyg ImageUpload Ligthbox (Note: there is an issue with Lightbox2 v6.x-1.9 and jquery update v6x-2.x-dev, which is solved by installing Lightbox2 v6.x-1.x-dev)
      • If you want to migrate from 6.1. lightbox integration, activate the submodule Wysiwyg ImageUpload migrate 1 to 2
      For more information about Drupal Development, Drupal Expert, Drupal Developer and Drupal Programmer visit at http://www.dckap.com 

      Source: http://drupal.org/node/808626

      Thursday, November 4, 2010

      Installing Video Module

      Required and Enhancement Modules for Video Module
      At its core, the Video module is a field and handler for CCK; it enhances CCK and Filefield to provide video uploading, video transcoding (local ffmpeg default), video thumbnail creation and selection; and choice of playback method per format.
      Additional features for Video module include: Zencoder transcoding integration, Amazon S3 integration and attaching FTP'd file to nodes.
      Other modules which Video module integrates with are; SWF Tools and Flowplayer (use these if you need more video player options).

      Required

      * CCK (http://drupal.org/project/cck)
      * Filefield (http://drupal.org/project/filefield)

      Enhancement

      * Amazon S3 on Video (included in Video module)
      * Zencoder API on Video (included in Video module)
      * Video FTP (included in Video module)
      * FFMPEG Wrapper (http://drupal.org/project/ffmpeg_wrapper)
      * SWF Tools (http://drupal.org/project/swftools)
      * Flowplayer API (http://drupal.org/project/flowplayer)

      Once you have installed and configured CCK, Filefield and video player (optional) you can then install Video module from the module administration page (Administer > Site building > Modules).

      For more information about Drupal Development, Drupal Expert, Drupal Developer and Drupal Programmer visit at http://www.dckap.com 

      Source: http://drupal.org/node/961826 

      Tuesday, November 2, 2010

      Basic installation

      The following is a simple guide to create a Drupal site in a few easy steps. You can also skip to the command line quick install guide for developers, read a more detailed version of these instructions, or check out the installation troubleshooting guide.
      To follow these steps, you will need a SFTP client such as WinSCP or FileZilla, and a web server that meets a few basic requirements (e.g. a web server such as Apache, a database such as MySQL, and PHP.)
      First there are steps for Drupal 7, then for Drupal 6 below. They are very similar.

      Drupal 7

      Step 1: Download

      • Download the latest version of Drupal 7.
      • You will get a file called drupal-x.x.tar.gz. Extract the Drupal files.
      • Log into your server using your SFTP client and navigate to the web root directory. Upload all the files inside your drupal folder into the web root folder.

      Step 2: Create a database

      • Create a new database through your hosting provider's control panel. Make a note of the database name.
      • Create a user, add that user to the database, and grant the user full rights on the database. Make a note of the username and password.

      Step 3: Make the sites/default directory writable.

      • For example, on a Unix/Linux command line, use this command: chmod a+w sites/default

      Step 4: Install

      • Browse to your new Drupal site. This will take you to the Drupal installer, which starts with: "Select an installation profile." Save and continue.
      • Choose "Standard." Save and continue.
      • Choose English or learn how to install Drupal in other languages. Save and continue.
      • Choose the type of database you created (e.g. MySQL or SQLite). Enter the name of the database you created, the username, and password. Save and continue.
      • On the site information page, you can set the site name and email from which the site will send out mail. You also set the username, email, and password of the first administrator account. Save and continue.
      • Log in to your new Drupal site.

      Drupal 6

      Step 1: Download

      • Download the latest stable version of Drupal 6.
      • You will get a file called drupal-x.x.tar.gz. Extract the Drupal files.
      • Log into your server using your SFTP client and navigate to the web root directory. Upload all the files inside your drupal folder into the web root folder.

      Step 2: Create a database

      • Create a new database through your hosting provider's control panel. Make a note of the database name.
      • Create a user, add that user to the database, and grant the user full rights on the database. Make a note of the username and password.

      Step 3: Create the configuration file

      • In your /sites/default folder, you will find the default.settings.php file. Make a copy of this file and rename it to settings.php.
      • Change the permissions on the /sites/default folder and the settings.php file to be writable. (On a Unix/Linux command line: chmod a+w sites/default).

      Step 4: Install

      • Browse to your new Drupal site. This will take you to the Drupal installer. Start filling out the form.
      • When you get to the database screen, choose the type of database you created (e.g. MySQL or SQLite). Enter the name of the database you created, the username, and password. Save and continue.
      • Change the permissions on the settings.php file to remove write permissions. (On a Unix/Linux command line: chmod a-w sites/default).
      • On the site information page, you can set the site name and email from which the site will send out mail. You also set the username, email, and password of the first administrator account. Save and continue.
      • Log in to your new Drupal site.
      For more information about Drupal Development, Drupal Expert, Drupal Developer and Drupal Programmer visit at http://www.dckap.com 
       
      Source: http://drupal.org/node/628292

      Monday, November 1, 2010

      Drupal 6 ecommerce course

      Learn how to sell tangible goods, downloadable products or subscriptions/memberships with Drupal and Ubercart.

      Drupal eCommerce, written by experienced technical author David Mercer (Building powerful and robust website with Drupal 6, Drupal 7), is designed to give you a comprehensive practical introduction to creating and operating any type of ecommerce website.

      What you will learn:

      Install and configure UberCart
      Create and add physical or downloadable products
      Product variations with attributes and features
      Payment capture
      Shipping
      Tax
      Fulfilment and order management
      Advanced features

      Description

      The course focusses on practical, real world knowledge with an abundance of insights and valuable information to turn you into an adaptable and confident ecommerce webmaster. Split nominally into four main sections, the course will discuss how to:
      1. install and configure UberCart
      2. create and manage any type of product (including tangible, downloadable and subscription/membership products)
      3. fulfil orders by capturing payments and handling shipping
      4. implement advanced features like recurring payments, discounts, affiliates and product kits
      The course is integrated with the Web so that readers can effortlessly navigate between the course and online quizzes, practicals and exercises.

      Who's it for

      This course is designed for people who want to set up an ecommerce website of any sort. It assumes the reader already has a Drupal 6 website installed on their own PC or web server. However, we offer a complimentary Drupal installation and setup course for people who don't.

      Table of contents


      * Preface
      * Introduction
      * Installation
      * Configuration
      * Shipping
      * Tax
      * Products
      * Classes
      * Attributes and Options
      * Features and Adjustments
      * Catalog
      * Fulfilment
      * Payments
      * Shipping
      * Advanced
      * Summary
      * Recommended Reading

      If you're interested in reviewing this course, please contact me directly or via the Site prebuilder website (www.siteprebuilder.com). Please be sure to mention the online (or offline) resource you intend to write the review for.

      Ultimately, this course represents the start of a series of short, focussed professional courses that will empower Drupal users to learn what they want when they want in a practical, efficient and cost effective manner. I aim to turn this concept into a great resource for the Drupal community so if you think you can help out or support it in anyway - get in touch. I'd be happy to discuss it...

      For more information about Drupal Development, Drupal Expert, Drupal Developer and Drupal Programmer visit at http://www.dckap.com

      Source: http://drupal.org/node/953306