134 lines
3.9 KiB
PHP
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;
|
|
}
|
|
|
|
};
|
|
|
|
?>
|