Index: trunk/CHANGELOG
===================================================================
--- trunk/CHANGELOG	(revision 882)
+++ trunk/CHANGELOG	(revision 883)
@@ -10,7 +10,9 @@
 # = Bugfix
 ! = Update/Change
 
-------------------------------------- 2.7.1 -------------------------------------
+------------------------------------- 2.7.1 -------------------------------------
+27-Nov-2008 Thomas Hornik
+!	added redirect-type (301/302) to menu_link
 24-Nov-2008 Matthias Gallas
 !	updated upgrade-script.php to add sec_anchor field to settings table
 22-Nov-2008 Thomas Hornik
Index: trunk/wb/upgrade-script.php
===================================================================
--- trunk/wb/upgrade-script.php	(revision 882)
+++ trunk/wb/upgrade-script.php	(revision 883)
@@ -102,9 +102,7 @@
 $OK   = '<span class="ok">OK</span>';
 $FAIL = '<span class="error">FAILED</span>';
 
-/**********************************************************
- *  - Adding field sec_anchor to settings table
- */
+// function to add a var/value-pair into settings-table
 function db_add_key_value($key, $value) {
 	global $database; global $OK; global $FAIL;
 	$table = TABLE_PREFIX.'settings';
@@ -126,16 +124,48 @@
 	}
 }
 
-echo "<br />Adding field sec_anchor to settings table<br />";
+// function to add a new field into a table
+function db_add_field($field, $table, $desc) {
+	global $database; global $OK; global $FAIL;
+	echo "<u>Adding field '$field' to table '$table'</u><br />";
+	$table = TABLE_PREFIX.$table;
+	$query = $database->query("DESCRIBE $table '$field'");
+	if($query->numRows() == 0) { // add field
+		$query = $database->query("ALTER TABLE $table ADD $field $desc");
+		echo (mysql_error()?mysql_error().'<br />':'');
+		$query = $database->query("DESCRIBE $table '$field'");
+		echo (mysql_error()?mysql_error().'<br />':'');
+		if($query->numRows() > 0) {
+			echo "'$field' added. $OK.<br />";
+		} else {
+			echo "adding '$field' $FAIL!<br />";
+		}
+	} else {
+		echo "'$field' allready there. $OK.<br />";
+	}
+}
+
+
+/**********************************************************
+ *  - Adding field sec_anchor to settings table
+ */
+echo "<br />Adding key sec_anchor to settings table<br />";
 $cfg = array(
 	'sec_anchor' => 'wb_'
-	
 );
 foreach($cfg as $key=>$value) {
 	db_add_key_value($key, $value);
 }
 
+
 /**********************************************************
+ *  - Add field "redirect_type" to table "mod_menu_link"
+ */
+echo "<br />Adding field redirect_type to mod_menu_link table<br />";
+db_add_field('redirect_type', 'mod_menu_link', "INT NOT NULL DEFAULT '302' AFTER `target_page_id`");
+
+
+/**********************************************************
  *  - End of upgrade script
  */
 echo '<p style="font-size:120%;"><strong>Congratulations: The upgrade script is finished ...</strong></p>';
Index: trunk/wb/index.php
===================================================================
--- trunk/wb/index.php	(revision 882)
+++ trunk/wb/index.php	(revision 883)
@@ -55,18 +55,25 @@
 
 // redirect menu-link
 $this_page_id = PAGE_ID;
