本文整理汇总了PHP中Node::create方法的典型用法代码示例。如果您正苦于以下问题:PHP Node::create方法的具体用法?PHP Node::create怎么用?PHP Node::create使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Node
的用法示例。
在下文中一共展示了Node::create方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: rpc_get_confirm
public static function rpc_get_confirm(Context $ctx)
{
if (!is_array($data = unserialize(base64_decode($ctx->get('code'))))) {
throw new BadRequestException();
}
// Немного валидации, на т.к. будем в БД класть данные.
foreach ($data['sections'] as $k => $v) {
if (!is_numeric($v)) {
throw new BadRequestException();
}
}
// Номер последней ноды нужен для того, чтобы не отправлять
// новому подписчику уже существующие новости.
$last = $ctx->db->getResult("SELECT MAX(`id`) FROM `node`");
try {
$node = Node::load(array('class' => 'subscription', 'name' => $data['email'], 'deleted' => 0));
$status = t('Параметры подписки успешно изменены.');
} catch (ObjectNotFoundException $e) {
$node = Node::create(array('class' => 'subscription', 'name' => $data['email'], 'last' => $last, 'published' => true));
$status = t('Подписка активирована.');
}
$ctx->db->beginTransaction();
if (!empty($data['sections'])) {
$node->tags = $data['sections'];
$node->linkTo($data['sections'])->save();
} elseif (!empty($node->id)) {
$node->delete();
$status = t('Подписка удалена.');
}
$ctx->db->commit();
return $ctx->getRedirect('?status=subscribed');
}
示例2: checkTypes
public static function checkTypes()
{
if (!Node::count(array('class' => 'type', 'name' => 'comment'))) {
$type = Node::create('type', array('name' => 'comment', 'title' => t('Комментарий'), 'fields' => array('name' => array('type' => 'TextLineControl', 'label' => t('Ваше имя'), 'required' => true), 'body' => array('type' => 'TextAreaControl', 'label' => t('Сообщение')), 'email' => array('type' => 'EmailControl', 'label' => t('E-mail'), 'required' => true), 'url' => array('type' => 'URLControl', 'label' => t('Домашняя страница')), 'ip' => array('type' => 'TextLineControl', 'label' => t('IP адрес'), 'hidden' => true))));
$type->save();
}
}
示例3: installTypes
private function installTypes()
{
if (!Node::count($this->ctx->db, array('class' => 'type', 'name' => 'blog'))) {
$type = Node::create('type', array('name' => 'blog', 'title' => t('Запись в дневнике'), 'description' => t('Ваш дневник — ваше личное пространство на этом сервере. Можете писать здесь всё, что угодно. Другие пользователи смогут это читать и комментировать, но на главную страницу эта информация не попадёт. Туда попадают только статьи.'), 'fields' => array('name' => array('type' => 'TextLineControl', 'label' => t('Заголовок'), 'required' => true), 'teaser' => array('type' => 'TextAreaControl', 'label' => t('Краткое содержание')), 'body' => array('type' => 'TextHTMLControl', 'label' => t('Текст записи'), 'required' => true), 'picture' => array('type' => 'AttachmentControl', 'label' => t('Иллюстрация')))));
$type->save();
}
}
示例4: set
public function set($value, &$node)
{
if (empty($value) or !is_array($value)) {
return;
}
switch ($value['error']) {
case UPLOAD_ERR_OK:
$value = Node::create('file')->import($value);
break;
case UPLOAD_ERR_INI_SIZE:
throw new RuntimeException(t('Размер файла превышает установленное в системе ограничение (%size).', array('%size' => ini_get('upload_max_filesize'))));
case UPLOAD_ERR_FORM_SIZE:
throw new RuntimeException(t('Размер файла превышает установленное в форме ограничение.'));
case UPLOAD_ERR_PARTIAL:
throw new RuntimeException(t('Файл получен не полностью.'));
case UPLOAD_ERR_NO_FILE:
if (!empty($value['id']) and is_numeric($value['id'])) {
$value = Node::load($value['id']);
} elseif (!empty($value['url'])) {
$value = FileNode::fromURL($value['url']);
} elseif (!empty($value['ftp'])) {
$value = Node::create('file')->importFromFTP(array_shift($value['ftp']));
} elseif (!empty($value['unlink'])) {
$node->linkRemoveChild(null, $this->value);
$value = null;
} else {
$value = $node->{$this->value};
}
}
if ($this->required and empty($value)) {
throw new ValidationException($this->label, t('Вы не загрузили файл в поле «%name», хотя оно отмечено как обязательное.', array('%name' => mb_strtolower($this->label))));
}
$node->{$this->value} = $value;
}
示例5: installTypes
private function installTypes()
{
// ЧАСТЬ ПЕРВАЯ: заказ.
if (!Node::count(array('class' => 'type', 'name' => 'order'))) {
$type = Node::create('type', array('name' => 'order', 'title' => t('Заказ'), 'description' => t('Документы этого типа создаются автоматически при оформлении заказов на сайте.'), 'fields' => array('name' => array('type' => 'TextLineControl', 'label' => t('Ф.И.О.'), 'description' => t('Эта информация нужна нам для обратной связи и доставки (если она осуществляется).'), 'required' => true), 'email' => array('type' => 'EmailControl', 'label' => t('Адрес электронной почты'), 'required' => true), 'phone' => array('type' => 'TextLineControl', 'label' => t('Контактный телефон')), 'address' => array('type' => 'TextAreaControl', 'label' => t('Адрес доставки')), 'orderdetauks' => array('type' => 'OrderDetailsControl', 'label' => t('Содержимое заказа'), 'required' => false, 'readonly' => true))));
$type->save();
}
}
示例6: onInstall
/**
* @mcms_message ru.molinos.cms.install
*/
public static function onInstall(Context $ctx)
{
$count = Node::count(array('class' => 'type', 'name' => 'order', 'deleted' => 0), $ctx->db);
if (!$count) {
$ctx->db->beginTransaction();
Node::create(array('class' => 'type', 'name' => 'order', 'title' => 'Заказ'))->save();
$ctx->db->commit();
}
}
示例7: store
public function store()
{
$validator = Validator::make($data = Input::all(), Node::$rules);
if ($validator->fails()) {
return Redirect::back()->withErrors($validator)->withInput();
}
Node::create($data);
return Redirect::route('nodes.index');
}
示例8: onGet
public function onGet(array $options)
{
$sections = array_intersect_key(Node::getSortedList('tag'), array_flip(Node::create('subscription')->getEnabledSections()));
$output = html::simpleOptions($sections, 'section', 'sections');
if ($this->description) {
$output .= html::em('description', html::cdata($this->description));
}
return $output;
}
示例9: onInstall
/**
* Добавляет тип документа label.
*
* @mcms_message ru.molinos.cms.install
*/
public static function onInstall(Context $ctx)
{
try {
$node = Node::load(array('class' => 'type', 'name' => 'label'), $ctx->db);
} catch (ObjectNotFoundException $e) {
$ctx->db->beginTransaction();
$node = Node::create(array('class' => 'type', 'name' => 'label', 'label' => t('Метка'), 'isdictionary' => true, 'fields' => array('name' => array('type' => 'TextLineControl', 'title' => t('Метка'), 'required' => true))), $ctx->db)->save();
$ctx->db->commit();
}
}
示例10: registerType
/**
* Register a node type.
*
* @param string $type
* @param array $route
*/
public function registerType($type, array $route)
{
if (isset($route['protected']) and $route['protected'] and !array_filter(Node::findAll(true), function ($node) use($type) {
return $type === $node->type;
})) {
Node::create(['title' => $route['label'], 'slug' => App::filter($route['label'], 'slugify'), 'type' => $type, 'status' => 1, 'link' => $route['name']])->save();
}
$route['id'] = $type;
$this->types[$type] = $route;
}
示例11: onInstall
/**
* Инсталляция типа документа subscription.
*
* @mcms_message ru.molinos.cms.install
*/
public static function onInstall(Context $ctx)
{
try {
$node = Node::load(array('class' => 'type', 'name' => 'subscription', 'deleted' => 0), $ctx->db);
} catch (ObjectNotFoundException $e) {
$ctx->db->beginTransaction();
$node = Node::create('type', array('name' => 'subscription', 'title' => t('Подписка на новости')))->save();
$ctx->db->commit();
}
}
示例12: rpc_post_add
public static function rpc_post_add(Context $ctx)
{
$ctx->user->checkAccess(ACL::CREATE, 'comment');
$node = Node::create('comment', array('published' => $ctx->user->hasAccess(ACL::PUBLISH, 'comment')));
$node->formProcess($ctx->post);
if ($ctx->post('anonymous')) {
$node->name = t('Комментарий анонимный');
$node->uid = null;
}
$node->save();
}
示例13: on_install
/**
* @mcms_message ru.molinos.cms.install
*/
public static function on_install(Context $ctx)
{
try {
$node = Node::load(array('class' => 'type', 'name' => 'tag', 'deleted' => 0), $ctx->db);
} catch (ObjectNotFoundException $e) {
$node = Node::create(array('class' => 'type', 'name' => 'tag', 'title' => t('Раздел'), 'fields' => array('name' => array('type' => 'TextLineControl', 'title' => t('Имя раздела'), 'required' => true))), $ctx->db);
$node->getDB()->beginTransaction();
$node->save();
$node->getDB()->commit();
}
}
示例14: create
public function create(Model $Model, $fields = null, $values = null)
{
$data = array($this->Node->alias => array_combine($fields, $values));
$data[$this->Node->alias]['type'] = Inflector::singularize($Model->table);
if (!$this->Node->create()) {
return false;
}
$data = $this->__moveCustomToCustomFields($Model, $data);
$result = $this->Node->saveAll($data, array('deep' => true));
return $result;
}
示例15: set
public function set($value, &$node)
{
$this->validate($value);
if (null === ($email = $this->findEmail($node))) {
throw new InvalidArgumentException(t('Не удалось подписать вас на новости: в профиле не обнаружен ни один почтовый адрес.'));
}
$s = Node::find(array('class' => 'subscription', 'name' => $email), $node->getDB());
if (empty($s)) {
$s = Node::create('subscription', array('name' => $email));
} else {
$s = array_shift($s);
}
$s->linkSetParents($value, 'tag', $this->enabled)->save();
}