Erweiterung Packetdienstleister um SprachID
..................................................

Änderungen Datenbank:
......................

füge das Feld 'language_id' mit 'Kein Standardwert' / INT 11 , Entferne Auto_Increment von Feld 'carrier_id' und erweitere Primary_Key um 'Language_id'

ACHTUNG: Da sich nun die IDs ändern ( alle Links zu den Dienstleistern müssen für jede Sprache die gleiche ID bekommen ) , müssen auch die IDs in der Tabelle
'orders_tracking' angepasst werden. Ansonsten funktioniert das Modul nicht.

./6ACY88KD82/includes/functions/general.php
............................................

nach Funktion xtc_get_shipping_status_name einfügen
	/**
	   * xtc_get_carrier_tracking_link()
	   *
	   * 2017.10.01 , Ramprecht Rene
	   * @param mixed $carrier_id
	   * @param string $language_id
	   * @return
	   */
	  function xtc_get_carrier_tracking_link($carrier_id, $language_id = '') {
		if (!$language_id) {
		  $language_id = (int)$_SESSION['languages_id'];
		}
		$carrier_tracking_link_query = xtc_db_query("SELECT carrier_tracking_link
													 FROM ".TABLE_CARRIERS."
													 WHERE carrier_id = '".(int)$carrier_id."'
														AND language_id = '".(int)$language_id."'
													 ORDER BY carrier_sort_order ASC");
		$carrier_tracking_link = xtc_db_fetch_array($carrier_tracking_link_query);
		return $carrier_tracking_link['carrier_tracking_link'];
	  }

	  
./6ACY88KD82/parcel_carriers.php
.................................


folgenden Block komplett ersetzen
	case 'insert':
        $carrier_name = xtc_db_prepare_input($_POST['carrier_name']);
        $carrier_tracking_link = xtc_db_prepare_input($_POST['carrier_tracking_link']);
        $carrier_sort_order = xtc_db_prepare_input($_POST['carrier_sort_order']);
        $date_added = xtc_db_prepare_input($_POST['carrier_date_added']);
        $sql_data_array = array('carrier_name' => $carrier_name,
                                'carrier_tracking_link' => $carrier_tracking_link,
                                'carrier_sort_order' => $carrier_sort_order,
                                'carrier_date_added' => 'now()'
                                );
        xtc_db_perform(TABLE_CARRIERS, $sql_data_array);
        xtc_redirect(xtc_href_link(FILENAME_PARCEL_CARRIERS));
        break;

      case 'save':
        $carrier_id = xtc_db_prepare_input($_GET['cID']);
        $carrier_name = xtc_db_prepare_input($_POST['carrier_name']);
        $carrier_tracking_link = xtc_db_prepare_input($_POST['carrier_tracking_link']);
        $carrier_sort_order = xtc_db_prepare_input($_POST['carrier_sort_order']);
        $sql_data_array = array('carrier_name' => $carrier_name,
                                'carrier_tracking_link' => $carrier_tracking_link,
                                'carrier_sort_order' => $carrier_sort_order,
                                'carrier_last_modified' => 'now()'
                                );
        xtc_db_perform(TABLE_CARRIERS, $sql_data_array, 'update', "carrier_id = '" . (int)$carrier_id . "'");
        xtc_redirect(xtc_href_link(FILENAME_PARCEL_CARRIERS, 'page=' . $page_parcel . '&cID=' . $carrier_id));
        break;
		
mit diesem Code
	case 'insert':
		case 'save':
		if (isset($_GET['cID'])) $carrier_id = xtc_db_prepare_input($_GET['cID']);
		
		$languages = xtc_get_languages();
		
		for ($i = 0, $n = sizeof($languages); $i < $n; $i++) {
		  $carrier_name = $_POST['carrier_name'];
		  $language_id = $languages[$i]['id'];
		  $carrier_tracking_link_array = $_POST['carrier_tracking_link'];
		  
		  $sql_data_array = array('carrier_name' => xtc_db_prepare_input($carrier_name),
								  'carrier_sort_order' => (int)$_POST['carrier_sort_order'],
								  'carrier_tracking_link' => $carrier_tracking_link_array[$language_id]
								  );
			
		  if ($action == 'insert') {
			if (!xtc_not_null($carrier_id)) {
			  $next_id_query = xtc_db_query("SELECT max(carrier_id) as carrier_id FROM " . TABLE_CARRIERS . "");
			  $next_id = xtc_db_fetch_array($next_id_query);
			  $carrier_id = $next_id['carrier_id'] + 1;
			}
			
			$insert_sql_data = array('carrier_id' => $carrier_id,
									 'language_id' => $language_id,
									 'carrier_date_added' => 'now()');
			$sql_data_array = xtc_array_merge($sql_data_array, $insert_sql_data);
			xtc_db_perform(TABLE_CARRIERS, $sql_data_array);
		  } elseif ($action == 'save') {
			$carrier_query = xtc_db_query("SELECT *
										   FROM ".TABLE_CARRIERS."
										   WHERE language_id = '".(int)$language_id."'
										   	AND carrier_id = '".(int)$carrier_id."'");
			if (xtc_db_num_rows($carrier_query) == 0) {
				xtc_db_perform(TABLE_CARRIERS, array ('carrier_id' => (int)$carrier_id, 'language_id' => (int)$language_id, 'carrier_date_added' => 'now()' ));
			} else {
				$insert_sql_data = array('carrier_last_modified' => 'now()');
				$sql_data_array = xtc_array_merge($sql_data_array, $insert_sql_data);
			}
			xtc_db_perform(TABLE_CARRIERS, $sql_data_array, 'update', "carrier_id = '" . (int)$carrier_id . "' and language_id = '" . (int)$language_id . "'");
		  }
		}
		xtc_redirect(xtc_href_link(FILENAME_PARCEL_CARRIERS, 'page=' . $page_parcel . '&cID=' . $carrier_id));
		break;
		
		
		
		
suche
	$carriers_query_raw = "SELECT carrier_id,
                                                carrier_name,
                                                carrier_tracking_link,
                                                carrier_sort_order,
                                                carrier_date_added,
                                                carrier_last_modified
                                           FROM " . TABLE_CARRIERS . "
                                       ORDER BY carrier_sort_order";
									   
ersetzen mit
	$carriers_query_raw = "SELECT carrier_id,
                                                carrier_name,
                                                carrier_tracking_link,
                                                carrier_sort_order,
                                                carrier_date_added,
                                                carrier_last_modified
                                           FROM " . TABLE_CARRIERS . "
										   WHERE language_id = '" . (int)$_SESSION['languages_id'] . "'
                                       ORDER BY carrier_sort_order";


suche
	<?php
	$heading = array();
	$contents = array();
			
füge dannach ein
	// 2017.10.01 , Ramprecht Rene , Languages carriers
	$languages = xtc_get_languages();
									   


suche im Block 'new'
	$contents[] = array('text' => '<br />' . TEXT_INFO_CARRIER_TRACKING_LINK . '<br />' . xtc_draw_input_field('carrier_tracking_link','','style="width:300px;"'));
	
ersetze mit
	// 2017.10.01 , Ramprecht Rene , Languages carriers
	$contents[] = array('text' => TEXT_INFO_CARRIER_TRACKING_LINK);
	for ($i = 0, $n = sizeof($languages); $i < $n; $i++) {
		$contents[] = array('text' => xtc_image(DIR_WS_LANGUAGES.$languages[$i]['directory'].'/admin/images/'.$languages[$i]['image']) . '&nbsp;' . xtc_draw_input_field('carrier_tracking_link[' . $languages[$i]['id'] . ']','','style="width:300px;"'));
	}
	
	
suche im Block 'edit'
	$contents[] = array('text' => '<br />' . TEXT_INFO_CARRIER_TRACKING_LINK . '<br />' . xtc_draw_input_field('carrier_tracking_link', $carriersInfo->carrier_tracking_link,'style="width:300px;"'));
	
ersetze mit
	// 2017.10.01 , Ramprecht Rene , Languages carriers
	$contents[] = array('text' => TEXT_INFO_CARRIER_TRACKING_LINK);
	for ($i = 0, $n = sizeof($languages); $i < $n; $i++) {
		$contents[] = array('text' => xtc_image(DIR_WS_LANGUAGES.$languages[$i]['directory'].'/admin/images/'.$languages[$i]['image']) . '&nbsp;' . xtc_draw_input_field('carrier_tracking_link[' . $languages[$i]['id'] . ']',xtc_get_carrier_tracking_link($carriersInfo->carrier_id,$languages[$i]['id']),'style="width:300px;"'));
	}




./inc/get_tracking_link.inc.php
................................

suche
	$tracking_links_query = xtc_db_query("SELECT * 
                                            FROM ".TABLE_ORDERS_TRACKING." ortr
                                            JOIN ".TABLE_CARRIERS." ca
                                                 ON ortr.carrier_id = ca.carrier_id
                                           WHERE ortr.orders_id = '".(int)$orders_id."'
                                                 ".$where."
                                           ORDER BY ortr.tracking_id ASC");
										   
ersetze mit
	$tracking_links_query = xtc_db_query("SELECT ortr.*,ca.* 
                                            FROM ".TABLE_ORDERS_TRACKING." ortr
                                            JOIN ".TABLE_CARRIERS." ca
                                                 ON ortr.carrier_id = ca.carrier_id
											LEFT JOIN orders o
												 ON ortr.orders_id=o.orders_id
                                           WHERE ortr.orders_id = '".(int)$orders_id."' AND ca.language_id=o.languages_id
                                                 ".$where."
                                           ORDER BY ortr.tracking_id ASC");
										   
										   



------------------------------------------------ Erweiterung Packetdienstleister um SprachID ----------------------------------------------------------------------------