Drupal 7 - добавить синоним ноде при сохранении?

Суть проблемного вопросика

Пусть неназванному программисту требуется создать синоним пути к создаваемому материалу (ноде) строго заданного типа. Иными словами упрощенный аналог модуля "pathauto" своими ручками. В общем задача достаточно распространненая.

Код сниппета, решающего проблемку

<?php
/**
 * При сохранении записи
 */
function mymodulename_node_submit($node, $form, &$form_state)  {
  if ($node->type === 'article') :
	$node->path = array(
	  'alias' => 'custom-path-alias',
	);
  endif;
}
?>

Пара кратких пояснений:

  • alias - генерируемый путь;
  • article - тип материала, пусть будет "статьей".

Также существует альтернативный вариант:

<?php
...
	$mypath = array(
	  'alias' => 'custom-path-alias2',
	  'source' => 'node/'.$node->nid,
	  'language' => LANGUAGE_NONE,
	);
	path_save($mypath);
...
?>

Но первый лучше, хотя бы потому, что он чуточку короче.





© 2012-2014 Druweb.ru. Вы можете спокойно копировать любые материалы сайта только при наличии обратной ссылки.