2011-12-26 52 views
0

在我的自定義主題的settings.php(禪宗次主題),我把下面的代碼來獲得與在的TextFormat我的主題設置的新的textarea:訪問textarea的內容在Drupal的7主題表格

<?php 
    function paper_form_system_theme_settings_alter(&$form, &$form_state) { 
     $form['paper_data'] = array(
     '#type' => 'text_format', 
     '#title' => 'Put Text in here:', 
     '#rows' => 5, 
     '#resizable' => FALSE, 
     '#default_value' => 'xyz..', 
     '#format' => 'full_html' 
    ); 
    } 

形式工作perfektly,但是當我想在我的寫作page.tpl.php中

<?php 
$pdata = theme_get_setting('paper_data'); 
echo $pdata; 
?> 

訪問的變量,該變量的內容不被渲染 - 取而代之的是印有字「陣列」 ... 什麼是錯,爲什麼? (如果我使用'textarea'作爲類型而不是'text_format',則全部呈現良好。)

回答

0

當您使用類似Devel模塊的dpm()函數來檢查變量而不是echo()時,您將會明白。編碼沒有Devel模塊的Drupal是,恕我直言,愚蠢。

該問題很可能源於您使用text_format類型。正如你所看到的,它既保存了textarea的值,也保存了相關的文本格式。當使用這個時,Drupal以結構化的形式返回數據,這取決於格式的類型。

dpm()是你的朋友:)