Benutzer Diskussion:Darcduck: Unterschied zwischen den Versionen

Aus Eressea
Zur Navigation springen Zur Suche springen
(code angefügt)
Zeile 18: Zeile 18:
  
 
Ralf
 
Ralf
 +
 +
<nowiki>
 +
Markup("eresseaturn","directives","/\\(:turn\\s*(\\d+):\\)/e",'EresseaTurn($1)');
 +
 +
function EresseaTurn($turn)
 +
{
 +
$EresseaSeasons=array();
 +
$EresseaMonth=array();
 +
$EresseaWeeks=array();
 +
 +
// Alte Zeitrechnung
 +
$EresseaSeasons[1]=array("Winter", "Winter", "Winter", "Frühling", "Frühling", "Frühling", "Sommer", "Sommer", "Sommer", "Herbst", "Herbst", "Herbst");
 +
$EresseaMonth[1]=array("Januar","Februar", "März", "April", "Mai", "Juni", "Juli", "August", "September", "Oktober", "November", "Dezember");
 +
$EresseaWeeks[1]=array();
 +
 +
// Neue Zeitrechnung
 +
$EresseaSeasons[2]=array("Sommer", "Herbst", "Herbst", "Winter", "Winter", "Winter", "Frühling", "Frühling", "Sommer");
 +
$EresseaMonth[2]=array("Feldsegen","Nebeltage", "Sturmmond", "Herdfeuer", "Eiswind", "Schneebann", "Blütenregen", "Mond der milden Winde", "Sonnenfeuer");
 +
$EresseaWeeks[2]=array("Erste", "Zweite", "Letzte");
 +
 +
$second_era_start=184;
 +
if (is_numeric($turn))
 +
{
 +
$turn=intval($turn);
 +
if ($turn<$second_era_start)
 +
{
 +
$era=1;
 +
$normturn=$turn-1;
 +
} else
 +
{
 +
$era=2;
 +
$normturn=$turn-$second_era_start;
 +
}
 +
$turns_per_month=max(1,count($EresseaWeeks[$era]));
 +
$turns_per_year=count($EresseaMonth[$era])*$turns_per_month;
 +
$year=floor($normturn/$turns_per_year)+1;
 +
$month=floor(($normturn-($year-1)*$turns_per_year)/$turns_per_month);
 +
$week=$normturn%$turns_per_month;
 +
 +
$resultStr=($era==2)?$EresseaWeeks[$era][$week]." Woche des Monats ":"";
 +
$resultStr.=$EresseaMonth[$era][$month];
 +
$resultStr.=" des Jahres ".$year;
 +
$resultStr.=" ($turn, ".$EresseaSeasons[$era][$month].")";
 +
} else
 +
{
 +
$resultStr=$turn;
 +
}
 +
 +
  return $resultStr;
 +
}
 +
</nowiki>

Version vom 25. Oktober 2007, 14:14 Uhr

Hallo Darcduck,

wenn ich das richtig erinnere gibt es bir Dir im Wiki doch was mit Rundennummer => Woche in Eressea. Kannst/Magst Du das hier auch zur Verfügung stellen?

Viele Grüße

Obermagier --Bruck 22:16, 18. Okt 2007 (CEST)


Hallo Bruck,

das Skript selbst ist ja recht simpel, man muss es halt nur als "Syntax" irgendwo im Wiki hinterlegen. Ich kann es also Enno zur Verfügung stellen, einbauen muss er es aber ;-)

Leider ist es noch nicht multilingual und bei der Einbindung in Sätze passt es auch nicht immer so richtig.

Grüsse

Ralf

Markup("eresseaturn","directives","/\\(:turn\\s*(\\d+):\\)/e",'EresseaTurn($1)'); function EresseaTurn($turn) { $EresseaSeasons=array(); $EresseaMonth=array(); $EresseaWeeks=array(); // Alte Zeitrechnung $EresseaSeasons[1]=array("Winter", "Winter", "Winter", "Frühling", "Frühling", "Frühling", "Sommer", "Sommer", "Sommer", "Herbst", "Herbst", "Herbst"); $EresseaMonth[1]=array("Januar","Februar", "März", "April", "Mai", "Juni", "Juli", "August", "September", "Oktober", "November", "Dezember"); $EresseaWeeks[1]=array(); // Neue Zeitrechnung $EresseaSeasons[2]=array("Sommer", "Herbst", "Herbst", "Winter", "Winter", "Winter", "Frühling", "Frühling", "Sommer"); $EresseaMonth[2]=array("Feldsegen","Nebeltage", "Sturmmond", "Herdfeuer", "Eiswind", "Schneebann", "Blütenregen", "Mond der milden Winde", "Sonnenfeuer"); $EresseaWeeks[2]=array("Erste", "Zweite", "Letzte"); $second_era_start=184; if (is_numeric($turn)) { $turn=intval($turn); if ($turn<$second_era_start) { $era=1; $normturn=$turn-1; } else { $era=2; $normturn=$turn-$second_era_start; } $turns_per_month=max(1,count($EresseaWeeks[$era])); $turns_per_year=count($EresseaMonth[$era])*$turns_per_month; $year=floor($normturn/$turns_per_year)+1; $month=floor(($normturn-($year-1)*$turns_per_year)/$turns_per_month); $week=$normturn%$turns_per_month; $resultStr=($era==2)?$EresseaWeeks[$era][$week]." Woche des Monats ":""; $resultStr.=$EresseaMonth[$era][$month]; $resultStr.=" des Jahres ".$year; $resultStr.=" ($turn, ".$EresseaSeasons[$era][$month].")"; } else { $resultStr=$turn; } return $resultStr; }