primo commit
This commit is contained in:
		
							
								
								
									
										217
									
								
								media/com_jem/js/seo.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										217
									
								
								media/com_jem/js/seo.js
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,217 @@ | ||||
| /** | ||||
|  * @package    JEM | ||||
|  * @copyright  (C) 2013-2024 joomlaeventmanager.net | ||||
|  * @copyright  (C) 2005-2009 Christoph Lukes | ||||
|  * @license    https://www.gnu.org/licenses/gpl-3.0 GNU/GPL | ||||
|  * @author     Sascha Karnatz | ||||
|  */ | ||||
|  | ||||
| /** | ||||
|  * Comments in German | ||||
|  * Function: dieses Javascript ermoeglicht es automatisch die Metatags zu befuellen | ||||
|  */ | ||||
|  | ||||
| // Variablen werden als global definiert, da sie ueber mehrere Funktion hinweg genutzt werden | ||||
| var $keyword;			// Array - aufgeschlitete Variablen, welche einem HTML-Tag zugeordnet werden kann | ||||
| var $keywords;			// String - Verbindungsvariable zur noch nicht umgeschriebenen Variante der Keywords | ||||
| var $manual_keywords = "";	// String - Speichert alle manuell eingefuegen Keywords ab | ||||
| var $description;		// String - die Beschreibung | ||||
| var $description_vars;	// Array - HTML - Tags, die mit einem onchange versehen werden | ||||
| var $inputbox = "";		// String - es wird mit Hilfe dieser Variable ermittel, ob der User Beschreibung bzw. Keywords angeklickt hat | ||||
| var $meta_error;			// String - Fehler, der in der jeweiligen Sprache ausgegeben wird | ||||
|  | ||||
| function starter($msg) {			// Funktion, welche beim Starten der Seite aufgerufen werden | ||||
|     get_keywords();					// leider funktionier window.onload nicht, da sonst die Popupfenster Fehler verursachen | ||||
|     get_description(); | ||||
|     switchstart(); | ||||
|     $meta_error = $msg; | ||||
| } | ||||
|  | ||||
| function switchstart() {	// Diese Funktion uebergibt alle relevanten Feldern ein onchange | ||||
|     try { | ||||
|         if ($keyword.length > 0) { | ||||
|             for (var i = 0; i < $keyword.length; i++) { | ||||
|                 document.getElementById($keyword[i]).onchange = seo_switch; | ||||
|             } | ||||
|         } | ||||
|         if ($description_vars.length > 0) { | ||||
|             for (var i = 0; i < $description_vars.length; i++) { | ||||
|                 document.getElementById($description_vars[i]).onchange = seo_switch; | ||||
|             } | ||||
|         } | ||||
|     } catch (e) { | ||||
|         //alert("Error occurred! JEM SEO - Javascript stopped!"); | ||||
|     } | ||||
| } | ||||
|  | ||||
| function seo_switch() {	// Bei jeder Veraenderung werden beide Funktionen aufgerufen | ||||
|     include_keyword(); | ||||
|     include_description(); | ||||
| } | ||||
|  | ||||
| function get_keywords() { | ||||
|     $keywords = $("#meta_keywords").val();	// Keywords auslesenen | ||||
|     var $Nullvalue = "[NULL]"; | ||||
|     $manual_keywords = "";					// die Anzeige der nicht zuordbaren Variable wird geleert | ||||
|     $keyword = $keywords.split(",");			// in eine Array aufspalten | ||||
|     for (var i = 0; i < $keyword.length; i++) {	// und alle Leerzeichen entfernen | ||||
|         try { 									// Die Abfrage wird Fehlersicher gemacht | ||||
|             $keyword[i] = $keyword[i].replace(/ /g, ""); | ||||
|             $keyword[i] = $keyword[i].replace(/\[/g, ""); | ||||
|             $keyword[i] = $keyword[i].replace(/\]/g, ""); | ||||
|             document.getElementById($keyword[i]).value;				// ein Fehler wird provoziert, falls dieses Element nicht vorhanden ist | ||||
|         } catch (e) { | ||||
|             if ($manual_keywords != "") {	// das nicht verwendete Keyword wird neu abgespeichert | ||||
|                 $manual_keywords += ", "; | ||||
|             } | ||||
|             $manual_keywords += $keyword[i]; | ||||
|             $keyword[i] = $Nullvalue;	// Falls eine angegebene ID nicht vorhanden ist, wird diese aus dem Array entfernt | ||||
|  | ||||
|         } | ||||
|     } | ||||
|     var $keyword_count = 0; | ||||
|     var $keyword_length = $keyword.length; | ||||
|     i = 0; | ||||
|     while (i < $keyword_length) { | ||||
|         if ($keyword[i] == $Nullvalue) { | ||||
|             $keyword[i] = $keyword[$keyword.length - $keyword_count - 1]; | ||||
|             $keyword[$keyword.length - $keyword_count - 1] = $Nullvalue; | ||||
|             $keyword_length--; | ||||
|             $keyword_count++; | ||||
|         } else { | ||||
|             i++; | ||||
|         } | ||||
|     } | ||||
|     for (i = 0; i < $keyword_count; i++) { | ||||
|         $keyword.pop(); | ||||
|     } | ||||
| } | ||||
|  | ||||
| function get_description() { | ||||
|     $description = $("#meta_description").val();	// uebergebene Bechreibung wird aufgerufen und eingefuegt | ||||
|     if ($description != "") { | ||||
|         var Ergebnis = $description.split("[");		// alle relevanten Teile werden getrennt | ||||
|         if (Ergebnis.length > 1) { | ||||
|             $description_vars = new Array(Ergebnis.length - 1);	// Neues Array zum eintragen der geforderten Variablen wird angelegt | ||||
|             for (var i = 1; i < Ergebnis.length; i++) { | ||||
|                 var inputarray = Ergebnis[i].substring(0, (Ergebnis[i].indexOf("]")));	// die einzelnen Variablen werden aus dem Satz ausgelesen | ||||
|                 try { 									// Die Abfrage wird Fehlersicher gemacht | ||||
|                     $description_vars[i - 1] = inputarray; | ||||
|                     document.getElementById($description_vars[i - 1]).value; | ||||
|                 } catch (e) { | ||||
|                     $description_vars.pop(); | ||||
|  | ||||
|                 } | ||||
|             } | ||||
|         } else { | ||||
|             $description_vars = new Array(0); | ||||
|         } | ||||
|     } else { | ||||
|         $description_vars = new Array(0); | ||||
|     } | ||||
| } | ||||
|  | ||||
| function include_keyword() { | ||||
|     var $keywords = ""; | ||||
|     for (var i = 0; i < $keyword.length; i++) { 		// Es werden alle keywords ausgelesen | ||||
|         if ($keywords != "") { | ||||
|             $keywords += ", "; | ||||
|         } | ||||
|         if (document.getElementById($keyword[i]).tagName == "SELECT") {	// es wird unterschieden zwischen normalen Inputfeld und Selectfeld | ||||
|             if (document.getElementById($keyword[i]).value != 0) {		// um auch korrekt abspeichern zu koennen wird das Komma richtig gesetzt | ||||
|                 $keywords += get_selected_option($keyword[i]); // Auslesen des Wertes aus dem Selectfeld | ||||
|             } else { | ||||
|                 $keywords += "[" + $keyword[i] + "]"; | ||||
|             } | ||||
|         } else if (document.getElementById($keyword[i]).value != "") { | ||||
|             $keywords += document.getElementById($keyword[i]).value;	//Auslesen des Wertes aus dem Inputfeld | ||||
|         } else { | ||||
|             $keywords += "[" + $keyword[i] + "]"; | ||||
|         } | ||||
|     } | ||||
|     if ($manual_keywords != "") { | ||||
|         if ($keywords != "") { | ||||
|             $manual_keywords = ", " + $manual_keywords; | ||||
|         } | ||||
|         $keywords = $keywords + $manual_keywords; | ||||
|     } | ||||
|     document.getElementById("meta_keywords").value = $keywords; | ||||
| } | ||||
|  | ||||
| function include_description() { | ||||
|     var desc_split, desc_value, desc_length; | ||||
|     var desc_output = $description;	// Es wird die urspruengliche Ausgabe abgespeichert, da diese im spaeteren Verlauf geaendert wird | ||||
|     for (var i = 0; i < $description_vars.length; i++) { | ||||
|         desc_value = "[" + $description_vars[i] + "]";	// Der Wert wird auf Default gesetzt, damit er ausgegeben werden kann, falls ein deafulteinstellung gewaehlt wird | ||||
|         if (document.getElementById($description_vars[i]).tagName == "SELECT") {	// es wird wieder unterschieden zwischen Select und Inputfeld | ||||
|             if (document.getElementById($description_vars[i]).value != 0) { | ||||
|                 desc_value = get_selected_option($description_vars[i]); | ||||
|             } | ||||
|         } else { | ||||
|             if (document.getElementById($description_vars[i]).value != "") { | ||||
|                 desc_value = document.getElementById($description_vars[i]).value; | ||||
|             } | ||||
|         } | ||||
|         desc_split = desc_output.split("[" + $description_vars[i] + "]");	// Der Satz wird in zwei Teile geteilt | ||||
|         desc_output = "";			// der auszugebene Satz wird geloescht, damit er mit den beiden Haelften wieder befuellt werden kann | ||||
|         desc_length = desc_split.length; | ||||
|         for (var j = 0; j < desc_length; j++) { | ||||
|             desc_output += desc_split[j]; | ||||
|             if (j < desc_length - 1) { | ||||
|                 desc_output += desc_value;	// der Wert wird zwischen beide Texthaelften geschrieben | ||||
|             } | ||||
|         } | ||||
|     } | ||||
|     document.getElementById("meta_description").value = desc_output; | ||||
| } | ||||
|  | ||||
| function insert_keyword($keyword) { | ||||
|  | ||||
|     try { | ||||
|  | ||||
|         var $input = document.getElementById($inputbox).value; | ||||
|         if ($inputbox == "meta_keywords") { | ||||
|             if ($input != "") { | ||||
|                 $input += ","; | ||||
|             } | ||||
|         } | ||||
|  | ||||
|         $input += " " + $keyword; | ||||
|         document.getElementById($inputbox).value = $input; | ||||
|         change_metatags(); | ||||
|     } catch (e) { | ||||
|         alert($meta_error); | ||||
|     } | ||||
| } | ||||
|  | ||||
| function change_metatags() { | ||||
|     if ($inputbox == "meta_keywords") { | ||||
|         $keywords = document.getElementById($inputbox).value; | ||||
|         get_keywords(); | ||||
|     } else { | ||||
|         $description = document.getElementById($inputbox).value; | ||||
|         get_description(); | ||||
|     } | ||||
|     switchstart(); | ||||
| } | ||||
|  | ||||
| function get_inputbox($input) { | ||||
|  | ||||
|     if ($input == "meta_keywords") { | ||||
|         document.getElementById($input).value = $keywords; | ||||
|     } else { | ||||
|         document.getElementById($input).value = $description; | ||||
|     } | ||||
|     $inputbox = $input; | ||||
| } | ||||
|  | ||||
| function get_selected_option($selectfield) { | ||||
|     var $buffer; | ||||
|     for (i = 0; i < document.getElementById($selectfield).length; i++) { | ||||
|         if (document.getElementById($selectfield).options[i].value == document.getElementById($selectfield).value) { | ||||
|             $buffer = document.getElementById($selectfield).options[i].text; | ||||
|             break; | ||||
|         } | ||||
|     } | ||||
|     return $buffer; | ||||
| } | ||||
		Reference in New Issue
	
	Block a user