Advertisement
Grischa

konjugator.php (german verbs)

Jun 11th, 2015
227
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 16.74 KB | None | 0 0
  1. <style type="text/css">
  2. #menu,#rechts  {display:none;}
  3. </style>
  4. <?
  5.  
  6. include ($_SERVER['DOCUMENT_ROOT'] . "/data/languages/german/new/verbs.php");
  7. $red_slash = '<span class="text-danger"> / </span>';
  8. function zusammengesetzt(& $endung, $key, $participle, $s) { // zusammengesetzte Zeiten: Hilfsverb-Form+Passé
  9.   if ($key == 0 or $key <= 2)
  10.     $endung = "<td>$endung</td> <td>$participle</td>"; // should changed for german verbs
  11.   elseif ($key == 3 or $key <= 5) // für Verben mit Hilfsverb sein
  12.     $endung = "<td>$endung</td> <td>$participle$s</td>"; // should changed for german verbs
  13. }
  14. /************************************************************************************************************/
  15. /* I want to change this 4 functions with one function with the array  werden_array                         */
  16. /************************************************************************************************************/
  17. function futur1(& $werden, $key, $verb) { // Futur1= $werden-form + infinitive
  18.   $werden = "<td>$werden</td> <td>$verb</td>";
  19. }
  20. function futur2(& $werden2, $key, $participle) { // Futur2= $werden2-form + participle + haben
  21.   $werden2 = "<td>$werden2</td> <td>$participle</td> <td>haben</td>";
  22. }
  23. function futur1_conditional1(& $werden_conditional1, $key, $verb) { // Futur1= $werden_conditional1-form + infinitive
  24.   $werden_conditional1 = "<td>$werden_conditional1</td> <td>$verb</td>";
  25. }
  26. function futur2_conditional1 (& $werden2_conditional1, $key, $participle) { // Futur2= $werden2_conditional1-form + participle + haben
  27.   $werden2_conditional1 = "<td>$werden2_conditional1</td> <td>$participle</td> <td>haben</td>";
  28. }
  29. /************************************************************************************************************/
  30.  
  31. function array_walk_all_auxs(& $auxiliaire_conjugation, & $s, & $auxiliaire, $verb, $participle) {
  32.   $auxiliaire_sein = array('sein');
  33.   if (in_array($verb, $auxiliaire_sein)) {
  34.     $auxiliaire = 'sein';
  35.     $auxiliaire_conjugation = array(array('bin', 'bist', 'ist', 'sind', 'seid', 'sind'), array('war', 'warst', 'war', 'waren', 'wart', 'waren'), array("sein"));
  36.     $s = 's'; //  don't need this
  37.   }
  38.   else {
  39.     $auxiliaire = 'haben';
  40.     $auxiliaire_conjugation = array(array('habe', 'hast', 'hat', 'haben', 'habt', 'haben'), array('hatte', 'hattest', 'hatte', 'hatten', 'hattet ', 'hatten'), array("haben"));
  41.     $s = ''; //  don't need this
  42.   }
  43.   for ($a = 0; $a < count($auxiliaire_conjugation) - 1; $a++)
  44.     for ($b = 0; $b < count($auxiliaire_conjugation[$a]); $b++) {
  45.       zusammengesetzt($auxiliaire_conjugation[$a][$b], $b, $participle, $s);
  46.   }
  47. }
  48. function array_wlk(& $conjugations, $verb, & $word_stem, & $participle) {
  49.   //global  $red_slash;
  50. //  include ($_SERVER['DOCUMENT_ROOT'] . "/data/languages/german/new/irregular-verb-groups.php");        
  51.               for ($time = 0; $time < count($conjugations); $time++) {
  52.                 for ($ending = 0; $ending < count($conjugations[$time]); $ending++) {
  53.                   $temp = $word_stem;                
  54.                           if ($time != 8 || $ending != 0)
  55.                             $conjugations[$time][$ending] = $temp . '<b>'.$conjugations[$time][$ending].'</b>';
  56.                 }
  57.               }
  58. }
  59. /************************************************************************************************************/
  60. function konjugator($verb) {
  61.   global $unregelmaessige_verben;
  62.   //include ($_SERVER['DOCUMENT_ROOT'] . "/data/languages/german/new/irregular-verb-groups.php");
  63.   $word_stem = substr($verb, 0, - 2);
  64.   $participle = 'ge'.$word_stem . '<b>t</b>';
  65.   $person = array('ich', 'du', 'er', 'wir', 'ihr', 'sie');
  66.   $gehen = array('gehe', 'gehst', 'geht', 'gehen', 'geht', 'gehen');
  67.   $werden = array('werde', 'werdet', 'wird', 'werden', 'werdet', 'werden');
  68.   $werden2 = array('werde2', 'wirst', 'wird', 'werden', 'werdet', 'werden');  
  69.   $werden_conditional1 = array('werde3', 'werdest', 'wird', 'werden', 'werdet', 'werden');
  70.   $werden2_conditional1 = array('werde4', 'werdest', 'wird', 'werden', 'werdet', 'werden');
  71.   $werden_array= array(
  72.   array('werde', 'werdet', 'wird', 'werden', 'werdet', 'werden'), array('werde2', 'wirst', 'wird', 'werden', 'werdet', 'werden'), array('würde', 'würdest', 'würde', 'würden', 'würdet', 'würden'));  
  73.   $conjugations= array( // Standardendungen für Verben auf -en
  74.   array('e', 'st', 't', 'en', 't', 'en'), array('te', 'test', 'te', 'ten', 'tet', 'ten'), array('e', 'est', 'e', 'en', 'et', 'en'), array('e','t', 'en'), array('end'));
  75.          
  76.   // if (in_array($verb, $verbes_pronominaux)) {
  77.     // $reflexiv = 'reflexives';
  78.   // }
  79.   // else {
  80.     // $reflexiv = 'nicht reflexives';
  81.   // }
  82.   // if (in_array($verb, $verbes_intransitifs) and (in_array($verb, $verbes_transitifs))) {
  83.     // $transitiv = 'transitives, intransitives';
  84.   // }
  85.   // elseif (in_array($verb, $verbes_transitifs)) {
  86.     // $transitiv = 'transitives';
  87.   // }
  88.   // elseif (in_array($verb, $verbes_intransitifs)) {
  89.     // $transitiv = 'intransitives';
  90.   // }
  91.  
  92.   array_wlk($conjugations, $verb, $word_stem, $participle);
  93.  
  94.   array_walk($werden, 'futur1', $verb);  
  95.   array_walk($werden2, 'futur2', $participle);
  96.   array_walk($werden_conditional1, 'futur1_conditional1', $verb);  
  97.   array_walk($werden2_conditional1, 'futur2_conditional1', $participle);    
  98.  
  99.   $auxiliaire_conjugation = array();
  100.   $s = $auxiliaire = ""; // don't need this
  101.  
  102.   array_walk_all_auxs($auxiliaire_conjugation, $s, $auxiliaire, $verb, $participle);
  103.  
  104.   $impersonnels = array(''); // some verbs, where to unset some values ...
  105.   if (in_array($verb, $impersonnels)) {
  106.     echo 'impersonnels';
  107.     for ($i = 0; $i <= 5; $i++) {
  108.       if ($i != 2) {
  109.         unset ($person[$i], $person[$i], $gehen[$i]);
  110.         unset ($conjugations[0][$i], $conjugations[1][$i], $conjugations[2][$i], $conjugations[3][$i], $conjugations[4][$i]);
  111.         unset ($auxiliaire_conjugation[0][$i], $auxiliaire_conjugation[1][$i], $auxiliaire_conjugation[2][$i], $auxiliaire_conjugation[3][$i], $auxiliaire_conjugation[4][$i], $auxiliaire_conjugation[5][$i], $auxiliaire_conjugation[6][$i]);
  112.       }
  113.     }
  114.   }
  115.   if (in_array($verb, $impersonnels)) {
  116.     unset ($conjugations[7]);
  117.   }
  118.   include ($_SERVER['DOCUMENT_ROOT'] . "/data/languages/german/new/irregular.php");
  119.   printIt($verb, $auxiliaire, $conjugations, $auxiliaire_conjugation, $regelmaessig, $reflexiv, $transitiv, $gehen, $werden_conditional1, $werden2_conditional1, $werden, $werden2, $teilurl, $s, $haben, $person, $person, $participle);
  120. }
  121. function printIt($verb, $auxiliaire, $conjugations, $auxiliaire_conjugation,  $regelmaessig, $reflexiv, $transitiv, $gehen, $werden_conditional1, $werden2_conditional1, $werden, $werden2, $teilurl, $s, $haben, $person, $person, $participle) {
  122.   ?>
  123. <p>Die Konjugation von <?=$verb ?></p>
  124. <p>Das Verb <b><?=$verb ?></b> wird <b><?=$regelmaessig ?></b> konjugiert und wird in den zusammengesetzten Zeiten mit den Hilfsverb <b><?=$auxiliaire ?></b> gebildet.</p>
  125. <!--<p><b><?=$verb ?></b> ist ein <b><?=$reflexiv ?></b> und <b><?=$transitiv ?></b> Verb.</p>-->
  126. <h2 class="home">Verzeichnis</h2>
  127. <ul style="list-style-type:none;">
  128.     <li><a class="down" href="#indikativ">Indikativ</a></li>
  129.     <li><a class="down" href="#konjunktiv-1">Konjunktiv I</a></li>
  130.     <li><a class="down" href="#konjunktiv-2">Konjunktiv II</a></li>
  131.     <li><a class="down" href="#imperativ">Imperativ</a></li>
  132.     <li><a class="down" href="#infinitive">Infinitive</a></li>
  133.     <li><a class="down" href="#partizipen">Partizipien</a></li>
  134. </ul>
  135. <h2 class="home"><a id="indikativ"></a>Indikativ</h2>
  136. <hr class="linie">
  137.  
  138. <table class="tab">
  139.     <tr class="border">
  140.         <th colspan="4">Präsens</th>
  141.     </tr>
  142. <?array_map( function ($person, $conjugations) {?>
  143.     <tr>
  144.         <td><span data-text="<?=$person.' '.strip_tags($conjugations) ?>" data-lang="de" class="trigger_play"></span></td>
  145.         <td><?=$person ?></td>
  146.         <td colspan="2"><?=$conjugations?></td>    
  147.     </tr>
  148. <?}, $person, $conjugations[0] );?>
  149.     <tr class="border">
  150.         <th colspan="4">Präteritum</th>
  151.     </tr>
  152. <?array_map( function ($person, $conjugations) {?>
  153.     <tr>
  154.         <td><span data-text="<?=$person.' '.strip_tags($conjugations) ?>" data-lang="de" class="trigger_play"></span></td>
  155.         <td><?=$person ?></td>
  156.         <td colspan="2"><?=$conjugations?></td>
  157.     </tr>
  158. <?}, $person, $conjugations[1] );?>
  159.     <tr class="border">
  160.         <th colspan="4">Perfekt</th>
  161.     </tr>
  162. <?array_map( function ($person, $auxiliaire_conjugation) {?>
  163.     <tr>
  164.         <td><span data-text="<?=$person.' '.strip_tags($auxiliaire_conjugation) ?>" data-lang="de" class="trigger_play"></span></td>
  165.         <td><?=$person. $auxiliaire_conjugation ?></td>
  166.     </tr>
  167. <?}, $person, $auxiliaire_conjugation[0] );?>
  168. </table>
  169.  
  170. <table class="tab">
  171.     <tr class="border">
  172.         <th colspan="5">Futur I</th>
  173.     </tr>
  174. <?array_map( function ($person, $werden) {?>
  175.     <tr>
  176.         <td><span data-text="<?=$person.' '.strip_tags($werden) ?>" data-lang="de" class="trigger_play"></span></td>
  177.         <td><?=$person ?></td>
  178.         <?=$werden ?>          
  179.     </tr>
  180. <?}, $person, $werden );?>
  181.     <tr class="border">
  182.         <th colspan="5">Futur II</th>
  183.     </tr>
  184. <?array_map( function ($person, $werden2) {?>
  185.     <tr>
  186.         <td><span data-text="<?=$person.' '.strip_tags($werden2) ?>" data-lang="de" class="trigger_play"></span></td>
  187.         <td><?=$person ?></td>
  188.         <?=$werden2 ?>         
  189.     </tr>
  190. <?}, $person, $werden2 );?>
  191. </table>
  192. <br>
  193. <br>
  194. <h2 class="home"><a id="konjunktiv-1"></a>Konjunktiv I</h2>
  195. <hr class="linie">
  196. <table class="tab">
  197.     <tr class="border">
  198.         <th colspan="4">Präsens</th>
  199.     </tr>
  200. <?array_map( function ($person, $conjugations) {?>
  201.     <tr>
  202.         <td><span data-text="<?=$person.' '.strip_tags($conjugations) ?>" data-lang="de" class="trigger_play"></span></td>
  203.         <td><?=$person ?></td>
  204.         <td colspan="2"><?=$conjugations?></td>    
  205.     </tr>
  206. <?}, $person, $conjugations[2] );?>
  207.     <tr class="border">
  208.         <th colspan="4">Perfekt</th>
  209.     </tr>
  210. <?array_map( function ($person, $auxiliaire_conjugation) {?>
  211.     <tr>
  212.         <td><span data-text="<?=$person.' '.strip_tags($auxiliaire_conjugation) ?>" data-lang="de" class="trigger_play"></span></td>
  213.         <td><?=$person. $auxiliaire_conjugation ?></td>
  214.     </tr>
  215. <?}, $person, $auxiliaire_conjugation[0] );?>
  216. </table>
  217.  
  218. <table class="tab">
  219.     <tr class="border">
  220.         <th colspan="5">Futur I</th>
  221.     </tr>
  222. <?array_map( function ($person, $werden_conditional1) {?>
  223.     <tr>
  224.         <td><span data-text="<?=$person.' '.strip_tags($werden_conditional1) ?>" data-lang="de" class="trigger_play"></span></td>
  225.         <td><?=$person ?></td>
  226.         <?=$werden_conditional1 ?>         
  227.     </tr>
  228. <?}, $person, $werden_conditional1 );?>
  229.     <tr class="border">
  230.         <th colspan="5">Futur II</th>
  231.     </tr>
  232. <?array_map( function ($person, $werden2_conditional1) {?>
  233.     <tr>
  234.         <td><span data-text="<?=$person.' '.strip_tags($werden2_conditional1) ?>" data-lang="de" class="trigger_play"></span></td>
  235.         <td><?=$person ?></td>
  236.         <?=$werden2_conditional1 ?>            
  237.     </tr>
  238. <?}, $person, $werden2_conditional1 );?>
  239. </table>
  240. <br>
  241. <br>
  242. <h2 class="home"><a id="konjunktiv-2"></a>Konjunktiv II</h2>
  243. <hr class="linie">
  244. <table class="tab">
  245.     <tr class="border">
  246.         <th colspan="4">Präteritum</th>
  247.     </tr>
  248. <?array_map( function ($person, $conjugations) {?>
  249.     <tr>
  250.         <td><span data-text="<?=$person.' '.strip_tags($conjugations) ?>" data-lang="de" class="trigger_play"></span></td>
  251.         <td><?=$person ?></td>
  252.         <td colspan="2"><?=$conjugations?></td>    
  253.     </tr>
  254. <?}, $person, $conjugations[1] );?>
  255. </table>
  256.  
  257. <table class="tab">
  258.     <tr class="border">
  259.         <th colspan="5">Plusquamperfekt</th>
  260.     </tr>
  261. <?array_map( function ($person, $auxiliaire_conjugation) {?>
  262.     <tr>
  263.         <td><span data-text="<?=$person. strip_tags($auxiliaire_conjugation) ?>" data-lang="de" class="trigger_play"></span></td>
  264.         <td><?=$person. $auxiliaire_conjugation ?></td>
  265.     </tr>
  266. <?}, $person, $auxiliaire_conjugation[1] );?>
  267.     <tr class="border">
  268.         <th colspan="5">Futur I</th>
  269.     </tr>
  270. <?array_map( function ($person, $werden) {?>
  271.     <tr>
  272.         <td><span data-text="<?=$person.' '.strip_tags($werden) ?>" data-lang="de" class="trigger_play"></span></td>
  273.         <td><?=$person ?></td>
  274.         <?=$werden ?>          
  275.     </tr>
  276. <?}, $person, $werden );?>
  277.         <tr class="border">
  278.         <th colspan="5">Futur II</th>
  279.     </tr>
  280. <?array_map( function ($person, $werden2) {?>
  281.     <tr>
  282.         <td><span data-text="<?=$person.' '.strip_tags($werden2) ?>" data-lang="de" class="trigger_play"></span></td>
  283.         <td><?=$person ?></td>
  284.         <?=$werden2 ?>         
  285.     </tr>
  286. <?}, $person, $werden2 );?>
  287. </table>
  288. <br>
  289. <br>
  290. <h2 class="home"><a id="imperativ"></a>Imperativ</h2>
  291. <hr class="linie">
  292. <table class="tab">
  293.     <tr class="border">
  294.         <th colspan="3">Präsens</th>
  295.     </tr>
  296. <?foreach ($conjugations[3] as $present) {?>
  297.     <tr>
  298.         <td><span data-text="<?=$person. strip_tags($conjugations) ?>" data-lang="de" class="trigger_play"></span></td>
  299.         <td><?= $present ?></td>
  300.     </tr>
  301. <?}?>
  302. </table>
  303. <br>
  304. <br>
  305. <h2 class="home"><a id="infinitive"></a>Infinitive</h2>
  306. <hr class="linie">
  307. <table>
  308.     <tr>
  309.         <th class="titel"></th>
  310.         <th class="titel">(nichterweiterte) Infinitive</th>
  311.         <th class="titel"></th>
  312.     </tr>
  313.     <tr>
  314.         <td></td>
  315.         <td class="text-center"><b>Infinitiv Präsens</b></td>
  316.         <td class="text-center"><b>Infinitiv Perfekt</b></td>
  317.     </tr>  
  318.     <tr>
  319.         <td class="text-center"><b>Aktiv</b></td>
  320.         <td><span data-text="<?=$verb ?>" data-lang="de" class="trigger_play"></span><?=$verb ?></td>
  321.         <td><span data-text="<?=strip_tags($participle). ' ' . $auxiliaire ?>" data-lang="de" class="trigger_play"></span><?=strip_tags($participle). ' ' . $auxiliaire ?></td>
  322.     </tr>
  323.     <tr>
  324.         <td class="text-center"><b>Vorgangspassiv</b></td>
  325.         <td><span data-text="<?=strip_tags($participle). ' werden' ?>" data-lang="de" class="trigger_play"></span><?=strip_tags($participle). ' werden' ?></td>
  326.         <td><span data-text="<?=strip_tags($participle). ' worden sein' ?>" data-lang="de" class="trigger_play"></span><?=strip_tags($participle). ' worden sein' ?></td>
  327.     </tr>
  328.     <tr>
  329.         <td class="text-center"><b>Zustandspassiv</b></td>
  330.         <td><span data-text="<?=strip_tags($participle). ' sein' ?>" data-lang="de" class="trigger_play"></span><?=strip_tags($participle). ' sein' ?></td>
  331.         <td><span data-text="<?=strip_tags($participle). ' gewesen sein' ?>" data-lang="de" class="trigger_play"></span><?=strip_tags($participle). ' gewesen sein' ?></td>
  332.      </tr>
  333. </table>
  334. <br>
  335. <br>
  336. <table>
  337.     <tr>
  338.         <th class="titel"></th>
  339.         <th class="titel">erweiterte Infinitive</th>
  340.         <th class="titel"></th>
  341.     </tr>
  342.     <tr>
  343.         <td></td>
  344.         <td class="text-center"><b>Infinitiv Präsens</b></td>
  345.         <td class="text-center"><b>Infinitiv Perfekt</b></td>
  346.     </tr>
  347.     <tr>
  348.         <td class="text-center"><b>Aktiv</b></td>
  349.         <td><span data-text="<?='zu '.$verb ?>" data-lang="de" class="trigger_play"></span><?='zu '.$verb ?></td>
  350.         <td><span data-text="<?=strip_tags($participle). ' zu ' . $auxiliaire ?>" data-lang="de" class="trigger_play"></span><?=strip_tags($participle). ' zu ' . $auxiliaire ?></td>
  351.     </tr>
  352.     <tr>
  353.         <td class="text-center"><b>Vorgangspassiv</b></td>
  354.         <td><span data-text="<?=strip_tags($participle). ' zu werden' ?>" data-lang="de" class="trigger_play"></span><?=strip_tags($participle). ' zu werden' ?></td>
  355.         <td><span data-text="<?=strip_tags($participle). ' worden zu sein' ?>" data-lang="de" class="trigger_play"></span><?=strip_tags($participle). ' worden zu sein' ?></td>
  356.     </tr>
  357.     <tr>
  358.         <td class="text-center"><b>Zustandspassiv</b></td>
  359.         <td><span data-text="<?=strip_tags($participle). ' zu sein' ?>" data-lang="de" class="trigger_play"></span><?=strip_tags($participle). ' zu sein' ?></td>
  360.         <td><span data-text="<?=strip_tags($participle). ' gewesen zu sein' ?>" data-lang="de" class="trigger_play"></span><?=strip_tags($participle). ' gewesen zu sein' ?></td>
  361.      </tr>
  362. </table>
  363. <br>
  364. <br>
  365. <h2 class="home"><a id="partizipen"></a> Partizipien</h2>
  366. <hr class="linie">
  367. <table>
  368.     <tr>
  369.         <th class="titel">Perfekt Aktiv</th>
  370.         <th class="titel">Perfekt Passiv</th>
  371.         <th class="titel">Gerundivum</th>
  372.     </tr>
  373.     <tr>
  374.         <td class="text-center"><span data-text="<?=strip_tags($conjugations[4][0]) ?>" data-lang="de" class="trigger_play"></span><?=strip_tags($conjugations[4][0]) ?></td>
  375.         <td class="text-center"><span data-text="<?=strip_tags($participle) ?>" data-lang="de" class="trigger_play"></span><?=strip_tags($participle) ?></td>
  376.         <td class="text-center"><span data-text="<?=strip_tags('zu '. $conjugations[4][0].'er') ?>" data-lang="de" class="trigger_play"></span><?=strip_tags('zu '. $conjugations[4][0].'er') ?></td>      
  377.     </tr>
  378.     <tr>   
  379.         <td></td>
  380.         <td></td>      
  381.         <td class="text-center"><span data-text="<?=strip_tags('zu '. $conjugations[4][0].'e') ?>" data-lang="de" class="trigger_play"></span><?=strip_tags('zu '. $conjugations[4][0].'e') ?></td>
  382.     </tr>
  383. </table>
  384.  
  385.  
  386.   <?
  387. }
  388. ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement