User Tools

Site Tools


dr:themesettings

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
dr:themesettings [2007/05/13 07:02] fgmdr:themesettings [2020/11/23 17:23] (current) – external edit 127.0.0.1
Line 2: Line 2:
 ===== WARNING ===== ===== WARNING =====
  
-A module called [[http://drupal.org/project/themesettings|themesettings]] by John Albin is now available on Drupal.org, with much more expanded functionality. The documentation on this page only applies to my initial proof-of-concept module, which should be considered obsolete now that this official module exists. The goals and basic mechanism are identical, though.+A module called [[http://drupal.org/project/themesettings|themesettings]] by John Albin is now available on Drupal.org, with much more expanded functionality. The documentation on this page only applies to my initial proof-of-concept module, which should be considered obsolete now that this official module exists. The goals and basic mechanism are identical for additional settings, though, so you may want to read the explanation here since the code is in a much simpler form in the initial module.
  
 ===== Themes need settings ===== ===== Themes need settings =====
Line 13: Line 13:
  
 ===== Adding settingability to themes ===== ===== Adding settingability to themes =====
- 
- 
 ==== Creating the settings function for theme "admin" ==== ==== Creating the settings function for theme "admin" ====
  
 In the admin.theme file, we'll add the admin_settings function. If the theme is a plain PHP theme, it will already exist. If it is a PHPtemplate theme, as in the case of our "admin" theme, the file will have to be created. In the admin.theme file, we'll add the admin_settings function. If the theme is a plain PHP theme, it will already exist. If it is a PHPtemplate theme, as in the case of our "admin" theme, the file will have to be created.
- +<code php>
-<php>+
 function admin_settings() function admin_settings()
   {   {
Line 33: Line 30:
     '#description'   => t('CSS string for a background color. It will be applied to nodes.'),     '#description'   => t('CSS string for a background color. It will be applied to nodes.'),
     );     );
- 
   return system_settings_form('admin_admin_settings', $form);   return system_settings_form('admin_admin_settings', $form);
   }   }
-</php>+</code>
  
 Proof of concept example, no more: we just define a setting for the theme to use later on. In this case, it will be a CSS background color. NOTICE: a true world example should not take input and store it without some sanity checks. Proof of concept example, no more: we just define a setting for the theme to use later on. In this case, it will be a CSS background color. NOTICE: a true world example should not take input and store it without some sanity checks.
- 
- 
- 
- 
- 
  
 ==== Using the setting: node.tpl.php ==== ==== Using the setting: node.tpl.php ====
  
 With the "admin" theme being based on PHPtemplate, we'll modify node.tpl.php to apply our parameterized color to all nodes. This example just changes the first line with an inline style: With the "admin" theme being based on PHPtemplate, we'll modify node.tpl.php to apply our parameterized color to all nodes. This example just changes the first line with an inline style:
- +<code php>
-<php>+
 <?php <?php
 echo '<div style="background-color: echo '<div style="background-color:
Line 58: Line 48:
 if ($page == 0) ... if ($page == 0) ...
 [...the rest of the file is unchanged...] [...the rest of the file is unchanged...]
-</php>+</code>
  
 Ugly inline styling, but this is just a demo, so we don't care. I add the "! important" clause to make sure it is being forced even if rules cascade from elsewhere in the CSS files to change that background. Ugly inline styling, but this is just a demo, so we don't care. I add the "! important" clause to make sure it is being forced even if rules cascade from elsewhere in the CSS files to change that background.
- 
  
 ===== Hooking it up ===== ===== Hooking it up =====
Line 68: Line 57:
  
 We now need to tell Drupal to stitch this together, and for this we'll need a module. We now need to tell Drupal to stitch this together, and for this we'll need a module.
- 
- 
  
 ==== The themesettings module ==== ==== The themesettings module ====
  
-<php>+<code php>
 // themesettings.module for Drupal 4.7 // themesettings.module for Drupal 4.7
 // (C) 2006 FG Marand  // (C) 2006 FG Marand 
Line 162: Line 149:
   return $ret;   return $ret;
   }   }
-</php> +</code>
- +
  
 ===== How does it work ? ===== ===== How does it work ? =====
dr/themesettings.1179039731.txt.gz · Last modified: 2020/11/23 17:23 (external edit)