Index: /changelog
===================================================================
--- /changelog	(revision 6854)
+++ /changelog	(revision 6855)
@@ -75,6 +75,5 @@
 - Feature - Aboverwaltung im Kundenprofil (Frontend) vorhanden
 - Feature - automatische AboverlÃ€ngerung integriert
-- Feature - Filter in Bestellverwaltung (aktive Abos, anstehende AbokÃŒndigungen, gekÃŒndigte Abos)
 - Feature - Mehrfachbestellung von AboProdukten optional mÃ¶glich
 - Feature - Hinweistexthinterlegung fÃŒr Mehrfachbestellungen von AboProdukten
-
+- Feature - Integration Aboverwaltung
Index: /mods/wpsg_mod_abo.class.php
===================================================================
--- /mods/wpsg_mod_abo.class.php	(revision 6854)
+++ /mods/wpsg_mod_abo.class.php	(revision 6855)
@@ -49,4 +49,10 @@
 
 			require_once(WPSG_PATH_WP.'/wp-admin/includes/upgrade.php');
+			
+			// Grundeinstellung Pro Seite
+			if ($this->shop->get_option('wpsg_mod_abo_perpage') === false || $this->shop->get_option('wpsg_mod_abo_perpage') == '')
+			{
+				$this->shop->update_option('wpsg_mod_abo_perpage', '20');
+			}
 
 			/**
@@ -102,5 +108,77 @@
 
 		} // public function install()
-
+		
+		/**
+		 * Ãbersicht ÃŒber die Kunden im Backend
+		 */
+		private function be_indexAction()
+		{
+		
+			if (isset($_REQUEST['wpsg_do']) && $_REQUEST['wpsg_do'] !== '-1')
+			{
+		
+				if ($_REQUEST['wpsg_do'] === 'setAccount') return $this->be_index_setAccount();
+		
+			}
+		
+			$nPerPage = $this->shop->get_option('wpsg_mod_abo_perpage');
+			if ($nPerPage <= 0) $nPerPage = 10;
+		
+			$this->shop->view['hasFilter'] = false;
+			$this->shop->view['arFilter'] = array(
+					'order' => 'cdate',
+					'ascdesc' => 'ASC',
+					'status' => '0',
+					'page' => '1'
+			);
+			$this->shop->view['arData'] = array();
+			$this->shop->view['pages'] = 1;
+		
+			if (wpsg_isSizedArray($_REQUEST['filter']))
+			{
+		
+				$this->shop->view['arFilter'] = $_REQUEST['filter'];
+				$this->shop->view['hasFilter'] = true;
+		
+			}
+			else if (wpsg_isSizedArray($_SESSION['wpsg']['backend']['customer']['arFilter']))
+			{
+		
+				$this->shop->view['arFilter'] = $_SESSION['wpsg']['backend']['customer']['arFilter'];
+		
+			}
+		
+			$this->shop->view['countAll'] = wpsg_customer::count($this->shop->view['arFilter']);
+		
+			if (wpsg_isSizedInt($_REQUEST['seite'])) $this->shop->view['arFilter']['page'] = $_REQUEST['seite'];
+		
+			$this->shop->view['pages'] = ceil($this->shop->view['countAll'] / $nPerPage);
+			if ($this->shop->view['arFilter']['page'] <= 0 || $this->shop->view['arFilter']['page'] > $this->shop->view['pages']) $this->shop->view['arFilter']['page'] = 1;
+		
+			$this->shop->view['arFilter']['limit'] = array(($this->shop->view['arFilter']['page'] - 1) * $nPerPage, $nPerPage);
+		
+			// Filter speichern
+			$_SESSION['wpsg']['backend']['customer']['arFilter'] = $this->shop->view['arFilter'];
+		
+			$this->shop->view['arData'] = wpsg_customer::find($this->shop->view['arFilter']);
+		
+			$this->shop->render(WPSG_PATH_VIEW.'/mods/mod_abo/index.phtml');
+			 
+		} // private function be_indexAction()
+		
+		public function dispatch()
+		{
+			
+			$this->be_indexAction();
+			
+		} // public function dispatch()
+
+		public function wpsg_add_pages()
+		{
+		
+			add_submenu_page('wpsg-Admin', __("Aboverwaltung", "wpsg"), __("Aboverwaltung", "wpsg"), 'wpsg_order', 'wpsg-Abo', array($this, 'dispatch'));
+				
+		} // public function wpsg_add_pages()
+		
 		public function settings_edit()
 		{
@@ -114,18 +192,23 @@
 
 			$this->shop->update_option('wpsg_mod_abo_url', $_REQUEST['wpsg_mod_abo_url']);
+			$this->shop->update_option('wpsg_mod_abo_perpage', $_REQUEST['wpsg_mod_abo_perpage']);
 
 			$this->shop->update_option('wpsg_mod_abo_wpsgmodabofirstbuy', $_REQUEST['wpsg_mod_abo_wpsgmodabofirstbuy']);
 			$this->shop->update_option('wpsg_mod_abo_wpsgmodaboexpiration', $_REQUEST['wpsg_mod_abo_wpsgmodaboexpiration']);
 			$this->shop->update_option('wpsg_mod_abo_wpsgmodabrebuy', $_REQUEST['wpsg_mod_abo_wpsgmodabrebuy']);
-            $this->shop->update_option('wpsg_mod_abo_expiremode', $_REQUEST['wpsg_mod_abo_expiremode']);            
-            
-            $this->shop->update_option('wpsg_mod_abo_autoexpire_payment', $_REQUEST['wpsg_mod_abo_autoexpire_payment']);
-            $this->shop->update_option('wpsg_mod_abo_autoexpire_customermail', $_REQUEST['wpsg_mod_abo_autoexpire_customermail']);
-            $this->shop->update_option('wpsg_mod_abo_autoexpire_adminmail', $_REQUEST['wpsg_mod_abo_autoexpire_adminmail']);
-            $this->shop->update_option('wpsg_mod_abo_autoexpire_customer', $_REQUEST['wpsg_mod_abo_autoexpire_customer']);
-            
-            $this->shop->update_option('wpsg_mod_abo_moreorder', $_REQUEST['wpsg_mod_abo_moreorder']);
-            $this->shop->update_option('wpsg_mod_abo_moreorder_text', $_REQUEST['wpsg_mod_abo_moreorder_text']);
-            $this->shop->update_option('wpsg_mod_abo_nomoreorder_text', $_REQUEST['wpsg_mod_abo_nomoreorder_text']);
+      $this->shop->update_option('wpsg_mod_abo_expiremode', $_REQUEST['wpsg_mod_abo_expiremode']);            
+            
+      $this->shop->update_option('wpsg_mod_abo_autoexpire_payment', $_REQUEST['wpsg_mod_abo_autoexpire_payment']);
+     	$this->shop->update_option('wpsg_mod_abo_autoexpire_customermail', $_REQUEST['wpsg_mod_abo_autoexpire_customermail']);
+      $this->shop->update_option('wpsg_mod_abo_autoexpire_adminmail', $_REQUEST['wpsg_mod_abo_autoexpire_adminmail']);
+      $this->shop->update_option('wpsg_mod_abo_autoexpire_customer', $_REQUEST['wpsg_mod_abo_autoexpire_customer']);
+            
+      $this->shop->update_option('wpsg_mod_abo_moreorder', $_REQUEST['wpsg_mod_abo_moreorder']);
+      $this->shop->update_option('wpsg_mod_abo_moreorder_text', $_REQUEST['wpsg_mod_abo_moreorder_text']);
+      $this->shop->update_option('wpsg_mod_abo_nomoreorder_text', $_REQUEST['wpsg_mod_abo_nomoreorder_text']);
+           
+      $this->shop->update_option('wpsg_mod_abo_moreorder_product', $_REQUEST['wpsg_mod_abo_moreorder_product']);
+      $this->shop->update_option('wpsg_mod_abo_moreorder_producttext', $_REQUEST['wpsg_mod_abo_moreorder_producttext']);    
+      $this->shop->update_option('wpsg_mod_abo_nomoreorder_product_text', $_REQUEST['wpsg_mod_abo_nomoreorder_product_text']);
             
             
Index: /views/mods/mod_abo/index.phtml
===================================================================
--- /views/mods/mod_abo/index.phtml	(revision 6855)
+++ /views/mods/mod_abo/index.phtml	(revision 6855)
@@ -0,0 +1,343 @@
+<?php
+
+/**
+ * Template fÃŒr die Ãbersicht der Abonnements
+*/
+?>
+
+<div class="wpsg_order" id="wpsg-bs">
+
+	<nav class="navbar navbar-default">
+		<div class="container-fluid">
+			<div class="navbar-header">
+                
+				<a class="navbar-brand" href="#"><?php echo __('wpShopGermany', 'wpsg'); ?></a>
+                <a class="glyphicon glyphicon-menu-hamburger wpsg-bs-toggle-nav visible-xs-block" data-toggle="collapse" data-target="#wpsg-bs-headermenu" href="#"></a>
+                
+			</div>
+			<div class="collapse navbar-collapse" id="wpsg-bs-headermenu">
+				<ul class="nav navbar-nav">
+					<li role="presentation" class="<?php echo ((!isset($_REQUEST['action']))?'active':''); ?>"><a href="<?php echo WPSG_URL_WP; ?>wp-admin/admin.php?page=wpsg-Order" onclick="return false;"><?php echo __("AboÃŒbersicht", "wpsg"); ?></a></li>
+					<li role="presentation" class="wpsg_showhide_filter wpsg-order-tab-a <?php echo (($this->view['hasFilter'] === true)?'active':''); ?>" id="wpsg-order-tab-0"><a href="#" onclick="return false;"><span class="glyphicon glyphicon-search"></span><?php echo __("Suche", "wpsg"); ?></a></li>                  
+				</ul>
+			</div>
+		</div>
+
+		<div class="wpsg-filter wpsg-order-tab wpsg-order-tab-0 container-fluid form-horizontal" style="display:<?php echo (($this->view['hasFilter'] === true)?'block':'none'); ?>;">
+			<div class="row">
+				<div class="col-lg-4">
+					<form method="post" id="filter_form" >
+
+						<input id="wpsg_seite" type="hidden" name="seite" value="<?php echo @$this->view['arFilter']['page']; ?>" class="current-page" />
+						<input id="wpsg_order" type="hidden" name="filter[order]" value="<?php echo @$this->view['arFilter']['order']; ?>" />
+						<input id="wpsg_ascdesc" type="hidden" name="filter[ascdesc]" value="<?php echo @$this->view['arFilter']['ascdesc']; ?>" />
+
+						<?php echo wpsg_drawForm_Input('filter[s]', __('Suchfeld', 'wpsg'), wpsg_getStr($this->view['arFilter']['s'])); ?>
+                        <?php echo wpsg_drawForm_Input('filter[k_id]', __('Kunde (ID)', 'wpsg'), wpsg_getStr($this->view['arFilter']['k_id'])); ?>
+						<?php echo wpsg_drawForm_Select('filter[status]', __('Abostatus', 'wpsg'), wpsg_array_merge(array('-1' => __('Alle', 'wpsg')), $this->arStatus), @$this->view['arFilter']['status']); ?>
+
+                        <?php echo wpsg_drawForm_TextStart(); ?>
+                        <div class="row">
+                            <div class="col-lg-6">
+                                <select name="filter[cdate_m]" class="form-control input-sm">
+                                    <option value="-1"><?php echo __("Alle", "wpsg"); ?></option>
+                                    <?php for ($i = 1; $i <= 12; $i ++) { ?>
+                                    <option <?php echo ((wpsg_getStr($this->view['arFilter']['cdate_m']) == $i)?'selected="selected"':''); ?> value="<?php echo str_pad($i, 2, '0', STR_PAD_LEFT); ?>"><?php echo strftime("%B", mktime(0, 0, 0, $i, 1, 2000)); ?></option>
+                                    <?php } ?>
+                                </select>
+                            </div>
+                            <div class="col-lg-6">
+                                <select name="filter[cdate_y]" class="form-control input-sm">
+                                    <option value="-1"><?php echo __("Alle", "wpsg"); ?></option>
+                                    <?php foreach ($this->view['cdate_years'] as $y) { ?>
+                                    <option <?php echo ((wpsg_getStr($this->view['arFilter']['cdate_y']) == $y)?'selected="selected"':''); ?> value="<?php echo $y; ?>"><?php echo $y; ?></option>
+                                    <?php } ?>
+                                </select>
+                            </div>
+                        </div>
+                        <?php echo wpsg_drawForm_TextEnd(__('Abo abgeschlossen am (Monat/Jahr)', 'wpsg'), array('noP' => true)); ?>       
+                        
+                        <?php echo wpsg_drawForm_TextStart(); ?>
+                        <div class="row">
+                            <div class="col-lg-6">
+                                <select name="filter[cdate_m]" class="form-control input-sm">
+                                    <option value="-1"><?php echo __("Alle", "wpsg"); ?></option>
+                                    <?php for ($i = 1; $i <= 12; $i ++) { ?>
+                                    <option <?php echo ((wpsg_getStr($this->view['arFilter']['cdate_m']) == $i)?'selected="selected"':''); ?> value="<?php echo str_pad($i, 2, '0', STR_PAD_LEFT); ?>"><?php echo strftime("%B", mktime(0, 0, 0, $i, 1, 2000)); ?></option>
+                                    <?php } ?>
+                                </select>
+                            </div>
+                            <div class="col-lg-6">
+                                <select name="filter[cdate_y]" class="form-control input-sm">
+                                    <option value="-1"><?php echo __("Alle", "wpsg"); ?></option>
+                                    <?php foreach ($this->view['cdate_years'] as $y) { ?>
+                                    <option <?php echo ((wpsg_getStr($this->view['arFilter']['cdate_y']) == $y)?'selected="selected"':''); ?> value="<?php echo $y; ?>"><?php echo $y; ?></option>
+                                    <?php } ?>
+                                </select>
+                            </div>
+                        </div>
+                        <?php echo wpsg_drawForm_TextEnd(__('Abo gekÃŒndigt am (Monat/Jahr)', 'wpsg'), array('noP' => true)); ?>                      
+
+    					<br />
+                        
+                        <?php echo wpsg_drawForm_SubmitButton(__('Abonnement suchen')); ?>
+
+					</form>
+				</div>
+			</div>
+		</div>
+    
+    </nav>
+    
+    <div class="wpsg_msg_wrap"><hr class="wp-header-end wpsg-wp-header-end"/></div>
+
+	<div class="pagination_wrap wpsg_status_link_wrap">
+
+		<ul class="pagination">
+			<?php foreach ($this->view['arStatus'] as $status_key => $status_info) { ?>
+			<li class="<?php echo ((wpsg_getStr($this->view['arFilter']['status']) == $status_key)?'active':''); ?>"><a href="#" onclick="return wpsg_setFilterStatus('<?php echo $status_key; ?>');"><?php echo wpsg_translate(__('#1# <span>(#2#)<span>', 'wpsg'), $status_info['label'], $status_info['count']); ?></a></li>
+			<?php } ?>
+		</ul>
+
+	</div>
+
+	<?php $this->render(WPSG_PATH_VIEW.'/admin/pager.phtml'); ?>
+
+	<div class="wpsg_clear"></div>
+
+	<div class="content">
+		<form method="post" action="<?php echo WPSG_URL_WP; ?>wp-admin/admin.php?page=wpsg-Order&noheader=1" enctype="multipart/form-data">
+
+		<?php if (is_array($this->view['arData']) && sizeof($this->view['arData']) > 0) { ?>
+
+            <table class="table table-bordered table-hover table-striped wpsg-table-order">
+                <thead>
+                    <tr>
+                        <th class="col_checkbox"><input type="checkbox" onclick="return wpsg_order_checkAll();" /></th>
+                        <th class="col_nr wpsg_order" data-order="cdate"><?php echo __('Nr', 'wpsg'); ?></th>
+                        <th class="col_customer wpsg_order" data-order="customer"><?php echo __('Kunde', 'wpsg'); ?></th>
+                        <th class="col_payment wpsg_order" data-order="payment"><?php echo __('Bezahlmethode', 'wpsg'); ?></th>
+                        <th class="col_shipping wpsg_order" data-order="shipping"><?php echo __('Versandart', 'wpsg'); ?></th>
+                        <th class="col_products wpsg_order" data-order="products"><?php echo __('Abonnement', 'wpsg'); ?></th>                       
+                        <th class="col_sum wpsg_order" data-order="amount"><?php echo __('Bestellwert', 'wpsg'); ?></th>
+                        <th class="col_state wpsg_order" data-order="time"><?php echo __('Laufzeit', 'wpsg'); ?></th>
+                    </tr>
+                </thead>
+                <tbody>
+                    <?php foreach ($this->view['arData'] as $oOrder) { ?>
+                    <tr>
+                        <td class="col_checkbox">
+
+                            <input class="col_set_checkbox" name="wpsg_multido[<?php echo $oOrder->id; ?>]" type="checkbox" />
+
+                        </td>                       
+                        <td class="col_nr">
+
+                            <?php echo $oOrder->getNr(); ?> <span class="wpsg_grey"><?php echo wpsg_formatTimestamp(strtotime($oOrder->cdate), false); ?></span><br />
+
+                            <div class="actions">
+                                <span class="view"><a title="<?php echo __("Diese Abonnement ansehen", "wpsg"); ?>" href="<?php echo WPSG_URL_WP; ?>wp-admin/admin.php?page=wpsg-Order&action=view&edit_id=<?php echo $oOrder->id; ?>"><?php echo __("Ansehen", "wpsg"); ?></a></span>
+                                |
+                                <span class="storno"><a onclick="return confirm('<?php echo __('Sind Sie sich sicher, dass Sie diese Abonnement kÃŒndigen mÃ¶chten?', 'wpsg'); ?>');" title="<?php echo __("Diese Abonnement stornieren", "wpsg"); ?>" href="<?php echo WPSG_URL_WP; ?>wp-admin/admin.php?page=wpsg-Order&action=storno&noheader=1&edit_id=<?php echo $oOrder->id; ?>"><?php echo __("KÃŒndigen", "wpsg"); ?></a></span>
+                                |
+                                <span class="delete"><a onclick="return confirm('<?php echo __('Sind Sie sich sicher, dass Sie dieses Abonnement lÃ¶schen mÃ¶chten?', 'wpsg'); ?>');" title="<?php echo __('Diese Abonnement lÃ¶schen', 'wpsg'); ?>" href="<?php echo WPSG_URL_WP; ?>wp-admin/admin.php?page=wpsg-Order&action=delete&noheader=1&edit_id=<?php echo $oOrder->id; ?>"><?php echo __('LÃ¶schen', 'wpsg'); ?></a></span>
+                            </div>
+												
+                            <?php if (trim($oOrder->admincomment) != "") { ?>
+                            <a title="<?php echo __("Kommentar (Admin): ", "wpsg").htmlspecialchars($oOrder->admincomment); ?>" onclick="return false;" class="glyphicon glyphicon-question-sign admincomment" href="#"></a>
+                            <?php } ?>
+
+                            <?php if (trim($oOrder->comment) != "") { ?>
+                            <a title="<?php echo __("Kommentar (Kunde): ", "wpsg").htmlspecialchars($oOrder->comment); ?>" onclick="return false;" class="glyphicon glyphicon-question-sign customercomment" href="#"></a>
+                            <?php } ?>
+														
+                            <?php if ($oOrder->hasShippingAdress()) { ?>
+                            <a title="<?php echo __("Lieferadresse beachten", "wpsg"); ?>" onclick="return false;" class="glyphicon glyphicon-map-marker shippingadress" href="#"></a>
+                            <?php } ?>                                                  
+
+                        </td>                        
+                        <td class="col_customer">
+                            <?php $firma = $oOrder->getInvoiceCompany(); if (wpsg_isSizedString($firma)) { ?>
+                            <?php echo $firma; ?><br />
+                            <?php } ?>
+                            <?php echo $oOrder->getInvoiceTitle(); ?> <?php echo $oOrder->getInvoiceFirstname(); ?> <?php echo $oOrder->getInvoiceName(); ?>
+                            <br />
+                            <span class="wpsg_grey"><?php echo $oOrder->getInvoiceStreet(); ?><br />
+                            <?php echo ltrim($oOrder->getInvoiceZip().' '.$oOrder->getInvoiceCity()); ?> <?php echo $oOrder->getInvoiceCountryKuerzel(); ?>
+                            </span>
+                        </td>                        
+                        <td class="col_payment">
+
+                            <?php /* Bei Crefopay wird die Darstellung der Zahlungsart ÃŒber das Modul geregelt */ ?>
+                            <?php if ($oOrder->getPaymentID() == 4000 && $this->hasMod('wpsg_mod_crefopay')) { ?>
+                                <?php echo wpsg_hspc($this->callMod('wpsg_mod_crefopay', 'getOrderPaymentName', array($oOrder->id))); ?>
+                            <?php } else { ?>
+                                <?php echo $oOrder->getPaymentLabel(); ?>
+                            <?php } ?>
+
+                            <?php if ($oOrder->getPaymentAmount() > 0) { ?>
+                            &nbsp;-&nbsp;<?php echo wpsg_ff($oOrder->getPaymentAmount(), $this->get_option('wpsg_currency')); ?>
+                            <?php } ?>
+
+                        </td>                        
+                        <td class="col_shipping">
+
+                            <?php echo $oOrder->getShippingLabel(); ?>
+
+                            <?php if ($oOrder->getShippingAmount() > 0) { ?>
+                            &nbsp;-&nbsp;<?php echo wpsg_ff($oOrder->getShippingAmount(), $this->get_option('wpsg_currency')); ?>
+                            <?php } ?>
+
+                            <?php if ($oOrder->hasShippingAdress()) { ?>
+                                <br />
+                                <?php echo $oOrder->getShippingTitle(); ?> <?php echo $oOrder->getShippingFirstName(); ?> <?php echo $oOrder->getShippingName(); ?><br />
+                                <span class="wpsg_grey">
+                                    <?php echo $oOrder->getShippingStreet(); ?>
+                                    <?php echo $oOrder->getShippingZip(); ?> <?php echo $oOrder->getShippingCity(); ?> <?php echo $oOrder->getShippingCountryKuerzel(); ?><br />
+                            </span>
+                            <?php } ?>
+
+                        </td>                     
+                        <td class="col_products">
+
+                            <?php $oOrderProducts = $oOrder->getOrderProducts(); ?>
+                            
+                            <?php foreach ($oOrderProducts as $oOrderProduct) { ?>
+                            
+                                <?php echo wpsg_translate(__('#1# x <a href="#2#">#3#</a> fÃŒr je #4#', 'wpsg'),
+                                    $oOrderProduct->getCount(),
+                                    WPSG_URL_WP.'wp-admin/admin.php?page=wpsg-Produkt&action=edit&edit_id='.$oOrderProduct->getProductId(),
+                                    $oOrderProduct->getProductName(),
+                                    wpsg_ff($oOrderProduct->getOneAmount(), $this->get_option('wpsg_currency'))
+                                ); ?>
+                            
+                            <?php } ?>
+
+                        </td>
+                        <td class="col_sum">
+                            <?php echo wpsg_ff($oOrder->getAmount(), $this->get_option('wpsg_currency')); ?>
+                        </td>
+                        
+                        /* Laufzeitspalte */
+                        <td class="col_time">
+                            <?php if (in_array(strval($this->callMod('wpsg_mod_abo', 'isAboOrder', array($oOrder->id))), array(1))) { ?>
+
+                            	<?php $abo_expiration = strtotime($this->callMod('wpsg_mod_abo', 'getOrderAboExpiration', array($oOrder->id, $oOrderProduct->getProductKey()))); ?>
+
+                              <?php echo __('Abo Laufzeit:', 'wpsg'); ?>
+
+                              <?php if ($abo_expiration > time()) { ?>
+                              	
+                              	<span class="wpsg_mod_abo_future_expire"><?php echo wpsg_formatTimestamp($abo_expiration); ?></span>
+                              
+                              <?php } else { ?>
+                              
+                              	<span class="wpsg_mod_abo_expired"><?php echo wpsg_formatTimestamp($abo_expiration); ?></span>
+                                
+                              <?php } ?>
+
+                              <br />
+                                        
+                            <?php } ?>
+                            
+                       </td>
+                       
+                    </tr>
+                    
+                    <?php } ?>
+                    
+                </tbody>
+                
+            </table>
+
+            <div class="alignleft actions">
+                <select name="wpsg_action" id="wpsg_action">
+                    <option value="-1"><?php echo __('Aktion wÃ€hlen', 'wpsg'); ?></option>
+                    <option value="multiDelete"><?php echo __('Abonnement(s) lÃ¶schen', 'wpsg'); ?></option>             
+                </select>
+
+                <input onclick="if (jQuery('#wpsg_action').val() == 'multiDelete') { if (!confirm('<?php echo __('Sind Sie sich sicher?', 'wpsg'); ?>')) return false; }" type="submit" value="<?php echo __('AusfÃŒhren', 'wpsg'); ?>" class="button-secondary action" id="doaction" name="wpsg_order_doaction" />
+
+            </div>
+
+            <div style="margin-right:-15px;">
+                <?php $this->render(WPSG_PATH_VIEW.'/admin/pager.phtml'); ?>
+            </div>
+
+            <div class="wpsg_clear"></div>
+
+
+		<?php } else { ?>
+
+            <?php echo wpsg_drawForm_AdminboxStart(); ?>
+    		<?php echo __('Keine Abonnements in der Datenbank.', 'wpsg'); ?>
+            <?php echo wpsg_drawForm_AdminboxEnd(); ?>
+
+		<?php } ?>
+		<input id="noheader1" type="hidden" name="noheader1" value="1" />
+		</form>
+	</div>
+
+<script type="text/javascript">/* <![CDATA[ */
+
+    <?php if (wpsg_isSizedString($this->view['arFilter']['order']) && wpsg_isSizedString($this->view['arFilter']['ascdesc'])) { ?>
+    jQuery('th[data-order="<?php echo @$this->view['arFilter']['order']; ?>"]').addClass('wpsg_order_<?php echo strtolower(@$this->view['arFilter']['ascdesc']); ?>');
+    <?php } ?>
+
+    function wpsg_order_checkAll()
+    {
+
+        jQuery('.col_set_checkbox').each(function() { jQuery(this).prop('checked', !jQuery(this).prop('checked')); } );
+
+    }
+
+	function wpsg_setFilterStatus(state)
+	{
+
+		jQuery('#filterstatus').val(state);
+
+		jQuery('#seite').val(1);
+		jQuery('#filter_form').submit();
+
+		return false;
+
+	}
+
+	function goPage(page)
+	{
+
+		//if (page <= 0 || page == <?php echo $this->view['arFilter']['page']; ?> || page > <?php echo wpsg_getStr($this->view['pages'], '0'); ?>) return;
+
+		jQuery('#wpsg_seite').val(page);
+		jQuery('#filter_form').submit();
+
+		return false;
+
+	} // function goPage(page)
+
+    jQuery(document).ready(function() {
+
+        jQuery('.wpsg-order-tab-mods').bind('click', function() {
+
+            if (jQuery(this).hasClass('active'))
+            {
+
+                jQuery(this).removeClass('active');
+                jQuery('.' + jQuery(this).attr("id")).slideUp(250);
+
+            }
+            else
+            {
+
+                jQuery(this).addClass('active');
+                jQuery('.' + jQuery(this).attr("id")).slideDown(250);
+
+            }
+
+            return false;
+
+        } );
+
+    } );
+
+/* <![CDATA[ */</script>
Index: /views/mods/mod_abo/produkt_addedit_content.phtml
===================================================================
--- /views/mods/mod_abo/produkt_addedit_content.phtml	(revision 6854)
+++ /views/mods/mod_abo/produkt_addedit_content.phtml	(revision 6855)
@@ -54,8 +54,48 @@
 			<div class="wpsg_clear"></div>
 			
+			
+			<?php /* TODO: PrÃŒfung auf Mehrfachbestellung fÃŒr das spezielle Produkt */?>
+			<?php /* Option: Mehrfachbestellung mÃ¶glich */ ?>
+			<?php echo wpsg_drawForm_Checkbox('wpsg_mod_abo_moreorder_product', __('Mehrfachbestellung mÃ¶glich', 'wpsg'), $this->get_option('wpsg_mod_abo_moreorder_product'), array ('help' => 'wpsg_mod_abo_moreorder_product')); ?>
+			
+			<?php /* Hinweistext: Mehrfachbestellung ja*/ ?>
+			<div class="wpsg_mod_expiremode_moreorder__productactiv" style="display:none;">
+			
+				<?php echo wpsg_drawForm_Input('wpsg_mod_abo_moreorder_producttext', __('Hinweistext', 'wpsg'), $this->get_option('wpsg_mod_abo_moreorder_text_product'), array('help' => 'wpsg_mod_abo_moreorder_product_text'));?>
+			
+			</div>
+			
+			<?php /* Hinweistext: Mehrfachbestellung nein */ ?>
+			<div class="wpsg_mod_expiremode_moreorder_productdeactiv">
+			
+				<?php echo wpsg_drawForm_Input('wpsg_mod_abo_nomoreorder_product_text', __('Hinweistext', 'wpsg'), $this->get_option('wpsg_mod_abo_nomoreorder_product_text'), array('help' => 'wpsg_mod_abo_nomoreorder_product_text'));?>
+			
+			</div>
+		
 		</div>
 		
 		<a href="<?php echo WPSG_URL_WP; ?>wp-admin/admin.php?page=wpsg-Admin&action=module&modul=wpsg_mod_abo"><span class="wpsg-glyphicon glyphicon glyphicon-wrench"></span><?php echo __('Zur Konfiguration des Abo-Moduls', 'wpsg'); ?></a>
-			
+		
 	</div>
 </div>
+<script type="text/javascript">/* <![CDATA[ */
+
+    jQuery(document).ready(function() {
+    	
+    	jQuery('#wpsg_mod_abo_moreorder_product').bind('change', function() {
+
+			if (jQuery(this).is(':checked')) jQuery('.wpsg_mod_expiremode_moreorder__productactiv').show();
+			else jQuery('.wpsg_mod_expiremode_moreorder__productactiv').hide();
+			
+		} ).change();
+		
+		jQuery('#wpsg_mod_abo_moreorder_product').bind('change', function() {
+
+			if (jQuery(this).is(':checked')) jQuery('.wpsg_mod_expiremode_moreorder_productdeactiv').hide();
+			else jQuery('.wpsg_mod_expiremode_moreorder_productdeactiv').show();
+			
+		} ).change();
+    	
+	} );
+
+/* ]]> */</script>
Index: /views/mods/mod_abo/settings_edit.phtml
===================================================================
--- /views/mods/mod_abo/settings_edit.phtml	(revision 6854)
+++ /views/mods/mod_abo/settings_edit.phtml	(revision 6855)
@@ -13,4 +13,8 @@
 <?php echo wpsg_drawForm_Checkbox('wpsg_mod_abo_wpsgmodabofirstbuy', __('Mail bei erstem Kauf eines Abos', 'wpsg'), $this->get_option('wpsg_mod_abo_wpsgmodabofirstbuy'), array('hint' => wpsg_translate(__('nohspc_Mail wird bei Bezahlung der Abo Bestellung zusÃ€tzlich versendet. (mail_firstbuy.phtml) -> <a href="#1#">Konfiguration</a>', 'wpsg'), WPSG_URL_WP.'wp-admin/admin.php?page=wpsg-Admin&subaction=emailconf#wpsgmodabofirstbuy'), 'help' => 'wpsg_mod_abo_wpsgmodabofirstbuy',)); ?>
 <?php echo wpsg_drawForm_Checkbox('wpsg_mod_abo_wpsgmodabrebuy', __('Mail bei Kauf einer VerlÃ€ngerung', 'wpsg'), $this->get_option('wpsg_mod_abo_wpsgmodabrebuy'), array('hint' => wpsg_translate(__('nohspc_Mail wird bei Bezahlung einer Abo VerlÃ€ngerung versendet. (mail_rebuy.phtml) -> <a href="#1#">Konfiguration</a>', 'wpsg'), WPSG_URL_WP.'wp-admin/admin.php?page=wpsg-Admin&subaction=emailconf#wpsgmodabrebuy'), 'help' => 'wpsg_mod_abo_wpsgmodabrebuy',)); ?>
+
+<br />
+
+<?php echo wpsg_drawForm_Input('wpsg_mod_abo_perpage', __('Kunden pro Seite (Backend)', 'wpsg'), $this->get_option('wpsg_mod_abo_perpage'), array('help' => 'wpsg_mod_abo_perpage')); ?>
 
 <br />
@@ -33,4 +37,7 @@
 	<?php echo wpsg_drawForm_Checkbox('wpsg_mod_abo_autoexpire_customermail', __('Mail an Kunden'), $this->get_option('wpsg_mod_abo_autoexpire_customermail'), array ('help' => 'wpsg_mod_abo_autoexpire_customermail')); ?>
 	<?php echo wpsg_drawForm_Checkbox('wpsg_mod_abo_autoexpire_adminmail', __('Mail an Administrator'), $this->get_option('wpsg_mod_abo_autoexpire_adminmail'), array ('help' => 'wpsg_mod_abo_autoexpire_adminmail')); ?>
+
+<br />
+
 	<?php echo wpsg_drawForm_Select('wpsg_mod_abo_autoexpire_customer', __('Kunde kann im Frontend'), Array(
 		wpsg_mod_abo::CUSTOMER_AUTO_NOTHING => __('Nichts', 'wpsg'),
@@ -41,5 +48,7 @@
 </div>
 
-<?php /* TODO: PrÃŒfung auf Mehrfachbestellung */?>
+<br /> 
+
+<?php /* TODO: PrÃŒfung auf Mehrfachbestellung global */?>
 <?php /* Option: Mehrfachbestellung mÃ¶glich */ ?>
 <?php echo wpsg_drawForm_Checkbox('wpsg_mod_abo_moreorder', __('Mehrfachbestellung mÃ¶glich', 'wpsg'), $this->get_option('wpsg_mod_abo_moreorder'), array ('help' => 'wpsg_mod_abo_moreorder')); ?>
