method = $method;
$this->settings = ApgSettings::load_settings('user_settings');
$this->tt = ApgSettings::load_settings('tooltip');
}
public function execute(){
$status = false;
$result = false;
$error_msg = null;
$return = false;
$method = $this->method;
$res = parent::extract_method($method);
switch ($res['method'])
{
case'user_message_template':
$template = $this->user_message_template();
$responseJson = new \stdClass();
$responseJson->status = true;
$responseJson->template = $template;
$result = $responseJson;
break;
case'load_user_selected_image':
isset($_POST['fid']) && is_string($_POST['fid']) ? $fid = esc_attr($_POST['fid']) : $fid = "";
$template = $this->load_user_selected_image($fid);
$responseJson = new \stdClass();
$responseJson->status = true;
$responseJson->template = $template;
$result = $responseJson;
break;
case'user_selected':
$template = $this->user_selected();
$responseJson = new \stdClass();
$responseJson->status = true;
$responseJson->template = $template;
$result = $responseJson;
break;
break;
case 'new_user_db':
$return = $this->usr_handler();
$result = $return;
break;
case'editor_button_select':
$result = $this->editor_button_select();
break;
case'new_user_template':
$template = $this-> new_user_template();
$responseJson = new \stdClass();
$responseJson->template = $template;
$responseJson->status = true;
$result = $responseJson;
break;
case'delete_usr_message':
$responseJson = new \stdClass();
isset($_POST['value']) && is_string($_POST['value']) ? $value = esc_attr($_POST['value']) : $value = "";
isset($_POST['id']) && is_numeric($_POST['id']) ? $id = esc_attr($_POST['id']) : $id = "";
if(empty($value) || empty($id)){
$responseJson->status = $status;
return $responseJson;
}
$a1 = array("method" =>"read_wp_db",
"table" =>"art_user",
"select" => ' *',
"where" =>" where id = %d",
"search" =>$id);
$usr = new DbHandle($a1);
$data=$usr->return;
$msg = unserialize($data['data'][0]->user_message);
foreach($msg as $tmp)
{
$message[] = $tmp;
}
$Amsg = array_filter(array_values($message));
for($i = 0; $i <= count($Amsg); $i++) {
$datum_msg = substr($Amsg[$i],0,strpos($Amsg[$i],'_'));
if($datum_msg == $value){
continue;
}else{
$datei_upd[] = $Amsg[$i];
}
}
$datei_upd = array_filter(array_values($datei_upd));
$Update = serialize($datei_upd);
$u = array("method" =>"update_wp_user_nachricht",
"table" =>"art_user",
"data" =>array("id"=>$id,"message"=>$Update) ,
"session" =>false);
new DbHandle($u);
$responseJson->status = true;
$result = $responseJson;
break;
case 'delete_log_eintrag':
$responseJson = new \stdClass();
isset($_POST['value']) && is_string($_POST['value']) ? $value = esc_attr($_POST['value']) : $value = "";
if(empty($value)){
$responseJson->status = $status;
return $responseJson;
}
$zeile = substr($value,0,strpos($value,'_'));
$dir = __DIR__.'/templates/userLog/';
$file = substr($value,strpos($value,'_')+1).'.txt';
$datei = $dir . $file;
$line = file($datei);
$f = pathinfo($datei);
$monat = substr($f['filename'],3,2);
$jahr = substr($f['filename'],6,4);
$userID = substr($f['filename'],strpos($f['filename'],'_')+1);
for($i = 0; $i <= count($line); $i++) {
if($i == $zeile){
continue;
}
$update[] = $line[$i];
}
$update = array_filter($update);
unlink($datei);
foreach($update as $tmp)
{
$dh = fopen($datei, "a+");
fwrite($dh, $tmp);
}
fclose($dh);
$responseJson->monat = $monat;
$responseJson->jahr = $jahr;
$responseJson->id = $userID;
$responseJson->status = true;
$result = $responseJson ;
break;
case'delete_day_log':
$responseJson = new \stdClass();
isset($_POST['value']) && is_string($_POST['value']) ? $value = esc_attr($_POST['value']) : $value = "";
if(empty($value)){
$responseJson->status = $status;
return $responseJson;
}
$dir = __DIR__.'/templates/userLog/';
$file = $value.'.txt';
$datei = $dir . $file;
unlink ($datei);
$responseJson->status = true;
$result = $responseJson ;
break;
case'load_user_log':
isset($_POST['typ']) && is_string($_POST['typ']) ? $typ = esc_attr($_POST['typ']) : $typ = "";
$responseJson = new \stdClass();
if(empty($typ)){
$responseJson->status = $status;
return $responseJson;
}
$template = $this->read_user_log($typ);
$responseJson->status = true;
$responseJson->template = $template;
$result = $responseJson ;
break;
case'load_userLog_jahr':
isset($_POST['id']) && is_numeric($_POST['id']) ? $id = esc_attr($_POST['id']) : $id = "";
$responseJson = new \stdClass();
if(empty($id)){
$responseJson->status = $status;
return $responseJson;
}
$this->id = $id;
$template = $this->read_user_log("jahr");
$responseJson->status = true;
$responseJson->template = $template;
$result = $responseJson;
break;
case'load_userLog_monat':
isset($_POST['id']) && is_numeric($_POST['id']) ? $id = esc_attr($_POST['id']) : $id = "";
isset($_POST['jahr']) && is_numeric($_POST['jahr']) ? $jahr =esc_attr($_POST['jahr']) : $jahr = "";
$responseJson = new \stdClass();
if(empty($id) || empty($jahr)){
$responseJson->status = $status;
return $responseJson;
}
$this->id = $id;
$this->jahr = $jahr;
$template = $this->read_user_log("monat");
$responseJson->status = true;
$responseJson->template = $template;
$result = $responseJson;
break;
case 'user_Log_details':
isset($_POST['id']) && is_numeric($_POST['id']) ? $id = esc_attr($_POST['id']) : $id = "";
isset($_POST['jahr']) && is_numeric($_POST['jahr']) ? $jahr = esc_attr($_POST['jahr']) : $jahr = "";
isset($_POST['monat']) && is_numeric($_POST['monat']) ?$monat = esc_attr($_POST['monat']) : $monat = "";
$responseJson = new \stdClass();
if(empty($id) || empty($jahr) || empty($monat)){
$responseJson->status = $status;
return $responseJson;
}
$this->id = $id;
$this->jahr = $jahr;
$this->monat = $monat;
$template = $this->read_user_log("details");
$responseJson->status = true;
$responseJson->template = $template;
$result = $responseJson;
break;
case'user_help':
isset($_POST['typ']) && is_string($_POST['typ']) ? $typ = esc_attr($_POST['typ']) : $typ = "";
$responseJson = new \stdClass();
if(empty($typ)){
$responseJson->status = $status;
return $responseJson;
}
if($typ == 'freigaben'){
@ob_start();
$template = file_get_contents(__DIR__.'/templates/help/freigaben.txt',FILE_USE_INCLUDE_PATH);
@ob_end_flush();
}
if($typ == 'auswahl'){
@ob_start();
$template = file_get_contents(__DIR__.'/templates/help/auswahl.txt',FILE_USE_INCLUDE_PATH);
@ob_end_flush();
}
if($typ == 'optionen'){
@ob_start();
$template = file_get_contents(__DIR__.'/templates/help/auswahl.txt',FILE_USE_INCLUDE_PATH);
@ob_end_flush();
}
$responseJson->template = $template;
$responseJson->status = true;
$result = $responseJson;
break;
case'template_read_messages':
$template = $this->read_user_message();
$responseJson = new \stdClass();
$responseJson->template = $template;
$responseJson->status = true;
$result = $responseJson ;
break;
case 'new_user_message':
@session_start();
isset($_POST['message']) && is_string($_POST['message']) ? $message = esc_attr($_POST['message']) : $message = "";
$responseJson = new \stdClass();
if(empty($message)){
$responseJson->status = $status;
return $responseJson;
}
$a1 = array("method" =>"read_wp_db",
"table" =>"art_user",
"select" => ' *',
"where" =>" where id = %d",
"search" =>$_SESSION['id']);
;
$usr = new DbHandle($a1);
$data=$usr->return;
date_default_timezone_set("Europe/Berlin");
$heute = date("Y-m-d H:i:s");
$newMessage = $heute.'_'.$message;
if(empty($data['data'][0]->user_message)){
$msgUpdate = serialize(array($newMessage));
}else{
$msgnew =array($newMessage);
$allMsg = unserialize($data['data'][0]->user_message);
$msgUpdate = serialize(array_merge($allMsg,$msgnew));
}
$upd = array("method" =>"new_wp_user_message",
"table" =>"art_user",
"data" =>array("id"=>$_SESSION['id'],
"message" =>$msgUpdate)
);
$update = new DbHandle($upd);
$responseJson->status = true;
$result = $responseJson;
break;
case 'load_selected_image':
$responseJson = new \stdClass();
isset($_POST['value']) && is_string($_POST['value']) ? $value = esc_attr($_POST['value']) : $value = "";
isset($_POST['fid']) && is_numeric($_POST['fid']) ? $fid = esc_attr($_POST['fid']) : $fid = "";
if(empty($value) || empty($fid)){
$responseJson->status = $status;
return $responseJson;
}
$entry = $this->load_user_selected_image((string)$value,(int)$fid);
$responseJson->template = $entry;
$responseJson->status = true;
$result = $responseJson;
break;
case 'new_email_template':
isset($_POST['name']) && is_string($_POST['name']) ? $name = esc_attr($_POST['name']) : $name = "";
$responseJson = new \stdClass();
if(empty($name)){
$responseJson->status = $status;
return $responseJson;
}
$temp = self::new_email_template($name);
$responseJson->status = true;
$responseJson->head_links= $temp['links'];
$responseJson->daten = $temp['daten'];
$responseJson->message = $temp['message'];
$responseJson->loaded = $name;
$result = $responseJson;
break;
case 'read_user_email_content':
$entry = self::read_usermail_verzeichnis();
if($entry['status'] === false){
$entry = self::read_usermail_verzeichnis();
}
$btn_head = '
eMail Templates ';
$btn_foot = '
';
$allFiles = array_reverse($entry['files']);
foreach ($allFiles as $tmp)
{
$datei = substr($tmp,0,strpos($tmp,'.txt'));
if($datei =='zugangsdaten eMail')
{
$dateiActiv = ''.$datei.' ';
$btnTyp = 'primary';
}else{
$dateiActiv = $datei;
$btnTyp = 'default';
}
$btn .= ' '.$dateiActiv.' ';
}
$button = $btn_head .$btn . $btn_foot;
$responseJson = new \stdClass();
$responseJson->status = true;
$responseJson->links = $button;
$responseJson->daten = $entry['daten'];
$responseJson->loaded = 'zugangsdaten eMail';
$result = $responseJson;
break;
case 'change_mail_template':
isset($_POST['name']) && is_string($_POST['name']) ? $name = esc_attr($_POST['name']) : $name = "";
$responseJson = new \stdClass();
if(empty($name)){
$responseJson->status = $status;
$responseJson->message = 'leere Eingabe!';
return $responseJson;
}
$temp = UserHandler::change_email_template($name);
$responseJson->status = true;
$responseJson->links = $temp['links'];
$responseJson->daten = $temp['daten'];
$responseJson->message = $temp['message'];
$responseJson->loaded = $name;
$result = $responseJson;
break;
case'save_user_email_template':
isset($_POST['name']) && is_string($_POST['name']) ? $name = esc_attr($_POST['name']) : $name = "";
isset($_POST['value']) && is_string($_POST['value']) ? $value = esc_attr($_POST['value']) : $value = "";
$responseJson = new \stdClass();
if(empty($value)){
$responseJson->status = $status;
$responseJson->message = 'leere Eingabe!';
return $responseJson;
}
$entry = self::save_user_email_template(htmlspecialchars_decode($value),$name);
$responseJson->status = $entry['status'];
$responseJson->message = $entry['message'];
$result = $responseJson;
break;
case'delete_email_template':
isset($_POST['name']) && is_string($_POST['name']) ? $name = esc_attr($_POST['name']) : $name = "";
$responseJson = new \stdClass();
if(empty($name)){
$responseJson->status = $status;
$responseJson->message = 'leere Eingabe!';
return $responseJson;
}
$ent = self::del_email_template($name);
if($ent !== true)
{
$responseJson->status = $status;
$responseJson->loaded = $name;
$responseJson->message = ' Die E-Mail, mit den Zugangsdaten kann nicht gelöscht werden! ';
return $responseJson;
}else{
$entry = self::read_usermail_verzeichnis();
if($entry['status'] === false){
$entry = self::read_usermail_verzeichnis();
}
$btn_head = ' eMail Templates ';
$btn_foot = '
';
$allFiles = array_reverse($entry['files']);
foreach ($allFiles as $tmp)
{
$datei = substr($tmp,0,strpos($tmp,'.txt'));
if($datei =='zugangsdaten eMail')
{
$dateiActiv = ''.$datei.' ';
$btnTyp = 'primary';
}else{
$dateiActiv = $datei;
$btnTyp = 'default';
}
$btn .= ' '.$dateiActiv.' ';
}
$button = $btn_head .$btn . $btn_foot;
$responseJson = new \stdClass();
$responseJson->status = true;
$responseJson->links = $button;
$responseJson->message = $name .' gelöscht!';
$responseJson->daten = $entry['daten'];
$responseJson->loaded = 'zugangsdaten eMail';
$result = $responseJson;
}
break;
case 'benutzer_freigaben_start':
$responseJson = new \stdClass();
$return = $this->benutzer_freigaben(array("auswahl"=>'benutzer_freigaben'));
if($res['id']=='response'){
$template = $this->start_user_response_template();
$responseJson->body = $template['template'];
$responseJson->close = $template['close'];
}else{
$responseJson->body = $return['body'];
}
$responseJson->status = true;
$responseJson->header = $return['header'];
$result = $responseJson;
break;
case 'load_freigaben':
$close = '
schließen
'.self::user_details_auswahl().'';
$responseJson = new \stdClass();
$optionen = array("template"=>"user_freigaben_start");
$dat = new SiteTemplates($optionen);
$data = $dat->return;
if(isset($data['status'])){
$responseJson->message = $data['message'];
$responseJson->status = $data['status'];
return $responseJson;
}
$responseJson->status = true;
$responseJson->close = $close;
$responseJson->template = $data;
$result = $responseJson;
break;
case 'create_new_user':
$responseJson = new \stdClass();
$responseJson->status = true;
$result = $responseJson;
break;
case 'create_new_freigabe_template':
$template = $this->user_templates(array("method"=>"new_freigabe"));
$responseJson = new \stdClass();
$responseJson->status = $template['status'];
$responseJson->template = $template['template'];
$result = $responseJson;
break;
case 'new_freigabe_galerie':
isset($_POST['galerie']) && is_string($_POST['galerie']) ? $galerie = esc_attr($_POST['galerie']) : $galerie = "";
isset($_POST['user']) && is_string($_POST['user']) ? $user = esc_attr($_POST['user']) : $user = "";
$responseJson = new \stdClass();
//wenn eingaben leer : wenn nicht fehlermeldung zurück
if(empty($galerie) || empty($user)){
$msg = parent::response('16');
$responseJson->message = $msg['response_msg'];
$responseJson->status = $status;
return $responseJson;
}
$a1 = array("method" =>"read_wp_db",
"table" =>"art_user",
"select" => ' *',
"where" => " where htaccess_user = %s",
"search" => $user);
$usr = new DbHandle($a1);
$userDB=$usr->return;
$a2 = array("method"=>"read_wp_db",
"table" =>"art_galerie",
"select" => '*',
"where" => " where galerie_name = %s",
"search" => $galerie);
$gal = new DbHandle($a2);
$galerieDB=$gal->return;
//überprüfen ob es user und galerien gibt wenn nicht fehlermeldung zurück
if(empty($userDB['count']) || empty($galerieDB['count'])){
$msg = parent::response('16');
$responseJson->message = $msg['response_msg'];
$responseJson->status = $status;
return $responseJson;
}
//überprüfen ob Eintrag schon vorhanden ist wenn nicht fehlermeldung zurück
$a3 = array("method" =>"user_wp_freigabe_start");
$data3 = new DbHandle($a3);
$r=$data3->return;
for ($x = 1; $x <= $r['count']; $x++) {
if($r['data'][$x -1]->galerie_name === $galerie && $r['data'][$x -1]->htaccess_user === $user) {
$msg = parent::response('4');
$responseJson->message = $msg['response_msg'];
$responseJson->status = $status;
return $responseJson;
}
}
//default Werte erzeugen
$settings = serialize(
array( "gps" =>(int)0,
"exif" =>(int)0,
"auswahl" =>(int)1,
"kommentar" =>(int)1,
"log" =>(int)1,
"selected" =>(int)1,
"nachricht" =>(int)1,
));
//array für insert erzeugen
$freigabe = array("method" =>"new_wp_freigabe",
"table" =>"art_freigaben",
"data" =>array(
"settings" =>(string)$settings,
"htaccess_id" =>(int)$userDB['data'][0]->id,
"galerie_typ" =>(int)2,
"freigabe_aktiv" =>(int)1,
"galerie_id" =>(int)$galerieDB['data'][0]->id,
"htaccess_aktiv" =>(int)1,));
//eintrag in DB schreiben
$upd = new DbHandle($freigabe);
$insertDB=$upd->return;
//response zurück
$responseJson->insert_id = $insertDB;
$responseJson->status = true;
$result = $responseJson;
break;
case 'delete_freigabe':
$a1 = array("method" =>"read_wp_db",
"table" =>"art_freigaben",
"select" => ' id',
"where" => " where id = %d",
"search" => $res['id']);
$usr = new DbHandle($a1);
$userDB=$usr->return;
$responseJson = new \stdClass();
if(empty($userDB['count'])) {
$msg = parent::response('23');
$responseJson->message = $msg['response_msg'];
$responseJson->status = $status;
return $responseJson;
}
$delete = array("method"=>"delete_wp_freigabe",
"table" =>"art_freigaben",
"id" => $res['id']);
new DbHandle($delete);
$responseJson->delete_id = $res['id'];
$responseJson->status = true;
$result = $responseJson;
break;
case 'load_delete_user_template':
$template = $this->user_templates(array("method"=>"user_delete_template"));
$responseJson = new \stdClass();
$responseJson->status = $template['status'];
$responseJson->template = $template['template'];
$result = $responseJson;
break;
case 'delete_user':
isset($_POST['uid']) && is_numeric($_POST['uid']) ? $uid = esc_attr($_POST['uid']) : $uid = "";
$responseJson = new \stdClass();
if(empty($uid)){
$msg = parent::response('23');
$responseJson->message = $msg['response_msg'];
$responseJson->status = $status;
return $responseJson;
}
$abfrage2 = array("method"=>"read_wp_db",
"table" =>"art_freigaben",
"select" => '*',
"where" => " where htaccess_id = %d",
"search" => (int)$uid);
$del = new DbHandle($abfrage2);
$userDel=$del->return;
foreach ($userDel['data'] as $tmp)
{
if($tmp->htaccess_id == $uid){
$delete1 = array("method"=>"delete_wp_freigabe",
"table" =>"art_freigaben",
"id" => $tmp->id);
new DbHandle($delete1);
}
}
$delete2 = array("method"=>"delete_wp_freigabe",
"table" =>"art_user",
"id" => $uid);
new DbHandle($delete2);
//DELETE-LOGDATEN
$dir= __DIR__ . '/templates/userLog';
$alledateien = scandir($dir);
foreach ($alledateien as $files)
{
$fileinfo = pathinfo($dir."/".$files);
if($fileinfo['extension'] != 'txt'){
$files = '.';
}
if ($files != "." && $files != ".." && $files != "_notes" && $fileinfo['basename'] != "Thumbs.db") {
$file[] .= $files;
}
}
if(!empty($file)){
foreach ($file as $tmp)
{
$f = pathinfo($dir."/".$tmp);
$tag = substr($tmp,0,2);
$monat = substr($tmp,3,2);
$jahr = substr($tmp,6,4);
$userID = substr($f['filename'],strpos($f['filename'],'_')+1);
if($userID == $uid){
unlink($dir.'/'.$tag.'-'.$monat.'-'.$jahr.'_'.$uid.'.txt');
}
}
}
$responseJson->status = true;
//$responseJson->delete_id = $tmp['id'];
$result = $responseJson;
break;
case 'user_aktiv': //user, freigabe und email Aktiv
isset($_POST['daten']) && is_string($_POST['daten']) ? $daten = esc_attr($_POST['daten']) : $daten = "";
$responseJson = new \stdClass();
if(empty($daten)){
$responseJson->status = $status;
return $responseJson;
}
$checktyp = substr($daten,strpos($daten,'_')+1);
$htaccess_id = substr($daten,0,strpos($daten,'_'));
if($checktyp == 'freigabe_aktiv'){
$table = 'art_freigaben';
$checktyp = 'htaccess_aktiv';
}else{
$table = 'art_user';
}
$a1 = array("method" =>"read_wp_db",
"table" => $table,
"select" => $checktyp,
"where" => " where id = %d",
"search" => $htaccess_id);
$dat1 = new DbHandle($a1);
$data=$dat1->return;
if(empty($data['data'][0]->$checktyp)){
$checked = 1;
}else{
$checked = 0;
}
$upd = array("method"=>"update_wp_user_aktiv",
"table" => $table,
"data" =>array("htaccess_aktiv"=>$checked,
"id"=>$htaccess_id,
"typ"=>$checktyp));
new DbHandle($upd);
if(substr($daten,strpos($daten,'_')+1) == 'freigabe_aktiv'){
$checked = 'freigabe_aktiv';
}
$responseJson->checked = $checked;
$responseJson->value = $data['data'][0]->$checktyp;
$responseJson->check = $htaccess_id.'_'.$checktyp;
$responseJson->status = true;
$result = $responseJson;
break;
case 'checked_details':
isset($_POST['checked']) && is_string($_POST['checked']) ? $checked = esc_attr($_POST['checked']) : $checked = "";
$freigabe_id = substr($checked,strpos($checked,'_') +1);
$typ = substr($checked,0,strpos($checked,'_'));
$entry = self::update_user_settings($typ,$freigabe_id);
$auswahl = substr($entry['typ'],0,strpos($entry['typ'],'-'));
if(empty($entry['check'])){
$message = $auswahl .' deaktiviert';
}else{
$message = $auswahl . ' aktiviert';
}
$responseJson = new \stdClass();
$responseJson->check = $entry['check'];
$responseJson->typ = $entry['typ'];
$responseJson->message = $message;
$responseJson->status = true;
$result = $responseJson;
break;
case'select_change_galerie_typ':
isset($_POST['select']) && is_string($_POST['select']) ? $select = esc_attr($_POST['select']) : $select = "";
$htaccess_id = (int) substr($select,0,strpos($select,'_'));
$selected = (int) substr($select,strpos($select,'_')+1);
$responseJson = new \stdClass();
//PRO-VERSION
if(empty($this->settings['license_aktiv'])) {
$selected = 2;
}
//PRO-VERSION ENDE
if(empty($selected)){
$responseJson->status = $status;
$responseJson->message = 'Standard Galerie (2) gewählt';
$new_selected = 2;
}else{
$responseJson->status = true;
$responseJson->message = 'Galerie Typ ('.$selected.') gewählt';
$new_selected = $selected;
}
$upd = array("method"=>"update_wp_user_aktiv",
"table" => 'art_freigaben',
"data" => array("htaccess_aktiv"=>(int)$new_selected,
"id"=>(int)$htaccess_id,
"typ"=>(string)'galerie_typ'),
"session"=>false);
new DbHandle($upd);
$result = $responseJson;
break;
case 'user_auswahl':
isset($_POST['auswahl']) && is_string($_POST['auswahl']) ? $auswahl = esc_attr($_POST['auswahl']) : $auswahl = "";
$TypTxt = ' checked ';
$responseJson = new \stdClass();
if(empty($auswahl)){
$responseJson->status = $status;
return $responseJson;
}
$det = parent::extract_method($auswahl);
$htaccess_id = $det['method'];
$image_id = $det['id'];
$abfrage = array("method" =>"read_wp_db",
"table" =>"art_images",
"select" =>"galerie_name,id",
"where" =>" where id = %d",
"search" =>$image_id);
$dat = new DbHandle($abfrage);
$data = $dat->return;
$a2 = array("method" =>"read_wp_db",
"table" =>"art_galerie",
"select" =>"id",
"where" =>" where galerie_name = %s",
"search" =>$data['data'][0]->galerie_name);
$dat2 = new DbHandle($a2);
$data2 = $dat2->return;
$a3 = array("method"=>"freigabe_wp_id",
"table" =>"art_freigaben",
"select" =>"*",
"data" => array("htaccess_id"=>$htaccess_id,
"galerie_id"=>$data2['data'][0]->id));
$dat3 = new DbHandle($a3);
$data3=$dat3->return;
//überprüfen ob freigaben vorhanden sind
if(empty($data3['count'])) {
$err=parent::response('22');
return array("status"=>false,"message"=>$err['response_msg']);
}
//überprüfen ob log aktiv ist
$s = unserialize($data3['data'][0]->settings);
$this->log_aktiv = $s['log'];
//wenn keine Freigaben vorhanden, ersten Eintrag erzeugen
if(empty($data3['data'][0]->select_image)){
//Eintrag in DB schreiben
$select = serialize(array($image_id));
$upd = array("method"=>"user_wp_auswahl",
"table" =>"art_freigaben",
"checked" =>$select,
"id" =>$data3['data'][0]->id);
if(!empty($this->log_aktiv)){
$this->write_user_log($htaccess_id,$TypTxt,$image_id,$checktxt);
}
new DbHandle($upd);
$responseJson->status = true;
$responseJson->wahl = 1;
return $responseJson;
}
$dbs = unserialize($data3['data'][0]->select_image);
if(in_array($image_id,$dbs)){
$checkAuswahl = 0;
$checktxt = ' abgewählt ';
if(!empty($this->log_aktiv)){
$this->write_user_log($htaccess_id,$TypTxt,$image_id,$checktxt);
}
$entfernen = array($image_id);
//callbck function
$callback = function ($value)use ($entfernen){
return !(in_array($value, $entfernen, true));
};
$update = array_filter($dbs, $callback);
$select = serialize($update);
$upd = array("method" =>"user_wp_auswahl",
"table" =>"art_freigaben",
"checked" =>$select,
"id" =>$data3['data'][0]->id);
new DbHandle($upd);
$responseJson->status = true;
return $responseJson;
}else{
$checkAuswahl = 1;
$checktxt = ' gewählt ';
$ns = implode(",",$dbs);
$news = $ns.','.$image_id;
$select = serialize(explode(",",$news));
}
$upd = array("method" =>"user_wp_auswahl",
"table" =>"art_freigaben",
"checked" =>$select,
"id" =>$data3['data'][0]->id);
new DbHandle($upd);
if(!empty($this->log_aktiv)){
$this->write_user_log($htaccess_id,$TypTxt,$image_id,$checktxt);
}
//private function write_user_log()
$responseJson->status = true;
$responseJson->wahl = $checkAuswahl;
$result = $responseJson;
break;
case 'new_user_kommentar':
isset($_POST['kommentar']) && is_string($_POST['kommentar']) ? $kommentar = esc_attr($_POST['kommentar']) : $kommentar = "";
$TypTxt = ' Kommentar ';
$responseJson = new \stdClass();
if(empty($kommentar)){
$responseJson->status = $status;
return $responseJson;
}
session_start();
$galerie_name = $res['id'];
$htaccess_id = $_SESSION['id'];
$image_id = trim((int)$res['typ']);
$a1 = array("method" =>"user_wp_freigabe_auswahl",
"data" =>array("galerie_name"=>$galerie_name,
"htaccess_id"=>$htaccess_id));
$dat = new DbHandle($a1);
$data = $dat->return;
$this->update_image_posts($galerie_name,$image_id,$htaccess_id,$kommentar);
$s = unserialize($data['data'][0]->settings);
$this->log_aktiv = $s['log'];
if(empty($data['data'][0]->message)){
$ne = array();
$ne[] = $image_id.'_'.$kommentar;
$msg = serialize($ne);
$upd = array("method" =>"update_wp_user_kommentar",
"table" =>"art_freigaben",
"data" =>array("id"=>$data['data'][0]->freigabe_id,
"message"=>$msg));
new DbHandle($upd);
$responseJson->status = true;
return $responseJson;
}
$db_message = unserialize($data['data'][0]->message);
for ($x = 0; $x <= count($db_message); $x++) {
$id = substr($db_message[$x],0,strpos($db_message[$x],'_'));
$msg = substr($db_message[$x],strpos($db_message[$x],'_')+1);
if($id === $image_id){
unset($db_message[$x]);
$db_message = array_values($db_message);
}
}
$newEintrag = array($image_id.'_'.$kommentar);
$na = serialize(array_merge($db_message,$newEintrag));
$upd = array("method" =>"update_wp_user_kommentar",
"table" =>"art_freigaben",
"data" =>array("id"=>$data['data'][0]->freigabe_id,
"message"=>$na));
new DbHandle($upd);
if(!empty($this->log_aktiv)){
$newKommentar = $date . '_' . $kommentar;
$this->write_user_log($htaccess_id,$TypTxt,$image_id,$kommentar);
}
$responseJson->msg = $new_msg;
$responseJson->status = true;
$result = $responseJson;
break;
case 'passwort_generieren':
$klartext_pass = parent::generate_callback_pw();
$template = '
';
$template = preg_replace(array('//Uis', "/[[:blank:]]+/"), array('', ' '), str_replace(array("\n","\r","\t"), '', $template));
$responseJson = new \stdClass();
$responseJson->status = true;
$responseJson->template = $template;
$result = $responseJson ;
break;
case 'change_user_data':
isset($_POST['daten']) && is_string($_POST['daten']) ? $daten = esc_attr($_POST['daten']) : $daten = "";
isset($_POST['newdata']) && is_string($_POST['newdata']) ? $newdata = esc_attr($_POST['newdata']) : $newdata = "";
isset($_POST['email']) && is_numeric($_POST['email']) ? $email = esc_attr($_POST['email']) : $email = "";
$responseJson = new \stdClass();
if(empty($daten) || empty($newdata)){
$responseJson->status = $status;
$responseJson->message = "leere eingabe";
return $responseJson ;
}
$settings = $this->get_db_settings('1');
$htaccess_id = (int)substr($daten,0,strpos($daten,'_'));
$upd_typ = (string)substr($daten,strpos($daten,'_')+1);
if($upd_typ == 'htaccess_passwort' && strlen($newdata) < 8){
$responseJson->status = $status;
$responseJson->message = "passwort zu kurz";
return $responseJson ;
}
if($upd_typ == 'htaccess_email'){
if(filter_var($newdata, FILTER_VALIDATE_EMAIL) === false){
$responseJson->status = $status;
$responseJson->message = "email falsches Format";
return $responseJson ;
}
}
if(!empty($settings['email_aktiv']) && $upd_typ == 'htaccess_passwort' && !empty($email) ){
$sendMail = $this->sende_user_mail('new_passwort',$htaccess_id,"",$newdata);
$mailStatus = $sendMail['status'];
$mailMessage = $sendMail['message'];
}else{
$mailStatus = $status;
$mailMessage = 'keine E-Mail versendet!';
}
if($upd_typ == 'htaccess_passwort'){
$newData = parent::crypt_password($newdata);
}else{
$newData = $newdata;
}
$upd = array("method" =>"update_wp_user_new_passwort",
"table" =>"art_user",
"data" =>array("htaccess_data"=>(string)$newData,
"id"=>(int)$daten,
"typ"=>$upd_typ));
$msgtyp = substr($upd_typ,strpos($upd_typ,'_')+1);
new DbHandle($upd);
if($settings){
$proVersion = true;
}else{
$proVersion = false;
}
$responseJson->status = true;
$responseJson->mailstatus = $mailStatus;
$responseJson->mailmessage = $mailMessage;
$responseJson->proversion = $proVersion;
$responseJson->message = $msgtyp." erfolgreich geändert";
$result = $responseJson ;
break;
case 'load_template_user_details':
$responseJson = new \stdClass();
$a2 = array("method" =>"read_wp_db",
"table" =>"art_user",
"select" =>"*");
$dat2 = new DbHandle($a2);
$data2=$dat2->return;
if(empty($data2['count'])){
$err=parent::response('21');
$responseJson->status = $status;
$responseJson->message = $err['response_msg'];
return $responseJson ;
}
foreach ($data2['data'] as $tmp){
$return .= $this->template_user_details($tmp);
}
$responseJson = new \stdClass();
$responseJson->status = true;
$responseJson->template = $this->close_btn() . $return;
$result = $responseJson;
break;
case 'new_user_notiz':
isset($_POST['notiz'])&& is_string($_POST['notiz'])? $notiz = esc_attr($_POST['notiz']) : $notiz = "";
isset($_POST['uid']) && is_numeric($_POST['uid']) ? $uid = esc_attr($_POST['uid']) : $uid = "";
$responseJson = new \stdClass();
if(empty($uid)){
$responseJson->status = $status;
$responseJson->message = ' Info: fehler ist aufgetreten ';
return $responseJson;
}
$upd = array("method"=>"update_wp_user_new_passwort",
"table" =>"art_user",
"data" =>array("htaccess_data"=>(string)$notiz,
"id"=>(int)$uid,
"typ"=>'notiz'));
new DbHandle($upd);
$responseJson->status = true;
$responseJson->message = 'Notiz erfolgreich gespeichert.';
$result = $responseJson ;
break;
case 'load_freigaben_select':
isset($_POST['data'])&& is_string($_POST['data'])? $data = esc_attr($_POST['data']) : $data = "";
$responseJson = new \stdClass();
if(empty($data)){
$responseJson->status = $status;
$responseJson->message = 'keine auswahl';
return $responseJson ;
}
$auswahl_type = substr($data,0,strpos($data,'_'));
$auswahl_wert = substr($data,strpos($data,'_')+1);
$wahl = '';
if($auswahl_type == 'user'){
$select = 'htaccess_user';
$wahl = '
Freigaben von user: '.$auswahl_wert.'
';
}
if($auswahl_type == 'galerie'){
$select = 'galerie_name';
$wahl = '
Freigaben der Galerie '.$auswahl_wert.'
';
}
$optionen = array("template"=>"user_freigaben_start",
"data" =>array(
"where" =>$select,
"typ" =>$auswahl_wert));
$dat = new SiteTemplates($optionen);
$data = $dat->return;
if(isset($data['status'])){
$responseJson->message = $data['message'];
$responseJson->status = $data['status'];
return $responseJson ;
}
$sel = $wahl . $this->close_btn('select');
$responseJson->status = true;
$responseJson->template = $sel . $data ;
$result = $responseJson;
break;
case 'user_response_template':
isset($_POST['value']) && is_string($_POST['value']) ? $value = esc_attr($_POST['value']) : $value = "";
isset($_POST['loaded']) && is_string($_POST['loaded']) ? $loaded = esc_attr($_POST['loaded']) : $loaded = "";
$responseJson = new \stdClass();
if(empty($res['id'])){
$responseJson->status = $status;
return $responseJson ;
}
$id = $res['id'];
if(!empty($value)){
$id = (int)substr($value,0,strpos($value,'_'));
$typ = (string)substr($value,strpos($value,'_')+1);
if($res['id'] == 'grid' || $res['id'] == 'details'){
$load = $res['id'];
$template = $this->user_response_template($id,$typ,$load);
$btn = self::btn_group_response($id,$load);
}else{
$load = $loaded;
$template = $this->user_response_template($id,$typ,$load);
$btn = self::btn_group_response($id,$load);
}
$template = $this->user_response_template($id,$typ,$load);
$btn = self::btn_group_response($id,$load);
}else{
$load = $loaded;
$template = $this->user_response_template($id,'alle',$load);
$btn = self::btn_group_response($id,$load);
}
$close = $this->close_btn();
$header = ' '.$this->close_btn().' ' .' '.$btn;
$responseJson->typ = $load;
$responseJson->close = $header;
$responseJson->total = $template['total'];
$responseJson->status = $template['status'];
$responseJson->template = $template['template'];
$result = $responseJson;
break;
case'user_email_senden':
isset($_POST['typ']) && is_string($_POST['typ']) ? $typ = esc_attr($_POST['typ']) : $typ = "";
isset($_POST['id']) && is_numeric($_POST['id']) ? $id = esc_attr($_POST['id']) : $id = "";
isset($_POST['email']) && is_string($_POST['email']) ? $email = esc_attr($_POST['email']) : $email = "";
$responseJson = new \stdClass();
if(empty($typ) || empty($id) || empty($email)){
$responseJson->status = $status;
$responseJson->message = 'fehler Übergabehandling';
return $responseJson;
}
$sendeMail = $this->sende_user_mail($typ,$id,$email);
if($sendeMail === true){
$message ='Email erfolgreich gesendet!';
}else{
$message ='Email konnte nicht gesendet werden!';
}
$responseJson->status = $sendeMail;
$responseJson->message = $message;
$result = $responseJson;
break;
}//endeSwitch
return $result;
}
private function usr_handler(){
isset($_POST['bn']) && is_string($_POST['bn']) ? $bnname = esc_attr($_POST['bn']) : $bnname = "";
isset($_POST['pw']) && is_string($_POST['pw']) ? $passwort = esc_attr($_POST['pw']) : $passwort = "";
isset($_POST['vn']) && is_string($_POST['vn']) ? $vorname = esc_attr($_POST['vn']) : $vorname = "";
isset($_POST['nn']) && is_string($_POST['nn']) ? $nachname = esc_attr($_POST['nn']) : $nachname = "";
isset($_POST['em']) && is_string($_POST['em']) ? $email = esc_attr($_POST['em']) : $email = "";
isset($_POST['no']) && is_string($_POST['no']) ? $notiz = esc_attr($_POST['no']) : $notiz = "";
isset($_POST['ua']) && is_numeric($_POST['ua']) ? $user_aktiv = esc_attr ($_POST['ua']) : $user_aktiv = "";
isset($_POST['ea']) && is_numeric($_POST['ea']) ? $email_aktiv = esc_attr($_POST['ea']) : $email_aktiv = "";
if(empty($user_aktiv)){
$user_aktiv = (int)0;
}else{
$user_aktiv= (int)1;
}
if(empty($email_aktiv)){
$email_aktiv = (int)0;
}else{
$email_aktiv= (int)1;
}
if(filter_var($email, FILTER_VALIDATE_EMAIL) === false){
$fehler .= 'fehler email ';
}else{
$newEmail = $email;
}
if(empty($vorname)){
$fehler .= 'fehler vorname ';
}else{
$new_vorname = $vorname;
}
if(empty($nachname)){
$fehler .= 'fehler nachname ';
}else{
$new_nachname = $nachname;
}
if(empty($bnname)){
$fehler .= 'fehler name ';
}elseif(strlen($bnname) < 6){
$fehler .= 'fehler name zu kurz ';
}else{
$newname = $bnname;
}
if(empty($passwort)){
$fehler .= 'fehler name ';
}elseif(strlen($passwort) < 8){
$fehler .= 'fehler name zu kurz ';
}else{
$newpasswort = $passwort;
}
if(strlen($fehler) !== 0){
$em = parent::response('7');
$fehler = $em['response_msg'];
}
$abfrage = array("method" =>"read_wp_db",
"table" =>"art_user",
"select" =>"*",
"where" =>" where htaccess_user = %s",
"search" =>$newname);
$dat = new DbHandle($abfrage);
$dataDB=$dat->return;
if($dataDB['count'] !== 0){
$em = parent::response('20');
$fehler = $em['response_msg'].' ';
}
if(strlen($fehler) !== 0) {
return array("status"=>false,"message"=>$fehler);
}
$password = parent::crypt_password($newpasswort);
$user = array("username" =>$newname,
"passwort" =>$password,
"notiz" =>$notiz,
"nachname" =>$new_nachname,
"vorname" =>$new_vorname,
"email" =>$newEmail,
"user_aktiv" =>$user_aktiv,
"email_aktiv" =>$email_aktiv);
$new_user = array("method" =>"new_wp_user",
"data" =>$user);
$in = new DbHandle($new_user);
$ret = $in->return;
if($email_aktiv === 1){
$url = substr(admin_url(),0,strpos(admin_url(),'wp-admin')).'artpicture-galerie-login';
$daten = array("url" =>''.$site_title.' ',
"text_url" =>$url,
"vorname" =>$new_vorname,
"nachname" =>$new_nachname,
"bn" =>$newname,
"pw" =>$newpasswort,
"email" =>$newEmail );
$result_email = $this->send_userdaten_mail($daten);
}
$return = array("status"=>true,"message"=>$ret,"email"=>$result_email);
return $return;
}
private function user_templates($data)
{
$status = false;
switch ($data['method'])
{
case 'new_freigabe':
$abfrage = array("method"=>"read_wp_db",
"table" =>"art_galerie",
"select" =>"*");
$a1 = new DbHandle($abfrage);
$ret = $a1->return;
if(!empty($ret['count'])){
$status = true;
}
$abfrage2 = array("method"=>"read_wp_db",
"table" =>"art_user",
"select" =>"*");
$a2 = new DbHandle($abfrage2);
$ret2 = $a2->return;
if(!empty($ret2['count'])){
$status = true;
}
$select_galerie = '';
$select_galerie .='Galerie wählen ';
$select_galerie_footer =' ';
foreach($ret['data'] as $tmp){
$select_galerie .= ''.$tmp->galerie_name.' '."\n";
}
$select_user = '';
$select_user .='Benutzer wählen ';
$select_user_footer =' ';
//PRO_USER
if(empty($this->settings['license_aktiv'])) {
$select_user .= ''.$ret2['data'][0]->htaccess_user.' '."\n";
$txt=' In der Standart Version kann nur der erste angelegte Benutzer ausgewählt werden, desweiteren werden nur die ersten 10 Bilder der gewählten Galerie, den Benutzer im Front-End angezeigt.
In der Art-Picture Galerie Pro können Sie unbegrenzt viele Benutzer und Freigaben erstellen. Eine erstellte Galerie kann für jeden erstellten Benutzer freigegeben werden. ';
$txt = preg_replace(array('//Uis', "/[[:blank:]]+/"), array('', ' '), str_replace(array("\n","\r","\t"), '', $txt));
$stern=' ';
}else{
foreach($ret2['data'] as $tmp){
$select_user .= ''.$tmp->htaccess_user.' '."\n";
}
}
//PRO_USER
$template = '
schließen
';
break;//endeSwitch
}
$template = preg_replace(array('//Uis', "/[[:blank:]]+/"), array('', ' '), str_replace(array("\n","\r","\t"), '', $template));
return array("template"=>$template,"status"=>$status);
}
private static function update_user_settings($method,$id) {
$a1 = array("method" =>"read_wp_db",
"table" =>"art_freigaben",
"select" =>"settings",
"where" =>" where id = %d",
"search" =>$id);
$dat1 = new DbHandle($a1);
$data = $dat1->return;
$settings = unserialize($data['data'][0]->settings);
$gps_check = $settings['gps'];
$exif_check = $settings['exif'];
$auswahl_check = $settings['auswahl'];
$kommentar_check = $settings['kommentar'];
$email_check = $settings['log'];
$nachricht_check = $settings['nachricht'];
//PRO VERSION
$user_settings = ApgSettings::load_settings('user_settings');
if(empty($user_settings['license_aktiv'])){
$new_gps_check=1;
$new_exif_check=1;
}else{
$new_gps_check = $gps_check;
$new_exif_check = $exif_check;
}
//PRO VERSION ENDE
switch ($method)
{
case 'gps':
if(empty($new_gps_check)){
$gps_check = 1;
$check = 1;
}else{
$gps_check = 0;
$check = 0;
}
break;
case 'exif':
if(empty($new_exif_check)){
$exif_check = 1;
$check = 1;
}else{
$exif_check = 0;
$check = 0;
}
break;
case 'auswahl':
if(empty($auswahl_check)){
$auswahl_check = 1;
$check = 1;
}else{
$auswahl_check = 0;
$check = 0;
}
break;
case 'kommentar':
if(empty($kommentar_check)){
$kommentar_check = 1;
$check = 1;
}else{
$kommentar_check = 0;
$check = 0;
}
break;
case 'log':
if(empty($email_check)){
$email_check = 1;
$check = 1;
}else{
$email_check = 0;
$check = 0;
}
break;
$new_select = preg_replace(array('//Uis', "/[[:blank:]]+/"), array('', ' '), str_replace(array("\n","\r","\t"), '', $new_select));
$id=$data2['data'][0]->freigabe_id;
break;
case 'nachricht':
if(empty($nachricht_check)){
$nachricht_check = 1;
$check = 1;
}else{
$nachricht_check = 0;
$check = 0;
}
break;
}//endeSwitch
$newsettings = serialize(array( "gps" =>$gps_check,
"exif" =>$exif_check,
"auswahl" =>$auswahl_check,
"kommentar" =>$kommentar_check,
"log" =>$email_check,
"selected" =>$selected_check,
"nachricht" =>$nachricht_check,
));
$update = array("method" =>"update_wp_user_details",
"table" =>"art_freigaben",
"data" =>$newsettings,
"id" =>$id);
new DbHandle($update);
$return = array("typ"=>$method.'-aktiv'.$id,"check"=>$check);
return $return;
}
protected function benutzer_freigaben($data)
{
switch ($data['auswahl'])
{
case 'benutzer_freigaben':
//init
$colclass_uc='huge-no';
$colclass_ch='huge-no';
$colclass_fr='huge-no';
$colclass_ms='huge-no';
$uc=0;
$ch=0;
$fr=0;
$ms=0;
$a1 = array("method" =>"read_wp_db",
"table" =>"art_freigaben",
"select" =>"*",
"session"=>false);
$dat1 = new DbHandle($a1);
$data = $dat1->return;
$a3 = array("method" =>"read_wp_db",
"table" =>"art_user",
"select" =>"*");
$dat3 = new DbHandle($a3);
$data3 = $dat3->return;
if(empty($data['count'])){
$uc=0;
$ch=0;
$fr=0;
$ms=0;
}else{
$a2 = array("method" =>"user_wp_freigabe_start");
$dat2 = new DbHandle($a2);
$data2=$dat2->return;
}
for ($i = 0; $i <= $data2['count']; $i++) {
$msg .= $data2['data'][$i]->message.',';
$usr_check .= $data2['data'][$i]->select_image.',';
}
$galerie_msg = array_filter(explode(",",$msg));
$user_check = array_filter(explode(",",$usr_check));
$uc = $data3['count'];
if(empty($uc) ? $colclass_uc = 'huge-no' : $colclass_uc = 'huge' );
$fr = $data['count'];
if(empty($fr) ? $colclass_fr = 'huge-no' : $colclass_fr = 'huge' );
foreach ($galerie_msg as $tmp) {
$ms += count(array_filter(unserialize($tmp)));
if(empty($ms) ? $colclass_ms = 'huge-no' : $colclass_ms = 'huge' );
}
foreach ($user_check as $val) {
$ch += count(array_filter(unserialize($val)));
if(empty($ch) ? $colclass_ch = 'huge-no' : $colclass_ch = 'huge' );
}
if(empty($this->settings['license_aktiv'])){
$pro_txt='
';
}else{
$pro_txt=' ';
}
global $user_info;
$user_info = get_userdata(get_current_user_id());
$header = '
eingeloggt als '.$user_info->user_nicename.'
';
$header = preg_replace(array('//Uis', "/[[:blank:]]+/"), array('', ' '), str_replace(array("\n","\r","\t"), '', $header));
$body = ' ';
switch($typ)
{
case'start':
$start = new UserLogHandler(array("method"=>"all_user"));
$datLog = $start->return;
if(empty($datLog['userID'])){
$template = ' KEINE Log-Daten vorhanden! ';
}else{
foreach ($datLog['userID'] as $tmp)
{
$abfrage = array("method" =>"read_wp_db",
"table" =>"art_user",
"select" =>"*",
"where" =>" where id = %d",
"search" =>$tmp);
$dat = new DbHandle($abfrage);
$daten = $dat->return;
$data = $daten['data'][0];
$template .= '';
}
}
$return = $return_header . $template . $return_footer;
break;
case'jahr':
if(!empty($file))
{
foreach ($file as $tmp)
{
$f = pathinfo($this->dir."/".$tmp);
$jahre[] = substr($tmp,6,4);
$userID = substr($f['filename'],strpos($f['filename'],'_')+1);
if($userID == $this->id){
}
}
$jahr = array_unique($jahre);
$jahr = array_values($jahr);
foreach ($jahr as $val)
{
$template .= '';
}
}
$return = $return_header . $template . $return_footer;
break;
case'monat':
if(!empty($file))
{
foreach ($file as $tmp)
{
$f = pathinfo($this->dir."/".$tmp);
$jahr = substr($f['filename'],6,4);
$userID = substr($f['filename'],strpos($f['filename'],'_')+1);
if($jahr == $this->jahr && $userID == $this->id){
$monat = substr($f['filename'],3,2);
$datum = substr($f['filename'],0,10).' 00:00:00';
$date2 = new \DateTime($datum);
$datum2[] = $date2->format('m');
}
}
$usrMonat = array_unique($datum2);
$usrMonat = array_values($usrMonat);
foreach ($usrMonat as $m)
{
$dat = $this->date_deutsche($datum);
$deutschDatum = $dat['monat_lang'];
$template .= '';
}
}
$return = $return_header . $template . $return_footer;
break;
case'details':
if(!empty($file)){
foreach ($file as $tmp){
$this->f = pathinfo($this->dir."/".$tmp);
if(strpos($this->f['filename'],$this->monat.'-'.$this->jahr.'_'.$this->id) !== false){
$tag = substr($this->f['filename'],0,2);
$datei = $dir . '/' . $tag. '-' . $this->monat . '-' . $this->jahr . '_' . $this->id . '.txt';
$this->deleteDatei = $this->f['filename'];
$datum = $tag. '-' . $this->monat. '-' . $this->jahr . ' 00:00:00';
$this->dat = $this->date_deutsche($datum);
$eintraege = $this->read_log_details($datei);
$eintrag = array_filter($eintraege);
$x=0;
$tmp_header = $this->details_template('table-header');
$tmp_footer = $this->details_template('table-footer');
$event = $this->event($datei);
$r .= $tmp_header . $event . $tmp_footer;
}
}
$return = $return_header.$r.$return_footer; ;
}
break;
}
return $return;
}
private function event($datei)
{
$eintraege = $this->read_log_details($datei);
$x=0;
$eintrag = array_pop($eintraege);
foreach($eintraege as $val)
{
if(empty($val)){
return;
}
$date = $val[1];
$date1 = new \DateTime($date);
$this->uhrzeit = $date1->format('H:i:s');
$this->typ = $val[2];
$this->event = $val[3];
$i1=strpos($val[3],':')+1;
$i2=strpos($val[3],'-');
$IMGid = substr($val[3],$i1,$i2 - $i1);
$abfrageImg = array("method" =>"read_wp_db",
"table" =>"art_images",
"select" =>"*",
"where" =>" where id = %d",
"search" =>$IMGid );
$dat = new DbHandle($abfrageImg);
$image = $dat->return;
$this->img = $image['data'][0];
$this->delete = $x.'_'.$this->f['filename'];
$event .= $this->details_template('event');
$x++;
}
return $event;
}
private function read_log_details($datei)
{
$dh = fopen($datei, "r");
while (!feof($dh)) {
$zeile = fgets($dh);
$tE = strpos($zeile,'|typ|') + 5 ;
$tI = strpos($zeile,'|id|') ;
$ID1 = strpos($zeile,'|id|') + 4 ;
$ID2 = strpos($zeile,'|message|') ;
$datumEintrag = substr($zeile,6,19);
$EintragTyp = substr($zeile,$tE,$tI-$tE);
$EintragID = substr($zeile,$ID1,$ID2-$ID1);
$EintragMSG = substr($zeile,strpos($zeile,'|message|')+9);
$eintrag[] = array($EintragID, $datumEintrag,$EintragTyp,$EintragMSG);
}
fclose($dh);
$return = array_filter($eintrag);
return $return;
}
private function details_template($typ)
{
switch($typ)
{
case'table-header':
$table_header = '
'.$this->dat['tag_kurz'].'
'.$this->dat['tag_lang'].'
'.$this->dat['monat_lang'].', '.$this->dat['jahr'].'
Datei
Typ
Message
alle löschen
';
$table_header = preg_replace(array('//Uis',"/[[:blank:]]+/"),array('',' '),str_replace(array("\n","\r","\t"),'',$table_header));
return $table_header;
case'event':
$event = '
'.$this->uhrzeit.'
'.$this->typ.'
'.$this->event.'
Eintrag löschen
';
$event = preg_replace(array('//Uis',"/[[:blank:]]+/"),array('',' '),str_replace(array("\n","\r","\t"),'',$event));
return $event;
break;
case'table-footer':
$table_footer = '
';
return $table_footer;
break;
}
}
private function read_user_message()
{
$a1 = array("method" =>"read_wp_db",
"table" =>"art_user",
"select" => '*');
$usr = new DbHandle($a1);
$dat=$usr->return;
$data = $dat['data'];
foreach( $data as $tmp)
{
$msg = unserialize($tmp->user_message);
for($i = 0; $i <= count($msg); $i++) {
$datum = substr($msg[$i],0,strpos($msg[$i],'_'));
$datum1 = substr($msg[$i],0,10);
$zeit = substr($msg[$i],10,9);
$message = substr($msg[$i],strpos($msg[$i],'_')+1);
if(empty($message)){
continue;
}
$this->all[] = array("datumAll"=>$datum,
"datum"=>$datum1,
"zeit"=>$zeit,
"message"=>$message,
"id"=>$tmp->id,
"user"=>$tmp->htaccess_user,
"vorname"=>$tmp->htaccess_vorname,
"nachname"=>$tmp->htaccess_nachname);
}
}
$header_close = '
schließen
';
$this->count = count($this->all);
if(empty($this->count)){
return $header_close . $template =' keine Nachrichten vorhanden! ';
}
$header_close = preg_replace(array('//Uis',"/[[:blank:]]+/"),array('',' '),str_replace(array("\n","\r","\t"),'',$header_close));
foreach ($this->all as $val) $datum_count[] = $val['datum'];
$eintraege = array_values(array_unique($datum_count));
for($y = 1; $y <= count($eintraege); $y++) {
$d = $this->date_deutsche($eintraege[$y -1].' 00:00:00');
$this->ins = $y;
$result = $this->user_messages($eintraege[$y -1]);
$template .= '
'.$d['tag_kurz'].'
'.$d['tag_lang'].'
'.$d['monat_lang'].', '.$d['jahr'].'
Benutzer
Benutzer Name
Message
löschen
'.$result['event'].'
';
}
$template = preg_replace(array('//Uis',"/[[:blank:]]+/"),array('',' '),str_replace(array("\n","\r","\t"),'',$template));
return $header_close . $template;
}
private function user_messages($datum)
{
$i = 1;
foreach($this->all as $tmp)
if($datum == $tmp['datum']){
$datum2 = str_replace('-','',$tmp['datum']);
$msg = substr($tmp['message'],0,20).'...';
$event .= '
'.$tmp['zeit'].'
'.$tmp['user'].'
'.$tmp['vorname'].' '.$tmp['nachname'].'
'.$msg.'
Message von '.$tmp['vorname'].' '.$tmp['nachname'].' gesendet am '.$tmp['datum'].' um '.$tmp['zeit'].'
'.$tmp['message'].'
löschen
';
$i++;
}
return array("event"=>$event,"collapse"=>$collapse);
}
private function new_user_template(){
//if PRO VERSION
$a2 = array("method" =>"read_wp_db",
"table" =>"art_user",
"select" =>" *");
$dat2 = new DbHandle($a2);
$row=$dat2->return;
if(empty($this->settings['license_aktiv']) && $row['count'] >= 1){
$btn=' INFO: Sie haben 1 Benutzer angelegt. Mit der Art-Picture Galerie Pro können Sie unbegrenzt viele Benutzer anlegen. ';
}else{
$btn=' speichern ';
}
if(empty($this->settings['license_aktiv'])){
$checked =' Zugangsdaten schicken Pro Version ';
}else{
$checked =' Zugangsdaten schicken';
}
//if PRO VERSION
$template = '
schließen
';
$return = preg_replace(array('//Uis',"/[[:blank:]]+/"),array('',' '),str_replace(array("\n","\r","\t"),'',$return));
return $template;
}
public function editor_button_select()
{
$abfrage = array("method" =>"read_wp_db",
"table" =>"art_galerie",
"select" =>"*");
$dat = new DbHandle($abfrage);
$gal = $dat->return;
$galerie = $gal['data'];
if(!empty($gal['count']))
{
$files= array();
foreach($galerie as $tmp)
{
$file = new \stdClass();
$file->text = $tmp->galerie_name;
$file->value = $tmp->galerie_name;
array_push($files,$file);
}
$return = $files;
return $return;
}
}
public function update_image_posts($galerie_name,$image_id,$htaccess_id,$kommentar)
{
$abfrage = array("method" =>"read_wp_db",
"table" =>"art_images",
"select" =>"*",
"where" =>" where id = %d",
"search" =>$image_id );
$dat = new DbHandle($abfrage);
$data=$dat->return;
$post_id = $data['data'][0]->post_id;
date_default_timezone_set("Europe/Berlin");
if(empty($post_id)){
$send[] =array("imageID"=>$image_id,"galerieName"=>$galerie_name,"htaccessID"=>$htaccess_id,"message"=>$kommentar,"time"=>date('Y-m-d H:i:s') );
$senden = serialize($send);
}else{
$db_msg = unserialize($post_id);
foreach($db_msg as $tmp) {
if($tmp['htaccessID'] == $htaccess_id && $tmp['imageID'] == $image_id){
return;}
}
$send[] =array("imageID"=>$image_id,"galerieName"=>$galerie_name,"htaccessID"=>$htaccess_id,"message"=>$kommentar,"time"=>date('d.m.Y H:i:s') );
$newEintrag = array_merge($db_msg,$send);
$senden=serialize($newEintrag);
}
$upd = array("method" =>"update_wp_posts_wpSeite",
"table" =>"art_images",
"id" => $image_id,
"data" => $senden);
new DbHandle($upd);
}
protected function UmlautINS($umlautINS){
$sucheuml = array('Ä','ä','Ö','ö','Ü','ü','ß',"Ä","ä","Ö","ö","Ü","ü","ß");
$ersetzel = array('Ä','ä','Ö','ö','Ü','ü','ß','Ä','ä','Ö','ö','Ü','ü','ß');
$guteuml = str_replace($ersetzel,$sucheuml,$umlautINS);
return $guteuml;
}
private function user_selected(){
@session_start();
$a1 = array("method" =>"read_wp_db",
"table" =>"art_freigaben",
"select" =>"*",
"where" =>" where htaccess_id = %d",
"search" =>$_SESSION['id'] );
$dat = new DbHandle($a1);
$dataFreigabe = $dat->return;
$noSelect = '
Sie haben noch
keine Bilder ausgewählt!
';
$noSelect = preg_replace(array('//Uis',"/[[:blank:]]+/"),array('',' '),str_replace(array("\n","\r","\t"),'',$noSelect));
$select_start_header = ' Ihre gewählten Bilder ';
$select_start_footer = '
';
$a1 = array("method" =>"user_wp_freigabe_start");
if(empty($dataFreigabe['count'])){
return $noSelect ;
}
$usr = new DbHandle($a1);
$userDB=$usr->return;
$db = array_filter($userDB['data']);
$y=0;
foreach($db as $tmp)
{
if($tmp->id == $_SESSION['id'] && !empty($tmp->freigabe_aktiv) && !empty($tmp->htaccess_aktiv)){
$sel_img = unserialize($tmp->select_image);
$count=count($sel_img);
$gnl = strlen($tmp->galerie_name);
if($gnl > 23) {
$cg = '...';
$c = 20;
}else{
$cg = '';
$c = 23;
}
if(!empty($count)){
$galeriename = substr($tmp->galerie_name,0,$c).$cg;
$select .='
Galerie:
'.$galeriename.'
Bilder: '.$count.'
';
$y++;
}
}
}
if($y == 0) {
return $noSelect;
}
$selected = $select_start_header . $select .$select_start_footer;
$selected = preg_replace(array('//Uis',"/[[:blank:]]+/"),array('',' '),str_replace(array("\n","\r","\t"),'',$selected));
return $selected;
}
private function load_user_selected_image($fid){
$a1 = array("method" =>"user_wp_response",
"data" => array("freigabe_id"=>(int)$fid));
$dat1 = new DbHandle($a1);
$data=$dat1->return;
if(empty($data['count'])){
return false;
}
$sel_img = unserialize($data['data'][0]->select_image);
if(empty($sel_img)){
return $return =' Noch keine Bilder ausgewählt! ';
}
$image = array_filter(array_unique($sel_img));
$back = ' zurück ';
$return_header = '';
foreach ($image as $val)
{
global $wpdb;
$table_name = $wpdb->prefix . 'art_images';
$row = $wpdb->get_results( $wpdb->prepare(
"SELECT *
FROM ".$table_name."
where id = %d ",
$val));
$url = $row[0]->url;
$mediumurl = $row[0]->thumbnailUrl;
$name = $this->basename($row[0]->name);
$return .= ' ';
}
$enter = $back. $return . $return_footer;
$enter = preg_replace(array('//Uis',"/[[:blank:]]+/"),array('',' '),str_replace(array("\n","\r","\t"),'',$enter));
return $enter;
}
private function user_message_template(){
@session_start();
global $wpdb;
$table_name = $wpdb->prefix . 'art_user';
$row = $wpdb->get_results( $wpdb->prepare(
"SELECT *
FROM ".$table_name."
where id = %d ",
$_SESSION['id'] ));
if(empty($row[0]->email_aktiv)){
$message = ' INFO: Das Senden von Nachrichten ist nicht aktiviert.
Für weitere Informationen, wenden sie sich bitte an den
Galerie-Ersteller
';
}else{
$message = ' Senden Sie eine Nachricht an den Galerie-Ersteller.
';
}
$message = preg_replace(array('//Uis',"/[[:blank:]]+/"),array('',' '),str_replace(array("\n","\r","\t"),'',$message));
return $message;
}
protected static function date_deutsche($dateDB){
date_default_timezone_set("Europe/Berlin");
$date = new \DateTime($dateDB);
$tage = array(
"Mon" => "Montag",
"Tue" => "Dienstag",
"Wed" => "Mittwoch",
"Thu" => "Donnerstag",
"Fri" => "Freitag",
"Sat" => "Samstag",
"Sun" => "Sonntag");
$monate = array(
"Jan" => "Januar",
"Feb" => "Februar",
"Mar" => "März",
"Apr" => "April",
"Mai" => "Mai",
"Jun" => "Juni",
"Jul" => "Juli",
"Aug" => "August",
"Sep" => "September",
"Oct" => "Oktober",
"Nov" => "November",
"Dec" => "Dezember");
$datumDB = array();
$datumDB['monat_lang'] = $monate[$date->format('M')];
$datumDB['monat_kurz'] = $date->format('M');
$datumDB['tag_lang'] = $tage[$date->format('D')];
$datumDB['tag_kurz'] = $date->format('d');
$datumDB['jahr'] = $date->format('Y');
return $datumDB;
}
}//endClass
?>