Deprecated: Function set_magic_quotes_runtime() is deprecated in /var/www/vhosts/dialogkreis-godesberg.de/httpdocs/textpattern/lib/txplib_db.php on line 14 jsPath = $jsPath; } function addList($list, $input, $tag = 'li', $additionalOptions = '') { if ($additionalOptions != '') $additionalOptions = ','.$additionalOptions; $this->lists[] = array("list" => $list, "input" => $input, "tag" => $tag, "additionalOptions" => $additionalOptions); } function printTopJS() { ?> debug) ? 'text' : 'hidden'; foreach($this->lists as $list) { if ($this->debug) echo '
'.$list['input'].': '; ?> debug) echo '
'; } function printForm($action, $method = 'POST', $submitText = 'Submit', $submitClass = '',$formName = 'sortableListForm') { ?>
printHiddenInputs();?> debug) { ?>
$inputArray[$i], $orderKeyName => $i +1); } return $orderArray; } }filename = $filename; $this->overwrite = $overwrite; } Function addDir($dirname, $fileComments=''){ if(substr($dirname, -1) != '/') $dirname .= '/'; $this->addFile(false, $dirname, $fileComments); } Function addFile($filename, $cfilename, $fileComments='', $data=false){ if(!($fh = &$this->fh)) $fh = fopen($this->filename, $this->overwrite?'wb':'a+b'); // $filename can be a local file OR the data wich will be compressed if(substr($cfilename, -1)=='/'){ $details['uncsize'] = 0; $data = ''; } elseif(file_exists($filename)){ $details['uncsize'] = filesize($filename); $data = file_get_contents($filename); } elseif($filename){ echo "Cannot add $filename. File not found
"; return false; } else{ $details['uncsize'] = strlen($filename); // DATA is given.. use it! :| } // if data to compress is too small, just store it if($details['uncsize'] < 256){ $details['comsize'] = $details['uncsize']; $details['vneeded'] = 10; $details['cmethod'] = 0; $zdata = &$data; } else{ // otherwise, compress it $zdata = gzcompress($data); $zdata = substr(substr($zdata, 0, strlen($zdata) - 4), 2); // fix crc bug (thanks to Eric Mueller) $details['comsize'] = strlen($zdata); $details['vneeded'] = 10; $details['cmethod'] = 8; } $details['bitflag'] = 0; $details['crc_32'] = crc32($data); // Convert date and time to DOS Format, and set then $lastmod_timeS = str_pad(decbin(date('s')>=32?date('s')-32:date('s')), 5, '0', STR_PAD_LEFT); $lastmod_timeM = str_pad(decbin(date('i')), 6, '0', STR_PAD_LEFT); $lastmod_timeH = str_pad(decbin(date('H')), 5, '0', STR_PAD_LEFT); $lastmod_dateD = str_pad(decbin(date('d')), 5, '0', STR_PAD_LEFT); $lastmod_dateM = str_pad(decbin(date('m')), 4, '0', STR_PAD_LEFT); $lastmod_dateY = str_pad(decbin(date('Y')-1980), 7, '0', STR_PAD_LEFT); # echo "ModTime: $lastmod_timeS-$lastmod_timeM-$lastmod_timeH (".date("s H H").")\n"; # echo "ModDate: $lastmod_dateD-$lastmod_dateM-$lastmod_dateY (".date("d m Y").")\n"; $details['modtime'] = bindec("$lastmod_timeH$lastmod_timeM$lastmod_timeS"); $details['moddate'] = bindec("$lastmod_dateY$lastmod_dateM$lastmod_dateD"); $details['offset'] = ftell($fh); fwrite($fh, $this->zipSignature); fwrite($fh, pack('s', $details['vneeded'])); // version_needed fwrite($fh, pack('s', $details['bitflag'])); // general_bit_flag fwrite($fh, pack('s', $details['cmethod'])); // compression_method fwrite($fh, pack('s', $details['modtime'])); // lastmod_time fwrite($fh, pack('s', $details['moddate'])); // lastmod_date fwrite($fh, pack('V', $details['crc_32'])); // crc-32 fwrite($fh, pack('I', $details['comsize'])); // compressed_size fwrite($fh, pack('I', $details['uncsize'])); // uncompressed_size fwrite($fh, pack('s', strlen($cfilename))); // file_name_length fwrite($fh, pack('s', 0)); // extra_field_length fwrite($fh, $cfilename); // file_name // ignoring extra_field fwrite($fh, $zdata); // Append it to central dir $details['external_attributes'] = (substr($cfilename, -1)=='/'&&!$zdata)?16:32; // Directory or file name $details['comments'] = $fileComments; $this->appendCentralDir($cfilename, $details); $this->files_count++; } Function setExtra($filename, $property, $value){ $this->centraldirs[$filename][$property] = $value; } Function save($zipComments=''){ if(!($fh = &$this->fh)) $fh = fopen($this->filename, $this->overwrite?'w':'a+'); $cdrec = ""; foreach($this->centraldirs as $filename=>$cd){ $cdrec .= $this->dirSignature; $cdrec .= "\x0\x0"; // version made by $cdrec .= pack('v', $cd['vneeded']); // version needed to extract $cdrec .= "\x0\x0"; // general bit flag $cdrec .= pack('v', $cd['cmethod']); // compression method $cdrec .= pack('v', $cd['modtime']); // lastmod time $cdrec .= pack('v', $cd['moddate']); // lastmod date $cdrec .= pack('V', $cd['crc_32']); // crc32 $cdrec .= pack('V', $cd['comsize']); // compressed filesize $cdrec .= pack('V', $cd['uncsize']); // uncompressed filesize $cdrec .= pack('v', strlen($filename)); // file comment length $cdrec .= pack('v', 0); // extra field length $cdrec .= pack('v', strlen($cd['comments'])); // file comment length $cdrec .= pack('v', 0); // disk number start $cdrec .= pack('v', 0); // internal file attributes $cdrec .= pack('V', $cd['external_attributes']); // internal file attributes $cdrec .= pack('V', $cd['offset']); // relative offset of local header $cdrec .= $filename; $cdrec .= $cd['comments']; } $before_cd = ftell($fh); fwrite($fh, $cdrec); // end of central dir fwrite($fh, $this->dirSignatureE); fwrite($fh, pack('v', 0)); // number of this disk fwrite($fh, pack('v', 0)); // number of the disk with the start of the central directory fwrite($fh, pack('v', $this->files_count)); // total # of entries "on this disk" fwrite($fh, pack('v', $this->files_count)); // total # of entries overall fwrite($fh, pack('V', strlen($cdrec))); // size of central dir fwrite($fh, pack('V', $before_cd)); // offset to start of central dir fwrite($fh, pack('v', strlen($zipComments))); // .zip file comment length fwrite($fh, $zipComments); fclose($fh); } // Private Function appendCentralDir($filename,$properties){ $this->centraldirs[$filename] = $properties; } } file_put_contents: Cannot create file $file
"; return false; } } class dUnzip2{ Function getVersion(){ return "2.6"; } // Public var $fileName; var $compressedList; // You will problably use only this one! var $centralDirList; // Central dir list... It's a kind of 'extra attributes' for a set of files var $endOfCentral; // End of central dir, contains ZIP Comments var $debug; // Private var $fh; var $zipSignature = "\x50\x4b\x03\x04"; // local file header signature var $dirSignature = "\x50\x4b\x01\x02"; // central dir header signature var $dirSignatureE= "\x50\x4b\x05\x06"; // end of central dir signature // Public Function dUnzip2($fileName){ $this->fileName = $fileName; $this->compressedList = $this->centralDirList = $this->endOfCentral = Array(); } Function getList($stopOnFile=false){ if(sizeof($this->compressedList)){ $this->debugMsg(1, "Returning already loaded file list."); return $this->compressedList; } // Open file, and set file handler $fh = fopen($this->fileName, "r"); $this->fh = &$fh; if(!$fh){ $this->debugMsg(2, "Failed to load file."); return false; } $this->debugMsg(1, "Loading list from 'End of Central Dir' index list..."); if(!$this->_loadFileListByEOF($fh, $stopOnFile)){ $this->debugMsg(1, "Failed! Trying to load list looking for signatures..."); if(!$this->_loadFileListBySignatures($fh, $stopOnFile)){ $this->debugMsg(1, "Failed! Could not find any valid header."); $this->debugMsg(2, "ZIP File is corrupted or empty"); return false; } } if($this->debug){ #------- Debug compressedList $kkk = 0; echo ""; foreach($this->compressedList as $fileName=>$item){ if(!$kkk && $kkk=1){ echo ""; foreach($item as $fieldName=>$value) echo ""; echo ''; } echo ""; foreach($item as $fieldName=>$value){ if($fieldName == 'lastmod_datetime') echo ""; else echo ""; } echo ""; } echo "
$fieldName
".date("d/m/Y H:i:s", $value)."$value
"; #------- Debug centralDirList $kkk = 0; if(sizeof($this->centralDirList)){ echo ""; foreach($this->centralDirList as $fileName=>$item){ if(!$kkk && $kkk=1){ echo ""; foreach($item as $fieldName=>$value) echo ""; echo ''; } echo ""; foreach($item as $fieldName=>$value){ if($fieldName == 'lastmod_datetime') echo ""; else echo ""; } echo ""; } echo "
$fieldName
".date("d/m/Y H:i:s", $value)."$value
"; } #------- Debug endOfCentral $kkk = 0; if(sizeof($this->endOfCentral)){ echo ""; echo ""; foreach($this->endOfCentral as $field=>$value){ echo ""; echo ""; echo ""; echo ""; } echo "
dUnzip - End of file
$field$value
"; } } return $this->compressedList; } Function getExtraInfo($compressedFileName){ return isset($this->centralDirList[$compressedFileName])? $this->centralDirList[$compressedFileName]: false; } Function getZipInfo($detail=false){ return $detail? $this->endOfCentral[$detail]: $this->endOfCentral; } Function unzip($compressedFileName, $targetFileName=false, $applyChmod=0777){ if(!sizeof($this->compressedList)){ $this->debugMsg(1, "Trying to unzip before loading file list... Loading it!"); $this->getList(false, $compressedFileName); } $fdetails = &$this->compressedList[$compressedFileName]; if(!isset($this->compressedList[$compressedFileName])){ $this->debugMsg(2, "File '$compressedFileName' is not compressed in the zip."); return false; } if(substr($compressedFileName, -1) == "/"){ $this->debugMsg(2, "Trying to unzip a folder name '$compressedFileName'."); return false; } if(!$fdetails['uncompressed_size']){ $this->debugMsg(1, "File '$compressedFileName' is empty."); return $targetFileName? file_put_contents($targetFileName, ""): ""; } fseek($this->fh, $fdetails['contents-startOffset']); $ret = $this->uncompress( fread($this->fh, $fdetails['compressed_size']), $fdetails['compression_method'], $fdetails['uncompressed_size'], $targetFileName ); if($applyChmod && $targetFileName) chmod($targetFileName, 0777); return $ret; } Function unzipAll($targetDir=false, $baseDir="", $maintainStructure=true, $applyChmod=0777){ if($targetDir === false) $targetDir = dirname(__FILE__)."/"; $lista = $this->getList(); if(sizeof($lista)) foreach($lista as $fileName=>$trash){ $dirname = dirname($fileName); $outDN = "$targetDir/$dirname"; if(substr($dirname, 0, strlen($baseDir)) != $baseDir) continue; if(!is_dir($outDN) && $maintainStructure){ $str = ""; $folders = explode("/", $dirname); foreach($folders as $folder){ $str = $str?"$str/$folder":$folder; if(!is_dir("$targetDir/$str")){ $this->debugMsg(1, "Creating folder: $targetDir/$str"); mkdir("$targetDir/$str"); if($applyChmod) chmod("$targetDir/$str", $applyChmod); } } } if(substr($fileName, -1, 1) == "/") continue; $maintainStructure? $this->unzip($fileName, "$targetDir/$fileName", $applyChmod): $this->unzip($fileName, "$targetDir/".basename($fileName), $applyChmod); } } Function close(){ // Free the file resource if($this->fh) fclose($this->fh); } Function __destroy(){ $this->close(); } // Private (you should NOT call these methods): Function uncompress($content, $mode, $uncompressedSize, $targetFileName=false){ switch($mode){ case 0: // Not compressed return $targetFileName? file_put_contents($targetFileName, $content): $content; case 1: $this->debugMsg(2, "Shrunk mode is not supported... yet?"); return false; case 2: case 3: case 4: case 5: $this->debugMsg(2, "Compression factor ".($mode-1)." is not supported... yet?"); return false; case 6: $this->debugMsg(2, "Implode is not supported... yet?"); return false; case 7: $this->debugMsg(2, "Tokenizing compression algorithm is not supported... yet?"); return false; case 8: // Deflate return $targetFileName? file_put_contents($targetFileName, gzinflate($content, $uncompressedSize)): gzinflate($content, $uncompressedSize); case 9: $this->debugMsg(2, "Enhanced Deflating is not supported... yet?"); return false; case 10: $this->debugMsg(2, "PKWARE Date Compression Library Impoloding is not supported... yet?"); return false; case 12: // Bzip2 return $targetFileName? file_put_contents($targetFileName, bzdecompress($content)): bzdecompress($content); case 18: $this->debugMsg(2, "IBM TERSE is not supported... yet?"); return false; default: $this->debugMsg(2, "Unknown uncompress method: $mode"); return false; } } Function debugMsg($level, $string){ if($this->debug) if($level == 1) echo "dUnzip2: $string
"; if($level == 2) echo "dUnzip2: $string
"; } Function _loadFileListByEOF(&$fh, $stopOnFile=false){ // Check if there's a valid Central Dir signature. // Let's consider a file comment smaller than 1024 characters... // Actually, it length can be 65536.. But we're not going to support it. for($x = 0; $x < 1024; $x++){ fseek($fh, -22-$x, SEEK_END); $signature = fread($fh, 4); if($signature == $this->dirSignatureE){ // If found EOF Central Dir $eodir['disk_number_this'] = unpack("v", fread($fh, 2)); // number of this disk $eodir['disk_number'] = unpack("v", fread($fh, 2)); // number of the disk with the start of the central directory $eodir['total_entries_this'] = unpack("v", fread($fh, 2)); // total number of entries in the central dir on this disk $eodir['total_entries'] = unpack("v", fread($fh, 2)); // total number of entries in $eodir['size_of_cd'] = unpack("V", fread($fh, 4)); // size of the central directory $eodir['offset_start_cd'] = unpack("V", fread($fh, 4)); // offset of start of central directory with respect to the starting disk number $zipFileCommentLenght = unpack("v", fread($fh, 2)); // zipfile comment length $eodir['zipfile_comment'] = $zipFileCommentLenght[1]?fread($fh, $zipFileCommentLenght[1]):''; // zipfile comment $this->endOfCentral = Array( 'disk_number_this'=>$eodir['disk_number_this'][1], 'disk_number'=>$eodir['disk_number'][1], 'total_entries_this'=>$eodir['total_entries_this'][1], 'total_entries'=>$eodir['total_entries'][1], 'size_of_cd'=>$eodir['size_of_cd'][1], 'offset_start_cd'=>$eodir['offset_start_cd'][1], 'zipfile_comment'=>$eodir['zipfile_comment'], ); // Then, load file list fseek($fh, $this->endOfCentral['offset_start_cd']); $signature = fread($fh, 4); while($signature == $this->dirSignature){ $dir['version_madeby'] = unpack("v", fread($fh, 2)); // version made by $dir['version_needed'] = unpack("v", fread($fh, 2)); // version needed to extract $dir['general_bit_flag'] = unpack("v", fread($fh, 2)); // general purpose bit flag $dir['compression_method'] = unpack("v", fread($fh, 2)); // compression method $dir['lastmod_time'] = unpack("v", fread($fh, 2)); // last mod file time $dir['lastmod_date'] = unpack("v", fread($fh, 2)); // last mod file date $dir['crc-32'] = fread($fh, 4); // crc-32 $dir['compressed_size'] = unpack("V", fread($fh, 4)); // compressed size $dir['uncompressed_size'] = unpack("V", fread($fh, 4)); // uncompressed size $fileNameLength = unpack("v", fread($fh, 2)); // filename length $extraFieldLength = unpack("v", fread($fh, 2)); // extra field length $fileCommentLength = unpack("v", fread($fh, 2)); // file comment length $dir['disk_number_start'] = unpack("v", fread($fh, 2)); // disk number start $dir['internal_attributes'] = unpack("v", fread($fh, 2)); // internal file attributes-byte1 $dir['external_attributes1']= unpack("v", fread($fh, 2)); // external file attributes-byte2 $dir['external_attributes2']= unpack("v", fread($fh, 2)); // external file attributes $dir['relative_offset'] = unpack("V", fread($fh, 4)); // relative offset of local header $dir['file_name'] = fread($fh, $fileNameLength[1]); // filename $dir['extra_field'] = $extraFieldLength[1] ?fread($fh, $extraFieldLength[1]) :''; // extra field $dir['file_comment'] = $fileCommentLength[1]?fread($fh, $fileCommentLength[1]):''; // file comment // Convert the date and time, from MS-DOS format to UNIX Timestamp $BINlastmod_date = str_pad(decbin($dir['lastmod_date'][1]), 16, '0', STR_PAD_LEFT); $BINlastmod_time = str_pad(decbin($dir['lastmod_time'][1]), 16, '0', STR_PAD_LEFT); $lastmod_dateY = bindec(substr($BINlastmod_date, 0, 7))+1980; $lastmod_dateM = bindec(substr($BINlastmod_date, 7, 4)); $lastmod_dateD = bindec(substr($BINlastmod_date, 11, 5)); $lastmod_timeH = bindec(substr($BINlastmod_time, 0, 5)); $lastmod_timeM = bindec(substr($BINlastmod_time, 5, 6)); $lastmod_timeS = bindec(substr($BINlastmod_time, 11, 5)); $this->centralDirList[$dir['file_name']] = Array( 'version_madeby'=>$dir['version_madeby'][1], 'version_needed'=>$dir['version_needed'][1], 'general_bit_flag'=>str_pad(decbin($dir['general_bit_flag'][1]), 8, '0', STR_PAD_LEFT), 'compression_method'=>$dir['compression_method'][1], 'lastmod_datetime' =>mktime($lastmod_timeH, $lastmod_timeM, $lastmod_timeS, $lastmod_dateM, $lastmod_dateD, $lastmod_dateY), 'crc-32' =>str_pad(dechex(ord($dir['crc-32'][3])), 2, '0', STR_PAD_LEFT). str_pad(dechex(ord($dir['crc-32'][2])), 2, '0', STR_PAD_LEFT). str_pad(dechex(ord($dir['crc-32'][1])), 2, '0', STR_PAD_LEFT). str_pad(dechex(ord($dir['crc-32'][0])), 2, '0', STR_PAD_LEFT), 'compressed_size'=>$dir['compressed_size'][1], 'uncompressed_size'=>$dir['uncompressed_size'][1], 'disk_number_start'=>$dir['disk_number_start'][1], 'internal_attributes'=>$dir['internal_attributes'][1], 'external_attributes1'=>$dir['external_attributes1'][1], 'external_attributes2'=>$dir['external_attributes2'][1], 'relative_offset'=>$dir['relative_offset'][1], 'file_name'=>$dir['file_name'], 'extra_field'=>$dir['extra_field'], 'file_comment'=>$dir['file_comment'], ); $signature = fread($fh, 4); } // If loaded centralDirs, then try to identify the offsetPosition of the compressed data. if($this->centralDirList) foreach($this->centralDirList as $filename=>$details){ $i = $this->_getFileHeaderInformation($fh, $details['relative_offset']); $this->compressedList[$filename]['file_name'] = $filename; $this->compressedList[$filename]['compression_method'] = $details['compression_method']; $this->compressedList[$filename]['version_needed'] = $details['version_needed']; $this->compressedList[$filename]['lastmod_datetime'] = $details['lastmod_datetime']; $this->compressedList[$filename]['crc-32'] = $details['crc-32']; $this->compressedList[$filename]['compressed_size'] = $details['compressed_size']; $this->compressedList[$filename]['uncompressed_size'] = $details['uncompressed_size']; $this->compressedList[$filename]['lastmod_datetime'] = $details['lastmod_datetime']; $this->compressedList[$filename]['extra_field'] = $i['extra_field']; $this->compressedList[$filename]['contents-startOffset']=$i['contents-startOffset']; if(strtolower($stopOnFile) == strtolower($filename)) break; } return true; } } return false; } Function _loadFileListBySignatures(&$fh, $stopOnFile=false){ fseek($fh, 0); $return = false; for(;;){ $details = $this->_getFileHeaderInformation($fh); if(!$details){ $this->debugMsg(1, "Invalid signature. Trying to verify if is old style Data Descriptor..."); fseek($fh, 12 - 4, SEEK_CUR); // 12: Data descriptor - 4: Signature (that will be read again) $details = $this->_getFileHeaderInformation($fh); } if(!$details){ $this->debugMsg(1, "Still invalid signature. Probably reached the end of the file."); break; } $filename = $details['file_name']; $this->compressedList[$filename] = $details; $return = true; if(strtolower($stopOnFile) == strtolower($filename)) break; } return $return; } Function _getFileHeaderInformation(&$fh, $startOffset=false){ if($startOffset !== false) fseek($fh, $startOffset); $signature = fread($fh, 4); if($signature == $this->zipSignature){ # $this->debugMsg(1, "Zip Signature!"); // Get information about the zipped file $file['version_needed'] = unpack("v", fread($fh, 2)); // version needed to extract $file['general_bit_flag'] = unpack("v", fread($fh, 2)); // general purpose bit flag $file['compression_method'] = unpack("v", fread($fh, 2)); // compression method $file['lastmod_time'] = unpack("v", fread($fh, 2)); // last mod file time $file['lastmod_date'] = unpack("v", fread($fh, 2)); // last mod file date $file['crc-32'] = fread($fh, 4); // crc-32 $file['compressed_size'] = unpack("V", fread($fh, 4)); // compressed size $file['uncompressed_size'] = unpack("V", fread($fh, 4)); // uncompressed size $fileNameLength = unpack("v", fread($fh, 2)); // filename length $extraFieldLength = unpack("v", fread($fh, 2)); // extra field length $file['file_name'] = fread($fh, $fileNameLength[1]); // filename $file['extra_field'] = $extraFieldLength[1]?fread($fh, $extraFieldLength[1]):''; // extra field $file['contents-startOffset']= ftell($fh); // Bypass the whole compressed contents, and look for the next file fseek($fh, $file['compressed_size'][1], SEEK_CUR); // Convert the date and time, from MS-DOS format to UNIX Timestamp $BINlastmod_date = str_pad(decbin($file['lastmod_date'][1]), 16, '0', STR_PAD_LEFT); $BINlastmod_time = str_pad(decbin($file['lastmod_time'][1]), 16, '0', STR_PAD_LEFT); $lastmod_dateY = bindec(substr($BINlastmod_date, 0, 7))+1980; $lastmod_dateM = bindec(substr($BINlastmod_date, 7, 4)); $lastmod_dateD = bindec(substr($BINlastmod_date, 11, 5)); $lastmod_timeH = bindec(substr($BINlastmod_time, 0, 5)); $lastmod_timeM = bindec(substr($BINlastmod_time, 5, 6)); $lastmod_timeS = bindec(substr($BINlastmod_time, 11, 5)); // Mount file table $i = Array( 'file_name' =>$file['file_name'], 'compression_method'=>$file['compression_method'][1], 'version_needed' =>$file['version_needed'][1], 'lastmod_datetime' =>mktime($lastmod_timeH, $lastmod_timeM, $lastmod_timeS, $lastmod_dateM, $lastmod_dateD, $lastmod_dateY), 'crc-32' =>str_pad(dechex(ord($file['crc-32'][3])), 2, '0', STR_PAD_LEFT). str_pad(dechex(ord($file['crc-32'][2])), 2, '0', STR_PAD_LEFT). str_pad(dechex(ord($file['crc-32'][1])), 2, '0', STR_PAD_LEFT). str_pad(dechex(ord($file['crc-32'][0])), 2, '0', STR_PAD_LEFT), 'compressed_size' =>$file['compressed_size'][1], 'uncompressed_size' =>$file['uncompressed_size'][1], 'extra_field' =>$file['extra_field'], 'general_bit_flag' =>str_pad(decbin($file['general_bit_flag'][1]), 8, '0', STR_PAD_LEFT), 'contents-startOffset'=>$file['contents-startOffset'] ); return $i; } return false; } } // Netzwerk - Navigation in Textpattern erstellen //====================================================================================================================================> // Registrierung //====================================================================================================================================> //====================================================================================================================================> if(@txpinterface == 'admin') { add_privs('sort_pages','1,2,3,4,5'); register_tab('content', 'sort_pages', "Sortieren"); register_callback('sort_pages', 'sort_pages'); } //====================================================================================================================================> //====================================================================================================================================> // Programmablauf //====================================================================================================================================> //====================================================================================================================================> function sort_pages() { // Personal Vars //===============================================================> $lb = chr(10); // Globals //===============================================================> global $prefs; global $pretext; global $thisarticle; $home = 'http://'.$prefs['siteurl']; $query = $_SERVER['QUERY_STRING']; $message = ''; // Welche Sortierung ist aktiv? //=========================================> $query = preg_split('/&|=/', $query); //====================================================================================================================================> //====================================================================================================================================> // Hilfsfunktionen //====================================================================================================================================> //====================================================================================================================================> // Hilffunction update_page_order_section() //===============================================================> function update_page_order_section($table, $sort_order, $element) { $update = $table; $set = 'sort_order = "'.$sort_order.'"'; $where = 'name="'.$element.'"'; SQL_UPDATE($update, $set, $where); } // Hilffunction update_page_order_textpattern() //===============================================================> function update_page_order_textpattern($table, $sort_order, $element) { $update = $table; $set = 'sort_order = "'.$sort_order.'"'; $where = 'ID="'.$element.'"'; SQL_UPDATE($update, $set, $where); } // Stufe 3 //===============================================================> function getArticles($section, $category, $lb, $query) { $select = 'ID, title, url_title'; $from = 'textpattern'; $where = 'Section="'.$section.'" AND Category1="'.$category.'" AND Status="4"'; $orderby = 'sort_order ASC'; $articles = SQL($select, $from, $where, $orderby); //===============================================================> $return = ''; //===============================================================> if(!empty($articles)) { $return .= ' '.$lb; } return $return; } //===============================================================> // Stufe 2 //===============================================================> function getCategorys($section, $lb, $query) { $select = 'ID, title, url_title'; $from = 'textpattern'; $where = 'Section="'.$section.'" AND Category1="" AND Status="4"'; $orderby = 'sort_order ASC'; $categorys = SQL($select, $from, $where, $orderby); //===============================================================> $return = ''; //===============================================================> if(!empty($categorys)) { $return .= ' '.$lb; } return $return; } //====================================================================================================================================> //====================================================================================================================================> // SLL List => Erzeugung //====================================================================================================================================> //====================================================================================================================================> // Ergebnis //===============================================================> $wrapper_ids_section = ''; $wrapper_ids_categorys = ''; $wrapper_ids_articles = ''; // Sections IDs //===============================================================> $select = 'title, name'; $from = 'txp_section'; $where = 'NOT name="default"'; // AND NOT name="startseite" AND NOT name="info" $orderby = 'sort_order ASC'; $sections_ids = SQL($select, $from, $where, $orderby); // Category IDs //===============================================================> $select = 'ID, Section, url_title, title'; $from = 'textpattern'; $where = 'Category1="" AND Status="4"'; $orderby = 'sort_order ASC'; $category_ids = SQL($select, $from, $where, $orderby); // Wrapper IDS erzeugen //===============================================================> // Start IDS //===============================================================> $wrapper_ids_section[] = 'sections'; //===============================================================> // Wrap IDS Category //===============================================================> foreach($sections_ids as $id => $array) { $empty = getCategorys($sections_ids[$id]['name'], $lb, $query); if(!empty($empty)) { $wrapper_ids_categorys[] = 'categorys_'.$sections_ids[$id]['name']; } } //===============================================================> // Wrap IDS Article //===============================================================> foreach($category_ids as $id => $array) { $empty = getArticles($category_ids[$id]['Section'], get_url($category_ids[$id]['title']).'-'.$category_ids[$id]['ID'], $lb, $query); if(!empty($empty)) { $wrapper_ids_articles[] = 'articles_'.get_url($category_ids[$id]['title']).'-'.$category_ids[$id]['ID']; } } // Update vor Ausgabe wenn abgesendet... //===============================================================> // NEW SLList //===============================================================> $sortableLists = new SLLists($home.'/plugin/assets/sortables/scriptaculous'); // Programmablauf SLList //===============================================================> // Kategorien sortieren //===============================================================> if(in_array('categorys', $query)) { foreach($wrapper_ids_categorys as $key => $value) { $sortableLists->addList($list=$value,$input=$value.'ListOrder', $tag='li', $additionalOptions='format:/(.*)/'); if(isset($_POST['sortableListsSubmitted'])) { $orderArray[] = SLLists::getOrderArray($_POST[$value.'ListOrder'],$value,'element','order'); // Update //===============================================================> foreach($orderArray as $count => $arrays) { foreach($orderArray[$count] as $sort => $array) { $sort_order = $sort; $sort_order += '1'; update_page_order_textpattern('textpattern', $sort_order, $orderArray[$count][$sort]['element']); } } } } // Message //===============================================================> if(isset($_POST['sortableListsSubmitted'])){$message .= 'Reihenfolge der Kategorien aktualisiert.';} } //===============================================================> // Artikel sortieren //===============================================================> elseif(in_array('articles', $query)) { // Nur wenn die dritte Stufe existiert //===============================================================> if(!empty($wrapper_ids_articles)) { foreach($wrapper_ids_articles as $key => $value) { $sortableLists->addList($list=$value,$input=$value.'ListOrder', $tag='li', $additionalOptions='format:/(.*)/'); if(isset($_POST['sortableListsSubmitted'])) { $orderArray[] = SLLists::getOrderArray($_POST[$value.'ListOrder'],$value,'element','order'); // Update //===============================================================> foreach($orderArray as $count => $arrays) { foreach($orderArray[$count] as $sort => $array) { $sort_order = $sort; $sort_order += '1'; update_page_order_textpattern('textpattern', $sort_order, $orderArray[$count][$sort]['element']); } } } } } // Message //===============================================================> if(isset($_POST['sortableListsSubmitted'])){$message .= 'Reihenfolge der Artikel aktualisiert.';} } //===============================================================> // Sektionen sortieren //===============================================================> else { foreach($wrapper_ids_section as $key => $value) { $sortableLists->addList($list=$value,$input=$value.'ListOrder', $tag='li', $additionalOptions='format:/(.*)/'); if(isset($_POST['sortableListsSubmitted'])) { $orderArray = SLLists::getOrderArray($_POST['sectionsListOrder'],$value,'element','order'); // Update //===============================================================> foreach($orderArray as $sort => $array) { $sort_order = $sort; $sort_order += '1'; update_page_order_section('txp_section', $sort_order, $orderArray[$sort]['element']); } } } // Message //===============================================================> if(isset($_POST['sortableListsSubmitted'])){ $message .= 'Reihenfolge der Sektionen aktualisiert.'; } } //====================================================================================================================================> //====================================================================================================================================> // HTML => Ausgabe //====================================================================================================================================> //====================================================================================================================================> // Textpattern Header //===============================================================> pagetop(gTxt('edit_plugins'), $message); // Sections //===============================================================> $select = 'title, name'; $from = 'txp_section'; $where = 'NOT name="default"'; // AND NOT name="startseite" AND NOT name="info" $orderby = 'sort_order ASC'; $sections = SQL($select, $from, $where, $orderby); // Ergebnis //===============================================================> $result = ''; $structure = ''; // Programmablauf HTML //===============================================================> //===============================================================> // Stufe 1 //===============================================================> foreach($sections as $id => $array) { // Notiz //===============================================================> $check_subs = getCategorys($sections[$id]['name'], $lb, $query); if(empty($check_subs)){ $notiz = ' ----- unsichtbar ----- ( '.$sections[$id]['title'].' ist auf Ihrer Website nicht sichtbar, da Sie keine Seiten enthält. )';} else{$notiz = '';} // Hauptausgabe //===============================================================> $structure .= '
  • '.$sections[$id]['title'].getCategorys($sections[$id]['name'], $lb, $query).$notiz.'
  • '.$lb; } // Formatierung //===============================================================> $result .= '
    '.$lb; // Wenn Categorys //===============================================================> if(in_array('categorys', $query)) { $result .= '

    Sektionen sortieren Kategorien sortieren Artikel sortieren

    '; } // Wenn Articles //===============================================================> elseif(in_array('articles', $query)) { $result .= '

    Sektionen sortieren Kategorien sortieren Artikel sortieren

    '; } // Sections //===============================================================> else { $result .= '

    Sektionen sortieren Kategorien sortieren Artikel sortieren

    '; } $result .= ''.$lb; $result .= '
    '.$lb; // Ausgabe //===============================================================> $sortableLists->printTopJS(); print $result; print '
    '.$lb; $sortableLists->printForm($_SERVER['REQUEST_URI'], 'POST', 'Speichern', 'publish'); print '
    '.$lb; $sortableLists->printBottomJS(); } ?> // Netzwerk - Bildergalerien sortieren in Textpattern erstellen //====================================================================================================================================> // Registrierung //====================================================================================================================================> //====================================================================================================================================> if(@txpinterface == 'admin') { add_privs('bildergalerien_sortieren','1,2,3,4,5,6'); register_tab('images', 'bildergalerien_sortieren', "Galerien sortieren"); register_callback('bildergalerien_sortieren', 'bildergalerien_sortieren'); } //====================================================================================================================================> //====================================================================================================================================> // Programmablauf //====================================================================================================================================> //====================================================================================================================================> function bildergalerien_sortieren() { // Vars //===============================================================> global $prefs; global $pretext; global $thisarticle; global $txpcfg; $absth = $prefs['path_to_site']; $home = 'http://'.$prefs['siteurl']; $action = 'index.php?'.$_SERVER['QUERY_STRING']; $message = ''; if(isset($_GET['galerie'])){ $galerie = $_GET['galerie'];} else{ $galerie = '';} // Welche Sortierung ist aktiv? //=========================================> $hash = $_SERVER['QUERY_STRING']; $hash = preg_split('/&|=/', $hash); // Übersichtlichkeit //===============================================================> $lb = chr(10); // Message //===============================================================> $message = ''; //====================================================================================================================================> //====================================================================================================================================> // Hilfsfunktionen //====================================================================================================================================> //====================================================================================================================================> //================================================> // Select-Daten behalten //================================================> function is_selected($select, $field) { if(isset($_GET[$select])) { if($_GET[$select] == $field) { return ' selected="selected"'; } } } //====================================================================================================================================> //====================================================================================================================================> // Datenbank Vars //====================================================================================================================================> //====================================================================================================================================> // Daten-Abfrage Kategorien //================================================> $query = ' SELECT name, title FROM txp_category WHERE name REGEXP "-[0-9]*$" AND type = "image" ORDER BY name ASC '; $data_lang = SQL_FREE_SELECT($query); // Daten-Abfrage Bilder //================================================> $query = ' SELECT id, name, ext, category, sort_order FROM txp_image WHERE category = "'.$galerie.'" ORDER BY sort_order ASC, name ASC '; $data_galerie = SQL_FREE_SELECT($query); //====================================================================================================================================> //====================================================================================================================================> // Programmablauf //====================================================================================================================================> // Abgesendet... //===============================================================> if(isset($_POST['submit'])) { if($_POST['submit'] == 'Speichern') { // Postdata //===============================================================> foreach($_POST as $key => $value) { if($key == 'submit'){} else { $key = explode('-', $key); $update = 'txp_image'; $set = 'sort_order ="'.$value.'"'; $where = 'id="'.$key[1].'"'; SQL_UPDATE($update, $set, $where); } } $message = 'Bildersortierung gespeichert.'; } } //====================================================================================================================================> //====================================================================================================================================> // HTML => Ausgabe //====================================================================================================================================> //====================================================================================================================================> // Daten-Abfrage Bilder //================================================> $query = ' SELECT id, name, ext, category, sort_order FROM txp_image WHERE category = "'.$galerie.'" ORDER BY sort_order ASC, name ASC '; $data_galerie = SQL_FREE_SELECT($query); // Textpattern Header //===============================================================> pagetop(gTxt('Galerien sortieren'), $message); // Ergebnis //===============================================================> $result = ''; $lang_select = ''; $lang_choosen = ''; // Auswahl Galerie //===============================================================> if(is_array($data_lang)) { $lang_select .= '
    '.$lb; $lang_select .= ' '.$lb; $lang_select .= ' '.$lb; $lang_select .= ' '.$lb; $lang_select .= ' '.$lb; $lang_select .= ' '.$lb; $lang_select .= ' '.$lb; $lang_select .= '
    Galerie wählen'.$lb; $lang_select .= ' '.$lb; $lang_select .= ' '.$lb; $lang_select .= '
    '.$lb; $lang_select .= '
    '.$lb; } else { $lang_select .= '

    Keine Galerie verfügbar.

    '.$lb; } // Galerie Inhalt //===============================================================> if(!empty($galerie)) { $lang_choosen .= '
    '.$lb; $lang_choosen .= ' '.$lb; $lang_choosen .= ' '.$lb; $lang_choosen .= ' '.$lb; $lang_choosen .= ' '.$lb; $lang_choosen .= ' '.$lb; $lang_choosen .= ' '.$lb; $lang_choosen .= ' '.$lb; $lang_choosen .= ' '.$lb; $lang_choosen .= ' '.$lb; $lang_choosen .= ' '.$lb; if(is_array($data_galerie)) { foreach($data_galerie as $id => $array) { $lang_choosen .= ' '.$lb; $lang_choosen .= ' '.$lb; $lang_choosen .= ' '.$lb; $lang_choosen .= ' '.$lb; $lang_choosen .= ' '.$lb; $lang_choosen .= ' '.$lb; } } $lang_choosen .= ' '.$lb; $lang_choosen .= ' '.$lb; $lang_choosen .= ' '.$lb; $lang_choosen .= ' '.$lb; $lang_choosen .= ' '.$lb; $lang_choosen .= ' '.$lb; $lang_choosen .= ' '.$lb; $lang_choosen .= ' '.$lb; $lang_choosen .= ' '.$lb; $lang_choosen .= '
    IDVorschaubildBildnameReihenfolge
    '.$data_galerie[$id]['id'].''.$data_galerie[$id]['name'].''.$data_galerie[$id]['sort_order'].''.$lb; $lang_choosen .= '
       
    '.$lb; $lang_choosen .= '
    '.$lb; } // Formatierung //===============================================================> // JS //===============================================================> $result .= ''.$lb; $result .= ''.$lb; $result .= ''.$lb; // Html //===============================================================> if(!empty($galerie)) { $result .= '
    '.$lb; $result .= $lang_select; $result .= $lang_choosen; $result .= '
    '.$lb; } else { $result .= '
    '.$lb; $result .= $lang_select; $result .= '
    '.$lb; } // Ausgabe //===============================================================> print $result; } ?> // Netzwerk - Bilderbeschriftung in Textpattern erstellen //====================================================================================================================================> // Registrierung //====================================================================================================================================> //====================================================================================================================================> if(@txpinterface == 'admin') { add_privs('bildbeschriftung','1,2,3,4,5,6'); register_tab('images', 'bildbeschriftung', "Bildbeschriftung"); register_callback('bildbeschriftung', 'bildbeschriftung'); } //====================================================================================================================================> //====================================================================================================================================> // Programmablauf //====================================================================================================================================> //====================================================================================================================================> function bildbeschriftung() { // Vars //===============================================================> global $prefs; global $pretext; global $thisarticle; global $txpcfg; $absth = $prefs['path_to_site']; $home = 'http://'.$prefs['siteurl']; $action = 'index.php?'.$_SERVER['QUERY_STRING']; $message = ''; if(isset($_GET['set'])){ $set = $_GET['set'];} else{ $set = '';} if(isset($_GET['kategorie'])){ $kategorie = $_GET['kategorie'];} else{ $kategorie = '';} // Welche Sortierung ist aktiv? //=========================================> $hash = $_SERVER['QUERY_STRING']; $hash = preg_split('/&|=/', $hash); // Übersichtlichkeit //===============================================================> $lb = chr(10); // Message //===============================================================> $message = ''; //====================================================================================================================================> //====================================================================================================================================> // Hilfsfunktionen //====================================================================================================================================> //====================================================================================================================================> //================================================> // Select-Daten behalten //================================================> function is_selected($select, $field) { if(isset($_GET[$select])) { if($_GET[$select] == $field) { return ' selected="selected"'; } } } //====================================================================================================================================> //====================================================================================================================================> // Datenbank Vars //====================================================================================================================================> //====================================================================================================================================> // Daten-Abfrage Kategorien //================================================> $query = ' SELECT name, title FROM txp_category WHERE type = "image" AND NOT name="root" ORDER BY name ASC '; $data_cat = SQL_FREE_SELECT($query); // Daten-Abfrage Bilder Kategorien //================================================> $query = ' SELECT id, name, ext, category, sort_order, alt, caption FROM txp_image WHERE category = "'.$kategorie.'" ORDER BY sort_order ASC '; $data_img_cat = SQL_FREE_SELECT($query); // Daten-Abfrage Bilder //================================================> $query = ' SELECT id, name, ext, category, sort_order, alt, caption FROM txp_image ORDER BY id ASC '; $data_img = SQL_FREE_SELECT($query); //====================================================================================================================================> //====================================================================================================================================> // Programmablauf //====================================================================================================================================> // Abgesendet... //===============================================================> if(isset($_POST['submit'])) { if($_POST['submit'] == 'Speichern') { // Postdata //===============================================================> foreach($_POST as $key => $value) { if($key == 'submit'){} else { // Textile //=====================================================================> $key = explode('-', $key); $update = 'txp_image'; $in = $key[0].'="'.$value.'"'; $where = 'id="'.$key[1].'"'; SQL_UPDATE($update, $in, $where); // Textile //=====================================================================> if($key[0] == 'caption') { $textile = new Textile(); $caption_html = addslashes($textile->TextileThis(stripslashes($value))); $update = 'txp_image'; $in = 'caption_html ="'.$caption_html.'"'; $where = 'id="'.$key[1].'"'; SQL_UPDATE($update, $in, $where); } } } $message = 'Bildbeschriftung gespeichert.'; } } //====================================================================================================================================> //====================================================================================================================================> // HTML => Ausgabe //====================================================================================================================================> //====================================================================================================================================> // Daten-Abfrage Bilder Kategorien //================================================> $query = ' SELECT id, name, ext, category, sort_order, alt, caption FROM txp_image WHERE category = "'.$kategorie.'" ORDER BY sort_order ASC '; $data_img_cat = SQL_FREE_SELECT($query); // Daten-Abfrage Bilder //================================================> $query = ' SELECT id, name, ext, category, sort_order, alt, caption FROM txp_image ORDER BY id ASC '; $data_img = SQL_FREE_SELECT($query); // Textpattern Header //===============================================================> pagetop(gTxt('Bilderbeschriftung'), $message); // Ergebnis //===============================================================> $result = ''; $lang_select = ''; $lang_choosen = ''; // Auswahl Galerie //===============================================================> if(is_array($data_img)) { // Depending Vars //================================================> $bildanzahl = count($data_img); if($bildanzahl < 31) { $bildanzahl_range = range(0, 30, 30); } else { $bildanzahl_range = range(0, $bildanzahl, 30); } $bildanzahl_range[] = ''; $data_img = array_chunk($data_img, '30'); $set_count = count($data_img); $set_count_range = range(1, $set_count, 1); // HTML //================================================> $lang_select .= '
    '.$lb; $lang_select .= ' '.$lb; $lang_select .= ' '.$lb; $lang_select .= ' '.$lb; $lang_select .= ' '.$lb; $lang_select .= ' '.$lb; $lang_select .= ' '.$lb; $lang_select .= ' '.$lb; $lang_select .= ' '.$lb; $lang_select .= '
    Set wählen'.$lb; $lang_select .= ' '.$lb; $lang_select .= ' '.$lb; $lang_select .= ' Kategorie wählen'.$lb; $lang_select .= ' '.$lb; $lang_select .= '
    '.$lb; $lang_select .= '
    '.$lb; } else { $lang_select .= '

    Keine Bilder verfügbar.

    '.$lb; } // Bildunterschriften Inhalt //===============================================================> if(!empty($set) || !empty($kategorie)) { $lang_choosen .= '
    '.$lb; $lang_choosen .= ' '.$lb; $lang_choosen .= ' '.$lb; $lang_choosen .= ' '.$lb; $lang_choosen .= ' '.$lb; $lang_choosen .= ' '.$lb; $lang_choosen .= ' '.$lb; $lang_choosen .= ' '.$lb; $lang_choosen .= ' '.$lb; $lang_choosen .= ' '.$lb; $lang_choosen .= ' '.$lb; $lang_choosen .= ' '.$lb; if(is_array($data_img)) { if(!empty($kategorie)){ foreach($data_img_cat as $id => $array) { $lang_choosen .= ' '.$lb; $lang_choosen .= ' '.$lb; $lang_choosen .= ' '.$lb; $lang_choosen .= ' '.$lb; $lang_choosen .= ' '.$lb; $lang_choosen .= ' '.$lb; } } else { $data_img_piece = $data_img[($set-1)]; foreach($data_img_piece as $id => $array) { $lang_choosen .= ' '.$lb; $lang_choosen .= ' '.$lb; $lang_choosen .= ' '.$lb; $lang_choosen .= ' '.$lb; $lang_choosen .= ' '.$lb; $lang_choosen .= ' '.$lb; } } } $lang_choosen .= ' '.$lb; $lang_choosen .= ' '.$lb; $lang_choosen .= ' '.$lb; $lang_choosen .= ' '.$lb; $lang_choosen .= ' '.$lb; $lang_choosen .= ' '.$lb; $lang_choosen .= ' '.$lb; $lang_choosen .= ' '.$lb; $lang_choosen .= ' '.$lb; $lang_choosen .= ' '.$lb; $lang_choosen .= '
    IDVorschaubildBildnameAltBeschreibung
    '.$data_img_cat[$id]['id'].''.str_replace('_', '-', $data_img_cat[$id]['name']).''.$lb; $lang_choosen .= '
    '.$data_img_piece[$id]['id'].''.str_replace('_', '-', $data_img_piece[$id]['name']).''.$lb; $lang_choosen .= '
        
    '.$lb; $lang_choosen .= '
    '.$lb; } // Formatierung //===============================================================> //===============================================================> // JS //===============================================================> $result .= ''.$lb; $result .= ''.$lb; // Html //===============================================================> if(!empty($set) || !empty($kategorie)) { $result .= '
    '.$lb; $result .= $lang_select; $result .= $lang_choosen; $result .= '
    '.$lb; } else { $result .= '
    '.$lb; $result .= $lang_select; $result .= '
    '.$lb; } // Ausgabe //===============================================================> print $result; } ?> // Netzwerk - Bilder Massenupload in Textpattern erstellen //====================================================================================================================================> // Registrierung //====================================================================================================================================> //====================================================================================================================================> if(@txpinterface == 'admin') { add_privs('bilder_massenupload','1,2,3,4,5,6'); register_tab('images', 'bilder_massenupload', "Massenupload"); register_callback('bilder_massenupload', 'bilder_massenupload'); } //====================================================================================================================================> //====================================================================================================================================> // Programmablauf //====================================================================================================================================> //====================================================================================================================================> function bilder_massenupload() { // Vars //===============================================================> global $prefs; global $pretext; global $thisarticle; global $txpcfg; global $txp_user; $absth = $prefs['path_to_site']; $home = 'http://'.$prefs['siteurl']; $action = 'index.php?'.$_SERVER['QUERY_STRING']; $upload = '../plugin/assets/massupload/upload.php'; $max_file_size = $prefs['file_max_upload_size']; $message = ''; if(isset($_GET['anzahl'])){ $anzahl = $_GET['anzahl'];} else{ $anzahl = '';} if(isset($_GET['thumb_width'])){ $thumb_width = $_GET['thumb_width'];} else{ $thumb_width = '';} if(isset($_GET['thumb_height'])){ $thumb_height = $_GET['thumb_height'];} else{ $thumb_height = '';} if(isset($_GET['kategorie'])){ $kategorie = $_GET['kategorie'];} else{ $kategorie = '';} // Welche Sortierung ist aktiv? //=========================================> $hash = $_SERVER['QUERY_STRING']; $hash = preg_split('/&|=/', $hash); // Übersichtlichkeit //===============================================================> $lb = chr(10); // Message //===============================================================> $message = ''; //====================================================================================================================================> //====================================================================================================================================> // Hilfsfunktionen //====================================================================================================================================> //====================================================================================================================================> //================================================> // Select-Daten behalten //================================================> function is_selected($select, $field) { if(isset($_GET[$select])) { if($_GET[$select] == $field) { return ' selected="selected"'; } } } //=============================================================================================================== // GET-Daten behalten //=============================================================================================================== function keep_value($field) { if(isset($_GET[$field])) { return $_GET[$field]; } } //=============================================================================================================== // Post-Daten behalten //=============================================================================================================== function keep_value_post($field) { if(isset($_POST[$field])) { return $_POST[$field]; } } //====================================================================================================================================> //====================================================================================================================================> // Datenbank Vars //====================================================================================================================================> //====================================================================================================================================> // Daten-Abfrage Kategorien //================================================> $query = ' SELECT name, title FROM txp_category WHERE type = "image" AND NOT name="root" ORDER BY name ASC '; $data_cat = SQL_FREE_SELECT($query); //=============================================> // IDS //=============================================> $select = 'max(id)'; $from = 'txp_image'; $where = NULL; $orderby = 'id desc'; $max = SQL($select, $from, $where, $orderby); $last = $max[0]['max(id)']+1; // Daten-Abfrage Bilder //================================================> /*$query = ' SELECT id, name, ext, category, sort_order, alt, caption FROM txp_image ORDER BY id ASC '; $data_img = SQL_FREE_SELECT($query);*/ //====================================================================================================================================> //====================================================================================================================================> // Programmablauf //====================================================================================================================================> // Abgesendet... //===============================================================> if(isset($_POST['submit'])) { if($_POST['submit'] == 'Speichern') { print var_dump($_FILES); // Postdata //===============================================================> /*foreach($_POST as $key => $value) { if($key == 'submit'){} else { // Textile //=====================================================================> $key = explode('-', $key); $update = 'txp_image'; $in = $key[0].'="'.$value.'"'; $where = 'id="'.$key[1].'"'; SQL_UPDATE($update, $in, $where); // Textile //=====================================================================> if($key[0] == 'caption') { $textile = new Textile(); $caption_html = addslashes($textile->TextileThis(stripslashes($value))); $update = 'txp_image'; $in = 'caption_html ="'.$caption_html.'"'; $where = 'id="'.$key[1].'"'; SQL_UPDATE($update, $in, $where); } } }*/ } } //====================================================================================================================================> //====================================================================================================================================> // HTML => Ausgabe //====================================================================================================================================> //====================================================================================================================================> // Daten-Abfrage Bilder Kategorien //================================================> /*$query = ' SELECT id, name, ext, category, sort_order, alt, caption FROM txp_image WHERE category = "'.$kategorie.'" ORDER BY sort_order ASC '; $data_img_cat = SQL_FREE_SELECT($query); // Daten-Abfrage Bilder //================================================> $query = ' SELECT id, name, ext, category, sort_order, alt, caption FROM txp_image ORDER BY id ASC '; $data_img = SQL_FREE_SELECT($query); */ // Textpattern Header //===============================================================> pagetop(gTxt('Massenupload'), $message); // Ergebnis //===============================================================> $range = range(1, 50); $result = ''; $lang_select = ''; $lang_choosen = ''; // Bildwahl //===============================================================> $lang_select .= '
    '.$lb; $lang_select .= ' '.$lb; $lang_select .= ' '.$lb; $lang_select .= ' '.$lb; $lang_select .= ' '.$lb; $lang_select .= ' '.$lb; $lang_select .= ' '.$lb; $lang_select .= ' '.$lb; $lang_select .= ' '.$lb; $lang_select .= ' '.$lb; $lang_select .= ' '.$lb; $lang_select .= ' '.$lb; $lang_select .= ' '.$lb; $lang_select .= '
    Anzahl der Bilder'.$lb; $lang_select .= ' '.$lb; $lang_select .= ' Thumb BreiteThumb HöheKategorie'.$lb; $lang_select .= ' '.$lb; $lang_select .= ' '.$lb; $lang_select .= '
    '.$lb; $lang_select .= '
    '.$lb; // Upload Form //===============================================================> if(!empty($thumb_width) || !empty($thumb_height)) { if((!empty($thumb_width) && is_numeric($thumb_width)) || (!empty($thumb_height) && is_numeric($thumb_height))) { // Upload Inhalt //===============================================================> $lang_choosen .= ' '.$lb; $lang_choosen .= ' '.$lb; $lang_choosen .= ' '.$lb; $lang_choosen .= ' '.$lb; $lang_choosen .= ' '.$lb; $lang_choosen .= ' '.$lb; $lang_choosen .= ' '.$lb; $lang_choosen .= ' '.$lb; $lang_choosen .= ' '.$lb; $lang_choosen .= ' '.$lb; $lang_choosen .= ' '.$lb; $lang_choosen .= ' '.$lb; // Zeilen //===============================================================> $zeilen = range(1, $anzahl); $next_id = $last; foreach($zeilen as $id => $array) { $lang_choosen .= ' '.$lb; $lang_choosen .= ' '.$lb; $lang_choosen .= ' '.$lb; $lang_choosen .= ' '.$lb; $lang_choosen .= ' '.$lb; $lang_choosen .= ' '.$lb; $lang_choosen .= ' '.$lb; $lang_choosen .= ' '.$lb; $lang_choosen .= ' '.$lb; $lang_choosen .= ' '.$lb; $next_id++; } $lang_choosen .= ' '.$lb; $lang_choosen .= ' '.$lb; $lang_choosen .= ' '.$lb; $lang_choosen .= ' '.$lb; $lang_choosen .= ' '.$lb; $lang_choosen .= ' '.$lb; $lang_choosen .= '
    Zukünftige IDIn KategorieDurchsuchenProcessStatusHochladen
    '.$next_id.''.$kategorie.$lb; $lang_choosen .= ' '.$lb; $lang_choosen .= ' '.$lb; $lang_choosen .= ' '.$lb; $lang_choosen .= ' '.$lb; $lang_choosen .= ' '.$lb; $lang_choosen .= ' '.$lb; $lang_choosen .= ' '.$lb; $lang_choosen .= ' '.$lb; $lang_choosen .= ' '.$lb; $lang_choosen .= '
    '.$lb; } else { $lang_choosen .= '

    Die Eingabe der Thumbnail Höhe und Breite muss numerisch sein.

    '.$lb; } } else { $lang_choosen .= '

    Mindestens eine Dimension der Thumbnails muss gesetzt sein.

    '.$lb; } // Formatierung //===============================================================> //===============================================================> // JS //===============================================================> $result .= ''.$lb; $result .= ''.$lb; // Html //===============================================================> if(!empty($anzahl)) { $result .= '
    '.$lb; $result .= $lang_select; $result .= $lang_choosen; $result .= '
    '.$lb; } else { $result .= '
    '.$lb; $result .= $lang_select; $result .= '
    '.$lb; } // Ausgabe //===============================================================> print $result; } ?> // Netzwerk - Navigation in Textpattern erstellen //====================================================================================================================================> // Registrierung //====================================================================================================================================> //====================================================================================================================================> if(@txpinterface == 'admin') { add_privs('backup_datenbank','1,2,3,4,5'); register_tab('admin', 'backup_datenbank', "Datenbank Backup"); register_callback('backup_datenbank', 'backup_datenbank'); } //====================================================================================================================================> //====================================================================================================================================> // Programmablauf //====================================================================================================================================> //====================================================================================================================================> function backup_datenbank() { // Personal Vars //===============================================================> $lb = chr(10); // Globals //===============================================================> global $prefs; global $pretext; global $thisarticle; global $txpcfg; $name_plus = $prefs['siteurl']; $absth = $prefs['path_to_site']; $query = 'index.php?'.$_SERVER['QUERY_STRING']; $path_to_backup = $absth.'/plugin/assets/backup/mysql_backup/gzip/'; $message = ''; //====================================================================================================================================> //====================================================================================================================================> // Hilfsfunktionen //====================================================================================================================================> //====================================================================================================================================> // Hilfsfunction formatted_time_full() //===============================================================> function formatted_time_full_plugin($unix_timestamp) { if (strtoupper(substr(PHP_OS, 0, 3)) === 'WIN') { $localeCode = 'ge';} else {$localeCode = 'de_DE';} setlocale(LC_TIME,$localeCode); $date_formatted = strftime("%A den, %e. %b %G um %T Uhr", $unix_timestamp); return $date_formatted; } // Hilfsfunction formatted_time_full() //===============================================================> function formatted_time_short_plugin($unix_timestamp) { if (strtoupper(substr(PHP_OS, 0, 3)) === 'WIN') { $localeCode = 'ge';} else {$localeCode = 'de_DE';} setlocale(LC_TIME,$localeCode); $date_formatted = strftime("%e. %b %G, %T Uhr", $unix_timestamp); return $date_formatted; } //====================================================================================================================================> //====================================================================================================================================> // Programmablauf //====================================================================================================================================> //====================================================================================================================================> // Neues Backup //===============================================================> if(isset($_POST['submit'])) { if($_POST['submit'] == 'Neues Backup') { // Neues Backup => Save //===============================================================> $backup_obj = new MySQL_Backup(); $backup_obj->server = $txpcfg['host']; $backup_obj->port = 3306; $backup_obj->username = $txpcfg['user']; $backup_obj->password = $txpcfg['pass']; $backup_obj->database = $txpcfg['db']; $backup_obj->tables = array(); $backup_obj->drop_tables = true; $backup_obj->struct_only = false; $backup_obj->comments = true; $backup_obj->backup_dir = $path_to_backup; $backup_obj->fname_format = 'd_m_y_H_i_s'; /*===============================================================> Task: MSB_STRING - Return SQL commands as a single output string. MSB_SAVE - Create the backup file on the server. MSB_DOWNLOAD - Download backup file to the user's computer. ===============================================================>*/ $task = MSB_SAVE; $filename = ''; $use_gzip = true; if (!$backup_obj->Execute($task, $filename, $use_gzip)) { $message = 'Das Backup konnte leider nicht erstellt werden. Versuchen Sie es erneut.'; } else { $message = 'Das Backup wurde erstellt.'; } /* $task = MSB_DOWNLOAD; $filename = ''; $use_gzip = true; $backup_obj->Execute($task, $filename, $use_gzip); */ } // Altes Backup => Delete //===============================================================> elseif($_POST['submit'] == 'Löschen') { $deletes = $_POST; unset($deletes['submit']); if(!empty($deletes)) { foreach($deletes as $id => $array) { unlink($path_to_backup.$deletes[$id]); } $message = 'Das Backup wurde gelöscht.'; } } } // Vorhandene Dateien //===============================================================> $existing_files = ''; $existing_files = new afiles($path_to_backup); $existing_files = $existing_files->tree(); //====================================================================================================================================> //====================================================================================================================================> // HTML => Ausgabe //====================================================================================================================================> //====================================================================================================================================> // Textpattern Header //===============================================================> pagetop(gTxt('edit_plugins'), $message); // Ergebnis //===============================================================> $result = ''; $existing_backups = ''; $new_backup = ''; // Letztes Backup //===============================================================> $last_backup = ''; if(count($existing_files) == '1') { $last_backup = 'Es wurde noch nie ein Backup erstellt.'; } else { $date = $existing_files; unset($date[0]); arsort($date); $date_formatted = formatted_time_full_plugin(filemtime($date[count($date)])); $last_backup = 'Letztes Backup erstellt am: '.$date_formatted; } // Neues Backup //===============================================================> $new_backup .= '
    '.$lb; $new_backup .= '
    '.$last_backup.'
    '.$lb; $new_backup .= ' '.$lb; $new_backup .= '
    '.$lb; // Exitierende Backups //===============================================================> $existing_backups .= '
    '.$lb; $existing_backups .= ' '.$lb; $existing_backups .= ' '.$lb; $existing_backups .= ' '.$lb; $existing_backups .= ' '.$lb; $existing_backups .= ' '.$lb; $existing_backups .= ' '.$lb; $existing_backups .= ' '.$lb; $files = $existing_files; unset($files[0]); arsort($files); foreach($files as $id => $array) { $link = str_replace($absth, '..', $files[$id]);; $name = str_replace($path_to_backup, '', $files[$id]); $time = formatted_time_short_plugin(filemtime($files[$id])); $size = number_format(filesize($files[$id])); $value = str_replace($path_to_backup, '', $files[$id]);; $existing_backups .= ' '.$lb; $existing_backups .= ' '.$lb; $existing_backups .= ' '.$lb; $existing_backups .= ' '.$lb; $existing_backups .= ' '.$lb; $existing_backups .= ' '.$lb; } $existing_backups .= '
    Name der DateiErstellunsdatumKBLöschen?
    '.$name.''.$time.''.$size.'
    '.$lb; $existing_backups .= ' '.$lb; $existing_backups .= '
    '.$lb; // Formatierung //===============================================================> $result .= '
    '.$lb; $result .= $new_backup; $result .= '
    '.$lb; $result .= '
    Auf dem Server vorhandene Backups
    '.$lb; $result .= $existing_backups; $result .= '
    '.$lb; // Ausgabe //===============================================================> print $result; } ?> // Netzwerk - Navigation in Textpattern erstellen //====================================================================================================================================> // Registrierung //====================================================================================================================================> //====================================================================================================================================> if(@txpinterface == 'admin') { add_privs('backup_files','1,2,3,4,5'); register_tab('admin', 'backup_files', "Dateien Backup"); register_callback('backup_files', 'backup_files'); } //====================================================================================================================================> //====================================================================================================================================> // Programmablauf //====================================================================================================================================> //====================================================================================================================================> function backup_files() { // Personal Vars //===============================================================> $lb = chr(10); // Globals //===============================================================> global $prefs; global $pretext; global $thisarticle; global $txpcfg; $name_plus = $prefs['siteurl']; $absth = $prefs['path_to_site']; $query = 'index.php?'.$_SERVER['QUERY_STRING']; $path_to_backup = $absth.'/plugin/assets/backup/files_backup/zip/'; $message = ''; //====================================================================================================================================> //====================================================================================================================================> // Hilfsfunktionen //====================================================================================================================================> //====================================================================================================================================> // Hilfsfunction formatted_time_full() //===============================================================> function formatted_time_full_plugin($unix_timestamp) { if (strtoupper(substr(PHP_OS, 0, 3)) === 'WIN') { $localeCode = 'ge';} else {$localeCode = 'de_DE';} setlocale(LC_TIME,$localeCode); $date_formatted = strftime("%A den, %e. %b %G um %T Uhr", $unix_timestamp); return $date_formatted; } // Hilfsfunction formatted_time_full() //===============================================================> function formatted_time_short_plugin($unix_timestamp) { if (strtoupper(substr(PHP_OS, 0, 3)) === 'WIN') { $localeCode = 'ge';} else {$localeCode = 'de_DE';} setlocale(LC_TIME,$localeCode); $date_formatted = strftime("%e. %b %G, %T Uhr", $unix_timestamp); return $date_formatted; } // Hilfsfunction make_download_file_zip() //===============================================================> function make_download_file_zip($filename, $filepath) { header("Cache-Control: public"); header("Content-Description: File Transfer"); header("Content-Disposition: attachment; filename=$filename"); header("Content-Type: application/zip"); header("Content-Transfer-Encoding: binary"); readfile($filepath); } //====================================================================================================================================> //====================================================================================================================================> // Programmablauf //====================================================================================================================================> //====================================================================================================================================> // Neues Backup //===============================================================> if(isset($_POST['submit'])) { if($_POST['submit'] == 'Neues Backup') { // Neues Backup => Save //===============================================================> $file_name = date('d_m_y_H_i_s', time()).'.zip'; $newzip = new dZip($path_to_backup.$file_name, false); $data_files = new afiles($absth); $data_files = $data_files->tree(); unset($data_files[0]); foreach($data_files as $id => $array) { if(is_dir($data_files[$id])) { $folder = str_replace($absth.'/', '', $data_files[$id]); $newzip->addDir($folder); } else { $org_file = str_replace($absth, '..', $data_files[$id]); $zip_file = str_replace($absth.'/', '', $data_files[$id]); $newzip->addFile($org_file, $zip_file); } } $newzip->save(); $filepath = str_replace($absth, '..', $path_to_backup); make_download_file_zip($file_name, $filepath.$file_name); $message = 'Backup der Dateien wurde erstellt.'; } // Altes Backup => Delete //===============================================================> elseif($_POST['submit'] == 'Löschen') { $deletes = $_POST; unset($deletes['submit']); if(!empty($deletes)) { foreach($deletes as $id => $array) { unlink($path_to_backup.$deletes[$id]); } $message = 'Das Backup wurde gelöscht.'; } } } // Vorhandene Dateien //===============================================================> $existing_files = ''; $existing_files = new afiles($path_to_backup); $existing_files = $existing_files->tree(); //====================================================================================================================================> //====================================================================================================================================> // HTML => Ausgabe //====================================================================================================================================> //====================================================================================================================================> // Textpattern Header //===============================================================> pagetop(gTxt('edit_plugins'), $message); // Ergebnis //===============================================================> $result = ''; $existing_backups = ''; $new_backup = ''; // Letztes Backup //===============================================================> $last_backup = ''; if(count($existing_files) == '1') { $last_backup = 'Es wurde noch nie ein Backup erstellt.'; } else { $date = $existing_files; unset($date[0]); arsort($date); $date_formatted = formatted_time_full_plugin(filemtime($date[count($date)])); $last_backup = 'Letztes Backup erstellt am: '.$date_formatted; } // Neues Backup //===============================================================> $new_backup .= '
    '.$lb; $new_backup .= '
    '.$last_backup.'
    '.$lb; $new_backup .= ' '.$lb; $new_backup .= '
    '.$lb; // Exitierende Backups //===============================================================> $existing_backups .= '
    '.$lb; $existing_backups .= ' '.$lb; $existing_backups .= ' '.$lb; $existing_backups .= ' '.$lb; $existing_backups .= ' '.$lb; $existing_backups .= ' '.$lb; $existing_backups .= ' '.$lb; $existing_backups .= ' '.$lb; $files = $existing_files; unset($files[0]); arsort($files); foreach($files as $id => $array) { $link = str_replace($absth, '..', $files[$id]);; $name = str_replace($path_to_backup, '', $files[$id]); $time = formatted_time_short_plugin(filemtime($files[$id])); $size = number_format(filesize($files[$id])); $value = str_replace($path_to_backup, '', $files[$id]);; $existing_backups .= ' '.$lb; $existing_backups .= ' '.$lb; $existing_backups .= ' '.$lb; $existing_backups .= ' '.$lb; $existing_backups .= ' '.$lb; $existing_backups .= ' '.$lb; } $existing_backups .= '
    Name der DateiErstellunsdatumKBLöschen?
    '.$name.''.$time.''.$size.'
    '.$lb; $existing_backups .= ' '.$lb; $existing_backups .= '
    '.$lb; // Formatierung //===============================================================> $result .= '
    '.$lb; $result .= $new_backup; $result .= '
    '.$lb; $result .= '
    Auf dem Server vorhandene Backups
    '.$lb; $result .= $existing_backups; $result .= '
    '.$lb; // Ausgabe //===============================================================> print $result; } ?> // Netzwerk - Textpattern Multilingual -> Sectionen übersetzen //====================================================================================================================================> // Registrierung //====================================================================================================================================> //====================================================================================================================================> if(@txpinterface == 'admin') { add_privs('system_variablen','1'); register_tab('admin', 'system_variablen', "System Variablen"); register_callback('system_variablen', 'system_variablen'); } //====================================================================================================================================> //====================================================================================================================================> // Programmablauf //====================================================================================================================================> //====================================================================================================================================> function system_variablen() { // Vars //===============================================================> global $prefs; global $pretext; global $thisarticle; global $txpcfg; $absth = $prefs['path_to_site']; $action = 'index.php?'.$_SERVER['QUERY_STRING']; $message = ''; if(isset($_GET['lang'])){ $lang = $_GET['lang'];} else{ $lang = '';} // Welche Sortierung ist aktiv? //=========================================> $hash = $_SERVER['QUERY_STRING']; $hash = preg_split('/&|=/', $hash); // Übersichtlichkeit //===============================================================> $lb = chr(10); // Message //===============================================================> $message = ''; //====================================================================================================================================> //====================================================================================================================================> // Hilfsfunktionen //====================================================================================================================================> //================================================================================================================================> //================================================> // Select-Daten behalten //================================================> function is_selected($select, $field) { if(isset($_GET[$select])) { if($_GET[$select] == $field) { return ' selected="selected"'; } } } //=============================================================================================================== // Post-Daten behalten //=============================================================================================================== function keep_value($field) { if(isset($_POST[$field])) { return $_POST[$field]; } } //====================================================================================================================================> //====================================================================================================================================> // Datenbank Vars //====================================================================================================================================> //====================================================================================================================================> // Daten-Abfrage Systemvariablen //================================================> $query = ' SELECT id, alias, text FROM txp_sys_vars ORDER BY alias ASC '; $data = SQL_FREE_SELECT($query); //====================================================================================================================================> //====================================================================================================================================> // Programmablauf //====================================================================================================================================> //====================================================================================================================================> // Abgesendet... //===============================================================> if(isset($_POST['submit'])) { if($_POST['submit'] == 'Speichern') { // Postdata //===============================================================> foreach($_POST as $key => $value) { if($key == 'submit'){} else { $key = explode('-', $key); if($key[0] == 'alias' && $key[1] == 'neu' && !empty($_POST['alias-neu']) && !empty($_POST['text-neu'])) { $insert_into = 'txp_sys_vars'; $fields = 'alias, text'; $values ='"'.$_POST['alias-neu'].'", "'.$_POST['text-neu'].'"'; SQL_INSERT($insert_into, $fields, $values); } else { if($key[1] != 'neu') { $update = 'txp_sys_vars'; $set = $key[0].'="'.$value.'"'; $where = 'id="'.$key[1].'"'; SQL_UPDATE($update, $set, $where); } } } } } } //====================================================================================================================================> //====================================================================================================================================> // HTML => Ausgabe //====================================================================================================================================> //====================================================================================================================================> // Daten-Abfrage Systemvariablen //================================================> $query = ' SELECT id, alias, text FROM txp_sys_vars ORDER BY alias ASC '; $data = SQL_FREE_SELECT($query); // Textpattern Header //===============================================================> pagetop(gTxt('Systemvariablen bearbeiten'), $message); // Ergebnis //===============================================================> $result = ''; $lang_select = ''; $lang_choosen = ''; // Wenn Lang gewählt... //===============================================================> $lang_choosen .= '
    '.$lb; $lang_choosen .= ' '.$lb; $lang_choosen .= ' '.$lb; $lang_choosen .= ' '.$lb; $lang_choosen .= ' '.$lb; $lang_choosen .= ' '.$lb; $lang_choosen .= ' '.$lb; $lang_choosen .= ' '.$lb; $lang_choosen .= ' '.$lb; $lang_choosen .= ' '.$lb; $lang_choosen .= ' '.$lb; if(is_array($data)) { foreach($data as $id => $array) { $lang_choosen .= ' '.$lb; $lang_choosen .= ' '.$lb; $lang_choosen .= ' '.$lb; $lang_choosen .= ' '.$lb; } } $lang_choosen .= ' '.$lb; $lang_choosen .= ' '.$lb; $lang_choosen .= ' '.$lb; $lang_choosen .= ' '.$lb; $lang_choosen .= ' '.$lb; $lang_choosen .= '
    IDAliasText
    Neu'.$lb; $lang_choosen .= '
    '.$data[$id]['id'].''.$lb; $lang_choosen .= '
      
    '.$lb; $lang_choosen .= '
    '.$lb; // Formatierung //===============================================================> $result .= '
    '.$lb; $result .= $lang_choosen; $result .= '
    '.$lb; // Ausgabe //===============================================================> print $result; } ?> Interreligiöser Dialogkreis - Bad Godesberg

    Interreligiöser Dialogkreis - Bad Godesberg

    Sie befinden sich auf der Seite: / von www.dialogkreis-godesberg.de.


    WAS WILL DER INTERRELIGIÖSE DIALOGKREIS ?

    Miteinander reden…

    Menschen muslimischen und christlichen Glaubens leben oft schon lange als Nachbarn zusammen, meist ohne größere Konflikte. Trotzdem gibt es Ängste und Vorbehalte auf beiden Seiten. Wenn wir miteinander reden, kommen wir uns näher und können Vorbehalte und Ängste abbauen.

    Miteinander handeln…

    Es gibt vieles, wo wir gemeinsam aktiv werden können: Für unsere Kinder und Jugendlichen, für ein gleichberechtigtes Miteinander der Religionsgemeinschaften, für eine bessere Zusammenarbeit mit der Kommune, und für einen stärkeren Kontakt von muslimischen und christlichen Frauen und Männern.

    Miteinander leben

    Wir begreifen Verschiedenheit als eine Chance und die Vielfalt in unserem Stadtteil als Bereicherung. Damit alle in unserer Gesellschaft Anerkennung und Respekt erfahren, ist in einem gemeinsamen Lernprozess die Verständigung über Spielregeln und Grundlagen unseres Zusammenlebens notwendig. Hierzu wollen wir beitragen.

    Kontakt:

    Herr Cadi,
    E-Mail: mustafa.cadi {ätt} hotmail {Punkt} de

    Die Webseite wird gefördert von der Stabsstelle Integration der Stadt Bonn


    NEUE DIALOGE


    14. Januar 2015

    Godesberger für friedliches Zusammenleben

    Bonner Straße / Burgstraße
    Ab 19.30 Uhr versammeln. Um 20 Uhr wird eine Menschenkette auf der Straße gebildet. Anschließend werden fünf Schweigeminuten gehalten.

    Mehr erfahren


    21. Januar 2015

    Gespräch unter Nachbarn
    Wer wir sind und wie wir einander respektieren können

    Ein Gesprächsabend unter Beteiligung von Vertretern sozialer und religiöser Einrichtungen

    Mehr erfahren