Онлайн-руководство разработчика NetCat
Модуль «Поиск по сайту» 12.2.1Начало работы с модулем 12.2.2Язык запросов 12.2.3Способы хранения индекса 12.2.4Интерфейс модуля в панели управления сайтом 12.2.5Области индексирования 12.2.6Области HTML-страниц 12.2.7Области поиска на сайте 12.2.8Индексирование по расписанию, запуск индексирования в фоновом режиме 12.2.9Правила индексирования 12.2.10Постановка задачи переиндексирования в очередь 12.2.11Интеграция модуля в макеты дизайна сайта 12.2.12Простая форма поиска 12.2.13Расширенная форма поиска 12.2.14Вывод результатов поиска 12.2.15Стилизация списка подсказок 12.2.16Расширенные настройки 12.2.17Разработка расширений модуля 12.2.18Обзор архитектуры модуля 12.2.19Обработчики документов различных типов 12.2.20Текстовые фильтры 12.2.21Анализаторы текста 12.2.22Корректировщики запросов 12.2.23Подключение других поисковых систем 12.2.24Решение проблем с поиском 12.2.25Решение проблем с индексированием 12.2.26Справочник API

Типы полей

Видеоурок

Строка

Cимвольное поле, максимально может содержать 255 символов.

В данном типе поля возможен выбор формата поля из следующего списка:

  • Email — при добавлении/изменении значения в поле будет проверяться его соответствие формату электронной почты
  • URL — при добавлении/изменении значения в поле будет проверяться его соответствие формату URL
  • HTML-строка — формат, при выборе которого HTML-разметка в переменной $f_ИмяПоля выводится без изменений (для поля без выбранного формата HTML-разметка экранируется). Данный тип доступен с версии 5.8.0.17311.
  • Телефон — при добавлении/изменении значения в поле будет проверяться его соответствие формату телефонного номера.
    Телефонный номер состоит из 7 цифр с необязательным кодом города (он может быть в скобках) и кодом страны ( перед ним может стоять знак «+» ). Группы цифр могут разделяться символом «-», пробелы и знаки табуляции игнорируются. Примеры правильного заполнения поля с форматом «Телефон»:
    1234567
    123-45-67
    8-123-45-67
    8 (000) 123-45-67
    8-000-123-45-67
    +7 000 123 45 67
  • Тэги — формат, необходимый для модуля «Облако тегов».
  • Пароль — формат, необходимый для создания поля, символы в котором будут скрыты «звёздочками»

Для вывода записи данного типа достаточно указать переменную:

<?= $f_имяполя?>

Для данного типа поля можно указать опцию «Транслитерация», с помощью которой будет формироваться ключевое слово объекта.

Целое число

Формат для этого типа поля не предусмотрен. В поле данного типа может быть введено только целое число (1, 56, 1024, 56255 и т. д.).

Для вывода записи данного типа достаточно указать переменную:

<?= $f_имяполя?>

Текстовой блок

Поле (для ввода будет использован элемент формы <textarea>), может содержать 64кб текста. Задавать формат поля можно через таблицу «Размер текстового блока», в которой можно указать высоту и ширину элемента <textarea>, который будет использоваться для добавления/изменения поля объекта. Кроме этого можно указать следующие параметры:

  • разрешать ли HTML-теги
  • перенос строки <br>
  • встроить ли визуальный редактор в поле для редатирования. Если выдключаете визуальный редактор, для него можно указать панель, которая будет использоваться в редакторе. Сами панели можно настроить в меню «Настройки → Настройки WYSIWYG»
  • размер текстового блока

Для вывода записи данного типа достаточно указать переменную:

<?= $f_имяполя?>

С версии 5.3 доступна функция типографирования текста. Для включения опции включите одноимённую опцию

Также для типографирования можно воспользоваться функцией nc_format_typo().

Список

Список значений (для ввода будет использован выпадающий список <select>); возвращает значение указанной записи списка. В поле «Формат» можно указать латинское название списка (название таблицы), содержимое которого будет использоваться при выводе списка возможных значений.

