Index: /changelog
===================================================================
--- /changelog	(revision 7618)
+++ /changelog	(revision 7619)
@@ -301,4 +301,5 @@
 - Bugfix: Verlinkung zum Kunden in Statistik / Bestellverwaltung wiederhergestellt
 - Bugfix: wpNewsletterGermany beim import werden bestehende Abonnenten nicht wieder auf aktiv gesetzt
+- Bugfix: Rechnungen - Links auf Briefpapier/Logo und Vorschaulinks korrigiert
 - Feature: URL Benachrichtigung sendet einen User Agent und Referer mit (Wordfence Regel) 
 - Feature: Shop rechnet jetzt mit gerundeten Einzelpreisen (Altes Verhalten optional)
Index: /mods/wpsg_mod_rechnungen.class.php
===================================================================
--- /mods/wpsg_mod_rechnungen.class.php	(revision 7618)
+++ /mods/wpsg_mod_rechnungen.class.php	(revision 7619)
@@ -391,15 +391,14 @@
 		} // public function order_view_content($order_id) { }
 		
-		public function order_ajax() 
-		{
-
-			if(isset($_REQUEST['edit_id'])) $_REQUEST['edit_id'] = wpsg_sinput("key", $_REQUEST['edit_id']);
-			if(isset($_REQUEST['r_id'])) $_REQUEST['r_id'] = wpsg_sinput("key", $_REQUEST['r_id']);
-
-			if (isset($_REQUEST['wpsg_rechnungen_preview']))
-			{
-				
-				\check_admin_referer('wpsg-mod_invoice-order_ajax-rechnung-'.wpsg_getInt($_REQUEST['edit_id']));
-				
+		public function order_ajax() {
+			 
+			if(isset($_REQUEST['edit_id'])) if (!wpsg_checkInput($_REQUEST['edit_id'], WPSG_SANITIZE_INT)) throw \wpsg\Exception::getSanitizeException();
+			if(isset($_REQUEST['r_id'])) if (!wpsg_checkInput($_REQUEST['r_id'], WPSG_SANITIZE_INT)) throw \wpsg\Exception::getSanitizeException();
+			
+			if (isset($_REQUEST['wpsg_rechnungen_preview'])) {
+				
+				if (wpsg_isSizedInt($_REQUEST['edit_id'])) \check_admin_referer('wpsg-mod_invoice-order_ajax-rechnung-'.wpsg_getInt($_REQUEST['edit_id'])); 
+				else wpsg_checkNounce('Admin', 'module', ['modul' => 'wpsg_mod_rechnungen', 'do' => 'orderAjax', 'wpsg_rechnungen_preview' => '1']);
+				 
 				// Vorschau einer Rechnung aus der Bestellverwaltung
 				$this->writeRechnung(wpsg_getInt($_REQUEST['edit_id']), true, true);
@@ -407,16 +406,37 @@
 				die();
 
+			} else if (wpsg_isSizedString($_REQUEST['module_action'], 'getBp')) {
+				
+				wpsg_checkNounce('Admin', 'module', ['modul' => 'wpsg_mod_rechnungen', 'do' => 'orderAjax', 'module_action' => 'getBp']);
+				
+				if (file_exists($this->getFilePath('').'wpsg_rechnungen_bp.jpg')) {
+					
+					wpsg_header::IMG($this->getFilePath('', false).'wpsg_rechnungen_bp.jpg');
+					
+				} else if (file_exists($this->getFilePath('').'wpsg_rechnungen_bp.pdf')) {
+					
+					wpsg_header::PDFPlugin($this->getFilePath('', false).'wpsg_rechnungen_bp.pdf');
+					
+				} else throw new \Exception('Kein Briefpapier definiert.');
+				
+			} else if (wpsg_isSizedString($_REQUEST['module_action'], 'getLogo')) {
+				
+				wpsg_checkNounce('Admin', 'module', ['modul' => 'wpsg_mod_rechnungen', 'do' => 'orderAjax', 'module_action' => 'getLogo']);
+				
+				if (file_exists($this->getFilePath('').'wpsg_rechnungen_logo.jpg')) {
+					
+					wpsg_header::IMG($this->getFilePath('', false).'wpsg_rechnungen_logo.jpg');
+					
+				} else throw new \Exception('Kein Logo definiert.');
+				
 			} else if (isset($_REQUEST['wpsg_rechnungen_write'])) {
 				
 				\check_admin_referer('wpsg-mod_invoice-order_ajax-rechnung-'.wpsg_getInt($_REQUEST['edit_id']));
 				
-				try
-				{
+				try {
 				
 					$this->writeRechnung($_REQUEST['edit_id'], false);
 					
-				} 
-				catch (Exception $e)
-				{
+				} catch (Exception $e) {
 					
 					die($e->getMessage());
@@ -1805,3 +1825,2 @@
 	} // class wpsg_mod_rechnungen extends wpsg_mod_basic
 
-?>
Index: /views/mods/mod_rechnungen/settings_edit.phtml
===================================================================
--- /views/mods/mod_rechnungen/settings_edit.phtml	(revision 7618)
+++ /views/mods/mod_rechnungen/settings_edit.phtml	(revision 7619)
@@ -25,5 +25,9 @@
 					<p><?php echo __('Es wurde bisher kein Briefpapier hochgeladen', 'wpsg'); ?></p>
 				<?php } else { ?>
-					<a href="<?php echo $this->view['bp']; ?>" target="_blank"><?php echo __('Derzeitiges Briefpapier', 'wpsg'); ?></a>
+					<a href="<?php 
+					
+						echo wpsg_admin_url('Admin', 'module', ['do' => 'orderAjax', 'modul' => 'wpsg_mod_rechnungen', 'module_action' => 'getBp'], ['noheader' => '1']);
+					
+					?>" target="_blank"><?php echo __('Derzeitiges Briefpapier', 'wpsg'); ?></a>
 				<?php } ?>
 				<a style="float:right; position:relative;" class="glyphicon glyphicon-question-sign form-control-feedback" href="?page=wpsg-Admin&subaction=loadHelp&noheader=1&field=mod_rechnung_bp" data-wpsg-tip="mod_rechnung_bp" rel="?page=wpsg-Admin&subaction=loadHelp&noheader=1&field=mod_rechnung_bp"></a>
@@ -45,5 +49,9 @@
 					<p><?php echo __('Es wurde bisher kein Logo hochgeladen', 'wpsg'); ?></p>
 				<?php } else { ?>
-					<a href="<?php echo stripslashes($this->view['logo']); ?>" target="_blank"><?php echo __('Derzeitiges Logo', 'wpsg'); ?></a>
+					<a href="<?php
+						
+						echo wpsg_admin_url('Admin', 'module', ['do' => 'orderAjax', 'modul' => 'wpsg_mod_rechnungen', 'module_action' => 'getLogo'], ['noheader' => '1']);
+						
+					?>" target="_blank"><?php echo __('Derzeitiges Logo', 'wpsg'); ?></a>
 				<?php } ?>
 				<a style="float:right; position:relative;" class="glyphicon glyphicon-question-sign form-control-feedback" href="?page=wpsg-Admin&subaction=loadHelp&noheader=1&field=mod_rechnung_logo" data-wpsg-tip="mod_rechnung_logo" rel="?page=wpsg-Admin&subaction=loadHelp&noheader=1&field=mod_rechnung_logo"></a>
@@ -63,7 +71,7 @@
 						<div class="col-md-4">
 							<div class="align-buttons">
-								<input type="input" data-toggle="tooltip" class="logo-align-button logo-align-button-left '.$alignLeft.'" name="wpsg_rechnungen_logo_position_left" value="&#xf036" onclick="handleLogoAlignClick($(this))" onkeydown="return false;" onfocus="return false;" autocomplete="off" title="'.__("Logo linksbÃŒndig ausrichten").'">
-								<input type="input" data-toggle="tooltip" class="logo-align-button logo-align-button-center '.$alignCenter.'" name="wpsg_rechnungen_logo_position_center" value="&#xf037" onclick="handleLogoAlignClick($(this))" onkeydown="return false;" onfocus="return false;" autocomplete="off" title="'.__("Logo zentrieren").'">
-								<input type="input" data-toggle="tooltip" class="logo-align-button logo-align-button-right '.$alignRight.' '.$defaultAlign.'" name="wpsg_rechnungen_logo_position_right" value="&#xf038" onclick="handleLogoAlignClick($(this))" onkeydown="return false;" onfocus="return false;" autocomplete="off" title="'.__("Logo rechtsbÃŒndig ausrichten").'">
+								<input type="input" data-toggle="tooltip" class="logo-align-button logo-align-button-left '.$alignLeft.'" name="wpsg_rechnungen_logo_position_left" value="&#xf036" onclick="handleLogoAlignClick(jQuery(this))" onkeydown="return false;" onfocus="return false;" autocomplete="off" title="'.__("Logo linksbÃŒndig ausrichten").'">
+								<input type="input" data-toggle="tooltip" class="logo-align-button logo-align-button-center '.$alignCenter.'" name="wpsg_rechnungen_logo_position_center" value="&#xf037" onclick="handleLogoAlignClick(jQuery(this))" onkeydown="return false;" onfocus="return false;" autocomplete="off" title="'.__("Logo zentrieren").'">
+								<input type="input" data-toggle="tooltip" class="logo-align-button logo-align-button-right '.$alignRight.' '.$defaultAlign.'" name="wpsg_rechnungen_logo_position_right" value="&#xf038" onclick="handleLogoAlignClick(jQuery(this))" onkeydown="return false;" onfocus="return false;" autocomplete="off" title="'.__("Logo rechtsbÃŒndig ausrichten").'">
 							</div>
 						</div>
@@ -235,5 +243,5 @@
 		} );
 
-		var  onloadActiveBtn = $(".align-buttons-active")[0];
+		var  onloadActiveBtn = jQuery(".align-buttons-active")[0];
 		
 		if(onloadActiveBtn)
@@ -243,5 +251,5 @@
 		}
 
