本文整理汇总了PHP中Node::count方法的典型用法代码示例。如果您正苦于以下问题:PHP Node::count方法的具体用法?PHP Node::count怎么用?PHP Node::count使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Node
的用法示例。
在下文中一共展示了Node::count方法的14个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: 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();
}
}
示例2: 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();
}
}
示例3: 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();
}
}
示例4: checkInstalled
private static function checkInstalled()
{
try {
if (Node::count(array())) {
return true;
}
} catch (Exception $e) {
}
return false;
}
示例5: onGet
public function onGet(array $options)
{
$result = array('list' => array());
$filter = array('class' => 'message', 're' => $options['uid'], 'deleted' => 0, '#sort' => '-id');
foreach (Node::find($this->ctx->db, $filter, $options['limit']) as $n) {
$result['list'][] = $n->getRaw();
}
$result['count'] = Node::count($filter);
$result['left'] = $result['count'] - count($result['list']);
return $result;
}
示例6: on_get_actions
/**
* Добавление действия ко всем документам.
* @mcms_message ru.molinos.cms.node.actions
*/
public static function on_get_actions(Context $ctx, Node $node)
{
if ($node instanceof FileNode or !$node->checkPermission(ACL::UPDATE)) {
return;
}
$count = Node::count(array('class' => 'file', 'deleted' => 0, 'tags' => $node->id), $node->getDB());
if ($count) {
return array('attach' => array('href' => "admin/node/attach?id={$node->id}&destination=CURRENT", 'title' => t('Управление файлами'), 'scope' => 'edit'));
} else {
return array('attach' => array('href' => "admin/create/file?sendto={$node->id}&destination=CURRENT", 'title' => t('Добавить файлы'), 'scope' => 'edit'));
}
}
示例7: list_xml
public static function list_xml(Context $ctx)
{
$filter = array('deleted' => 0, 'published' => 1, '#sort' => $ctx->get('sort', '-id'), '#limit' => $ctx->get('limit', 10), '#offset' => $ctx->get('skip', 0));
if ($tmp = $ctx->get('class')) {
$filter['class'] = self::split($tmp);
}
if ($tmp = $ctx->get('tags')) {
$filter['tags'] = self::split($tmp);
}
if ($tmp = $ctx->get('tagged')) {
$filter['tagged'] = self::split($tmp);
}
if ($tmp = $ctx->get('author')) {
$filter['uid'] = $tmp;
}
foreach (explode(',', $ctx->get('filters')) as $f) {
if (!empty($f)) {
$filter[$f] = $ctx->get($f);
}
}
$attrs = array('limit' => $filter['#limit'], 'skip' => $filter['#offset']);
$output = Node::findXML($filter, $ctx->db);
if ($ctx->get('pager')) {
$attrs['total'] = Node::count($filter, $ctx->db);
$attrs['prev'] = max($filter['#offset'] - $filter['#limit'], 0);
if ($filter['#offset'] + $filter['#limit'] < $attrs['total']) {
$attrs['next'] = $filter['#offset'] + $filter['#limit'];
}
// Вычисляем диапазон.
if ($attrs['total']) {
$r1 = $filter['#offset'] + 1;
$r2 = min($attrs['total'], $filter['#offset'] + $filter['#limit']);
$attrs['range'] = $r1 . '-' . $r2;
}
}
return self::xml(html::em('nodes', $attrs, $output));
}
示例8: getPreviewXML
public function getPreviewXML(Context $ctx)
{
$result = parent::getPreviewXML($ctx);
if (!$this->published) {
$message = t('Документы этого (скрытого) типа не отображаются в обычном <a href="@url1">списке документов</a>, их не предлагают в стандартной <a href="@url2">форме создания документа</a>.', array('@url1' => 'admin/content/list', '@url2' => 'admin/create'));
$result .= html::em('field', array('title' => t('Комментарий')), html::em('value', html::cdata($message)));
}
$count = Node::count(array('class' => $this->name, 'deleted' => 0), $ctx->db);
if ($count) {
$message = t('%count документов (<a href="@url">список</a>)', array('%count' => $count, '@url' => Node::create($this->name)->getListURL()));
$result .= html::em('field', array('title' => t('Статистика')), html::em('value', html::cdata($message)));
}
return $result;
}
示例9: checkUnique
/**
* Проверка уникальности.
*
* @param string $field имя поля, по которому проверяется уникальность. Поле
* должно быть базовым или должно быть проиндексировано. Обычно используется
* "name".
*
* @param string $message сообщение об ошибке при нарушении уникальности. По
* умолчанию: "Такой объект уже существует".
*
* @param array $filter Дополнительные условия, накладываемые на проверяемые
* объекты. Например, можно указать "parent_id" для обеспечния уникальности в
* рамках одной ветки — так работает проверка имени страницы, например.
*
* @return void
*/
protected function checkUnique($field, $message = null, array $filter = array())
{
if ($this->deleted) {
return;
}
$filter['class'] = $this->class;
$filter['deleted'] = 0;
$filter[$field] = $this->{$field};
if ($this->id) {
$filter['-id'] = $this->id;
}
try {
if (Node::count($filter, $this->getDB())) {
throw new DuplicateException($message ? $message : t('Такой объект уже существует.'));
}
} catch (PDOException $e) {
}
}
示例10: onGetLast
protected function onGetLast(array $options)
{
$result = array();
$filter = array('class' => 'comment', 'published' => 1, '#sort' => '-id');
if (($count = Node::count($this->ctx->db, $filter)) > $this->perpage) {
$result['pager'] = $this->getPager($count, $options['page'], $this->perpage);
}
$page = empty($result['pager']['current']) ? 1 : $result['pager']['current'];
$limit = $this->perpage;
$offset = ($page - 1) * $limit;
$result['comments'] = self::fixNames(Node::find($this->ctx->db, $filter, $limit, $offset));
if (!empty($result['comments'])) {
$parents = array();
$cids = join(', ', array_keys($result['comments']));
$map = $this->ctx->db->getResultsKV("nid", "tid", "SELECT `r`.`nid` as `nid`, `r`.`tid` as `tid` FROM `node__rel` `r` WHERE `r`.`nid` IN ({$cids})");
$nodes = Node::find($this->ctx->db, array('id' => array_unique($map)));
foreach ($map as $k => $v) {
$result['comments'][$k]['node'] = $nodes[$v]->getRaw();
}
}
if (null !== $this->ctx->document->id) {
$result['root'] = $this->ctx->document->getRaw();
}
return $result;
}
示例11: haveRoot
private static function haveRoot()
{
return Node::count(array('class' => 'tag', 'parent_id' => null, 'deleted' => 0));
}
示例12: getPreviewXML
/**
* Возвращает дополнительные поля для предварительного просмотра.
*/
public function getPreviewXML(Context $ctx)
{
$result = parent::getPreviewXML($ctx);
if ($this->width and $this->height) {
$tmp = $this->width . '×' . $this->height;
if ($this->filesize) {
$tmp .= ', ' . mcms::filesize($this->filesize);
}
$result .= html::em('field', array('title' => t('Исходные размеры')), html::em('value', html::cdata($tmp)));
}
if ($this->duration) {
$result .= html::em('field', array('title' => t('Продолжительность')), html::em('value', html::cdata($this->duration)));
}
if ($this->bitrate) {
$result .= html::em('field', array('title' => t('Битрейт')), html::em('value', html::cdata(ceil($this->bitrate))));
}
if ($this->channels) {
switch ($this->channels) {
case 1:
$tmp = t('моно');
break;
case 2:
$tmp = t('стерео');
break;
case 4:
$tmp = t('квадро');
break;
default:
$tmp = t('%count каналов', array('%count' => $this->channels));
}
$result .= html::em('field', array('title' => t('Звук')), html::em('value', array('channels' => $this->channels), html::cdata($tmp)));
}
if ($tmp = $this->getEmbedHTML($ctx)) {
$result .= html::em('field', array('title' => t('Оригинал')), html::em('value', array('class' => 'embed'), html::cdata($tmp)));
}
if (!empty($this->versions)) {
foreach ((array) $this->versions as $name => $info) {
$em = array('title' => t('Версия %name', array('%name' => $name)));
$url = os::webpath($ctx->config->getPath('modules/files/storage'), $info['filename']);
$tmp = t('<a href="@url"><img src="@url" width="%width" height="%height" alt="%filename" /></a>', array('%name' => $name, '%width' => $info['width'], '%height' => $info['height'], '%filename' => basename($info['filename']), '@url' => $url));
$tmp .= t('<br/>%width×%height', array('%width' => $info['width'], '%height' => $info['height']));
$em['#text'] = html::em('value', html::cdata($tmp));
$result .= html::em('field', $em);
}
}
$count = Node::count(array('deleted' => 0, 'tagged' => $this->id), $ctx->db);
if ($count) {
$message = t('%count документов используют этот файл (<a href="@url">список</a>)', array('%count' => $count, '@url' => 'admin/content/list?search=tagged%3A' . $this->id));
$result .= html::em('field', array('title' => t('Статистика')), html::em('value', html::cdata($message)));
}
return $result;
}
示例13: getCount
protected function getCount()
{
if (null === $this->pgcount) {
switch ($this->preset) {
case '404':
$this->pgcount = $this->ctx->db->fetch("SELECT COUNT(*) FROM `node__fallback`");
break;
default:
$filter = $this->getNodeFilter();
$this->pgcount = Node::count($filter, $this->ctx->db);
}
}
return $this->pgcount;
}
示例14: testCountDeletedNodes
public function testCountDeletedNodes()
{
$db = get_test_context()->db;
$count = $db->getResult("SELECT COUNT(*) FROM `node` WHERE `class` = 'type' AND `deleted` = 1");
$this->assertEquals($count, Node::count(array('class' => 'type', 'deleted' => 1)));
}