Sunteți pe pagina 1din 14

Drupal

1. What Is Drupal?
Drupal (pronounced Dru-Pull) is an open source content management system offering a toolset
that rivals those of most commercial alternatives. With integrated social media and e-commerce
functionality, it provides unique value as part of your social media strategy.

2. What Does Drupal Do?


Drupal is the choice for many great web sites because it does a lot of different things very well,
and allows different kinds of information to interact effectively through its flexible, open
architecture. Compared with commercial or custom solutions, Drupal's feature set is far more
economic and practical for most organizations.

3. How Does Drupal Scale?


Trellon has built Drupal sites and deployed them in very demanding scenarios, serving millions of
page views a day. Drupal scalability and performance optimization is one of our core
competencies, and we often work with existing web properties to find ways to improve their
performance. Contact us to discuss your specific needs.

4. What Kind of Support Is Available?


A wide range of support services are available for organizations running Drupal sites. The Drupal
community itself is an excellent resource for people looking to learn more about the platform or
resolve specific issues that emerge using the system. Acquia offers an enterprise distribution of
Drupal that includes uptime monitoring, email and telephone based troubleshooting support, and
subscription plans for sites with varying performance requirements.

5. How Does Drupal Compare to Commercial CMS Systems?


Drupal is often compared to a number of commercial content management systems including
Crown Peak, Expression Engine, Clickability and Site Life in terms of capabilities. None of these
systems offer the range of features that can be found in Drupal or the flexible, developer-friendly
architecture that allows us to rapidly deploy dynamic web sites. In terms of sustainability, these
platforms charactertistically lack the innovative approach to development embraced by the Drupal
community, with updates and new features continually being added to the platform. These
systems typically do surpass Drupal in terms of out-of-the-box reporting and metrics tools,
generally providing views of data that is also stored in other systems. For instance, detailed page
tracking information can just as easily be pulled from a CDN and integrated into a Drupal site for
much less than the costs of per-seat licenses from a commercial vendor over a 1 month period.

6. How Does Drupal Compare to Other Open Source CMS Systems?


Drupal is also often compared with other open source content management systems including
Joomla, Plone, Scoop, Silverstripe, Typo3, Graffitti, Moveable Type and Wordpress. There are
characteristic features to all of these systems that make them appropriate in certain contexts, and
most of them compare favorably to Drupal in one category of operation or another. Few of them,
however, are capable of offering the balance between performance and functionality found in
Drupal.

7. How Does Drupal Compare to Ruby on Rails?


Another common alternative platform to Drupal is Ruby on Rails. We really don't have much to
say about Ruby except that it is a framework moreso than a platform. There are some
characteristically challenging web development tasks that are quite easy to do with Ruby, and
there are others which are infinitely more complicated than they should be.
One big difference is the fact that Ruby lacks the refined data object model found in Drupal that
ensures interoperability between various aspects of the system, such as adding new modules to
modify the operations of others. Whereas Drupal offers a self-generating database schema for
many modules and underlying components of the platform, Ruby on Rails emphasizes a design
philosophy holding that simplification of code conventions leads to better outcomes. While this all
sounds good in principle, we have found there are certain tasks that make adherance to this
philosophy an ideal moreso than a practical goal and breaking free from these conventions when
necessary a daunting task (especially when integrating with external systems).

8. Why ca not A Drupal user edit a node they created?


Symptoms: An authorized Drupal user loses "edit" access to nodes they've created, even if they
have appropriate node (or other module) access permissions. Or, user cannot edit a node that
should be editable by them, based on access control or node access settings. No errors or
warnings are presented to the user. Nothing in the Drupal watchdog log.
Possible Cause: The user does not have permission to use the input filter currently assigned to
the node. (An administrator or other privileged user may have changed the input filter settings, or,
input filter permissions may have been changed to exclude the node author since the node was
created. As a result, the user never had, or no longer has permission to use the input filter
associated with the node.)

9. What are System requirements for Drupal?


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).

10. The search features in Drupal are excellent, as compared to search in other content
management systems. What makes these so good?
Drupal's search is so good because Drupal doesn't treat its content as a big bucket of text; rather,
all of the fine-grained semantic information that Drupal knows about can be used to fine-tune
search results. That includes the type of content, any classification information from the taxonomy
system, and the usual content metadata. Inside the search engine is an extensible indexer that
can accept pretty much anything. In the book, one of the examples uses Drupal to index an
external non-Drupal database.