-		$(".wpsg_rechnungen_preview").click(function(){ wpsg_rechnungen_preview(); });
+		jQuery(".wpsg_rechnungen_preview").click(function(){ wpsg_rechnungen_preview(); });
 
 	} );
@@ -260,5 +268,5 @@
 			pressedEl[0].value = pressedEl[0].value + " selected";
 
-			jQuery.each($(".logo-align-button"), function(index, element) {
+			jQuery.each(jQuery(".logo-align-button"), function(index, element) {
 				if(element.classList.contains("align-buttons-active") && element !== pressedEl[0]){
 
@@ -278,5 +286,5 @@
 
 	// Verhindern der Weiterleitung nach dem Klick auf einen Align Button
-	$(".logo-align-button").click(function() { return false; });
+	jQuery(".logo-align-button").click(function() { return false; });
 
 	/**
@@ -286,5 +294,6 @@
 	{
 
-		var url = "<?php echo WPSG_URL_WP; ?>wp-admin/admin.php?page=wpsg-Admin&action=module&modul=wpsg_mod_rechnungen&do=orderAjax&noheader=1&wpsg_rechnungen_preview=1";
+		var url = "<?php echo wpsg_admin_url('Admin', 'module', ['modul' => 'wpsg_mod_rechnungen', 'do' => 'orderAjax', 'wpsg_rechnungen_preview' => '1'], ['noheader' => '1'], true); ?>";
+		//echo WPSG_URL_WP; ?>wp-admin/admin.php?page=wpsg-Admin&action=module&modul=wpsg_mod_rechnungen&do=orderAjax&noheader=1&wpsg_rechnungen_preview=1";
 
 		window.open(url, '_blank');