Пример: при заполнении анкеты нужно сделать выбор города пользователем из выпадающего списка. Для этого нужно создать сам список с перечислением городов и подключить его к создаваемому полю. Если список носит название «Region», в поле «Формат» нужно будет вписать название списка, то есть «Region».

Для вывода данных в компоненте будут доступны переменные:

  • $f_имяполя — содержит выбранное из списка значение.
  • $f_имяполя_id — содержит ID выбранного значения.
  • $f_имяполя_value — содержит значение дополнительного поля выбранного элемента списка.
  • $f_имяполя_settings — массив с пользовательскими настройками выбранного элемента списка.

В том случае, если в поле «Формат» ввести только название списка, в форме добавления или редактирования будет отображаться выпадающий список. Выпадающий список можно изменить на ряд radiobutton'ов дописав в имени списка radio через двоеточие. Таким образом «Region» будет изменён на «Region:radio».

Логическая переменная

Логическое поле (да/нет); при выводе записи возвращает 1 (да) или 0 (нет). Если у поля параметр «обязательно для заполнения» выключен, то будет выводиться блок radiobutton'ов (не важно, да, нет). Если этот параметр включен, будет выводиться checkbox. Формат для этого типа поля не предусмотрен.

Пример: при заполнении анкеты пользователь при ответе на вопрос может поставить галочку, если ответ утвердительный:

В компоненте можно сделать вывод переменной:

<?= $f_mobile?>

Но в этом случае будет выведена только цифра 1 или 0, поэтому лучше используя проверку вывести обычное описание:

Мобильные телефон: <?= ($f_mobile==1?"Есть":"Нет")?>

Файл

