Files
roi-theme/wp-content/plugins/ajax-search-pro/backend/Classes/Options/UserXprofileSelect.php
root a22573bf0b Commit inicial - WordPress Análisis de Precios Unitarios
- WordPress core y plugins
- Tema Twenty Twenty-Four configurado
- Plugin allow-unfiltered-html.php simplificado
- .gitignore configurado para excluir wp-config.php y uploads

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-03 21:04:30 -06:00

76 lines
2.5 KiB
PHP
Executable File

<?php
namespace WPDRMS\Backend\Options;
class UserXprofileSelect extends AbstractOption {
public static $all_fields = false;
private $fields;
function __construct($args) {
global $wpdb;
parent::__construct($args);
if ( self::$all_fields === false ) {
self::$all_fields = array();
$table_name = $wpdb->base_prefix . "bp_xprofile_fields";
if( $wpdb->get_var("SHOW TABLES LIKE '$table_name'") == $table_name ) {
$all_fields = $wpdb->get_results(
"SELECT * FROM $table_name LIMIT 400"
);
$all_fields = is_wp_error($all_fields) ? array() : $all_fields;
foreach ($all_fields as $pf) {
self::$all_fields[$pf->id] = $pf;
}
}
}
$this->fields = array_filter(self::$all_fields, function ($field) {
return !in_array($field->id, $this->value);
});
}
public static function value( $value, $default_value = null ) {
return array_filter(explode('|', $value));
}
protected static function outputValue( $value ) {
// No need to decode
return implode('|', $value);
}
function render() {
?>
<div class='wpdreamsBP_XProfileFields' data-id="<?php echo self::$num; ?>" id='wpdreamsBP_XProfileFields-<?php echo self::$num; ?>'>
<fieldset>
<legend><?php echo $this->label; ?></legend>
<div class="sortablecontainer" id="sortablecontainer<?php echo self::$num; ?>">
<div class="arrow-all arrow-all-left"></div>
<div class="arrow-all arrow-all-right"></div>
<p><?php echo __('Available profile fields', 'ajax-search-pro'); ?></p>
<ul id="sortable<?php echo self::$num; ?>" class="connectedSortable connectedSortable<?php echo self::$num; ?>">
<?php foreach($this->fields as $field ): ?>
<li class="ui-state-default" data-bid="<?php echo $field->id; ?>">
<?php echo $field->name; ?>
</li>
<?php endforeach; ?>
</ul>
</div>
<div class="sortablecontainer">
<p><?php echo __('Drag here the fields you want to search!', 'ajax-search-pro'); ?></p>
<ul id="sortable_conn<?php echo self::$num; ?>" class="connectedSortable connectedSortable<?php echo self::$num; ?>">
<?php foreach($this->value as $id ): ?>
<?php if ( isset(self::$all_fields[$id]) ): ?>
<li class="ui-state-default" data-bid="<?php echo $id; ?>">
<?php echo self::$all_fields[$id]->name; ?>
</li>
<?php endif; ?>
<?php endforeach; ?>
</ul>
</div>
<input isparam="1" type="hidden"
value="<?php echo self::outputValue($this->value); ?>"
name="<?php echo $this->name; ?>">
</fieldset>
</div>
<?php
}
}