And as usual, you can tweak and override the search system to adjust the user interface, the way
content is ranked, and the way results are displayed. That said, Drupal integrates well with
external search engines such as Apache Solr, Xapian, and Sphinx if the built-in Drupal search
does not meet your needs.
source: http://ostatic.com/blog/interview-john-vandyk-author-of-pro-drupal-development

11. Drupal is flexible at handling events automatically and employing triggers. How do
developers make use of these features?
There are really two answers here. At the code level, that's always what Drupal has been about:
having your code run when a certain event happens. For example, the following code would send
a tweet to my Twitter account every time someone logs in to the Drupal site (it requires the third-
party Twitter Module to be installed to do the dirty work).

function mymodulename_user($op, &$edit, &$account) {

if ($op == 'login') {

// Bring twitter-related functions into scope.

module_load_include('inc', 'twitter');

// Use t() for proper localization.


$text = t('@username logged in', array('@username' => $account->name));
// Post to twitter using the twitter module.
twitter_set_status('clouseau', 'secret', $text);

That's fine if you are a programmer. But what if we took the whole idea of "Send a message to
Twitter" and abstracted it? Then we could use a nice user interface to associate the action "Send
a message to Twitter" with one of Drupal's common events, such as when a user logs in, or posts
content, or creates a new account. That is what the new features in Drupal 6 provide: the user
interface for doing such associations between actions and events. A trigger is an event that has
been exposed in the user interface.

You can also create your own triggers. Perhaps you want to go the other way: you want actions
to happen in Drupal when a new tweet is posted to your Twitter account! Chapter 3 of the book
tells you how to make your own triggers.
source: http://ostatic.com/blog/interview-john-vandyk-author-of-pro-drupal-development

12. what a module is in Drupal and what the process of writing one involves?
When developers learn that modifying Drupal's core code is a no-no, they often have a panic
moment. "How, then will I bend Drupal to do my will?," they ask. Easy: by writing a module. The
first part of writing a module is writing a .info file, where you describe your module to Drupal.
Here's an example from the Forum Module:

; $Id: forum.info,v 1.6 2007/06/08 05:50:54 dries Exp $

name = Forum

description = Enables threaded discussions about general topics.

dependencies[] = taxonomy

dependencies[] = comment

package = Core - optional

core = 6.x

This gives Drupalenough information to list the module on the modules administration page, and
to tell whether the module is compatible with the version of Drupal being run (in this case, 6.x).
Drupal will also make sure the dependent modules are present.

A module may have a .install file containing code that runs when the module is first installed. For
example, some database tables may be needed, or some values may need to be initialized in
Drupal's persistent variable system.

Finally, the .module file itself contains the code that does whatever it is that your module will do.
And that's just about anything. There were 3,430 modules in the repository last time I checked, so
it's a good idea to check if the module you're thinking about writing is already written. Drupal
Modules is a good place to do that.

New Drupal developers are also often stymied by the question "When does my code run? I put it
in a module, but when does the module run?" Answering that question requires understanding of
the Inversion of Control design pattern that Drupal uses, often called "hooks" or "callbacks". You
name your functions in a certain way, and Drupal will automatically call your code at the
appropriate time, depending on how you've named the functions.

source: http://ostatic.com/blog/interview-john-vandyk-author-of-pro-drupal-development

13. Which are the core optional modules in drupal 6.x ?


1. Aggregator Aggregates syndicated content (RSS, RDF, and Atom feeds).
2. Blog Enables keeping easily and regularly updated user web pages or blogs.
3. Blog API Allows users to post content using applications that support XML-RPC blog APIs.
4. Book Allows users to structure site pages in a hierarchy or outline.
5. Color Allows the user to change the color scheme of certain themes.
6. Comment Allows users to comment on and discuss published content.
7. Contact Enables the use of both personal and site-wide contact forms.
8. Content translation Allows content to be translated into different languages.
9. Database logging Logs and records system events to the database.
10. Forum Enables threaded discussions about general topics.

11. Help Manages the display of online help.


12. Locale Adds language handling functionality and enables the translation of the user interface
to languages other than English.

13. Menu Allows administrators to customize the site navigation menu.


14. OpenID Allows users to log into your site using OpenID.
15. Path Allows users to rename URLs.
16. PHP filter Allows embedded PHP code/snippets to be evaluated.
17. Ping Alerts other sites when your site has been updated.
18. Poll Allows your site to capture votes on different topics in the form of multiple choice
questions.
19. Profile Supports configurable user profiles.
20. Search Enables site-wide keyword searching.
21. Statistics Logs access statistics for your site.
22. Syslog Logs and records system events to syslog.
23. Taxonomy Enables the categorization of content.
24. Throttle Handles the auto-throttling mechanism, to control site congestion.
25. Tracker Enables tracking of recent posts for users.

26. Trigger Enables actions to be fired on certain system events, such as when new content is
created.
27. Update status Checks the status of available updates for Drupal and your installed modules
and themes.
28. Upload Allows users to upload and attach files to content.

14. Is it possible to disable the core required modules through drupal admin ?
No, it is not possible to disable the core required modules.

15. Which are the core required modules in drupal 6.x ?


1. Block --- Controls the boxes that are displayed around the main content.
2. Filter --- Handles the filtering of content in preparation for display.
3. Node --- Allows content to be submitted to the site and displayed on pages.
4. System --- Handles general site configuration for administrators.
5. User --- Manages the user registration and login system.

16. How to enable clean urls in drupal ?


The standard Drupal installation contains a sample .htaccess file which supports clean URLs. It is
easy to miss copying this file, because of the leading "dot". So before trying to enable Clean
URLs, make sure this file exists in your Drupal installation.
Drupal 6.x
In Drupal 6, the installer tests for compatibility with Clean URLs as a part of the installation
process.
Drupal 5.x
Goto the administer >> site configuration >> clean urls section of the administrative interface.
Clean urls can be enabled by following the above two options in respective versions of drupal
website.

17. What is PDO?


PDO is an acronym for PHP Data Objects. PDO is a lean, consistent way to access databases.
This means developers can write portable code much easier. PDO is not an abstraction layer like
PearDB. PDO is a more like a data access layer which uses a unified API (Application
Programming Interface).

18. What are the browser requirements for Drupal ?


Websites built using just Drupal core (i.e. with no additional, contributed modules) are compatible
with, and fully functional, in all modern browsers that support CSS and JavaScript. However,
browsers have varying levels of compliance with Internet standards such as CSS 2, so there may
be minor variations in appearance.
Here is an incomplete list of browsers that are known to work well with Drupal core and support
all of its features:
• Internet Explorer 6.x and later
• Firefox 2.x and later
• Opera 7 and later
• Safari 1.x and later
• Camino 1.x and later
• Google Chrome
It's worth mentioning here that IE6 has an problem with loading more than 30 stylesheets, and it's
fairly easy to run into this problem once you start adding contrib modules.

19. What are systems requirements for drupal installation ?


- 3MB of disk space

- 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).

Web Server
Drupal has been deployed successfully on both Apache and IIS.
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.

Database server
Recommended: MySQL 4.1 or MySQL 5.0
PostgreSQL 7.4 or higher

PHP
Recommended: PHP 5.2.x
Required: PHP version 4.3.5 or higher (Contributed modules may not support this version of
PHP)

20. Explain the capabilities of views module.


The Views module provides a flexible method for Drupal site designers to control how lists and
tables of content (nodes in Views 1, almost anything in Views 2) are presented. Traditionally,
Drupal has hard-coded most of this, particularly in how taxonomy and tracker lists are formatted.
This tool is essentially a smart query builder that, given enough information, can build the proper
query, execute it, and display the results. It has four modes, plus a special mode, and provides an
impressive amount of functionality from these modes.
Among other things, Views can be used to generate reports, create summaries, and display
collections of images and other content.

21. How to port a joomla template to drupal ?


For explanation please visit
http://drupal.org/node/198333

22. List the features of Drupal


1. Rock solid & high quality platform
2. Powerful templating system. Any XHTML or CSS template can be easily converted to Drupal
3. Real multi-site-feature (only one installation for several sites)
4. Any Kind of user groups & user permissions, OpenId compliant in Version 6
5. Can run membership and community sites, not only CMS etc
6. Clear, high quality code and API (easy to integrate with other solutions etc)

23. What is difference between Diff and Patch diff creates patch
In simple terms, the diff command is used to compare differences between two versions of a file.
The resulting file is called a patch, and typically is given (by the user) a ".patch" suffix.
This patch file then can be used on other copies of the "old" file by using the patch command,
thus updating their "old" file(s) to match the "new" file(s).
Why you would use diff
When might one use diff to create a patch file? Let's say you are customizing a module to fix a
bug, and have saved a new version of the module. How will you pass on your bug fix to others?
Simply passing on your version of the module may not work, because it's quite possible someone
else has modified some other aspect of the code at the same time and you both would be
overwriting each others' changes.
So instead, what you do is run diff between the two files, and then upload the resulting patch --
which others can then apply to their files using the patch command. (And you can apply other
people's patches against your files, without losing your own changes.)
The added benefit of this type of workflow is that changes to the code can easily be tracked --
and undone, if necessary -- which is essential in a community-developed project such as Drupal.

24. What is a patch?


A patch is a file that consists of a list of differences between one set of files and another. All code
changes, additions, or deletions to Drupal core and contributed modules/themes between
developers are done through patches.
The differences are presented in a structured, standard way, which means that a program (also
named patch) can be used to apply the changes to another copy of the original file.

25. How to post videos from mobile to Drupal website ?


Posting video from mobile phone to drupal website via email requests from user to configure a
mobile phone with smtp settings and reasonable Internet connection (3g). Costs depends from
your mobile phone provider: at some networks you pay only for transfer volume, at others you
might pay for "event" of establishing connection.
On server side you will probably need to setup smtp server and provide access to it to users of
your website. Transcoding of posted video employs ffmpeg, its standard software on proper
hosting server.
Process Overview
1. Email with video attachment from mobile phone is sent to a defined mailbox
2. Drupal website downloads Mail on cron (mailhandler module)
3. Emails are turned into nodes with videos as attachments
4. Media Mover runs on cron, trans-coding mobile video formats and creating thumbnails
5. Transcoded flash video files are added to cck file field
6. Thumbnail added to file field
7. Nodes are themed using swftools to display video using "JWplayer"
Modules used
• Mailhandler
• Mailssave
• Mediamover
• SWFTools
• FFMPEG_wrapper
• cck
• filefield
• imagefield

26. List the SEO modules available in Drupal.


1. Pathauto
2. Nodewords/ Meta tags
3. Service links
4. Google analytics
5. Related Links
6. Search 404
7. Site map
8. Url list

27. List the modules required for building a social networking website in Drupal.
• Activity
• Advanced Forum
• Advanced Profile Kit
• Application Toolbar (Appbar)
• Author Pane
• Buddylist2 Package
• Buddylist: list your social network
• CiviCRM: manage community contacts, relationships, and activities
• CiviNode and CiviNode CCK: Tools For Integrating CiviCRM Contacts Into Drupal Content
• Comment Notify
• FOAF: friends of a friend
• Facebook-style Statuses
• Family: Record, display, and analyze genealogical data.
• Flag Friend
• Friend
• FriendList
• Front: Show group membership and events
• Gigya Socialize Module
• Invite: send invitations to join your site
• Notice Feed
• Organic Group
• Profile Setup
• Radioactivity
• Sports Pickem
• Tellafriend Node
• User Invite
• User Relationships
• UserTag:Tag users with taxonomy terms
• meetü: The Social Networking Game from the OPL @ RIT

28. Explain the function and working of Dashboard module ?


The Dashboard module provides a Dashboard page in the administration menu. The intention of
the Dashboard page is to give administrators a quick overview of important information on the
website.
29. How To Define New Regions in Drupal
To add regions for Drupal 5.x
ADD this code in its entirety to the bottom of your template.php file:
/** Define the regions **/
function framework_regions() {
return array(
'left' => t('left sidebar'),
'right' => t('right sidebar'),
'content' => t('content'),
'header' => t('header'),
'footer' => t('footer'),
'newregion' => t('new region'),
);
}
Replace "newregion" with what you would like to call that region instead. Note that the name on
the left before the = is the machine readable format, and cannot have spaces. the name after the
= is the human readable format, and can have spaces, capital letters etc. You may add as many
regions as you like in the same manner that "newregion" has been added in the example above.
Then, in your page.tpl.php file, define where you would like you regions to be using a print call
like so:
You need to replace "newregion" with what you named your region. The id, class and any other
html can be changed to anything.

To add regions for Drupal 6.x


ADD the following code to you themename.info file:
regions[left] = Left sidebar
regions[right] = Right sidebar
regions[content] = Content
regions[header] = Header
regions[footer] = Footer
regions[newregion] = New Region

The internal "machine" readable name in square brackets and the human readable name as the
value, e.g., regions[theRegion] = The region label.
The contents of the .info file is cached in the database so altering it will not be noticed by Drupal.
To clear it, do ONE of the following:
1. Clear button located at "Administer > Site configuration > Performance".
2. With devel block enabled (comes with devel module), click the "Empty cache" link.
3. Simply visit the theme select page at "Administer > Site building > Themes".
Then, in your page.tpl.php file, define where you would like you regions to be using a print call
like so:
You need to replace "newregion" with what you named your region. The id, class and any other
html can be changed to anything.

30. Explain Region, Block, Menu in drupal ..


Pages on your Drupal site are laid out in regions, which can include the header, footer, sidebars,
and main content section; your theme may define additional regions. Blocks are discrete chunks
of information that are displayed in the regions of your site's pages. Blocks can take the form of
menus (which are concerned with site navigation), the output from modules (e.g., hot forum
topics), or dynamic and static chunks of information that you've created yourself (e.g., a list of
upcoming events).
There are three standard menus in Drupal: Primary Links, Secondary Links, and Navigation.
Primary and Secondary links are built by site administrators, and displayed automatically in the
page header of many themes (if not, you can enable their blocks to display them). Navigation is
the catch-all menu that contains your administration menus, as well as links supplied by modules
on your site. You can also create your own custom menus, and display them by enabling their
blocks.
You can customise menus in several ways, such as reordering menu items by setting their
“weight” or simply dragging into place, renaming menu items, and changing the link title (the
tooltip that appears when you mouse over a menu item). You can move a menu item into a
different menu by editing the Parent property of the menu item.
You can also add custom menu items to a menu, from the Add menu item tab of the Menu
administration screen. To create a menu item, you will need to provide the path to the content
(see above).
In all cases a menu item will only be shown to a visitor if they have the rights to view the page it
links to; e.g., the admin menu item is not shown to visitors who are not logged in.

31. Explain the path system of drupal ?


When you visit a URL within your Drupal site, the part of the URL after your base site address is
known as the path. When you visit a path in your Drupal site, Drupal figures out what information
should be sent to your browser, via one or more database queries. Generally, Drupal allows each
module you have enabled on your site to define paths that the module will be responsible for, and
when you choose to visit a particular path, Drupal asks the module what should be displayed on
the page.
For instance, this site (drupal.org) is (of course) built with Drupal. The page you are now viewing
is http://drupal.org/node/19828, whose path is "node/19828". The module that is responsible for
this path is the core Node module, so when you visit this page, Drupal lets the Node module
determine what to display.
To determine the path to a particular page on your site, for purposes of creating a link, go to the
page you want to link to and look at the URL in the address bar. By default the URL, after the
base address of your site, will begin with '?q='. When 'Clean URLs' are enabled you will see a
directory structure in the URL. The "path" for use in a menu item is the part of the URL after the
site's base address and without the "?q=".

32 . How database system of drupal works ?


Drupal stores information in a database; each type of information has its own database table. For
instance, the basic information about the nodes of your site are stored in the Node table, and if
you use the CCK module to add fields to your nodes, the field information is stored in separate
tables. Comments and Users also have their own database tables, and roles, permissions, and
other settings are also stored in database tables.

33 explain Taxonomy in drupal .


Drupal has a system for classifying content, which is known as taxonomy and implemented in the
core Taxonomy module. You can define your own vocabularies (groups of taxonomy terms), and
add terms to each vocabulary. Vocabularies can be flat or hierarchical, can allow single or
multiple selection, and can also be "free tagging" (meaning that when creating or editing content,
you can add new terms on the fly). Each vocabulary can then be attached to one or more content
types, and in this way, nodes on your site can be grouped into categories, tagged, or classified in
any way you choose.

34. Concept of Comment in Drupal .


Comments are another type of content you can have on your site (if you have enabled the core
Comment module). Each comment is a typically small piece of content that a user submits,
attached to a particular node. For example, each piece of discussion attached to a particular
forum topic node is a comment.
:
35. Explain the concept of node in drupal.
A node in Drupal is the generic term for a piece of content on your web site. (Note that the choice
of the word "node" is not meant in the mathematical sense as part of a network.) Some examples
of nodes:
• Pages in books
• Discussion topics in forums
• Entries in blogs
• News article stories
Each node on your site has a Content Type. It also has a Node ID, a Title, a creation date, an
author (a user on the site), a Body (which may be ignored/omitted for some content types), and
some other properties. By using modules such as the contributed Content Construction Kit (CCK)
module, the core Taxonomy module, and the contributed Location module, you can add fields
and other properties to your nodes.

36. Explain User, Permission, Role in drupal.


Every visitor to your site, whether they have an account and log in or visit the site anonymously,
is considered a user to Drupal. Each user has a numeric user ID, and non-anonymous users also
have a user name and an email address. Other information can also be associated with users by
modules; for instance, if you use the core Profile module, you can define user profile fields to be
associated with each user.
Anonymous users have a user ID of zero (0). The user with user ID one (1), which is the user
account you create when you install Drupal, is special: that user has permission to do absolutely
eveything on the site.
Other users on your site can be assigned permissions via roles. To do this, you first need to
create a role, which you might call "Content editor" or "Member". Next, you will assign
permissions to that role, to tell Drupal what that role can and can't do on the site. Finally, you will
grant certain users on your site your new role, which will mean that when those users are logged
in, Drupal will let them do the actions you gave that role permission to do.
You can also assign permissions for the special built-in roles of "anonymous user" (a user who is
not logged in) and "authenticated user" (a user who is logged in, with no special role
assignments). Drupal permissions are quite flexible -- you are allowed to assign permission for
any task to any role, depending on the needs of your site.

37. What is a Module in drupal ?


A module is software (code) that extends Drupal features and/or functionality. Core modules are
those included with the main download of Drupal, and you can turn on their functionality without
installing additional software. Contributed modules are downloaded from the Modules download
section of drupal.org, and installed within your Drupal installation. You can also create your own
modules; this requires a thorough understanding of Drupal, PHP programming, and Drupal's
module API.

38. How to interact with Drupal search system ?


There are three ways to interact with the search system:
Specifically for searching nodes, you can implement nodeapi('update index') and nodeapi('search
result'). However, note that the search system already indexes all visible output of a node, i.e.
everything displayed normally by hook_view() and hook_nodeapi('view'). This is usually sufficient.
You should only use this mechanism if you want additional, non-visible data to be indexed.
Implement hook_search(). This will create a search tab for your module on the /search page with
a simple keyword search form. You may optionally implement hook_search_item() to customize
the display of your results.
Implement hook_update_index(). This allows your module to use Drupal's HTML indexing
mechanism for searching full text efficiently.
If your module needs to provide a more complicated search form, then you need to implement it
yourself without hook_search(). In that case, you should define it as a local task (tab) under the
/search page (e.g. /search/mymodule) so that users can easily find it.

39. Explain the menu system in Drupal ? Purpose of menus ?


Define the navigation menus, and route page requests to code based on URLs.
The Drupal menu system drives both the navigation system from a user perspective and the
callback system that Drupal uses to respond to URLs passed from the browser. For this reason, a
good understanding of the menu system is fundamental to the creation of complex modules.
Drupal's menu system follows a simple hierarchy defined by paths. Implementations of
hook_menu() define menu items and assign them to paths (which should be unique). The menu
system aggregates these items and determines the menu hierarchy from the paths. For example,
if the paths defined were a, a/b, e, a/b/c/d, f/g, and a/b/h, the menu system would form the
structure:
a
a/b
a/b/c/d
a/b/h
e
f/g
Note that the number of elements in the path does not necessarily determine the depth of the
menu item in the tree.
When responding to a page request, the menu system looks to see if the path requested by the
browser is registered as a menu item with a callback. If not, the system searches up the menu
tree for the most complete match with a callback it can find. If the path a/b/i is requested in the
tree above, the callback for a/b would be used.
The found callback function is called with any arguments specified in the "page arguments"
attribute of its menu item. The attribute must be an array. After these arguments, any remaining
components of the path are appended as further arguments. In this way, the callback for a/b
above could respond to a request for a/b/i differently than a request for a/b/j.
For an illustration of this process, see page_example.module.
Access to the callback functions is also protected by the menu system. The "access callback"
with an optional "access arguments" of each menu item is called before the page callback
proceeds. If this returns TRUE, then access is granted; if FALSE, then access is denied. Menu
items may omit this attribute to use the value provided by an ancestor item.
In the default Drupal interface, you will notice many links rendered as tabs. These are known in
the menu system as "local tasks", and they are rendered as tabs by default, though other
presentations are possible. Local tasks function just as other menu items in most respects. It is
convention that the names of these tasks should be short verbs if possible. In addition, a "default"
local task should be provided for each set. When visiting a local task's parent menu item, the
default local task will be rendered as if it is selected; this provides for a normal tab user
experience. This default task is special in that it links not to its provided path, but to its parent
item's path instead. The default task's path is only used to place it appropriately in the menu
hierarchy.
Everything described so far is stored in the menu_router table. The menu_links table holds the
visible menu links. By default these are derived from the same hook_menu definitions, however
you are free to add more with menu_link_save().

40 what is Database abstraction layer in Drupal ?


Allow the use of different database servers using the same code base.
Drupal provides a slim database abstraction layer to provide developers with the ability to support
multiple database servers easily. The intent of this layer is to preserve the syntax and power of
SQL as much as possible, while letting Drupal control the pieces of queries that need to be
written differently for different servers and provide basic security checks.
Most Drupal database queries are performed by a call to db_query() or db_query_range().
Module authors should also consider using pager_query() for queries that return results that need
to be presented on multiple pages, and tablesort_sql() for generating appropriate queries for
sortable tables.

41. What are hooks in Drupal ?


Allow modules to interact with the Drupal core.
Drupal's module system is based on the concept of "hooks". A hook is a PHP function that is
named foo_bar(), where "foo" is the name of the module (whose filename is thus foo.module) and
"bar" is the name of the hook. Each hook has a defined set of parameters and a specified result
type.
To extend Drupal, a module need simply implement a hook. When Drupal wishes to allow
intervention from modules, it determines which modules implement a hook and calls that hook in
all enabled modules that implement it.

42. Can I use Drupal on the command line?


Yes, you can use drush –

drush is a command line shell and Unix scripting interface for Drupal

43. Why are so many Drupal versions available - 4.x, 5.x ...? Which one should I use?
It is recommended that you run the most current stable release. This can always be found at the
Drupal Project page. However, if there are no compelling features in the latest version, a contrib
module that is important to you isn't ready or you don't have time, there is no need to rush your
upgrade as long as security updates are available for the version you are running.

44. What are GNU Licenses ?


Does free software mean using the GPL?
Not at all—there are many other free software licenses. We have an incomplete list. Any license
that provides the user certain specific freedoms is a free software license.

45. What is an Open source software ?


Open-source software (OSS) is computer software for which the source code and certain other
rights normally reserved for copyright holders are provided under a software license that meets
the Open Source Definition or that is in the public domain.This permits users to use, change, and
improve the software, and to redistribute it in modified or unmodified forms. It is very often
developed in a public, collaborative manner.
Introduction
Open source doesn't just mean access to the source code.
The distribution terms of open-source software must comply with the following criteria:
1. Free Redistribution
The license shall not restrict any party from selling or giving away the software as a component of
an aggregate software distribution containing programs from several different sources. The
license shall not require a royalty or other fee for such sale.
2. Source Code
The program must include source code, and must allow distribution in source code as well as
compiled form. Where some form of a product is not distributed with source code, there must be a
well-publicized means of obtaining the source code for no more than a reasonable reproduction
cost preferably, downloading via the Internet without charge. The source code must be the
preferred form in which a programmer would modify the program. Deliberately obfuscated source
code is not allowed. Intermediate forms such as the output of a preprocessor or translator are not
allowed.
3. Derived Works
The license must allow modifications and derived works, and must allow them to be distributed
under the same terms as the license of the original software.
4. Integrity of The Author's Source Code
The license may restrict source-code from being distributed in modified form only if the license
allows the distribution of "patch files" with the source code for the purpose of modifying the
program at build time. The license must explicitly permit distribution of software built from
modified source code. The license may require derived works to carry a different name or version
number from the original software.
5. No Discrimination Against Persons or Groups
The license must not discriminate against any person or group of persons.
6. No Discrimination Against Fields of Endeavor
The license must not restrict anyone from making use of the program in a specific field of
endeavor. For example, it may not restrict the program from being used in a business, or from
being used for genetic research.
7. Distribution of License
The rights attached to the program must apply to all to whom the program is redistributed without
the need for execution of an additional license by those parties.
8. License Must Not Be Specific to a Product
The rights attached to the program must not depend on the program's being part of a particular
software distribution. If the program is extracted from that distribution and used or distributed
within the terms of the program's license, all parties to whom the program is redistributed should
have the same rights as those that are granted in conjunction with the original software
distribution.
9. License Must Not Restrict Other Software
The license must not place restrictions on other software that is distributed along with the
licensed software. For example, the license must not insist that all other programs distributed on
the same medium must be open-source software.
10. License Must Be Technology-Neutral
No provision of the license may be predicated on any individual technology or style of interface.

46. What is Drupal ?


Drupal is an open-source platform and content management system for building dynamic web
sites offering a broad range of features and services including user administration, publishing
workflow, discussion capabilities, news aggregation, metadata functionalities using controlled
vocabularies and XML publishing for content sharing purposes. Equipped with a powerful blend of
features and configurability, Drupal can support a diverse range of web projects ranging from
personal weblogs to large community-driven sites.

48. Which are commonly used PHP based CMSs ?


Drupal
Joomla
Wordpress
TYPO3

49. What is a web content Management system ?


A Web content management system (WCM, WCMS or Web CMS) is content management
system (CMS) software, implemented as a Web application, for creating and managing HTML
content. It is used to manage and control a large, dynamic collection of Web material (HTML
documents and their associated images). A WCMS facilitates content creation, content control,
editing, and essential Web maintenance functions.
The software provides authoring (and other) tools designed to allow users with little knowledge of
programming languages or markup languages to create and manage content with relative ease.
Most systems use a database to store content, metadata, or artifacts that might be needed by the
system. Content is frequently, but not universally, stored as XML, to facilitate reuse and enable
flexible presentation options.
A presentation layer displays the content to Web-site visitors based on a set of templates. The
templates are sometimes XSLT files.
Most systems use server side caching boosting performance. This works best when the WCMS is
not changed often but visits happen on a regular basis.
Administration is typically done through browser-based interfaces, but some systems require the
use of a fat client.
Unlike Web-site builders, a WCMS allows non-technical users to make changes to a website with
little training. A WCMS typically requires an experienced coder to set up and add features, but is
primarily a Web-site maintenance tool for non-technical administrators.

50. What is a CMS ?


A content management system (CMS) is a collection of procedures used to manage work flow in
a collaborative environment. These procedures can be manual or computer-based. The
procedures are designed to:
* Allow for a large number of people to contribute to and share stored data
* Control access to data, based on user roles. User roles define what information each user
can view or edit
* Aid in easy storage and retrieval of data
* Reduce repetitive duplicate input
* Improve the ease of report writing
* Improve communication between users

In a CMS, data can be defined as almost anything - documents, movies, pictures, phone
numbers, scientific data, etc. CMSs are frequently used for storing, controlling, revising,
semantically enriching, and publishing documentation. Content that is controlled is industry-
specific. For example, entertainment content differs from the design documents for a fighter jet.
There are various terms for systems (related processes) that do this. Examples are web content
management, digital asset management, digital records management and electronic content
management. Synchronization of intermediate steps, and collation into a final product are
common goals of each.

S-ar putea să vă placă și