Поле типа «файл» (для ввода будет использован элемент формы <input type="file">, возвращает URL файла, его настоящее название и размер. В поле «формат» может быть указан максимальный размер файла в байтах. При необходимости через двоеточие может быть указан также и возможный тип файла (mime type).

Например:

  • 1048576 — файл объёмом не более 1048576 байт любого типа.
  • 200000:application/pdf — файл объёмом не более 200000 байт, только pdf-файл.
  • 2500000:image/* — файл объёмом не более 2500000 байт, только изображение (jpg, png и т.д.).
  • 2000000:video/* — видеофайл любого типа.
  • 200000:image/jpg,video/* — файл объёмом не более 2500000 байт, только изображение jpg, либо видеофайл любого типа

Тип файловой системы влияет на вариант загрузки и хранения файла:

1. Простая

Файлы хранятся в директории /netcat_files/. Имя файла на диске состоит из идентификатора поля, символа подчеркивания, идентификатора сообщения и расширения файла.

2. Стандартная

На диск записывается оригинальное имя файла (если оно содержит кириллицу — то символы переведутся в «транслит», если такой файл уже существует, то к новому добавится числовой индекс через подчеркивание). По умолчанию, файл записывается в директорию netcat_files/sub/cc/, где sub — номер раздела, сс — номер компонента в разделе.

Вы можете поменять директорию, указав в условии добавления или изменение требуемое значение:

$f_ИмяПоля['folder'] = 'ИмяДиректории';

Имя директории должно содержать только латинские буквы, подчеркивание и дефис. Для разделений директорий между собой (для создания вложенной структуры) используется символ «/», например:

$f_Picture['folder'] = 'Image/foto';

3. Защищённая

Так же как и в случае с «стандартной» файловой системой, файлы записываются в директорию netcat_files/sub/cc/. На диск записывается захэшированное имя файла. Так же в таблице Filetable для каждого файла создается своя запись. Такой тип хранения файлов затрудняет получение файла подбором имени, но в этом случае создаётся нагрузка на базу данных.

Для файлов этого типа можно задать атрибут «Закачиваемый». В этом случае при обращении к файлу браузер предложит его сохранить, а не показать. Так же для файлов данного типа можно считать количество обращений к ним, для этого надо задать атрибут «Считать количество скачиваний».

Структура таблицы Filetable имеет следующий вид:

Поле Описание
ID индекс
Real_Name настоящее имя файла
Virt_Name виртуальное имя файла
File_Path путь к файлу
File_Type тип файла
File_Size размер файла
Message_ID номер объекта (раздела, пользователя, макета, сайта), к которому относится файл
Field_ID номер поля файла
Content_Disposition атрибут «Закачиваемый»
Download количество скачиваний

В списке объектов и на странице просмотра объекта, при наличии поля типа «Файл», доступны переменные:

  • $f_имяполя — ссылка на файл
  • $f_имяполя_url — прямая ссылка на файл (для ФС «Защищенная»)
  • $f_имяполя_name — оригинальное (изначальное) имя файла
  • $f_имяполя_type — MIME-тип файла
  • $f_имяполя_size — размер файла в байтах
  • $f_имяполя_download — количество запросов (скачиваний) файла (при ФС «Защищенная»)

В условие добавления:

  • $f_имяполя — массив с ключами name, size, type

В действии после добавления:

  • $f_имяполя — ссылка на файл
  • $f_имяполя_name — оригинальное (изначальное) имя файла
  • $f_имяполя_type — MIME-тип файла
  • $f_имяполя_size — размер файла в байтах

Работа с файлами для сайтов, разделов, макетов дизайна и пользователей аналогична.

Для изображений доступны дополнительные функции.

См. также: создание нескольких вариантов изображения с сохранением исходного файла.

1. Уменьшение изображения

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

2. Обрезка изображения

Для обрезки необходимо задать 4 параметра: точки начала (лево, верх) X0, Y0 и точки конца (право, низ) X1, Y1

3. Создание картинки-предпросмотра

Как правило, такие изображения используются для отображения анонсов к просмотру объекта (список статей, новостей, аватарка и т. д.). Для создания превью укажите желаемые размеры: ширину и высоту.

Вывод картинки-превью:

$f_имяполя_preview_url

Число с плавающей запятой

Формат данного поля подразумевает ввод цифр с плавающей запятой. Такое поле можно использовать для ввода цены, когда после запятой нужно ввести копейки либо для ввода точных значений.

Например: 2000,52 руб.

Дата и время

Создаётся 6 полей для хранения даты и времени ('day', 'month', 'year', 'hours', 'minutes', 'seconds'). Возможно использование календаря для выбора даты.

В поле «Формат» можно указать значения:

  • event —  при добавлении записи в это поле будет автоматически подставляться текущая дата и время при условии, что поле обязательно для заполнения.
  • event_date — в форме добавления/изменения будут показываться только поля даты (без времени), и при добавлении записи в это поле будет автоматически подставляться текущая дата при условии, что поле обязательно для заполнения.
  • event_time — в форме добавления/изменения будут показываться только поля времени (без даты) и при добавлении записи в это поле будет автоматически подставляться текущее время при условии, что поле обязательно для заполнения.

Для вывода значения поля в компоненте можно воспользоваться присущими для поля такого типа переменными:

  • $f_имяполя_day — число
  • $f_имяполя_month — месяц
  • $f_имяполя_year — год
  • $f_имяполя_hours — час
  • $f_имяполя_minutes — минута
  • $f_имяполя_seconds — секунда

Соответственно, эти поля пожно вариьровать между собой и использовать только нужные.

Пример: в компоненте нужно вывести дату добавления новости:

Добавлено: <?=$f_date_day."/".$f_date_month."/".$f_date_year?>

На сайте будет выведено: «Добавлено 05/04/2013». При помощи дополнительных функций вы можете обработать эти числа и получить читаемые даты: «Добавлено 5 апреля 2013 года».

Связь с другими объектами

Поле в компонентах выдаёт идентификатор связанного объекта, который можно вывести при помощи функции listQuery. Например, формат поля «Связь с другим объектом» имеет значение «22», это означает, что связанные объекты берутся из компонента с идентификатором 22. Тогда получить объект можно следующим образом:

<?=listQuery("SELECT * FROM Message22 WHERE Message_ID=$f_имя_поля", '$data[Title] // $data[Date]')?>

где «имя_поля» — связь с другим объектом. Привязать объект можно при добавлении или редактировании сообщения в разделе, к которому прикреплён компонент с таким полем.

В поле «Формат» следует указать номер компонента для привязки, если связь осуществляется с компонентами. В случае связи системных таблиц, указывается название системной таблицы (Subdivision, Sub_Class, User, Catalogue...). Примеры правильного оформления поля «Формат» для связи с другими объектами:

1 – номер компонента
2:Name – номер компонента и  заголовка объекта
2:"CONCAT(Message_ID, ': ', Announcement)" – номер заголовка объекта и расширение запроса
Subdivision – имя системной таблицы
User:CONCAT(FirstName, ' ', LastName) – имя системной таблицы и расширение запроса

Расширение запроса используется для получения данных об объекте, например заголовка. Расширяемый запрос имеет вид:

SELECT <ID_Field> AS ItemID, CONCAT( [...] ) AS ItemCaption FROM <Table> WHERE <Constraints>

Как правило, использование данного поля используется редакторами или администраторами сайта, так как поле создаёт ссылку, при нажатии на которую появляется окно с выбором подключаемого раздела, компонента и объекта.

Примеры использования:

1. На сайте необходимо создать систему тикетов. Каждому тикету назначается пользователь-исполнитель.

  • В компонент тикета нужно добавить поле «Исполнитель» (User) , тип «Связь с другими объектами».
  • В формат поля прописать
    User:"CONCAT(ForumName, '<div style="color: gray;">', Login, ' | ', Email, '</div>')"
    где: User — таблица со списком пользователей; ForumName, Login и Email — поля пользователя в таблице.
  • В окне выбора исполнителя отобразится список вида:
  • В месте вывода исполнителя составить запрос:
    <?= listQuery("SELECT * FROM User WHERE User_ID=$f_User","\$data[ForumName] (\$data[Login] \$data[Email])");?>

2. На сайте есть раздел с мастер-классами и раздел с преподавателями. При добавлении мастер-класса нужно сделать возможность выбора преподавателя. Для этого:

  • В компоненте мастер-класса нужно добавить поле «Преподаватель» (Master_ID), тип «Связь с другими объектами».
  • В формат поля прописать ID компонента и название поля. Например: 16.
  • В месте вывода составить запрос
    <?= listQuery("SELECT * FROM Message16 WHERE Message_ID=$f_Master_ID","\$data[Name] \$data[Surname]");?>

Множественный выбор

Данный тип поля (компонента, раздела, сайта, пользователей) позволяет пользователю выбирать несколько элементов из списка.

Создание поля

В «типе поля» при добавлении\редактировании поля компонента (или поля из системной таблицы) укажите «Множественный выбор».

Поле «Формат» в этом случае обязательно для заполнения. Оно должно содержать как минимум латинское название списка (название таблицы). Так же в поле «Формат» можно задать вид (select или checkbox) элемента, который будет выводиться по умолчанию в формах добавления, изменения и поиска.

По умолчанию используется select с высотой равной трем. Для изменения элемента укажите его через двоеточие после имени таблицы. При использовании select можно также задать высоту этого элемента (количество одновременно отображаемых элементов) опять же через двоеточие после слова «select»

Примеры заполнения поля формат:

Формат Результат
Region Элемент select, size - 3
ShopUnits:checkbox Элемент checkbox
Manufacturer:select Элемент select, size - 3
ShopCurrency:select:2 Элемент select, size - 2

Форма добавления, изменения

По умолчанию, как было сказано выше, элемент (select или checkbox) берётся из формата поля. Т.е. Если вы используете форму «по умолчанию», то формат вывода элемента будет взят из формата поля.

В альтернативных формах можно использовать функцию

string nc_multilist_field($field_name, $style = "", $type = "", $classID = "", $caption = false, $selected = false, $disabled = false, $getData = false)

Она возвращает строку с HTML-кодом.

Подробно это функция описана в Приложении, здесь остановимся на том, что третьем параметром можно указать тип элемента: select или checkbox, так же для элемента select можно задать высоту. Этот параметр имеет вид аналогичный, как и у формата поля, за исключением того, что здесь не нужно указывать таблицу. По умолчанию так же используется select с высотой 3.

Пример использования:

nc_multilist_field('countrySelect', '', 'checkbox', $classID, 1)
nc_multilist_field('countrySelect', '', 'select:5', $classID, 1)

Отображение элементов

При использовании компонента с полем «Множественный выбор», в списке отображения объектов и в полном выводе объекта доступна переменная $f_ИмяПоля, которая на самом деле является массивом, содержащим выбранные элементы, так же доступен массив $f_ИмяПоля_id, содержащим id выбранных элементов.

Для примера рассмотрим ситуацию, когда у объекта выбраны элементы из списка «Город» (Region):

1.Москва, 59.Екатеринбург, 110.Магадан.

Поле имеет имя city.

Тогда в массиве $f_city первый элемент ($f_city[0]) это «Москва», второй элемент «Екатеринбург» и третий - «Магадан», а массив $f_city_id имеет следующий вид:

$f_city_id[0] = 1, $f_city_id[1] = 59, $f_city_id[2] = 110

Для вывода этих элементов есть смысл перевести массив в строку. Это можно сделать с помощью функции nc_array_to_string().

Так же для перевода массива в строку можно использовать функцию php join (подробнее см. http://ru2.php.net/join).

Все это справедливо и при использовании поля типа «Множественный выбор» в системных таблицах.

Для отображения списка создайте шаблон вывода вида:

<?php
$templ['prefix']  = '<ui>';
$templ['element'] = '<li>%ELEMENT</li>';
$templ['suffix']  = '</ui>';
?>

поместите его в поле «Системные настройки», а в месте вывода пропишите:

<?= nc_array_to_string($f_pole, $templ)?>

Также можно воспользоваться следующим способом:

<?= nc_array_to_string($f_pole,
array( 'prefix' => 'List:<br>',
'element' => '%I. %ELEMENT',
'divider' => '<br>',
'suffix'  => 'end' )
)?>

Множественная загрузка файлов

Данный тип поля (компонента, раздела, сайта, пользователей) позволяет пользователю добавлять неограниченное количество файлов. При этом, доступна мультизагрузка путём перетаскивания множества файлов на поле загрузки либо выбор множества файлов в окне обзора.

Создание поля

В «типе поля» при добавлении\редактировании поля компонента (или поля из системной таблицы) укажите «Множественная загрузка файлов».

Для изображений доступны дополнительные функции.

См. также: создание нескольких вариантов изображения с сохранением исходного файла.

1. Уменьшение изображения

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

2. Обрезка изображения

Для обрезки необходимо задать 4 параметра: точки начала (лево, верх) X0, Y0 и точки конца (право, низ) X1, Y1

3. Создание картинки-предпросмотра

Как правило, такие изображения используются для отображения анонсов к просмотру объекта (список статей, новостей, аватарка и т. д.). Для создания превью укажите желаемые размеры: ширину и высоту.

Форма добавления, изменения

Для отображения поля в альтернативных формах нужно использовать метод form объекта f_названиеПоля, возвращающий строку с HTML кодом.

string $f_multifileFieldName->form()

Данная конструкция используется «по умолчанию».

Также объект поля содержит в себе объект настроек этого поля.

string $f_multifileFieldName->settings->settingsName()

Имя метода Описание
path($path) Путь до папки, куда будут сохраняться файлы (от папки, в которую установлена NetCat)
use_name('Текст для placeholder’а поля') При использовании этой настройки, рядом с полем добавления файла будет добавлено поле, в котором можно указать описание для файла
resize($width, $height) Если поле используется для загрузки фотографий, то с помощью этого метода можно задать размер, в которому будет приводиться фотография после загрузки
preview($width, $height) Если поле используется для загрузки фотографий, то с помощью этого метода можно автоматически создавать превью заданного размера
min($int) Минимальное количество файлов, доступное для загрузки
max($int) Максимальное количество файлов, доступное для загрузки
set_description($name) Заголовок поля

Методы могут использоваться в любой последовательности, а также несколько подряд.

Пример использования в альтернативных формах:

<?= $f_Img->settings->resize(600, 600)->preview(150, 150)->path('/my_img/')->min(2)->max(5);?>
<?= $f_Img->form();?>

Метод set_description() не является методом настроек и его нужно использовать отдельно:

<? $f_Img->set_description("Имя поля");?>
<?= $f_Img->form();?>

Отображение элементов в списке объектов и в полном выводе

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

Элемент Описание
prefix Выводится перед списком
suffix Выводится после списка
record Элемент списка
divider Разделитель между элементами списка
i Начальный индекс счетчика элементов

В элементе record могут быть следующие макропеременные:

Элемент Описание
%Name% Имя для файла, которое можно задать при использовании $f_multifileFieldName->settings->use_name() в альтернативной форме
%Size% Размер
%Path% Путь до файла
%Preview% Путь до превью
%i% Номер элемента списка

До версии 5.6.0.16248 при установке системы в подпапку пути Path и Preview не содержали имени подпапки. Начиная с версии 5.6.0.16248 эти элементы содержат полный путь от корня сайта.

До версии 5.6.0.16248 элемент Preview был всегда заполнен, даже когда уменьшенной копии изображения не сущствовало. Начиная с версии 5.6.0.16248 путь к Preview указан только если была создана уменьшенная копия изображения.

Пример использования:

$f_Img_tpl = array(
    'prefix' => "<div>",
    'record' => "<div>%i%. %Name%</div><a href='%Path%'><img src='%Preview%' /></a>",
    'divider' => " ",
    'suffix' => "</div>",
    'i' => 1
);

После задания шаблона в списке объектов и в полном отображении объекта можно использовать переменную $f_имяПоля для вывода его содержимого.

Так же, в списке объектов и в полном отображении можно использовать следующие методы:

Элемент Описание
get_record($val) Вернет строку с шаблоном, примененным к одному файлу, который находится на $val месте по приоритету
get_random_record() Вернет строку с шаблоном, примененным к одному файлу, выбранному случайно
count() Вернет количество файлов в поле
set_template($val_arr) С версии 5.3. Сменить шаблон вывода поля, например чтобы вывести отдельный элемент через метод get_record() в отличном дизайне (параметр $val_arr массив с шаблоном вывода)
to_array() Возвращает массив с данными о файлах загруженных в поле(ссылки, размер и.т.п)

Пример использования:

# Случайная фотография
<?= $f_Img->get_random_record()?>

# Вывод одной фотографии со своим шаблоном (например, используя в качестве обложки альбома)
# Для этого вывода нужно добавить шаблон отображения
<?= $f_Img->set_template($img_tpl)->get_record(1)?>

Используя функцию nc_load_multifield() можно получить объект поля в любом месте системы.

Если необходимо производить с данными о файлах какие-либо вычисления, можно перебрать их в цикле:

foreach ($f_Img->to_array() as $file) {
    // $file — объект, у которого доступны свойства Name, Size, Path, Preview
    echo basename($file->Path) . " — " . nc_bytes2size($file->Size) . "<br>";
}

Общие настройки

У многих полей есть схожие настройки. Их описание вынесено в данный подраздел.

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

2. Возможен поиск по данному полю. Подробнее про функционал поиска по компоненту написано в разделе «Поиск и выборка». При включении данной опции, поле будет участвовать в поиске по компоненту, а также в базе данных для данного поля будет создан индекс. При выключении опции индекс также будет удалён.

3. Использовать в табличном списке объектов. Начиная с версии 5.4 в админразделе доступен табличный вид отображения списка объектов. Включите данную опцию для того, чтобы значение из данного поля отображалось в таблице.

4. Приоритет. Определяет порядок расположения и отображения (в формах добавления, редактирования) полей. Приоритет можно изменить как вручную, так и путём перетаскиванию полей в дереве.

5. Значение по умолчанию. В случае, если пользователь не заполнит поле, данные для него будут браться из этого поля.

6. Тип доступа к полю. С помощью данного поля можно задавать скрытые поля, либо скрывать поля совсем. Поле имеет три опции:

  • доступно всем
  • доступно только администраторам. Этот тип поля можно использовать когда на странице нужно вывести комментарий администратора: ответ в гостевой книге или пометку на форуме.
  • недоступно никому. Этот тип можно использовать для данных, которые изменяются автоматически. Например, количество записей в категории, количество комментариев пользователя. Это поле не будет отображаться ни в каких формах, но его значение будет доступно для вывода.

7. Связанное поле. В данное поле можно поместить дополнительное содержимое: js-скрипт, строку-подсказку, html-код и т.д. В содержимом можно использовать макрос %ID, при выводе он будет заменён на идентификатор поля. Вывод содержимого происходит для поля с именем $field_name компонента $class_id. Если $class_id не указан - автоматически подставляется текущий класс. Для вывода содержимого в нужном месте воспользуйтесь функцией:

nc_field_extension($field_name, $class_id = null);

Примеры вывода:

# Вывод содержимого из поля Name
echo nc_field_extension('Name');

# Вывод содержимого из поля Caption, компонент №579
echo nc_field_extension('Caption', 579);

Комментарии 30

Pilot  Тех-Альянс 19 апреля 2014, 02:21:43
По множественному выбору надпись, смотри в приложении. Ковырял- ковырял, не нашёл. Может не в тех сусеках искал. [URL='http://joxi.ru/ZKVRU_3JTJDuZJGfNSo']joxi.ru/ZKVRU_3JTJDuZJGfNSo[/URL]

Примера по множественному выбору не нашёл, поэтому решил поделиться с другими:
Код для системных настроек
[CODE]<?
$templ['prefix'] = '<ul>';
$templ['element'] = '<li>%ELEMENT</li>';
$templ['suffix'] = '</ul>';
?>[/CODE]
Код для полей объект в списке и вывод на отдельной странице:
[CODE]<?=nc_array_to_string($f_imya_polya,$templ)?>[/CODE]
   
amigo 06 мая 2014, 12:55:34
Вячеслав, спасибо за сообщение. Пример вывода добавлен в текст.

Больше информации по выводу есть [URL='http://netcat.ru/developers/docs/api/nc_array_to_string.html']здесь[/URL].
   
Мое Дело  Охапкин Иван 06 июня 2014, 18:26:22
Для того, чтобы выводить значение используется <?=$f_имяполя?>, а для того, чтобы вывести заголов поля какая переменная существует?
   
Redox 02 июля 2014, 18:36:14
Хотелось бы понять для чего конкретно и как используется "связанное поле". На какой-нибудь конкретной типовой задаче.
Спасибо!
   
amigo 09 июля 2014, 09:19:33
В [URL='http://netcat.ru/developers/docs/api/nc_field_extension.html']разделе API[/URL] есть описание функции вывода и пара примеров.
   
Iliya  MoyDomen 15 июля 2014, 11:15:23
Множественная загрузка файлов.
Добавьте пожалуйста в описание, по данному типу поля, параметры максимальное и минимальное количество файлов при добавлении.
В коде присутствует данная возможность в документации нет.
   
amigo 13 августа 2014, 10:34:08
Илья, спасибо за сообщение. Добавлено
   
MihaKot  Аксарин Константин 25 августа 2014, 23:33:27
3. Создание картинки-предпросмотра

Указал необходимые размеры.
В результате размеры все разные.
не указано что эти размеры берутся по большей стороне. нужно тоже указать как то что либо обрезать в размеры либо по сторонам.
раз уж используется та же функция.
а то не долделано получается.
   
Александр  Акцент-Дон 09 сентября 2014, 16:21:20
1. Уменьшение изображения.
Если указать 800х600, а затем загрузить фото размером 100х100, то всё равно растянет то 800х600.
Нужно наверно проверять, если исходник меньше, то не пережимать?!
   
amigo 11 сентября 2014, 08:56:04
Александр, спасибо за сообщение. Эта функция уже в плане, в ближайших FB будет выложена.
   
AkSeN  Маэстро 19 сентября 2014, 15:58:35
если поставить размер уменьшения не квадратный - а например прямоугольный, 800 на 600 - и загрузить туда квадратное изображение например 1000 на 1000 - в итоге мы получим изображение 600 на 600 - а не 800 на 600 как нам нада - или я что-то неправильно делаю?
   
Jack  ADWT.ru 16 октября 2014, 18:32:16
В версии 5.4, при удалении картинки в поле типа "Файл", с включенным режимом создания картинки-предпросмотра, основная картинка из папки удаляется нормально, а файлик превьюшки остается. В таком режиме остается в папках мусор. Поправьте плиз.
   
Ещё с 3й версии тянется проблема
   
В слове "вариьровать" опечатка.
   
alexandr  Осипов Александр 25 марта 2016, 14:57:52
В поле типа файл:
"В действии после добавления:
$f_имяполя — ссылка на файл"

Ничего подобного. Это массив. $f_имяполя_url - ссылка.
   
serguesqx  Клевер АС 19 апреля 2016, 10:54:49
Возможность множественного заполнения для полей типа строка/текст предвидится? )
   
homogen  homogen 10 июня 2016, 14:20:06
Netcat 5.6 Standard, поле "множественная загрузка", формат поля "image/*".
При сохранении форма ругается "Файлы превысившие допустимый размер <имя файла>". Лечится очисткой поля "Формат".
   
homogen  homogen 10 июня 2016, 15:51:35
"Связанное поле" в Альтернативных формах добавления/изменения объекта применяется в виде
<?=nc_field_extension('Name',($class_id ? $class_id : $classID))?>
   
ktotoff  АльтерЛан 21 марта 2017, 19:20:47
В полях типа «Множественная загрузка» очень хочется получить 2 возможности:

1. Рулить параметром multiple — иногда правильнее предлагать пользователю добавлять файлы по одному, а не пачкой.
2. Чтобы перечисленные типы файлов таки попадали в значение атрибута accept. Понятно, что в тех браузерах, где оно работает плохо, его подменить обработчик ошибок. Но в наиболее массовых браузерах все давно работает!
   
GurovPR  Гуров и партнеры 07 июля 2020, 11:33:56
"Автоматическая обработка изображений" - классная штука! Единственное - рекомендую дополнительно для изображений проставлять хэш, чтобы закэшированная в браузере картинка поменялась при изменении изображения (ибо, при изменении картинки походу фактический URL не изменяется). Т.е. примерно вот так: <img src="<?=$item['Image']->resize(600,800,nc_ImageTransform::RESIZE_TO_BEST_FIT)?>&v=<?=$f_LastUpdated?>" alt="" />
   
artmailoff  Туромиро 07 марта 2021, 12:27:40
Как лечить проблему пропажей файлов из поля Множественная загрузка при копировании объекта? Помню ее еще с версии 5+
Причем, эта проблема наблюдается лишь тогда, когда добавляешь поле для описания файла через
$f_Field->set_description("Описание") в шаблонах действий.
   
Raul  N-Studio 30 января 2023, 20:56:35
Здравствуйте!
Когда при выводе поля "множественный выбор" надо организовать условие, можно воспользоваться слкдующим приемом:

В поле вывода пишем
".eval("return \"".$f_Files."\";")."

А в системных настройках
$f_Files_tpl = array(
'prefix' => "",
'record' => "<a href='%Path%'>%Name%\".(\"%Name%\"?'':'%i%').\"</a>",
'divider' => "",
'suffix' => "",
'i' => 1
);
Этот код выводит в анкоре подпись %Name%, если она есть и порядковый номер файла в противном случае.

Но если в метке %Name% кто-то напечатает ", то возникает ошибка. Как можно от нее избавиться?
   
Описание проекта