Drupal Hook_Block_View выполнить действие по нажатию кнопки - PullRequest
0 голосов
/ 28 февраля 2012

Я изучаю drupal и пытаюсь добавить некоторые дополнительные функции в модуль, который я создал после урока

У меня есть один блок «История», который показывает последние x страниц, которые вы просмотрели.

Теперь я сделал второй блок с кнопкой «очистить историю», но я не могу понять, как заставить set_value ('trails_block_history', '0') произойти, когда нажата моя кнопка (чтоочистил бы мою историю в базе данных)

кто-нибудь, кто может помочь мне здесь?

Мои блоки:

    function trails_block_info() {
  $blocks['history'] = array(
    'info' => t('History'),
    'cache' => DRUPAL_NO_CACHE,
  );

  $blocks['clearHist'] = array(
    'info' => t('Clear history'),
    'cache' => DRUPAL_NO_CACHE
  );
  return $blocks;
}

ловушка блокировки блока:

function trails_block_save($delta = '', $edit = array()) {
  variable_set('trails_block_num', $edit['trails_block_num']);
  variable_set('trails_block_granularity',$edit['trails_block_granularity']);
}

и проблема:

function trails_block_view($delta = '') {    
...
case 'clearHist' :
      {
        $block['subject'] = 'Clear History';
        $block['content'] = '<button>clear history</button>';
      } break;  
...

Все еще студент и действительно новичок в этом (начал кодирование модулей сегодня утром), так что извините, если это кажется глупым вопросом (который, скорее всего, есть), ноЯ просто не могу его найти ..

Уже сделал еще одну дополнительную функцию для модуля, поэтому я хочу, чтобы эта функция также работала!

1 Ответ

2 голосов
/ 28 февраля 2012

Вы должны использовать API форм , чтобы создать форму с кнопкой отправки. Затем очистите свою историю, когда форма будет отправлена. Подробнее здесь и пример кода здесь

...