Example #1
0
 function get_instance_by_field_id($field_id)
 {
     global $db;
     $field_format = $db->get_var("SELECT Format\n                                    FROM Field\n                                   WHERE Field_ID=" . (int) $field_id . "\n                                     AND TypeOfData_ID=9");
     if (!$field_format) {
         trigger_error("get_instance_by_field_id - wrong field ID?", E_USER_ERROR);
     }
     return field_relation_factory::get_instance($field_format);
 }
Example #2
0
<?php

/* $Id: select_subclass_list.php 6950 2012-05-12 09:04:54Z alkich $ */
$NETCAT_FOLDER = join(strstr(__FILE__, "/") ? "/" : "\\", array_slice(preg_split("/[\\/\\\\]+/", __FILE__), 0, -4)) . (strstr(__FILE__, "/") ? "/" : "\\");
include_once $NETCAT_FOLDER . "vars.inc.php";
require $ADMIN_FOLDER . "function.inc.php";
require $ADMIN_FOLDER . "related/format.inc.php";
require_once $INCLUDE_FOLDER . "s_common.inc.php";
$sub = (int) $sub;
$field_id = (int) $field_id;
$cs_field_name = htmlspecialchars($cs_field_name, ENT_QUOTES);
if (!$sub || !$field_id && !$cs_field_name) {
    trigger_error("Not enough data", E_USER_ERROR);
}
if ($field_id) {
    $field_data = field_relation_factory::get_instance_by_field_id($field_id);
} else {
    $cs_type = 'rel_cc';
    require $ADMIN_FOLDER . "array_to_form.inc.php";
    $classname = 'nc_a2f_field_' . $cs_type;
    if (!class_exists($classname)) {
        trigger_error("Wrong params", E_USER_ERROR);
    }
    $fl = new $classname();
    $field_data = $fl->get_relation_object();
}
$qry = $field_data->get_list_query($sub);
$cc_list = listQuery($qry, "<a href='#' onclick='top.selectItem(\$data[ItemID])' title='\".NETCAT_MODERATION_SELECT_RELATED.\"'>\n     <span class='id'>\$data[ItemID].</span> \$data[ItemCaption]\n    <div class='icons icon_related icon_subclass_select'></div></a>");
?>
<html>
    <head>
Example #3
0
<?php

/* $Id: select_message_list.php 5946 2012-01-17 10:44:36Z denis $ */
$NETCAT_FOLDER = join(strstr(__FILE__, "/") ? "/" : "\\", array_slice(preg_split("/[\\/\\\\]+/", __FILE__), 0, -4)) . (strstr(__FILE__, "/") ? "/" : "\\");
include_once $NETCAT_FOLDER . "vars.inc.php";
require $ADMIN_FOLDER . "function.inc.php";
require $ADMIN_FOLDER . "related/format.inc.php";
require_once $INCLUDE_FOLDER . "s_common.inc.php";
$sub = (int) $sub;
$cc = (int) $cc;
$field_id = (int) $field_id;
if (!$sub || !$field_id) {
    trigger_error("Not enough data", E_USER_ERROR);
}
$field_format = field_relation_factory::get_instance_by_field_id($field_id);
?>
<html>
    <head>
        <title>Object list</title>
        <link type='text/css' rel='Stylesheet' href='<?php 
echo $ADMIN_TEMPLATE;
?>
css/admin.css'>
        <link type='text/css' rel='Stylesheet' href='<?php 
echo $ADMIN_TEMPLATE;
?>
css/main.css'>
    </head>

    <body style='margin:0; overflow: hidden'>
        <?php 
Example #4
0
/**
 * Элементы для редактирования поля типа "связь с другим объектом"
 * Функция не должна использоваться внутри s_list_class.
 * Работает только в admin_mode.
 *
 * @param string имя поля
 * @param string кнопка/ссылка на изменение связанного объекта
 *   например '<a href="#" onclick="%s">выбрать</a>'
 *   где на место %s будет подставлен Javascript-код.
 *   Обрабатывается через sprintf, поэтому не должно быть неэкранированного "%".
 *   Разработчику следует учитывать, что внутри вставляемого JS-кода
 *   используются одинарные кавычки.
 * @param string удаление (... $action_remove)
 * @return string
 */
