您在這裡

請問如何將特定的內容類型下的cck放在同一行?

發瘋's 的頭像
發瘋 在 2009-07-14 (二) 18:28 發表

我查到之前有一個方法是用firebug修改css,但那樣的話就把所有的content type都改了,現在我想單獨對某個content type進行css修改,該怎么辦?
另外,有沒有一種方式,或者是php code,能將node edit/php以及comment form放到一個區塊里去的?謝謝了!

您好,這個是顯示輸出內容的,我想的是輸出表單。
就比如:
標題:
[——————]
正文:
[——————]
字段1:
[——————]
字段2:
[——————]
想要改成:
標題:[——————] 正文:[——————]字段1:[——————]字段2:[——————]這樣子的。
還有一個問題,就是想把標題的輸入表單變窄,就好像:標題[————————————]是這么寬,現在想變成標題:[——————]這么窄,應該在哪改啊?

修改輸出表單就一定要動style.css囉,這是一定要的...
特定的cck欄位有專屬的css代碼,利用firebug找出來在加到style.css裡就行了
至於怎麼設計就看你自己了

其實,我更想的是,這些表單能夠自由排版,但死活沒找到特別好的方法來做。我曾經找到過一段代碼,可以在區塊里實現輸入表單,但表單中的字段還是沒法改變。
<?php

global $user;
$type = 'price';
$node = array('uid' => $user->uid, 'name' => $user->name, 'type' => $type);
module_load_include('inc', 'node', 'node.pages');

$form = drupal_get_form($type .'_node_form', $node);

print_r($form);

?>
這是這段表單的代碼。
我想了一下,可能通過單獨提取字段的方式,應該能夠做到分別排版,但我搜羅了半天資料,還是沒找到相關的方法。不知道哪位有這種方法來幫助下?

感覺上次好像回答過了。

例如: node type name 是 fm_mynode

顯示 node 的 php 是直接 copy node.tpl.php to node-fm_mynode.tpl.php
接下來在 node-fm_mynode.tpl.php 編輯並加入一行 <?php print_r($node); ?>
就會看到所有的東西了(陣列)~ 你想怎麼排就怎麼排。

編輯 node 的 php 是在 template.php 裡加 code 去指定你要用的 tpl.php 檔。

if ((arg(0) == 'node') && (arg(2) == 'edit')) {
$node = node_load(array('nid' => arg(1)));
if($node->type == "fm_mynode") {
function phptemplate_node_form($form) {
global $user;
$vars = array('user' => $user, 'form' => $form);
$vars['title'] = drupal_render($form['title']);
$vars['node'] = $form['#parameters'][1];
return _phptemplate_callback('fm_mynode_form', $vars);
}
}
}

重點在 return _phptemplate_callback('fm_mynode_form', $vars);
他會去 call fm_mynode_form.tpl.php
至於這個檔,加一行 <?php print_r($form); ?>
就能看到所有的東西(陣列),那也一樣~ 想怎麼排就怎麼排了。

有個套件 nodeformtemplate 他會在 內容管理/內容類型/節點裡顯示一個選項 Form template


點選他會顯示此節點的輸入表單,你在使用firefox將全部的表單原始碼拷貝到所見即所得編輯器排版,在將產生的css代碼放到所屬版型的style.css檔