function get_views() { $wpshop_attribute_links = array(); $active_nb = wpshop_attributes_set::getElement('', "'moderated','valid'"); $deleted_nb = wpshop_attributes_set::getElement('', "'deleted'"); $wpshop_attribute_links['wpshop_attribute_groups_links wpshop_attribute_groups_links_valid' . (empty($_REQUEST['attribute_groups_status']) ? ' current' : '')] = '<a href="' . admin_url('admin.php?page=' . wpshop_attributes_set::getEditionSlug()) . '" >' . __('Attribute groups', 'wpshop') . ' (' . count($active_nb) . ')</a>'; $wpshop_attribute_links['wpshop_attribute_groups_links wpshop_attribute_groups_links_deleted' . (!empty($_REQUEST['attribute_groups_status']) && $_REQUEST['attribute_groups_status'] == 'deleted' ? ' current' : '')] = '<a href="' . admin_url('admin.php?page=' . wpshop_attributes_set::getEditionSlug() . '&attribute_groups_status=deleted') . '" >' . __('Trashed attribute groups', 'wpshop') . ' (' . count($deleted_nb) . ')</a>'; return $wpshop_attribute_links; }
/** * Display a form allowing to create an entity from frontend with a shortcode * @param array $shortcode_args The different parameters for the shortocde: the field list for the form, different parameters for the entity to create */ public static function wpshop_entities_shortcode($shortcode_args) { global $wpshop_account, $wpdb; $output = $form_content = ''; if (get_current_user_id() > 0) { if (!empty($_POST['quick_entity_add_button'])) { $attributes = array(); foreach ($_POST['attribute'] as $attribute_type => $attribute) { foreach ($attribute as $attribute_code => $attribute_value) { $attributes[$attribute_code] = $attribute_value; } } $result = wpshop_products::addProduct($_POST['wp_fields']['post_title'], '', $attributes, 'complete'); } if (empty($shortcode_args['attribute_set_id']) || empty($shortcode_args['post_type'])) { $output = __('This form page is invalid because no set or type or content is defined. Please contact administrator with this error message', 'wpshop'); } else { $entity_identifier = wpshop_entities::get_entity_identifier_from_code($shortcode_args['post_type']); $attribute_set_def = wpshop_attributes_set::getElement($shortcode_args['attribute_set_id'], "'valid'"); if (empty($entity_identifier) || empty($attribute_set_def) || $entity_identifier != $attribute_set_def->entity_id) { $output = __('This form page is invalid because type and set are not linked. Please contact administrator with this error message', 'wpshop'); } else { /** Display wordpress fields */ foreach (explode(', ', $shortcode_args['fields']) as $field_name) { $label = ''; switch ($field_name) { case 'post_title': switch ($shortcode_args['post_type']) { case WPSHOP_NEWTYPE_IDENTIFIER_PRODUCT: $label = __('Product title', 'wpshop'); break; default: $label = __('Name', 'wpshop'); break; } $field_type = 'text'; break; case 'post_thumbnail': switch ($shortcode_args['post_type']) { case WPSHOP_NEWTYPE_IDENTIFIER_PRODUCT: $label = __('Product picture', 'wpshop'); break; default: $label = __('Default picture', 'wpshop'); break; } $field_type = 'file'; break; } if (!empty($label)) { $template_part = 'quick_entity_wp_internal_field_' . $field_type; $tpl_component = array(); $tpl_component['WP_FIELD_NAME'] = $field_name; $tpl_component['WP_FIELD_VALUE'] = ''; $input = wpshop_display::display_template_element($template_part, $tpl_component); unset($tpl_component); $template_part = 'quick_entity_wp_internal_field_output'; $tpl_component = array(); $tpl_component['ENTITY_TYPE_TO_CREATE'] = $shortcode_args['post_type']; $tpl_component['WP_FIELD_NAME'] = $field_name; $tpl_component['WP_FIELD_LABEL'] = $label; $tpl_component['WP_FIELD_INPUT'] = $input; $form_content .= wpshop_display::display_template_element($template_part, $tpl_component); unset($tpl_component); } } /** Display attributes fields */ $query = $wpdb->prepare("\nSELECT ATT.code\nFROM " . WPSHOP_DBT_ATTRIBUTE . " AS ATT\n\tINNER JOIN " . WPSHOP_DBT_ATTRIBUTE_DETAILS . " AS ATTR_DET ON ((ATTR_DET.status = 'valid') AND (ATTR_DET.attribute_id = ATT.id) AND (ATTR_DET.entity_type_id = ATT.entity_id))\n\tINNER JOIN " . WPSHOP_DBT_ATTRIBUTE_GROUP . " AS ATT_GROUP ON ((ATT_GROUP.status = 'valid') AND (ATT_GROUP.attribute_set_id = ATTR_DET.attribute_set_id) AND (ATT_GROUP.id = ATTR_DET.attribute_group_id))\nWHERE ATT.is_used_in_quick_add_form = %s\n\tAND ATT.status= %s\n\tAND ATT.entity_id = %d\n\tAND ATTR_DET.attribute_set_id = %d\nGROUP BY ATT.code\nORDER BY ATT_GROUP.position, ATTR_DET.position", 'yes', 'valid', wpshop_entities::get_entity_identifier_from_code($shortcode_args['post_type']), $shortcode_args['attribute_set_id']); $attribute_for_creation = $wpdb->get_results($query); foreach ($attribute_for_creation as $attribute) { $attr_field = wpshop_attributes::display_attribute($attribute->code, 'frontend'); $form_content .= $attr_field['field']; } /** Check if there are extra parameters */ if (!empty($shortcode_args['extra_element'])) { $extra_element = explode(', ', $shortcode_args['extra_element']); foreach ($extra_element as $element) { $element_def = explode('!#wps#!', $element); $element_type = $element_def[0]; $element_id = $element_def[1]; if ($element_type == WPSHOP_NEWTYPE_IDENTIFIER_ADDRESS) { $form_content .= '<div class="wpshop_entity_address_container">'; // $form_content .= $wpshop_account->display_form_fields($element_id, null, 'not'); $form_content .= '</div><div class="wpshop_cls"></div>'; } } } } } $template_part = 'quick_entity_add_form'; $tpl_component = array(); $tpl_component['ENTITY_TYPE'] = $shortcode_args['post_type']; $tpl_component['ENTITY_ATTRIBUTE_SET_ID'] = !empty($shortcode_args['attribute_set_id']) ? $shortcode_args['attribute_set_id'] : 0; $tpl_component['NEW_ENTITY_FORM_DETAILS'] = $form_content; $tpl_component['ENTITY_QUICK_ADDING_FORM_NONCE'] = wp_create_nonce("wpshop_add_new_entity_ajax_nonce"); $tpl_component['ENTITY_QUICK_ADD_BUTTON_TEXT'] = __($shortcode_args['button_text'], 'wpshop'); /* Ajout de la boite permettant d'ajouter des valeurs aux attributs de type liste deroulante a la volee */ $dialog_title = __('New value', 'wpshop'); $dialog_identifier = 'new_value_for_entity'; $dialog_input_identifier = 'wpshop_new_attribute_option_value'; ob_start(); include WPSHOP_TEMPLATES_DIR . 'admin/add_new_element_dialog.tpl.php'; $tpl_component['DIALOG_BOX'] = ob_get_contents(); ob_end_clean(); $tpl_component['DIALOG_BOX'] .= '<input type="hidden" name="wpshop_attribute_type_select_code" value="" id="wpshop_attribute_type_select_code" />'; $tpl_component['DIALOG_BOX'] = ''; $output = wpshop_display::display_template_element($template_part, $tpl_component, array(), 'wpshop'); echo $output; } else { echo $wpshop_account->display_login_form(); } }
/** * ACCOUNT - Edit account informations data */ function account_informations_form() { global $wpdb; $output = ''; if (get_current_user_id() != 0) { // Customer ID data $customer_entity_type_id = wpshop_entities::get_entity_identifier_from_code(WPSHOP_NEWTYPE_IDENTIFIER_CUSTOMERS); $query = $wpdb->prepare('SELECT ID FROM ' . $wpdb->posts . ' WHERE post_type = %s AND post_author = %d', WPSHOP_NEWTYPE_IDENTIFIER_CUSTOMERS, get_current_user_id()); $cid = $wpdb->get_var($query); $fields_to_output = $signup_fields = array(); $password_attribute = $signup_form_attributes = array(); $entity_id = wpshop_entities::get_entity_identifier_from_code(WPSHOP_NEWTYPE_IDENTIFIER_CUSTOMERS); $query = $wpdb->prepare('SELECT id FROM ' . WPSHOP_DBT_ATTRIBUTE_SET . ' WHERE entity_id = %d', $entity_id); $customer_entity_id = $wpdb->get_var($query); $attributes_set = wpshop_attributes_set::getElement($customer_entity_id); $account_attributes = wpshop_attributes_set::getAttributeSetDetails(!empty($attributes_set->id) ? $attributes_set->id : '', "'valid'"); $query = $wpdb->prepare('SELECT id FROM ' . WPSHOP_DBT_ATTRIBUTE_GROUP . ' WHERE attribute_set_id = %d', $attributes_set->id); $customer_attributes_sections = $wpdb->get_results($query); foreach ($customer_attributes_sections as $k => $customer_attributes_section) { if (!empty($account_attributes[$customer_attributes_section->id])) { foreach ($account_attributes[$customer_attributes_section->id]['attribut'] as $attribute) { $signup_fields[] = $attribute; } } } ob_start(); require wpshop_tools::get_template_part(WPS_ACCOUNT_DIR, $this->template_dir, "frontend", "account/account_form"); $output = ob_get_contents(); ob_end_clean(); } return $output; }
<?php if (!empty($address_meta) && !empty($address_meta['_wpshop_address_attribute_set_id']) && !empty($address_meta['_wpshop_address_attribute_set_id'][0])) { ?> <?php $address_attribute_set = wpshop_attributes_set::getElement($address_meta['_wpshop_address_attribute_set_id'][0]); ?> <a target="_wps_attribute_set_edition_page" href="<?php echo admin_url('admin.php?page=wpshop_attribute_group&action=edit&id=' . $address_attribute_set->id); ?> " ><?php echo $address_attribute_set->name; ?> </a> <?php } else { ?> <div class="wps-alert-info"><?php _e('No type setted for address', 'wpshop'); ?> </div> <?php }
/** * Récupération des groupes et/ou sous-groupes d'attributs pour une entité donnée * * @param integer $entity_id Identifiant de l'entité dont on veut récupérer la liste des groupes et/ou sous-groupes * @param string $table Permet de définir quel est l'élément en cours d'édition * @param string $page_code Code de la page courante * @param boolean $complete_tree Si ce paramètre est à vrai alors on affiche les sous-groupes, dans le cas contraire on affiche uniquement les groupes * * @return string Le code html permettant d'afficher la liste des groupes et/ou sous-groupes d'attributs */ public static function get_attribute_set_complete_list($entity_id, $table, $page_code, $complete_tree = true) { $the_input = __('There is no attribute set for this entity', 'wpshop'); $attr_set_list = wpshop_attributes_set::getElement($entity_id, "'valid'", 'entity_id', 'all'); if (!empty($attr_set_list)) { $the_input = '<select name="' . $table . '[set_section]" class="wpshop_' . $page_code . '_set_section" >'; if (!$complete_tree) { $the_input .= '<option value="0">' . __('None', 'wpshop') . '</option>'; } foreach ($attr_set_list as $attr_set_index => $attr_set) { if (!empty($attr_set->id)) { $attribute_set_details = wpshop_attributes_set::getAttributeSetDetails($attr_set->id, "'valid'"); if (!empty($attribute_set_details)) { if ($complete_tree) { $the_input .= '<optgroup label="' . __($attr_set->name, 'wpshop') . '" >'; foreach ($attribute_set_details as $set_details) { $selected = $attr_set->default_set == 'yes' && $set_details['is_default_group'] == 'yes' ? ' selected="selected"' : ''; $the_input .= '<option' . $selected . ' value="' . $attr_set->id . '_' . $set_details['id'] . '">' . __($set_details['name'], 'wpshop') . '</option>'; } $the_input .= '</optgroup>'; } else { $the_input .= '<option value="' . $attr_set->id . '">' . __($attr_set->name, 'wpshop') . '</option>'; } } } } $the_input .= '</select>'; } return $the_input; }