Re : Community builder et impression de liste.
Par exemple
a de grandes chances de fonctionner correctement.
Pour la requête, il y a juste une jointure implicie entre les tables #__users et #__comprofiler, sur l'ID user.
Par exemple
Code PHP:
<?php
define( '_JEXEC', 1 );
define( 'JPATH_BASE', __DIR__ ) );
// print this out or observe errors to see which directory you should be in
//(this is two subfolders in)
require_once ( JPATH_BASE . '/includes/defines.php' );
require_once ( JPATH_BASE . '/includes/framework.php' );
require_once ( JPATH_CONFIGURATION . '/configuration.php' );
require_once ( JPATH_LIBRARIES . '/joomla/database/database.php' );
require_once ( JPATH_LIBRARIES . '/joomla/access/access.php' );
require_once ( JPATH_LIBRARIES . '/import.php' );
/**
* Utiliser la gestion de base de données de Joomla! puisqu'on a importé le framework.
*/
$db = JFactory::getDBO() ;
// Create a query
$list_this_many = 100;
// pour une requête dans les tables CB + user tenter d'optimiser
$user = array( 'u.id AS id', 'u.name AS name', 'u.username AS username', 'u.email AS email' ) ;
$cbuser = array( 'c.cb_gsm_sevice AS GSM', 'c.cb_code_postal AS ZIP' ) ;
$query 'SELECT ' . implode( ', ', $user ) . implode( ', ', $cbuser ) .
'FROM #__users AS u, #__comprofiler as c ' .
'WHERE c.user_id = u.id ' .
'ORDER BY u.registerDate ' .
'LIMIT 0, ' . $list_this_many ;
$db->setQuery( $query ) ;
$result = $db->loadObjectList() ;
$user_count = $db->getNumRows() ;
// ou alternativement
// $user_count = count( $result ) ;
$output = '<html>
<head>
<title>Joes Joomla Users script</title>
<style>
body{font-family:Verdana;font-size:75%;}
table{width:100%;}
th{text-align:left;padding:2px;font-size:75%;}
td{white-space:nowrap;padding:2px;font-size:75%;}
div{font-weight:700;}
.even{background-color:#eee;}
</style>
</head><body>';
$output .= '<h1>Users in `'.$db_prefix.'users`</h1><table>';
$output .= '<tr><th>Name</th><th>Username</th><th>E-mail</th><th>GSM</th><th>Code postal</th> <th>Created</th></tr>';
/**
* Utiliser une boucle foreach pour itérer dans la table des résultats
*/
foreach ( $result as $row )
{
// et on en fait ce qu'on veut
$output .= "\n<tr> " ;
$output .= '<td>' . $row->name . '</td><td>' . $row->username . '</td><td>' . $row->email .
'</td><td>' . $row->GSM . '</td><td>' . $row->ZIP . '</td></tr>' ;
}
// close off output
$output .= '</table><br />';
$output .= '<div>Total User(s): '.$user_count.'</div>';
$output .= '</body></html>';
// print out output
echo $output;
Pour la requête, il y a juste une jointure implicie entre les tables #__users et #__comprofiler, sur l'ID user.
Commentaire