Index: /mods/wpsg_mod_sms.class.php
===================================================================
--- /mods/wpsg_mod_sms.class.php	(revision 7257)
+++ /mods/wpsg_mod_sms.class.php	(revision 7257)
@@ -0,0 +1,231 @@
+<?php 
+
+	class wpsg_mod_sms extends wpsg_mod_basic 
+	{
+		
+		var $lizenz = 0;
+		var $id = 2150;
+		var $hilfeURL = 'http://wpshopgermany.de/?p=3886';
+		
+		/**
+		 * Costructor
+		 */
+		public function __construct()
+		{
+			
+			parent::__construct();
+			
+			$this->name 	= __('SMS-Versand', 'wpsg');
+			$this->group 	= __('Sonstiges', 'wpsg');
+			$this->desc 	= __('Erlaubt es in der Bestellverwaltung dem Kunden eine SMS zu senden.', 'wpsg');
+						
+		} // public function __construct()
+		
+		public function sms_send ()
+		{
+			
+			// Anfang der Telefonnummer vom Kunden in "00" Umwandeln wenn mit "+" anfÃ€ngt
+			
+			$url = 'https://www.smsflatrate.net/schnittstelle.php';     // Variable fÃŒr SMS Versand Feld (a)
+			
+			$fields = array (
+					'key' => '38xxxxxxxxxxxxxxxxxxxxxx0f',              // Variable fÃŒr SMS Versand Feld (b)
+					'from' => '00491000000000',                         // Variable fÃŒr SMS Versand Feld (c)
+					'to' => $telefon,                                   // kommt aus den Kundendaten
+					'text' => $nachricht_sms,                           // kommt aus einem neuen Formular in der Bestellbearbeitung - Kundenkontakt
+					'type' => 'auto10or11',                             // Variable fÃŒr SMS Versand Feld (d)
+					'status' => '1',                                    // Variable fÃŒr SMS Versand Feld (e)
+					'reply' => '2',                                     // Variable fÃŒr SMS Versand Feld (f)
+					'replytomail' => $mailadresse,                      // Variable fÃŒr SMS Versand Feld (g)
+			);
+			
+			$ch = curl_init();                                       	// Neues cURL Objekt erzeugen
+			curl_setopt($ch,CURLOPT_URL,$url );                         // URL die aufgerufen werden soll
+			curl_setopt($ch, CURLOPT_POST, 1);                          // Legt fest das ÃŒber POST Daten mitgegeben werden sollen
+			curl_setopt($ch,CURLOPT_POST, count($fields));              // Anzahl der POST Keys, einfach das Array zÃ€hlen lassen ;)
+			curl_setopt($ch,CURLOPT_POSTFIELDS, $fields);               // Das Array mitgeben
+			curl_setopt($ch,CURLOPT_RETURNTRANSFER, true);              // Wenn die Gegenstelle antwortet, bitte im return ausgeben
+			$result = curl_exec($ch);                                   // Nachricht senden
+			curl_close($ch);                                            // AbschlieÃend die Verbindung trennen
+			
+			$sende_sms_ergebnis = substr($result, 0, 3);                // RÃŒckgabewert auslesen und auf den Dreistelligen Code reduzieren
+			
+			return $sende_sms_ergebnis;                                 // RÃŒckgabewert (RÃŒckgabewerte aus dem SMS Versand der in Klartext umwandelt werden soll)		
+			
+		}
+		
+		/**
+		 * zeigt das Formular zum Senden in der Bestellverwaltung
+		 */
+		public function order_view($order_id, &$arSidebarArray)
+		{
+
+			$arSidebarArray[$this->id] = array(
+				'title' => $this->name,
+				'content' => $this->shop->render(WPSG_PATH_VIEW.'mods/mod_sms/order_view.phtml', false)
+			);
+			
+		} // public function order_view_content($order_id)
+		
+		public function install()
+		{
+				
+			require_once(WPSG_PATH_WP.'/wp-admin/includes/upgrade.php');
+		
+			/**
+			 * Tabelle fÃŒr die Lieferanten
+			*/
+			$sql = "CREATE TABLE ".WPSG_TBL_sms_statuscode." (
+				`id` int(11) NOT NULL,
+				`status_code` varchar(3) CHARACTER SET latin1 COLLATE latin1_german2_ci NOT NULL,
+				`status_text` text CHARACTER SET latin1 COLLATE latin1_german2_ci NOT NULL
+				) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1;";
+				
+			/*	
+			INSERT INTO `sys_sms_statuscode` (`id`, `status_code`, `status_text`) VALUES
+			(1, '100', 'SMS erfolgreich an das Gateway ÃŒbertragen.'),
+			(2, '101', 'SMS wurde zugestellt.'),
+			(3, '102', 'SMS wurde noch nicht zugestellt.'),
+			(4, '103', 'SMS konnte vermutlich nicht zugestellt werden (Rufnummer falsch, SIM nicht aktiv).'),
+			(5, '104', 'SMS konnte nach Ablauf von 48 Stunden noch immer nicht zugestellt werden.'),
+			(6, '109', 'SMS ID abgelaufen oder ungÃŒltig (manuelle Status-Abfrage).'),
+			(7, '110', 'Falscher Schnittstellen-Key oder Ihr Account ist gesperrt.'),
+			(8, '120', 'Guthaben reicht nicht aus.'),
+			(9, '130', 'Falsche DatenÃŒbergabe (z.B. Absender fehlt).'),
+			(10, '131', 'EmpfÃ€nger nicht korrekt.'),
+			(11, '132', 'Absender nicht korrekt.'),
+			(12, '133', 'Nachrichtentext nicht korrekt.'),
+			(13, '140', 'Falscher AppKey oder Ihr Account ist gesperrt.'),
+			(14, '150', 'Sie haben versucht an eine internationale Handynummer eines Gateways, das ausschlieÃlich fÃŒr den Versand nach Deutschland bestimmt ist, zu senden.'),
+			(15, '170', 'Parameter âtime=â ist nicht korrekt. Bitte im Format: TT.MM.JJJJ-SS:MM oder Parameter entfernen fÃŒr sofortigen Versand.'),
+			(16, '171', 'Parameter âtime=â ist zu weit in der Zukunft terminiert (max. 360 Tage).'),
+			(17, '231', 'Keine smsflatrate.net Gruppe vorhanden oder nicht korrekt.'),
+			(18, '404', 'Unbekannter Fehler. Bitte dringend Support (ticket@smsflatrate.net) kontaktieren.');
+			*/	
+			
+			// FrÃŒher gab es "product_keys" welches aber nicht eindeutig war, da es aktuell mehrmals den gleichen SchlÃŒssel im Warenkorb geben kann
+				
+			dbDelta($sql);
+		
+		
+			if ($this->shop->get_option('wpsg_mod_anschreiben_texte') === false) $this->resetAction();
+				
+		} // public function install()
+		
+		public function order_ajax()
+		{
+			
+			if ($_REQUEST['do'] == 'sms_switchTemplate')
+			{
+				
+				$this->switchTemplate();
+				
+			}
+
+			if ($_REQUEST['do'] == 'sms_sendMail')
+			{
+				
+				$this->send();
+				
+			}
+			
+		}
+		
+		public function admin_emailconf()
+		{
+			
+			echo wpsg_drawEMailConfig(
+				'customercontact', 
+				__('SMS, die vom sms Modul versendet wird.', 'wpsg'), 
+				__('Diese SMS kann in der Bestellverwaltung an den Kunden versendet werden.', 'wpsg')); 
+						
+		} // public function admin_emailconf()
+		
+		public function admin_emailconf_save() 
+		{
+			
+			wpsg_saveEMailConfig("customercontact");
+			 			
+		} // public function admin_emailconf_save()
+		
+		/* Modulfunktionen */
+		
+		/**
+		 * 
+		 * ermÃ¶glicht die Auswahl eines Templates zum Versenden als SMS
+		 */
+		private function switchTemplate()
+		{
+			
+			if ($_REQUEST['template_file'] != '-1')
+			{
+				 
+				$path = $this->shop->getRessourcePath('mods/mod_sms/templates/');
+				
+				$basket = new wpsg_basket();
+				$basket->initFromDB(wpsg_q($_REQUEST['edit_id']));
+			
+				$this->shop->view['basket'] = $basket->toArray();
+				$this->shop->view['order'] = $this->shop->cache->loadOrder($_REQUEST['edit_id']);
+				$this->shop->view['kunde'] = $this->shop->cache->loadKunden($this->shop->view['order']['k_id']);
+				
+				$order_data = $this->shop->cache->loadOrder($_REQUEST['edit_id']);
+				if (trim($order_data['language']) != '') $this->shop->setTempLocale($order_data['language']);
+				
+				$this->shop->view['datum'] = time();
+				
+				// Namen und Betreff des Templates ermitteln
+				$template_name = "";
+				$template_betreff = ""; 
+				
+            	global $template_name, $template_betreff;
+				
+				$template = $path.wpsg_q($_REQUEST['template_file']);
+								
+				$content = $this->shop->render($template, false);				
+				$content = $this->shop->replaceUniversalPlatzhalter($content, $_REQUEST['edit_id']);
+				$template_betreff = $this->shop->replaceUniversalPlatzhalter($template_betreff, $_REQUEST['edit_id']);
+				 				
+				$this->shop->restoreTempLocale();
+								
+				$arData = array(
+					'content' => $content						
+				);
+				
+				header('Content-Type: application/json');
+				
+				die(json_encode($arData));
+				
+			}
+
+		}
+		
+		/**
+		 * 
+		 * Enter description here ...
+		 */
+		private function send()
+		{ 
+			
+			$mail_text = $this->shop->replaceUniversalPlatzhalter($_REQUEST['text'], $_REQUEST['edit_id']);
+			$to = $_REQUEST['empfaenger'];
+			$subject = $this->shop->replaceUniversalPlatzhalter($_REQUEST['subject'], $_REQUEST['edit_id']);
+					 
+			$this->shop->sendMail($mail_text, $to, 'customercontact', array(), $_REQUEST['edit_id'], false, $mail_html, $subject);
+			
+			$this->shop->addBackendMessage(__('Eine Nachricht per SMS wurde versendet.', 'wpsg'));
+			
+			$this->db->ImportQuery(WPSG_TBL_OL, array(
+				'cdate' => 'NOW()',
+				'o_id' => wpsg_q($_REQUEST['edit_id']),
+				'title' => wpsg_q(wpsg_translate(__('sms "#1#"', 'wpsg'), $subject)),
+				'mailtext' => wpsg_q($mail_text)					
+			));
+			 			
+			die('1');
+			
+		}
+	
+	} // class wpsg_mod_sms extends wpsg_mod_basic 
+	
+?>
Index: /views/mods/mod_sms/order_view.phtml
===================================================================
--- /views/mods/mod_sms/order_view.phtml	(revision 7257)
+++ /views/mods/mod_sms/order_view.phtml	(revision 7257)
@@ -0,0 +1,124 @@
+<script type="text/javascript">
+				
+	jQuery(document).ready(function() { 
+ 
+		sms_switchTemplate();
+
+
+		/* Counter zur Darstellung der Zeichenanzahl */ 
+		$('.character-limit').keyup(function()
+		{
+
+			var count = $(this).val().length;
+			$('.counter').html(count);
+
+		});
+									
+
+	} );	
+
+	/* Counter zur Darstellung der Anzahl an Zeichen */
+	jQuery(document).ready(function() { 
+		
+
+	});
+
+	function sms_switchTemplate()
+	{
+ 
+		var template_val = jQuery("#sms_template").val();
+		
+	}
+		
+	function sms_sendMail()
+	{
+		
+		if (jQuery('#sms_text').val() == '')
+		{
+
+			alert("<?php echo __('Bitte einen Text angeben!', 'wpsg'); ?>");
+			return;
+			
+		}
+
+		var text = "";
+
+
+		text = jQuery('#sms_text').val();
+
+		jQuery.ajax( {
+			url: "<?php echo WPSG_URL_WP.'wp-admin/admin.php?page=wpsg-Order&action=ajax&mod=wpsg_mod_sms&edit_id='.$this->view['data']['id'].'&noheader=1&do=sms_sendMail' ?>",
+			method: 'post',
+			data: {
+				text: text,				
+				absendernumber: jQuery('#sms_absendernumber').val(),
+				absendername: jQuery('#sms_absendername').val(),
+			},
+			success: function(data) {
+				
+				if (data != '1')
+				{
+					alert("<?php echo __("SMS konnte nicht versendet werden es ist ein Fehler aufgetreten!", "wpsg"); ?>");
+				}
+				else
+				{
+
+
+					jQuery('#sms_text').html('');
+					
+					jQuery('#sms_absendernumber').val('');
+					jQuery('#sms_absendername').val('');
+					jQuery('#sms_template').val(-1);
+
+					alert("<?php echo __('SMS wurde erfolgreich an den Kunden gesendet.', 'wpsg'); ?>");
+
+					location.reload();
+					
+				}
+				
+			}
+			
+		} );	
+		
+	}
+	
+	
+</script>
+<?php //wpsg_debug($this->view) ?>
+<?php echo wpsg_drawForm_AdminboxStart(__('SMS-Versand', 'wpsg'));?>
+	
+	<div class="inside">						
+		<div style="padding:5px;">
+			
+			<form method="post" action="<?php echo WPSG_URL_WP; ?>wp-admin/admin.php?page=wpsg-Order&action=ajax&mod=wpsg_mod_sms&edit_id=<?php echo $this->view['data']['id']; ?>&noheader=1">	
+																	
+				<?php /* hinterlegte Nummer vorausgefÃŒllt */ ?>
+				<label><?php echo __("Abweichende Telefonnummer", "wpsg"); ?>:</label>
+				<input id="sms_newnumber" class="wpsg_sms_newnumber" type="text"; >
+				<div class="wpsg_clear"></div>
+				
+				<br />
+										
+				<label><?php echo __("Text", "wpsg"); ?>:<br /></label>
+				<textarea class="character-limit wpsg_sms_textarea"></textarea>
+				<div class="wpsg_clear"></div>
+									
+				<br />
+				
+				<?php /* Counter fÃŒr die eingetragenen Zeichen */ ?>
+				<div class"wpsg_sms_number" style="float:left;">
+					<label>
+						<?php echo __("Anzahl der Zeichen", "wpsg");?>: <span class="counter">0</span>
+					</label>				
+				</div>
+				
+				<?php /* Eintrag ins Bestellprotokoll */ ?>
+				<input type="button" class="button" onclick="sms_sendSMS(); return false;" value="<?php echo __("Absenden", "wpsg"); ?>" style="float:right;" />
+				<div class="wpsg_clear"></div>
+
+			</form>
+			
+		</div>
+	</div>
+
+<?php echo wpsg_drawForm_AdminboxEnd(); ?>
Index: /views/mods/mod_sms/settings_edit.phtml
===================================================================
--- /views/mods/mod_sms/settings_edit.phtml	(revision 7257)
+++ /views/mods/mod_sms/settings_edit.phtml	(revision 7257)
@@ -0,0 +1,7 @@
+<?php 
+    
+    /**
+     *  Templatedatei fÃŒr die Einstellungen des Moduls SMS-Versand 
+     */
+
+?>
