- PeterMoulding.com
- Author
- Trainer
- Speaker
- Business Coach
- How to write a How To book
- PHP Courses
- Speaking
- Web Architect
- Australia
- Books
- Authors
- Akkana Peck
- Alex Berenson
- Andrew Nugent
- Ben Sanders
- Brock Clarke
- Chris Simms
- David Mercer
- Dianna Mullet
- Don Winslow
- Dori Smith
- Harlan Coben
- Jack McDevitt
- James Wines
- Jerry Yudelson
- John Grisham
- Kevin Mullet
- L. E. Modesitt Jr.
- Laurell K. Hamilton
- Marshall Karp
- Martina Cole
- Michael Marshall Smith
- Michel Roux Jr
- Nadia Sawalha
- Philip Pullman
- Raymond Khoury
- Richard North Patterson
- Robert Masello
- Sally Roth
- Sarah Langan
- Stella Rimington
- Stephen Booth
- Stephen King
- Stephen Leather
- T.C. Boyle
- Tom Negrino
- Tony Hillerman
- Urban Waite
- Val McDermid
- Valerio Massimo Manfredi
- Beginning GIMP
- Beginning Visual C++
- Culturalism
- Fiction
- A Drink Before The War
- A Talent for War
- Bag of Bones
- Blood and Ice
- Burn
- Dark Lady
- Dead Line
- Eclipse
- Empress of Eternity
- Exley
- Flipping Out
- Just One Look
- Nightfall
- Pet Sematary
- Savage Moon
- Skinwalkers
- Starvation Lake
- The Fallen
- The Gardens of the Dead
- The Jump
- The Last Templar
- The Mermaids Singing
- The Midnight Mayor
- The Secret Soldier
- The Summons
- The Terror of Living
- The Testament
- The Tower
- Under the Dome
- Virus
- AJAX and PHP
- Aging with Grace
- Food books
- Green Architecture
- Life Is So Good
- SQL: The Complete Reference
- The Backyard Bird Lover's Ultimate How-to Guide
- The Garden Gurus
- Authors
- Sustainability
- -18 hours left to decide the future of Australia
- Campbells vegetable stock or Massel vegetable stock?
- Carbon Sequestration
- Carbon tax for Australia is a fraud
- Copenhagen will fail
- Cost of living in Australia
- Dick Smith jumps on the population bandwagon
- Dry Run: Preventing the Next Urban Water Crisis
- Energy Saving Lights
- Garlic
- How many people can live in Australia?
- Its obsolete, throw it out!
- Julia Gillard offers 9.9 billion dollars bribe to Rob Oakeshott
- Laundry detergent
- Petrol or Diesel?
- Reflective foil batts kill
- RoHS
- Sea level to rise 3mm due to climate change
- Solar power
- Spring again in Sydney
- Sustainable fuels
- The CRUD Tax is back
- The people who make building regulations do not own houses
- Water efficiency
- Which insulation is safer, foil or wool?
- Will Australia reduce greenhouse gas emissions?
- Technology
- Android or Blackberry or iPhone or a flip phone?
- Apple versus Google 2011
- Cameras
- Cars
- Colour
- Burgundy
- Colour Blindness
- Colour Names
- Dulux colours
- Pantone colours
- Safe Colours
- Seculine ProDisk Mini colour balance card
- What Causes Colour Blindness?
- Hardware
- Batteries for the Digital Age
- Cables
- Cases
- Computer reliability
- Computrace
- Disks
- Astone ISO Gear 481E
- Best SSD for your notebook computer
- Disk block size
- Hitachi disk HDS722020ALA330
- LaCie USB 2.0 250 GB mobile hard drive design by F.A. Porsche
- SMART disk
- Samsung 2 TB HD204UI quiet low power disk for mass storage
- Seagate and Samsung merge disk business
- Select the right disk for your RAID array
- USB disk speed
- Western Digital WD20EARX 2 GB SATA 3 disk
- How long should computer hardware last?
- Keyboards
- Mainframe
- Memory cards
- Monitors
- Netbooks, notebooks, tablets, and xPads
- Network Attached Storage
- OLED Displays
- PC's are a thing of the past
- Printers
- Quiet
- Samsung Galaxy S
- Speed
- Television
- Tools
- USB
- Worst computer movies
- Xserve is dead. What next?
- Your backup will not work
- Z68 motherboards
- iPad or Acer Aspire One?
- IQ
- LG Intello Washing Machine
- Lack of a challenge
- Networks
- 802.11n wireless networking
- D-Link DIR-655 wireless router
- D-Link DWA-160 Xtreme N dual band USB adapter
- D-Link DWA-556 Xtreme N PCI Express desktop adapter
- MIMO
- NBN spends another $12 billion of our tax money on nothing
- National Broadband Network
- Netgear wireless modem router DGND3300 with 300 Mbps 802.11n
- Refrigerator kills wireless broadband
- Small Wireless Network
- TP-LINK TL-SG10005D 5 port gigabit switch
- TP-Link TL-WR1043N wireless N gigabit router
- Telstra Pre-paid Mobile Wi-Fi
- Where are the router plus proxy server combinations?
- Open Source documentation
- Software
- 7-zip
- Accounting
- Asterisk
- Audacity
- Backup software
- Bloat only in Windows
- CAD
- CDex
- Disk imaging software for copying and backup
- Exact Audio Copy
- Filezilla
- Firefox
- Java
- LibreOffice or OpenOffice?
- Linux
- 1 in 5 servers will ship with Linux
- Android phones outsell iPhone
- Another Move to Linux
- CentOS 5.5 installation on SSD and RAID 5
- Debian
- Debian 5.0.5 AMD64 installation
- Debian 5.06 installation
- Fedora
- Fedora or Ubuntu?
- Gnome or KDE?
- K9copy
- Linux 2.6.38
- Linux Gnome login settings lost
- Linux Mint
- Linux RAID, a rant
- Linux Speed
- Linux Time
- Linux reliability as demonstrated by Ubuntu 10.10
- Linux reliability as demonstrated by Ubuntu 11.4
- Linux still a struggle in 2011
- Linux workstation disk RAID 1
- Linux, NT, Windows, and SETI
- Linux, three years of progress
- London Stock Exchange switches to Linux
- Mandrake Linux 9.2
- The partition is misaligned by 48128 bytes - warning from Linux RAID
- Ubuntu
- How to fix the scroll bars in Ubuntu 11.4 Gnome
- Kubuntu 10.10 alternate installation on desktop with RAID 1
- POWbuntu
- Ubuntu 10.10 after 6 months use
- Ubuntu 10.10 alternate installation
- Ubuntu 10.10 desktop RAID 1
- Ubuntu 10.10 desktop RAID 5
- Ubuntu 10.10 desktop install on a netbook
- Ubuntu 10.10 desktop installation
- Ubuntu 10.10 netbook install on a netbook
- Ubuntu 10.10 server AMD64
- Ubuntu 10.10 upgrade to version 11.4 beta 2
- Ubuntu 10.4
- Ubuntu 11.10
- Ubuntu 11.10 first upgrade
- Ubuntu 11.4 after one month use
- Ubuntu 12.04 beta1 desktop amd64
- Ubuntu One
- Ubuntu by Microsoft?
- Ubuntu desktop upgrade 10.4 to 10.10 failed because I did not check the media
- Ubuntu strikes again
- Upgrade Ubuntu to Linux Mint 12 LDXE for extra speed
- Yes, use Linux but not that distribution!
- Nero
- OpenOffice
- OpenOffice is now Apache Office
- Project management
- Scribus
- Software for Windows and Linux
- Text editors
- Time
- Todo applications
- Tomboy notes
- Top text editors
- Version control
- VideoLAN VLC media player
- Visio
- Webmin
- Webmin installation on CentOS for Web development
- Webmin installation on Ubuntu
- What is the most popular open source software today?
- Windows
- Another Windows person goes Linux
- BAD_POOL_CALLER
- Cygwin
- Microsoft Malicious Software Removal Tool cannot find a common virus
- One of the developers of Windows XP is criminally insane
- There are unused icons on your desktop
- W32time
- Which Windows version?
- Windows 7 Home Premium
- Windows XP Stop 0x0000007B during installation
- Windows XP is a disaster
- Windows processes
- XML
- Zip, bzip, gzip, or 7zip?
- configFree
- Technology Succession Planning
- VoIP
- Web Sites
- Drupal
- Do Drupal themes have to use the GPL?
- Drupal 7
- A better search facility for Drupal
- Drupal - performance or flexibility
- Drupal 7 Fields are hard to fix
- Drupal 7 new features
- Drupal 7 ships on January 5
- Drupal 7.14
- Drupal 7.4 hits PeterMoulding.com
- Drupal function sequence
- The evolution of a module
- Undefined index: headers in DefaultMailSystem->mail() (line 54 of /modules/system/system.mail.inc).
- Undefined index: to in DefaultMailSystem->mail() (line 83 of /modules/system/system.mail.inc).
- implode(): Invalid arguments passed in DefaultMailSystem->format() (line 23 of /modules/system/system.mail.inc).
- Drupal 8
- Drupal Code Load Cut
- Drupal How To
- Drupal Modules
- Backup and Migrate
- Browscap
- CKEditor with Drupal WYSIWYG
- Captcha
- Cel
- Colorbox
- Content Construction Kit
- Content type
- Devel module for Drupal
- Drupal Rules as an automation language
- Drupal Spam add-on module
- Form alter to node
- IMCE
- IMCE Wysiwyg bridge
- ImageAPI
- Jdog
- Lightbox2
- Module variable
- Node Gallery Access
- Node_Gallery
- Path
- Path redirect
- Pathauto
- Pet
- Search
- Service links
- Session Variable
- Statistics
- Taxonomy
- Token
- Token ex
- Transliteration
- Trigger
- Watch
- Other modules
- Drupal Training
- Drupal access controls need a major rewrite
- Drupal coding tricks
- Drupal performance
- Drupal themes for the future
- Drupal.org colours
- Import existing data into Drupal
- Multiple Web sites made easy using Drupal multisite and the right start
- drupal_lookup_path()
- Adobe PDF
- Apache
- Apache Mahout
- Audi.com
- Bleet
- CSS Strikes Again
- CSS or xCSS
- Can you believe Facebook or email?
- Content Management Systems
- Databases
- Facebook scam
- Font
- Fonts
- HTML
- Install Apache, MySQL, and PHP 5 in Ubuntu 11.4 using the Ubuntu Software Centre
- Language Codes
- Marketing
- Memcache
- Nginx
- Open source development hits another roadblock
- Oscars
- PHP
- SPDY
- Search software
- Techoni.com.au
- Theme themes
- Things to hate on Web sites
- U.S. Patent No. 6,985,875
- Virtual Private Server
- Visible Improvement
- Web 4.0
- Web browser usage
- Web browsers
- Web site development
- Bluefish
- Crying over spilt code
- Eclipse and PHP
- Getting a Git client, a story of ancient technology and pain
- HTTrack
- MVC
- Netbeans
- PHP or ..., CakePHP/Symfony/ZF versus ...
- Programming
- Superfish
- Web browser emulators for testing your Web site
- Web development frameworks
- Web site books
- Web site development on your own computer
- Webmin or phpMyAdmin or cPanel for creating databases?
- aiki framework
- jQuery
- Views development - Learn Fields first
- Views development - Learn Actions and Rules
- jQuery .each()
- jQuery .has()
- jQuery .is()
- jQuery and Firefox Firebug
- jQuery children
- jQuery for people not using Drupal - Installation and getting started
- jQuery hover
- jQuery hover de-duplication example
- jQuery or CSS?
- jQuery performance
- jQuery tests
- Web site hosting
- Westpac Web site still broken after two years and ten months
- Wordpress wins another CMS survey
- Drupal
Content type
Submitted by Peter on Tue, 2011-12-13 08:01
Drupal:
Content type
is both a technical term used in Drupal and the name of my module for creating content types in Drupal. Content type can help make your module development faster.
When do you use Content type?
Use Content type when you create a module needing a basic content type. Use Content type when you install a module with Content type listed as a prerequisite.
When do you not use Content type?
The current D7 version does not define fields. You could define the base type using Content type then add fields from your code. The field handling could be added because the code exists in related modules.
If you have a need and want to contribute ideas, code, or money, the Content type module could be expanded to handle 99.9% of cases instead of 90%. 100% coverage is unlikely because people are continually adding new features to the fields system.
How do you set up a content type?
We will use the example module named Alarm clock. Alarm clock has a file named alarm_clock.info. The Alarm clock module creates a content type named Alarm clock with an internal name of alarm_clock.
- Create a text file named
alarm_clock.content_type.txt. - Add the following to alarm_clock.info:
content_type[] = alarm_clock.content_type.txt - Add your content type definition to
alarm_clock.content_type.txt.
alarm_clock.content_type.txt can have any name you want so long as the name is usable in the .info file. Add quotes around the file name in .info if the file name contains spaces.
alarm_clock.content_type.txt can start with lists of other files as shown next. You can create one file per content type or include multiple content types per file. Any of the included files can contain references to other files. The only requirement is to place all the statements for a content type in the same file. The files are read one at a time and all the content types in a file are created before moving on to the next file.content_type[] = abc.textcontent_type[] = efg.txt
The following example content type is from an early version of the Alarm clock module. Note the internal name, or machine name, of the content type is used as the first level identifier for all the lines defining the content type. Lines starting with ; are comments. Lines found in a normal module .info file are ignored.;name = Alarm clock
description = Alarm clock for your Web site processes.
; From a recipe invented before electricity.
;version = "7.x-1"
; See http://ka.tl for more details.
alarm_clock[name] = Alarm clock
alarm_clock[description] = Alarm clock for your Web site processes.
alarm_clock[title_label] = Alarm
alarm_clock[body_label] = Description
alarm_clock[published] = true
alarm_clock[preview] = optional
The .info format
The following comments are in the Drupal definition of their .info file and and is similar to a PHP.ini file. The examples show you the range of options for writing an entry.key = valuekey = "value"key = 'value'key = "multi-line
value"key = 'multi-line
value'key
=
'value'key[] = "numeric array"key[index] = "associative array"key[index][] = "nested numeric array"key[index][index] = "nested associative array"
The content type definition
Your text files can contain the following definitions. They link to the formal definitions.alarm_clock[name] = Example content typealarm_clock[description] = jkhjkhdkjhsdkfhdfkfkjdfhkhkhsdsjkalarm_clock[description][] = jkhjkhdkjhsdkfhdfkfkjdfhkhkhsdsjkalarm_clock[title_label] = Example titlealarm_clock[preview] = disabledalarm_clock[preview] = optionalalarm_clock[preview] = requiredalarm_clock[submission_guidelines][] = kljgklgjlkjsdflksdfl;alarm_clock[published] = truealarm_clock[published] = falsealarm_clock[promoted] = truealarm_clock[promoted] = falsealarm_clock[sticky] = truealarm_clock[sticky] = falsealarm_clock[revisions] = truealarm_clock[revisions] = falsealarm_clock[author_and_date] = truealarm_clock[author_and_date] = false
Name
The first part, alarm_clock, is the key that links all the definition items for one content type and is the internal name or machine name of the content type you are defining. The name part tell the Content type module to use the rest of the line for the Name when defining a content type. Keep this name short and put any long text in the description field. The Drupal content type definition screen has the following description of the field.
The human-readable name of this content type. This text will be displayed as part of the list on the Add new content page. It is recommended that this name begin with a capital letter and contain only letters, numbers, and spaces. This name must be unique.
Description
alarm_clock[description] = jkhjkhdkjhsdkfhdfkfkjdfhkhkhsdsjkalarm_clock[description][] = jkhjkhdkjhsdkfhdfkfkjdfhkhkhsdsjk
Describe this content type. The text will be displayed on the Add new content page.
You can provide a single line description or a multiline description. The multiline format can be any of the following.alarm_clock[description] = 'multi-line
value'
alarm_clock[description][] = 'multi-line
value 1'
alarm_clock[description][] = 'multi-line
value 2 will be added to value 1'
Title label
This line defines the Title field label for your content type title. In the Alarm clock module, the title is named Alarm.
Preview
This is the Preview before submitting field and may have one of the three following values. the default in Drupal is optional.alarm_clock[preview] = disabledalarm_clock[preview] = optionalalarm_clock[preview] = required
Submission guidelines
From Drupal: Explanation or submission guidelines This text will be displayed at the top of the page when creating or editing content of this type.
This setting has the same multiline options as description.
Published
alarm_clock[published] = truealarm_clock[published] = false
This is the Drupal option labelled: Publishing options [ ] Published
You can set the default for the content type to true or false or not bother setting it.
Promoted
alarm_clock[promoted] = truealarm_clock[promoted] = false
This is the Drupal option labelled: Publishing options [ ] Promoted to front page
You can set the default for the content type to true or false or leave out this setting.
Revisions
alarm_clock[revisions] = truealarm_clock[revisions] = false
This is the Drupal option labelled: Publishing options [ ] Create new revision
You can set the default for the content type to on or off.
Author and date
alarm_clock[author_and_date] = truealarm_clock[author_and_date] = false
This is the Drupal option labelled: Display settings [ ] Display author and date information. Author username and publish date will be displayed.
Future development
Most of the ideas here are already implemented in some form in some of my other code.
I proposed this module as an enhancement for Drupal 8. The D8 version would include a way to set site wide defaults. I wrote something similar for an earlier Drupal and did not carry it over to D7. Site wide defaults should be set before the installation profile system kicks in so the profile can vary the defaults by reading and implementing more content type settings.
Module level defaults are possible and are in other versions of this module. I just have to choose a consistent way to introduce them. In one place I use the special content type name default to set the defaults. In another I use *. * fits the wildcard idea better and does not create a restriction on the naming of content types. I have not tested * through the Drupal .info file processing.








