Files
bm/public_html/public/cms/modules/customerexporter.class.php
2025-09-24 13:26:28 +02:00

134 lines
3.9 KiB
PHP

<?php
/** Customer Exporter
* Exports customer data to a csv file
*
* @version 2.0.0
* @since 2008-04-07
*
*/
class CustomerExporter extends CmsObject{
/** C'tor
*/
//-----------------------------------------------
function CustomerExporter($id, $parent){
//-----------------------------------------------
parent::CmsObject($id, $parent);
$this->name = "Besucherdaten exportieren";
}
/** @see CmsObject::update()
*/
//----------------------------------------------
function update(){
//----------------------------------------------
// empty
}
/** @see CmsObject::printContent()
*/
//-----------------------------------------------
function printContent(){
//-----------------------------------------------
$t = new Template(CMS_TEMPLATE_DIR."customerexport.html");
$groups = "";
$query = sprintf("SELECT * FROM bruckm_ticketcustomergroup ORDER BY name ASC");
$result = dbQuery($query);
while ($line = mysqli_fetch_array($result, MYSQLI_ASSOC)) {
$groups .= '<option value="' . $line['id'] . '">' . htmlspecialchars($line['name']) . '</option>';
}
$t->setVar("GROUPS", $groups);
return $t->toString();
}
/** @see CmsObject::handleAction()
*/
//-----------------------------------------------
function handleAction($action, $position=0, $type=null) {
//-----------------------------------------------
if ($action == "export") {
$csv = 'Titel;Vorname;Nachname;Adresse;PLZ;Ort;E-Mail;Bereich' . "\n";
// export all
if ($_POST['group'] == 0) {
$query = sprintf("SELECT DISTINCT firstname, surname, address, zip, city, email, acad FROM bruckm_ticketcustomer
WHERE info = 'true' AND address != '' AND zip != 0 AND city != ''
ORDER BY surname ASC, firstname ASC");
$result = dbQuery($query);
while ($line = mysqli_fetch_array($result, MYSQLI_ASSOC)) {
$csv .= $line['acad'] . ';';
$csv .= $line['firstname'] . ';';
$csv .= $line['surname'] . ';';
$csv .= $line['address'] . ';';
$csv .= $line['zip'] . ';';
$csv .= $line['city'] . ';';
$csv .= $line['email'] . ';';
$csv .= ';'; // no group information
$csv .= "\n";
}
}
// export a group
else {
$query = sprintf("SELECT name FROM bruckm_ticketcustomergroup WHERE id = %d", sqlnum($_POST['group']));
$result = dbQuery($query);
$line = mysqli_fetch_array($result, MYSQLI_ASSOC);
$group = $line['name'];
$query = sprintf("SELECT DISTINCT customerId FROM bruckm_ticketcustomergroupmemberships WHERE groupId = %d", sqlnum($_POST['group']));
$result = dbQuery($query);
while ($member = mysqli_fetch_array($result, MYSQLI_ASSOC)) {
$query = sprintf("SELECT firstname, surname, address, zip, city, email, acad FROM bruckm_ticketcustomer
WHERE id = %d",
sqlnum($member['customerId']));
$result2 = dbQuery($query);
$line = mysqli_fetch_array($result2, MYSQLI_ASSOC);
$csv .= $line['acad'] . ';';
$csv .= $line['firstname'] . ';';
$csv .= $line['surname'] . ';';
$csv .= $line['address'] . ';';
$csv .= $line['zip'] . ';';
$csv .= $line['city'] . ';';
$csv .= $line['email'] . ';';
$csv .= $group . ';';
$csv .= "\n";
}
}
header("Content-Type: text/plain");
header("Content-Disposition: attachment; filename=\"export.csv\"");
header('Pragma: no-cache');
header('Expires: 0');
echo $csv;
exit();
}
}
/** @see CmsObject::getCssClass()
*/
//-----------------------------------------------
function getCssClass(){
//-----------------------------------------------
return "itemCustomers";
}
// === ADDITIONAL METHODS ================================================================= //
/** sets the id
* @param id id
*/
//-----------------------------------------------
function setId($id){
//-----------------------------------------------
$this->id = $id;
}
};
?>