function nc_related_field($field_name, $change_template = "", $remove_template = "")
{
    require_once $GLOBALS['ADMIN_FOLDER'] . "related/format.inc.php";
    $result = "";
    global $fld, $fldID, $fldValue, $fldName, $fldFmt, $fldNotNull, $fldType, $message, $db, $admin_mode, $inside_admin, $ADMIN_PATH;
    if (!$admin_mode) {
        return "";
    }
    if (is_array($fld) && !in_array($field_name, $fld)) {
        trigger_error("<b>nc_related_field</b>: incorrect field name ({$field_name})", E_USER_WARNING);
        return;
    }
    if (!is_array($fld)) {
        return;
    }
    $tmp_array = array_flip($fld);
    $field_index = $tmp_array[$field_name];
    $field_id = $fldID[$field_index];
    if ($fldType[$field_index] != 9) {
        trigger_error("<b>nc_related_field</b>: field '{$field_name}' is not a link", E_USER_WARNING);
        return;
    }
    // заголовок поля
    $description = $fldName[$field_index] ? $fldName[$field_index] : $fld[$field_index];
    $result .= $description;
    if ($fldNotNull[$field_index]) {
        $result .= " (*)";
    }
    $result .= ": <br />\n";
    $result .= "<ul class='nc-toolbar nc--left'>";
    $result .= "<li><div id='nc_rel_{$field_id}_caption'>";
    $related_id = (int) $fldValue[$field_index];
    $field_data = field_relation_factory::get_instance($fldFmt[$field_index]);
    // вывод значения
    if ($related_id) {
        $related_caption = listQuery($field_data->get_object_query($related_id), $field_data->get_full_admin_template());
        $result .= $related_caption ? $related_caption : sprintf(NETCAT_MODERATION_RELATED_INEXISTENT, $related_id);
    } else {
        $result .= NETCAT_MODERATION_NO_RELATED;
    }
    $result .= "</div></li>";
    $result .= "<li class='nc-divider'></li>";
    // кнопки действий: заменить и удалить связь
    if (!$change_template) {
        $change_template = "<li><a href=\"#\" onclick=\"%s\"><i class='nc-icon nc--edit'></i> " . NETCAT_MODERATION_CHANGE_RELATED . "</a></li>";
    }
    $change_link = "window.open('" . $ADMIN_PATH . "related/select_" . $field_data->get_relation_type() . ".php?field_id={$fldID[$field_index]}', " . "'nc_popup_{$fld[$field_index]}', " . "'width={$field_data->popup_width},height={$field_data->popup_height},menubar=no,resizable=no,scrollbars=yes,toolbar=no,resizable=yes'); " . "return false;";
    $result .= sprintf($change_template, $change_link);
    if (!$fldNotNull[$field_index]) {
        if (!$remove_template) {
            $remove_template = "<li><a href='#' onclick=\"%s\"><i class='nc-icon nc--remove'></i> " . NETCAT_MODERATION_REMOVE_RELATED . "</a></li>";
        }
        $remove_link = "document.getElementById('nc_rel_{$field_id}_value').value='';" . "document.getElementById('nc_rel_{$field_id}_caption').innerHTML = '" . NETCAT_MODERATION_NO_RELATED . "';" . "return false;";
        $result .= sprintf($remove_template, $remove_link);
    }
    // hidden
    $result .= "<input type='hidden' name='f_{$fld[$field_index]}' id='nc_rel_{$field_id}_value' value='{$related_id}' />\n";
    // готово
    $result .= "</ul>";
    //.nc-toolbar
    $result .= "<br />\n";
    return $result;
}