本文整理汇总了PHP中EEM_Base::field_settings方法的典型用法代码示例。如果您正苦于以下问题:PHP EEM_Base::field_settings方法的具体用法?PHP EEM_Base::field_settings怎么用?PHP EEM_Base::field_settings使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类EEM_Base
的用法示例。
在下文中一共展示了EEM_Base::field_settings方法的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: filter_out_inaccessible_entity_fields
/**
* Takes a entity that's ready to be returned and removes fields which the user shouldn't be able to access.
* @param array $entity
* @param \EEM_Base $model
* @param string $request_type one of the return values from EEM_Base::valid_cap_contexts()
* @param Model_Version_Info $model_version_info
* @return array ready for converting into json
*/
public static function filter_out_inaccessible_entity_fields($entity, $model, $request_type, $model_version_info)
{
//we only care to do this for frontend reads and when the user can't edit the item
if ($request_type !== \EEM_Base::caps_read || $model->exists(array(array($model->primary_key_name() => $entity[$model->primary_key_name()]), 'default_where_conditions' => 'none', 'caps' => \EEM_Base::caps_edit))) {
return $entity;
}
foreach ($model->field_settings() as $field_name => $field_obj) {
if ($model_version_info->field_has_rendered_format($field_obj) && isset($entity[$field_name]['raw'])) {
unset($entity[$field_name]['raw']);
}
}
//theoretically we may want to filter out specific fields for specific models
return apply_filters('FHEE__Capabilities__filter_out_inaccessible_entity_fields', $entity, $model, $request_type);
}
示例2: inputs_values_corresponding_to_model_fields
/**
* Gets all the input values that correspond to model fields. Keys are the input/field names,
* values are their normalized values
* @return array
*/
public function inputs_values_corresponding_to_model_fields()
{
return array_intersect_key($this->input_values(), $this->_model->field_settings());
}
示例3: fields_on_model_in_this_version
/**
* Gets all the fields that should exist on this model right now
*
* @param \EEM_Base $model
* @return array|\EE_Model_Field_Base[]
*/
public function fields_on_model_in_this_version($model)
{
if (!isset($this->_cached_fields_on_models[$model->get_this_model_name()])) {
//get all model changes between the requested version and current core version
$changes = $this->model_changes_between_requested_version_and_current();
//fetch all fields currently on this model
$current_fields = $model->field_settings();
//remove all fields that have been added since
foreach ($changes as $version => $changes_in_version) {
if (isset($changes_in_version[$model->get_this_model_name()]) && $changes_in_version[$model->get_this_model_name()] !== Model_Version_Info::model_added) {
$current_fields = array_diff_key($current_fields, array_flip($changes_in_version[$model->get_this_model_name()]));
}
}
$this->_cached_fields_on_models = $current_fields;
}
return $this->_cached_fields_on_models;
}
示例4: _set_column_values_for
/**
* Extracts the question field's values from the POST request to update or insert them
*
* @param \EEM_Base $model
* @return array where each key is the name of a model's field/db column, and each value is its value.
*/
protected function _set_column_values_for(EEM_Base $model)
{
do_action('AHEE_log', __FILE__, __FUNCTION__, '');
$set_column_values = array();
//some initial checks for proper values.
//if QST_admin_only, then no matter what QST_required is we disable.
if (!empty($this->_req_data['QST_admin_only'])) {
$this->_req_data['QST_required'] = 0;
}
foreach ($model->field_settings() as $fieldName => $settings) {
// basically if QSG_identifier is empty or not set
if ($fieldName == 'QSG_identifier' && (isset($this->_req_data['QSG_identifier']) && empty($this->_req_data['QSG_identifier']))) {
$QSG_name = isset($this->_req_data['QSG_name']) ? $this->_req_data['QSG_name'] : '';
$set_column_values[$fieldName] = sanitize_title($QSG_name) . '-' . uniqid();
// dd($set_column_values);
} else {
if ($fieldName == 'QST_admin_label' && (isset($this->_req_data['QST_admin_label']) && empty($this->_req_data['QST_admin_label']))) {
$QST_text = isset($this->_req_data['QST_display_text']) ? $this->_req_data['QST_display_text'] : '';
$set_column_values[$fieldName] = sanitize_title(wp_trim_words($QST_text, 10));
} else {
if ($fieldName == 'QST_admin_only' && !isset($this->_req_data['QST_admin_only'])) {
$set_column_values[$fieldName] = 0;
} else {
if ($fieldName == 'QST_max') {
$qst_system = EEM_Question::instance()->get_var(array(array('QST_ID' => isset($this->_req_data['QST_ID']) ? $this->_req_data['QST_ID'] : 0)), 'QST_system');
$max_max = EEM_Question::instance()->absolute_max_for_system_question($qst_system);
if (empty($this->_req_data['QST_max']) || $this->_req_data['QST_max'] > $max_max) {
$set_column_values[$fieldName] = $max_max;
}
}
}
}
}
//only add a property to the array if it's not null (otherwise the model should just use the default value)
if (!isset($set_column_values[$fieldName]) && isset($this->_req_data[$fieldName])) {
$set_column_values[$fieldName] = $this->_req_data[$fieldName];
}
}
return $set_column_values;
//validation fo this data to be performed by the model before insertion.
}
示例5: _set_column_values_for
/**
* Extracts the question field's values from the POST request to update or insert them
* @return array where each key is the name of a model's field/db column, and each value is its value.
*/
protected function _set_column_values_for(EEM_Base $model)
{
do_action('AHEE_log', __FILE__, __FUNCTION__, '');
$set_column_values = array();
//some initial checks for proper values.
//if QST_admin_only, then no matter what QST_required is we disable.
if (!empty($this->_req_data['QST_admin_only'])) {
$this->_req_data['QST_required'] = 0;
}
foreach ($model->field_settings() as $fieldName => $settings) {
// basically if QSG_identifier is empty or not set
if ($fieldName == 'QSG_identifier' && (isset($this->_req_data['QSG_identifier']) && empty($this->_req_data['QSG_identifier']))) {
$QSG_name = isset($this->_req_data['QSG_name']) ? $this->_req_data['QSG_name'] : '';
$set_column_values[$fieldName] = sanitize_title($QSG_name) . '-' . uniqid();
// dd($set_column_values);
} else {
if ($fieldName == 'QST_admin_label' && (isset($this->_req_data['QST_admin_label']) && empty($this->_req_data['QST_admin_label']))) {
$QST_text = isset($this->_req_data['QST_display_text']) ? $this->_req_data['QST_display_text'] : '';
$set_column_values[$fieldName] = sanitize_title(wp_trim_words($QST_text, 10));
} else {
if ($fieldName == 'QST_admin_only' && !isset($this->_req_data['QST_admin_only'])) {
$set_column_values[$fieldName] = 0;
} else {
if (isset($this->_req_data[$fieldName])) {
$set_column_values[$fieldName] = $this->_req_data[$fieldName];
}
}
}
}
}
return $set_column_values;
//validation fo this data to be performed by the model before insertion.
}
示例6: _replace_temp_ids_with_mappings
/**
* Using the $old_db_to_new_db_mapping array, replaces all the temporary IDs
* with their mapped real IDs. Eg, if importing from site A to B, the mapping
* file may indicate that the ID "my_event_id" maps to an actual event ID of 123.
* So this function searches for any event temp Ids called "my_event_id" and
* replaces them with 123.
* Also, if there is no temp ID for the INT foreign keys from another database,
* replaces them with 0 or the field's default.
* @param type $model_object_data
* @param EEM_Base $model
* @param type $old_db_to_new_db_mapping
* @param boolean $export_from_site_a_to_b
* @return array updated model object data with temp IDs removed
*/
protected function _replace_temp_ids_with_mappings($model_object_data, $model, $old_db_to_new_db_mapping, $export_from_site_a_to_b)
{
//if this model object's primary key is in the mapping, replace it
if ($model->has_primary_key_field() && $model->get_primary_key_field()->is_auto_increment() && isset($old_db_to_new_db_mapping[$model->get_this_model_name()]) && isset($old_db_to_new_db_mapping[$model->get_this_model_name()][$model_object_data[$model->primary_key_name()]])) {
$model_object_data[$model->primary_key_name()] = $old_db_to_new_db_mapping[$model->get_this_model_name()][$model_object_data[$model->primary_key_name()]];
}
try {
$model_name_field = $model->get_field_containing_related_model_name();
$models_pointed_to_by_model_name_field = $model_name_field->get_model_names_pointed_to();
} catch (EE_Error $e) {
$model_name_field = NULL;
$models_pointed_to_by_model_name_field = array();
}
foreach ($model->field_settings(true) as $field_obj) {
if ($field_obj instanceof EE_Foreign_Key_Int_Field) {
$models_pointed_to = $field_obj->get_model_names_pointed_to();
$found_a_mapping = false;
foreach ($models_pointed_to as $model_pointed_to_by_fk) {
if ($model_name_field) {
$value_of_model_name_field = $model_object_data[$model_name_field->get_name()];
if ($value_of_model_name_field == $model_pointed_to_by_fk) {
$model_object_data[$field_obj->get_name()] = $this->_find_mapping_in($model_object_data[$field_obj->get_name()], $model_pointed_to_by_fk, $old_db_to_new_db_mapping, $export_from_site_a_to_b);
$found_a_mapping = true;
break;
}
} else {
$model_object_data[$field_obj->get_name()] = $this->_find_mapping_in($model_object_data[$field_obj->get_name()], $model_pointed_to_by_fk, $old_db_to_new_db_mapping, $export_from_site_a_to_b);
$found_a_mapping = true;
}
//once we've found a mapping for this field no need to continue
if ($found_a_mapping) {
break;
}
}
} else {
//it's a string foreign key (which we leave alone, because those are things
//like country names, which we'd really rather not make 2 USAs etc (we'd actually
//prefer to just update one)
//or it's just a regular value that ought to be replaced
}
}
//
if ($model instanceof EEM_Term_Taxonomy) {
$model_object_data = $this->_handle_split_term_ids($model_object_data);
}
return $model_object_data;
}