2017-08-09 24 views
0

私のdrupalプログラムのこの部分では、ページコールバック関数を使ってページにノードを表示しています。今私がする必要があるのは、それらのIDに基づいてノードを削除することです。drupalのIDに基づいてノードを削除する7

これは、表示されている各ノードの横に「削除」リンクを表示することで行います。誰もこれで私を助けることができますか? 私はDrupalにはとても新しいです。だから、詳細な答えをいただければ幸いです。 ありがとうございます。

答えて

0

ノードIDを使用してノードを削除するPHPの簡単な例です。

あなたはこのようなものである削除リンクにする必要があり
$nid= 22; // $node id , which needs to be retrieved from delete link but hardcoded for now; 
    node_delete($nid); 

:あなたが持っている場合は、PHPであなたはPHPを通じてfilter_xss($_GET['nid_delete]);

+0

$ nids = array_keys($ result ['node']);. $ nidsはすべてのノードのノードIDを保持する配列ですか?もしそうなら、foreachループを使ってノードIDを表示できないのはなぜですか?あなたの解決策に従ってリンクを作成するための – Saikat

+0

、私は個々のノードIDが必要です。それらを手に入れるにはどうしたらいいですか? – Saikat

+0

クエリの出力を共有できますか? –

0

スーパーグローバルを、その値を得ることができます

http://mydomain/nodes/delete?nid_delete=22

をあなたはページを追加(グリッドまたはテーブルとして表示)し、記事の内容をリストすることができます(タイトル、必要なフィールドを追加し、リンクを削除します)。削除リンクを使用すると、ノードを削除できます(ノードのコンテンツタイプを削除する権限があることを確認してください)

+0

リストの形で表示する方法を教えてくれますか? – Saikat

1

まず、drupalテーマテーブルにノードのリストを作成する必要があります。このコードは、

function yourmodule_rows() { 
$rows = array() 
$header = array(t('Sn no.'),t('Nid'),t('Node Title'),t('Op'),); 
$query = db_select('node', 'n'); 
    $query->fields('n', array('title','nid')); 
    $result = $query->execute(); 
    $sn = 0; 
    while ($record = $result->fetchObject()) { 
    $rows[] = array(++$sn, $record->nid, check_plain($record->title), l('Delete', 'node/'.$record->nid . '/delete'),); 
} 
    $render_array['yourmodule'] = array(array('#theme' => 'table', '#header' => $header, '#rows' => $rows, '#empty' => t('No Record found!'),), array('#theme' => 'pager',),); 
    return $render_array; 
} 
0

私はいくつかの調査を行い、リストの形でノードを表示する方法を見つけました。また、削除リンクも作成されています。しかし、私はリンクを動作させる方法を理解できません。リンクをどのページにリンクするのか、リンクに基づいて最終的にノードを削除する方法は?どんな助けもありがとう。

function mfrp_nodelist() { 
$output = array(); 
$query = new EntityFieldQuery(); 
$result = $query 
->entityCondition('entity_type', 'node') 
->entityCondition('bundle', 'article') //this part also confused me, is it 
bundle, type or both? bundle works for me 
->propertyCondition('status', 1) 
->propertyCondition('uid', '1'); 
$result = $query->execute(); 
$nids = (array_keys($result['node'])); 
$nodes = node_load_multiple($nids); 

$nid=array(); 
foreach ($nodes as $nid){ 
$outputs[] = array('data' => array($nid->nid, $nid->title, "<a 
href='delete/{$nid->nid}'>" . t('Delete') . "</a>"."|"."<a href='edit/{$nid- 
>nid}'>" . t('Edit') . "</a>")); 
} 
dpm($output); 
echo "The number of records are ".count($outputs); 

$per_page = 4; 
// Initialize the pager 
$current_page = pager_default_initialize(count($outputs), $per_page); 
// Split your list into page sized chunks 
$chunks = array_chunk($outputs, $per_page, TRUE); 
// Show the appropriate items from the list 
$header = array(t('nid'),t('title')); 

$output = theme('table', 
array('header' => $header, 
'rows' => $chunks[$current_page], 
'attributes' => array(), 
'empty' => t("No records found"))); 
// Show the pager 
$output .= theme('pager', array('quantity',count($outputs))); 
//return $output .= theme('pager',array('quantity',count($rows))); 
return theme('mfrp_list', array('results' => $output)); 
} 
関連する問題