+if(version_compare(phpversion(), '4.3', '>=')) $php43 = TRUE; else $php43 = FALSE;
 $query_this_module = $database->query("SELECT module, block FROM ".TABLE_PREFIX."sections WHERE page_id = '$this_page_id' AND module = 'menu_link'");
 if($query_this_module->numRows() == 1) { // This is a menu_link. Get link of target-page and redirect
 	// get target_page_id
 	$table = TABLE_PREFIX.'mod_menu_link';
-	$query_tpid = $database->query("SELECT target_page_id, anchor, extern FROM $table WHERE page_id = '$this_page_id'");
+	$query_tpid = $database->query("SELECT * FROM $table WHERE page_id = '$this_page_id'");
 	if($query_tpid->numRows() == 1) {
 		$res=$query_tpid->fetchRow();
 		$target_page_id = $res['target_page_id'];
+		$r_type = $res['redirect_type'];
 		$anchor = $res['anchor'];
 		$extern = $res['extern'];
 		if($anchor != '0') $anchor = ''.$anchor;
 		else $anchor = FALSE;
+		// set redirect-type
+		if($r_type=='301') {
+			if($php43) @header('HTTP/1.1 301 Moved Permanently', TRUE, 301);
+			else @header('HTTP/1.1 301 Moved Permanently');
+		}
 		if($target_page_id == -1) {
 			if($extern!='') {
 				header("Location: $extern".($anchor?'#'.$anchor:''));
@@ -78,7 +85,6 @@
 			if($query_link->numRows() == 1) {
 				$res=$query_link->fetchRow();
 				$target_page_link = $res['link'];
-				// redirect
 				header('Location: '.WB_URL.PAGES_DIRECTORY.$target_page_link.PAGE_EXTENSION.($anchor?'#'.$anchor:''));
 				exit;
 			}
Index: trunk/wb/modules/menu_link/save.php
===================================================================
--- trunk/wb/modules/menu_link/save.php	(revision 882)
+++ trunk/wb/modules/menu_link/save.php	(revision 883)
@@ -34,6 +34,7 @@
 	$foreign_page_id = $admin->add_slashes($_POST['page_link']);
 	$page_target = $admin->add_slashes($_POST['page_target']);
 	$url_target = $admin->add_slashes($_POST['target']);
+	$r_type = $admin->add_slashes($_POST['r_type']);
 	if(isset($_POST['extern']))
 		$extern = $admin->add_slashes($_POST['extern']);
 	else
@@ -41,8 +42,8 @@
 
 	$table_pages = TABLE_PREFIX.'pages';
 	$table_mod = TABLE_PREFIX.'mod_menu_link';
-	$database->query("UPDATE $table_pages SET target = '$url_target' WHERE page_id = '$page_id'");
-	$database->query("UPDATE $table_mod SET target_page_id = '$foreign_page_id', anchor = '$page_target', extern = '$extern' WHERE page_id = '$page_id'");
+	$database->query("UPDATE `$table_pages` SET `target` = '$url_target' WHERE `page_id` = '$page_id'");
+	$database->query("UPDATE `$table_mod` SET `target_page_id` = '$foreign_page_id', `anchor` = '$page_target', `extern` = '$extern', `redirect_type` = '$r_type' WHERE `page_id` = '$page_id'");
 }
 
 // Check if there is a database error, otherwise say successful
Index: trunk/wb/modules/menu_link/languages/NL.php
===================================================================
--- trunk/wb/modules/menu_link/languages/NL.php	(revision 882)
+++ trunk/wb/modules/menu_link/languages/NL.php	(revision 883)
@@ -29,5 +29,6 @@
 // Headings and text outputs
 $MOD_MENU_LINK['TEXT']				= 'Klik HIER om naar de hoofdpagina te gaan';
 $MOD_MENU_LINK['EXTERNAL_LINK'] = 'Externe Link';
+$MOD_MENU_LINK['R_TYPE'] = 'Redirect-Type';
 
 ?>
\ No newline at end of file
Index: trunk/wb/modules/menu_link/languages/NO.php
===================================================================
--- trunk/wb/modules/menu_link/languages/NO.php	(revision 882)
+++ trunk/wb/modules/menu_link/languages/NO.php	(revision 883)
@@ -29,5 +29,6 @@
 // Headings and text outputs
 $MOD_MENU_LINK['TEXT']			= 'Klikk HER for &aring; komme til hovedsiden';
 $MOD_MENU_LINK['EXTERNAL_LINK']	= 'Ekstern lenke';
+$MOD_MENU_LINK['R_TYPE'] = 'Redirect-Type';
 
 ?>
\ No newline at end of file
Index: trunk/wb/modules/menu_link/languages/EN.php
===================================================================
--- trunk/wb/modules/menu_link/languages/EN.php	(revision 882)
+++ trunk/wb/modules/menu_link/languages/EN.php	(revision 883)
@@ -29,5 +29,6 @@
 // Headings and text outputs
 $MOD_MENU_LINK['TEXT']				= 'Click HERE to go to the main page';
 $MOD_MENU_LINK['EXTERNAL_LINK'] = 'External Link';
+$MOD_MENU_LINK['R_TYPE'] = 'Redirect-Type';
 
 ?>
\ No newline at end of file
Index: trunk/wb/modules/menu_link/languages/RU.php
===================================================================
--- trunk/wb/modules/menu_link/languages/RU.php	(revision 882)
+++ trunk/wb/modules/menu_link/languages/RU.php	(revision 883)
@@ -29,5 +29,6 @@
 // Headings and text outputs
 $MOD_MENU_LINK['TEXT']				= '&#1053;&#1072;&#1078;&#1084;&#1080;&#1090;&#1077; &#1079;&#1076;&#1077;&#1089;&#1100; &#1076;&#1083;&#1103; &#1087;&#1077;&#1088;&#1077;&#1093;&#1086;&#1076;&#1072; &#1085;&#1072; &#1075;&#1083;&#1072;&#1074;&#1085;&#1091;&#1102;';
 $MOD_MENU_LINK['EXTERNAL_LINK'] = '&#1042;&#1085;&#1077;&#1096;&#1085;&#1103;&#1103; &#1089;&#1089;&#1099;&#1083;&#1082;&#1072;';
+$MOD_MENU_LINK['R_TYPE'] = 'Redirect-Type';
 
 ?>
Index: trunk/wb/modules/menu_link/languages/DE.php
===================================================================
--- trunk/wb/modules/menu_link/languages/DE.php	(revision 882)
+++ trunk/wb/modules/menu_link/languages/DE.php	(revision 883)
@@ -32,5 +32,6 @@
 // Ueberschriften und Textausgaben
 $MOD_MENU_LINK['TEXT']				= 'Klicken Sie HIER um zur Startseite zu gelangen';
 $MOD_MENU_LINK['EXTERNAL_LINK'] = 'Entfernte Adresse';
+$MOD_MENU_LINK['R_TYPE'] = 'Redirect-Typ';
 
 ?>
\ No newline at end of file
Index: trunk/wb/modules/menu_link/install.php
===================================================================
--- trunk/wb/modules/menu_link/install.php	(revision 882)
+++ trunk/wb/modules/menu_link/install.php	(revision 883)
@@ -36,6 +36,7 @@
 		`section_id` INT(11) NOT NULL DEFAULT '0',
 		`page_id` INT(11) NOT NULL DEFAULT '0',
 		`target_page_id` INT(11) NOT NULL DEFAULT '0',
+		`redirect_type` INT NOT NULL DEFAULT '302',
 		`anchor` VARCHAR(255) NOT NULL DEFAULT '0' ,
 		`extern` VARCHAR(255) NOT NULL DEFAULT '' ,
 		PRIMARY KEY (`section_id`)
Index: trunk/wb/modules/menu_link/modify.php
===================================================================
--- trunk/wb/modules/menu_link/modify.php	(revision 882)
+++ trunk/wb/modules/menu_link/modify.php	(revision 883)
@@ -40,6 +40,7 @@
 $sql_result = $database->query("SELECT * FROM $table WHERE section_id = '$section_id'");
 $sql_row = $sql_result->fetchRow();
 $target_page_id = $sql_row['target_page_id'];
+$r_type = $sql_row['redirect_type'];
 $extern = $sql_row['extern'];
 $anchor = $sql_row['anchor'];
 $sel = ' selected';
@@ -178,12 +179,23 @@
 	</td>
 	<td>
 		<select name="target" style="width:250px;" />
-			<option value="_blank"<?php if($target=='_blank') echo ' selected'; ?>><?php echo $TEXT['NEW_WINDOW'] ?></option>
-			<option value="_self"<?php if($target=='_self') echo ' selected'; ?>><?php echo $TEXT['SAME_WINDOW'] ?></option>
-			<option value="_top"<?php if($target=='_top') echo ' selected'; ?>><?php echo $TEXT['TOP_FRAME'] ?></option>
+			<option value="_blank"<?php if($target=='_blank') echo ' selected="selected"'; ?>><?php echo $TEXT['NEW_WINDOW'] ?></option>
+			<option value="_self"<?php if($target=='_self') echo ' selected="selected"'; ?>><?php echo $TEXT['SAME_WINDOW'] ?></option>
+			<option value="_top"<?php if($target=='_top') echo ' selected="selected"'; ?>><?php echo $TEXT['TOP_FRAME'] ?></option>
 		</select>
 	</td>
 </tr>
+<tr>
+	<td>
+		<?php echo $MOD_MENU_LINK['R_TYPE'].':' ?>
+	</td>
+	<td>
+		<select name="r_type" style="width:250px;" />
+			<option value="301"<?php if($r_type=='301') echo ' selected="selected"'; ?>>301</option>
+			<option value="302"<?php if($r_type=='302') echo ' selected="selected"'; ?>>302</option>
+		</select>
+	</td>
+</tr>
 </table>
 
 <br />
