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/12/22 14:44] – external edit 127.0.0.1dr:themesettings [2020/11/23 17:23] (current) – external edit 127.0.0.1
Line 1: Line 1:
 ====== Adding settings on Drupal themes ====== ====== Adding settings on Drupal themes ======
- 
 ===== WARNING ===== ===== WARNING =====
  
Line 14: 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 34: 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 59: 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 69: 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 163: Line 149:
   return $ret;   return $ret;
   }   }
-</php> +</code>
- +
  
 ===== How does it work ? ===== ===== How does it work ? =====
dr/themesettings.1198334698.txt.gz · Last modified: 2020/11/23 17:23 (external edit)