function getKey(CExClassField $base = null)
 {
     $field = $base ? $base : $this->loadRefExClassField();
     $class = $base ? $base->loadRefExClass() : $field->loadRefExClass();
     $prefix = "CExObject";
     if ($class->_id) {
         $prefix .= "_{$class->_id}";
     }
     return array($prefix, ".{$field->name}.{$this->key}");
 }
示例#2
0
$date_min = CValue::get("date_min");
$date_max = CValue::get("date_max");
$group_id = CValue::get("group_id");
$concept_search = CValue::get("concept_search");
CValue::setSession('reference_class', $reference_class);
CValue::setSession('reference_id', $reference_id);
if ($reference_class) {
    /** @var CMbObject $reference */
    $reference = new $reference_class();
    if ($reference_id) {
        $reference->load($reference_id);
    }
} else {
    $reference = null;
}
CExClassField::$_load_lite = true;
CExObject::$_multiple_load = true;
CExObject::$_load_lite = $detail < 2;
$group_id = $group_id ? $group_id : CGroups::loadCurrent()->_id;
$where = array("group_id = '{$group_id}' OR group_id IS NULL");
if ($ex_class_id) {
    $where['ex_class_id'] = "= '{$ex_class_id}'";
}
if (empty(CExClass::$_list_cache)) {
    $ex_class = new CExClass();
    /** @var CExClass[] $ex_classes */
    $ex_classes = $ex_class->loadList($where, "name");
    $categories = CStoredObject::massLoadFwdRef($ex_classes, "category_id");
    $categories = CStoredObject::naturalSort($categories, array("title"));
    $categories = array(new CExClassCategory()) + $categories;
    foreach ($ex_classes as $_ex_class) {
 * @package    Mediboard
 * @subpackage forms
 * @author     SARL OpenXtrem <*****@*****.**>
 * @license    GNU General Public License, see http://www.gnu.org/licenses/gpl.html
 * @version    $Revision$
 */
CCanDo::checkEdit();
$ex_class_id = CValue::get("ex_class_id");
$keywords = CValue::get("_ex_field_view");
$exclude_ex_field_id = CValue::get("exclude_ex_field_id");
$ex_class = new CExClass();
$ex_class->load($ex_class_id);
$where = array("ex_class_field_group.ex_class_id" => "= '{$ex_class_id}'");
$ljoin = array("ex_class_field_group" => "ex_class_field_group.ex_class_field_group_id = ex_class_field.ex_group_id");
if ($exclude_ex_field_id) {
    $where["ex_class_field.ex_class_field_id"] = "!= '{$exclude_ex_field_id}'";
}
$ex_field = new CExClassField();
if ($keywords == "") {
    $keywords = "%";
}
$matches = $ex_field->getAutocompleteList($keywords, $where, 200, $ljoin);
$template = $ex_field->getTypedTemplate("autocomplete");
$smarty = new CSmartyDP("modules/system");
$smarty->assign('matches', $matches);
$smarty->assign('field', "ex_class_id");
$smarty->assign('view_field', "_ex_field_view");
$smarty->assign('show_view', 1);
$smarty->assign('template', $template);
$smarty->assign('nodebug', true);
$smarty->display('inc_field_autocomplete.tpl');
示例#4
0
    case "str_to_text":
        $where = array("prop" => "LIKE 'str%'");
        $concept = new CExConcept();
        $str_concepts = $concept->loadList($where);
        foreach ($str_concepts as $_concept) {
            $_concept->prop = preg_replace("/^(str)/", "text", $_concept->prop);
            if ($msg = $_concept->store()) {
                CAppUI::setMsg($msg, UI_MSG_WARNING);
            } else {
                CAppUI::setMsg("Concept modifié", UI_MSG_OK);
            }
        }
        if (count($str_concepts) == 0) {
            CAppUI::setMsg("Aucun concept modifié", UI_MSG_OK);
        }
        $ex_field = new CExClassField();
        $str_fields = $ex_field->loadList($where);
        foreach ($str_fields as $_field) {
            $_field->prop = preg_replace("/^(str)/", "text", $_field->prop);
            if ($msg = $_field->store()) {
                CAppUI::setMsg($msg, UI_MSG_WARNING);
            } else {
                CAppUI::setMsg("Champ modifié", UI_MSG_OK);
            }
        }
        if (count($str_fields) == 0) {
            CAppUI::setMsg("Aucun champ modifié", UI_MSG_OK);
        }
        break;
}
echo CAppUI::getMsg();
<?php

/**
 * $Id$
 *
 * @package    Mediboard
 * @subpackage forms
 * @author     SARL OpenXtrem <*****@*****.**>
 * @license    GNU General Public License, see http://www.gnu.org/licenses/gpl.html
 * @version    $Revision$
 */
CCanDo::checkEdit();
$ex_field_id = CValue::get("ex_field_id");
$ex_field = new CExClassField();
$ex_field->load($ex_field_id);
$ex_field->formulaFromDB();
$formula_possible = true;
$field_names = array();
$spec_type = $ex_field->getSpecObject()->getSpecType();
if (!CExClassField::formulaCanResult($spec_type)) {
    $formula_possible = false;
} else {
    $field_names = $ex_field->getFieldNames(true, true);
    $field_names = array_values($field_names);
    $field_names = array_map("utf8_encode", $field_names);
}
$smarty = new CSmartyDP();
$smarty->assign("ex_field", $ex_field);
$smarty->assign("field_names", $field_names);
$smarty->assign("formula_possible", $formula_possible);
$smarty->display("inc_edit_ex_formula.tpl");
<?php

/**
 * $Id: do_ex_class_field_predicate_aed.php 19290 2013-05-26 19:48:24Z phenxdesign $
 *
 * @package    Mediboard
 * @subpackage System
 * @author     SARL OpenXtrem <*****@*****.**>
 * @license    GNU General Public License, see http://www.gnu.org/licenses/gpl.html
 * @version    $Revision: 19290 $
 */
$ex_class_field_id = CValue::post("ex_class_field_id");
$ex_class_field = new CExClassField();
$ex_class_field->load($ex_class_field_id);
if (empty($_POST["value"])) {
    $_POST["value"] = $_POST[$ex_class_field->name];
}
$do = new CDoObjectAddEdit("CExClassFieldPredicate");
$do->doIt();
示例#7
0
/**
 * $Id: ajax_edit_ex_field.php 26927 2015-01-28 12:52:44Z phenxdesign $
 *
 * @package    Mediboard
 * @subpackage forms
 * @author     SARL OpenXtrem <*****@*****.**>
 * @license    GNU General Public License, see http://www.gnu.org/licenses/gpl.html
 * @version    $Revision: 26927 $
 */
CCanDo::checkEdit();
$ex_field_id = CValue::get("ex_field_id");
$ex_class_id = CValue::get("ex_class_id");
$ex_group_id = CValue::get("ex_group_id");
CExObject::$_locales_cache_enabled = false;
$ex_field = new CExClassField();
$spec_type = "enum";
if ($ex_field->load($ex_field_id)) {
    $spec_type = $ex_field->getSpecObject()->getSpecType();
    $ex_field->loadRefsNotes();
    $ex_field->updateTranslation();
    $ex_field->loadTriggeredData();
} else {
    $ex_field->ex_group_id = $ex_group_id;
    $ex_field->disabled = 0;
    $ex_field->readonly = 0;
    $ex_field->hidden = 0;
}
$ex_field->loadRefExClass();
$properties = $ex_field->loadRefProperties();
foreach ($properties as $_property) {
 /**
  * @param CMbObject $object
  *
  * @return CExObject[][]
  */
 static function getExObjectsOf(CMbObject $object)
 {
     CExClassField::$_load_lite = true;
     CExObject::$_multiple_load = true;
     $group_id = CGroups::loadCurrent()->_id;
     $where = array("group_id = '{$group_id}' OR group_id IS NULL");
     if (empty(CExClass::$_list_cache)) {
         $ex_class = new CExClass();
         CExClass::$_list_cache = $ex_class->loadList($where, "name");
         if (!CExObject::$_locales_cache_enabled) {
             foreach (CExClass::$_list_cache as $_ex_class) {
                 foreach ($_ex_class->loadRefsGroups() as $_group) {
                     $_group->loadRefsFields();
                     foreach ($_group->_ref_fields as $_field) {
                         $_field->updateTranslation();
                     }
                 }
             }
         }
     }
     $ex_objects = array();
     $limit = 1;
     $ref_objects_cache = array();
     foreach (CExClass::$_list_cache as $_ex_class_id => $_ex_class) {
         $_ex_object = new CExObject($_ex_class_id);
         $where = array("(reference_class  = '{$object->_class}' AND reference_id  = '{$object->_id}') OR\n         (reference2_class = '{$object->_class}' AND reference2_id = '{$object->_id}') OR\n         (object_class     = '{$object->_class}' AND object_id     = '{$object->_id}')");
         $ljoin = array();
         /** @var CExObject[] $_ex_objects */
         $_ex_objects = $_ex_object->loadList($where, "{$_ex_object->_spec->key} DESC", $limit, null, $ljoin);
         foreach ($_ex_objects as $_ex) {
             $_ex->_ex_class_id = $_ex_class_id;
             $_ex->load();
             $guid = "{$_ex->object_class}-{$_ex->object_id}";
             if (!isset($ref_objects_cache[$guid])) {
                 $_ex->loadTargetObject()->loadComplete();
                 // to get the view
                 $ref_objects_cache[$guid] = $_ex->_ref_object;
             } else {
                 $_ex->_ref_object = $ref_objects_cache[$guid];
             }
             if ($_ex->additional_id) {
                 $_ex->loadRefAdditionalObject();
             }
             $ex_objects[$_ex_class_id][$_ex->_id] = $_ex;
         }
         if (isset($ex_objects[$_ex_class_id])) {
             krsort($ex_objects[$_ex_class_id]);
         }
     }
     ksort($ex_objects);
     return $ex_objects;
 }
<?php

/**
 * $Id$
 *
 * @package    Mediboard
 * @subpackage forms
 * @author     SARL OpenXtrem <*****@*****.**>
 * @license    GNU General Public License, see http://www.gnu.org/licenses/gpl.html
 * @version    $Revision$
 */
CCanDo::checkEdit();
$ex_class_field_id = CValue::get("ex_class_field_id");
$form_name = CValue::get("form_name");
$value = CValue::get("value");
$ex_class_field = new CExClassField();
$ex_class_field->load($ex_class_field_id);
$ex_class_id = $ex_class_field->loadRefExGroup()->ex_class_id;
$ex_object = new CExObject($ex_class_id);
$ex_object->{$ex_class_field->name} = $value;
$spec = CExConcept::getConceptSpec($ex_class_field->prop);
if ($spec instanceof CEnumSpec) {
    $ex_class_field->updateEnumSpec($spec);
}
$ex_class_field->readonly = "0";
$ex_class_field->hidden = "0";
// Création du template
$smarty = new CSmartyDP();
$smarty->assign("ex_field", $ex_class_field);
$smarty->assign("ex_object", $ex_object);
$smarty->assign("form", $form_name);
     $current_group->loadObject($where);
     if (!$current_group->_id) {
         $current_group->name = $group_name;
         $current_group->ex_class_id = $current_class->_id;
         if ($msg = $current_group->store()) {
             CAppUI::setMsg("Ligne {$line_number} : {$msg}", UI_MSG_WARNING);
             continue;
         } else {
             CAppUI::setMsg("{$current_group->_class}-msg-create", UI_MSG_OK);
         }
     }
 }
 if (empty($current_class->_id) || empty($current_group->_id)) {
     continue;
 }
 $field = new CExClassField();
 $field_name = $line["field_name"];
 $ds = $field->_spec->ds;
 $where = array("ex_class_field_translation.std" => $ds->prepare("=%", $field_name), "ex_class.ex_class_id" => $ds->prepare("=%", $current_class->_id));
 $ljoin = array("ex_class_field_translation" => "ex_class_field_translation.ex_class_field_id = ex_class_field.ex_class_field_id", "ex_class_field_group" => "ex_class_field_group.ex_class_field_group_id = ex_class_field.ex_group_id", "ex_class" => "ex_class.ex_class_id = ex_class_field_group.ex_class_id");
 $field->loadObject($where, null, null, $ljoin);
 if (!$field->_id) {
     CAppUI::setMsg("Ligne {$line_number} : champ non trouvé ({$field_name})", UI_MSG_WARNING);
     continue;
 }
 // mise a jour du groupe du champ
 if ($field->ex_group_id != $current_group->_id) {
     $field->ex_group_id = $current_group->_id;
     if ($msg = $field->store()) {
         CAppUI::setMsg("Ligne {$line_number} : {$msg}", UI_MSG_WARNING);
         continue;
 * @version    $Revision: 17759 $
 */
CCanDo::checkEdit();
$ex_field_id = CValue::get("ex_field_id");
$ex_field_predicate_id = CValue::get("ex_field_predicate_id");
$exclude_ex_field_id = CValue::get("exclude_ex_field_id");
$ex_group_id = CValue::get("ex_group_id");
$opener_field_value = CValue::get("opener_field_value");
$opener_field_view = CValue::get("opener_field_view");
$ex_field_predicate = new CExClassFieldPredicate();
$ex_field_predicate->load($ex_field_predicate_id);
if (!$ex_field_predicate->_id && $ex_field_id != $exclude_ex_field_id) {
    $ex_field_predicate->ex_class_field_id = $ex_field_id;
}
$ex_field_predicate->loadRefExClassField();
$ex_field = new CExClassField();
$ex_field->load($ex_field_id);
if ($ex_group_id && !$ex_field->_id) {
    $ex_group = new CExClassFieldGroup();
    $ex_group->load($ex_group_id);
    $ex_class = $ex_group->loadRefExClass();
} else {
    $ex_class = $ex_field->loadRefExClass();
}
$smarty = new CSmartyDP();
$smarty->assign("ex_field_predicate", $ex_field_predicate);
$smarty->assign("ex_class", $ex_class);
$smarty->assign("exclude_ex_field_id", $exclude_ex_field_id);
$smarty->assign("opener_field_value", $opener_field_value);
$smarty->assign("opener_field_view", $opener_field_view);
$smarty->display("inc_edit_ex_field_predicate.tpl");