Настройте создать довольный форма для определенного типа контента

Range("U1:U" & LastRow).FormulaR1C1 =  $@"=if(rc[-1]=""{qyyyy}"",rc[-15],rc[-14])";

Во-первых, конкатенация строк + в C # против & в VB.NET.

Во-вторых, здесь используется интерполяция строк вместо конкатенации, поскольку это избавляет нас от необходимости добавлять дополнительные кавычки для завершения строк.

Это работает так:

var x = 1;
var y = $"The number is {x}.";
// y = "The number is 1."

$ указывает, что строка интерполируется, что означает, что {qyyyy} преобразуется в строку.

@ перед строкой означает, что символы в строке не экранированы. Это позволяет нам использовать "" внутри строки для представления одного ". В противном случае мы должны были бы сделать это:

$"=if(rc[-1]=\"{qyyyy}\",rc[-15],rc[-14])";

... используя \ для экранирования кавычек. Это тоже работает, но мне немного сложнее читать. Для людей, привыкших к определенным языкам, это может быть лучше.

8
задан kiamlaluno 31 July 2010 в 13:19
поделиться

4 ответа

Вы захотите использовать рычаг hook_form_alter.

В Drupal 6 я использую, это для сокрытия большей части постороннего материала в узле редактирует/добавляет форму.

function mymodule_form_alter(&$form, $form_state, $form_id) {
  // hide extraneous options in the node form for nodetype nodes
  if($form_id == 'nodetype_node_form') {
    $form['path']['#access'] = FALSE;
    $form['menu']['#access'] = FALSE;
    $form['author']['#access'] = FALSE;
    $form['options']['#access'] = FALSE;
    $form['comment_settings']['#access'] = FALSE;
    $form['revision_information']['#access'] = FALSE;
  }
}

Рассмотрите для моделирования представления узла, не формы узла. Я отговариваю от него - намного лучше использовать файлы узла-nodetype.tpl.php.

7
ответ дан 5 December 2019 в 19:03
поделиться

Другая опция - и это могло бы быть более просто, если Вы действительно пытаетесь сократить вещи - должен создать Вашу собственную форму с нуля и создать объект узла сами в форме, отправляют обработчик.

1
ответ дан 5 December 2019 в 19:03
поделиться

Найденный большим ресурсом на этом:

http://www.lullabot.com/articles/modifying-forms-5-and-6

Одна вещь, что это упомянуло это, не была перепета Eaton, или ceejayoz должен скрыть поля в слое темы.

1
ответ дан 5 December 2019 в 19:03
поделиться

Я создаю модуль и использую form_alter и nodeapi.

Ниже основная идея о компонентах, в которых будет нуждаться Ваш модуль.

Мой product.install файл имеет следующее:

function product_install() {
  db_query("CREATE TABLE {product} (
    nid int(10) unsigned NOT NULL default '0',
    primary key (nid),
    price DECIMAL(7, 2) UNSIGNED NOT NULL DEFAULT 0.00
    ) TYPE=MyISAM /*!40100 DEFAULT CHARACTER SET utf8 */;"
  );
}

function product_uninstall() {
  db_query("DROP TABLE {product}");
}

Затем product.module файл содержит:

function product_nodeapi(&$node, $op, $a3 = NULL, $a4 = NULL) {
  if($node->type != 'product') {
    return;
  }
  switch($op) {
    case 'load':
      return _product_load($node);
    case 'insert':
      _product_insert($node);
      break;
    case 'delete':
      _product_delete($node);
      break;
    case 'update':
      _product_delete($node);
      _product_insert($node);
      break;
    case 'view':
      //display your product 
      $node->content['price'] = array(
        '#value' => theme('transact_node_status', $node),
        '#weight' => 5,
      );
      break;
  }
}

function product_form_alter(&$form, $form_state, $form_id) {
  if($form_id == 'product_node_form'){
    $form['price'] = array(
      '#type' => 'textfield',
      '#title' => t('Price'),
      '#default_value' => $form['#node']->price,
    );
  }
  return $form;
}

function _product_load($node) {
  $result = db_query("SELECT * FROM {product} WHERE nid = %d", $node->nid);
  $arr = db_fetch_array($result);
  unset($arr['nid']);
  return $arr;
}

function _product_insert($node) {
  db_query("INSERT INTO {product} (nid, price) VALUES(%d, %d)", $node->nid, $node->price);
}

function _product_delete($node) {
  db_query("DELETE FROM {product} WHERE nid = %d", $node->nid);
}
0
ответ дан 5 December 2019 в 19:03
поделиться
Другие вопросы по тегам:

Похожие вопросы: