// nur montru cxiujn tekstojn (kun redakto-ligo).
 $GLOBALS['tekstpriskriboj'][""] = array();
 eoecho("\n<form action='tekstoj.php' method='post'>\n\n\n  <h2>Tekstoj</h2>\n  <p>\n    La <em>tekstoj</em> estas uzataj ekzemple por\n    havi retmesag^tekstojn kaj similajn aferojn, kiuj varias lau^ renkontig^o,\n    ne en la programo, sed en la datumbazo. Pri la signifoj legu en \n    ");
 // TODO: movu la dokumentadon al pli tauxga loko
 ligu("http://www.esperanto.de/dej/vikio/IS-Datenbazo/Tekstoj", "la vikipag^o", "_blank");
 eoecho("\n    pri tiu temo. La tekstoj estu en esperanta &#99;^-kodigo.\n  </p>\n  <ul><li>Vi povos redakti unuopan tekston (inkluzive la identifikilon) per la <code>red</code>-ligo.</li>\n   <li>Alternative vi povos elekti plurajn tekstojn (meti hokon) kaj uzi la butonon <em>Redaktu la markitajn tekstojn</em> sube.</li>\n   <li>Vi ec^ povos <em>redakti c^iujn tekstojn</em> per samnoma butono.</li>\n  </ul>\n<table>");
 echo "<tr><td colspan='4'>";
 ligu("nova_teksto.php", "kreu novan tekston");
 echo "</td></tr>\n";
 eoecho("<tr><th>mesag^o-ID</th><td/><th>Valoro</th>" . "<th>Priskribo</th></tr>\n");
 $sql = datumbazdemando(array('id', 'mesagxoID', 'teksto'), 'tekstoj', "renkontigxoID = '{$renk['ID']}'");
 $rez = sql_faru($sql);
 while ($linio = mysql_fetch_assoc($rez)) {
     eoecho("\n    <tr><th>" . $linio['mesagxoID'] . "</th>\n      <td><input type='checkbox' name='redaktu[" . $linio['id'] . "]' value='true' /><br/>");
     ligu('nova_teksto.php?id=' . $linio['id'], "red.");
     $priskribo = donu_tekstpriskribon($linio['mesagxoID']);
     $GLOBALS['tekstpriskriboj'][""][$priskribo['mesagxoID']]['uzata'] = true;
     eoecho("</td><td><p style='white-space: pre; white-space: pre-wrap'>" . $linio['teksto'] . "</pre>\n      </td><td>" . $priskribo['priskribo'] . "\n      </td>\n    </tr>");
 }
 echo "</table>";
 butono('redaktu', "Redaktu la markitajn tekstojn");
 butono('redaktu_cxiujn', "Redaktu c^iujn tekstojn");
 ligu("renkontigxo.php", "Reen al la renkontig^o");
 ligu("administrado.php", "Reen al la grava administrado");
 echo "</form>\n";
 $restantaj = array();
 foreach ($GLOBALS['tekstpriskriboj'][""] as $priskribo) {
     if (!$priskribo['uzata'] and $priskribo['mesagxoID']) {
         $restantaj[] = $priskribo;
     }
 }
    if ($linio['renkontigxoID'] != $_SESSION['renkontigxo']->datoj['ID']) {
        $_SESSION['renkontigxo'] = new Renkontigxo($linio['renkontigxoID']);
    }
    // redakto de ekzistanta teksto
    eoecho("<h2>Redakto de ekzistanta teksto</h2>");
    eoecho("<p>Vi nun s^ang^os tekston (#" . $_REQUEST['id'] . ") de la renkontig^o " . $_SESSION['renkontigxo']->datoj['mallongigo'] . " (#" . $_SESSION['renkontigxo']->datoj['ID'] . ").</p>");
    $id_postt = "(Kutime ne necesas s^ang^i tiun - faru tion nur," . " se vi scias, ke kaj kial tio necesas.)";
    $_REQUEST['mesagxoID'] = $linio['mesagxoID'];
    $_REQUEST['teksto'] = $linio['teksto'];
} else {
    eoecho("<h2>Aldono de nova teksto</h2>");
    eoecho("<p>Vi nun aldonos tekston al la renkontig^o " . $_SESSION['renkontigxo']->datoj['mallongigo'] . " (#" . $_SESSION['renkontigxo']->datoj['ID'] . ").</p>");
    $id_postt = "";
    $linio = "";
}
$priskribo = donu_tekstpriskribon($_REQUEST['mesagxoID']);
if ($priskribo) {
    //         if (DEBUG) {
    echo "<!-- priskribo: " . var_export($priskribo, true) . "-->";
    //         }
    eoecho("<p>" . $priskribo['priskribo'] . "</p>\n");
    if ($priskribo['mesagxoID'] != $_REQUEST['mesagxoID']) {
        $sql = datumbazdemando(array('ID'), 'tekstoj', "mesagxoID = '" . $priskribo['mesagxoID'] . "'", "renkontigxoID");
        $rez = sql_faru($sql);
        $alia = mysql_fetch_assoc($rez);
        eoecho("<p>Tiu teksto estas lingva varianto de la teksto ");
        if ($alia) {
            ligu('nova_teksto.php?id=' . $alia['ID'], $priskribo['mesagxoID']);
            eoecho(".</p>\n");
        } else {
            eoecho("<code>" . $priskribo['mesagxoID'] . "</code>, kiu tamen ankorau^ ne ekzistas " . "en tiu renkontig^o. (");
function traktu_kampon_interne($tabelnomo, $kamponomo,
                               $dosiernomo, $restrikto, $atributoj)
{
    if ($atributoj['flag']) {
        traktu_kampon_flag($tabelnomo, $kamponomo,
                           $dosiernomo, $restrikto, $atributoj);
        return;
    }

    global $trovitaj, $chefa, $tradukoj;


    $helpajKampoj = array();

    if ($atributoj['helpoteksto']) {
        $helpajKampoj[$atributoj['helpoteksto']] = 'helpoteksto';
    }
    if ($atributoj['helpeDe']) {
        $helpajKampoj[$atributoj['helpeDe']] = 'helpo';
    }


    /*
     * ideo: ni trairas ambaŭ samtempe ordigitaj laŭ ID, kaj
     * tiel trovas samtempe aldonendajn kaj forigendajn.
     */

    $sql_org = 
        datumbazdemando(array_merge(array('ID',
                                          $kamponomo => 'org'),
                                    $helpajKampoj),
                        $tabelnomo,
                        $restrikto,
                        "",
                        array('order' => 'ID ASC'));
    /*
        "\n SELECT  `ID`, `" . $kamponomo . "` AS org" . $helpValSQL .
        "\n   FROM `" . $tabelo_interna . "` " .
        "\n   ORDER BY `ID` ASC ";
    */
    $sql_trad =
        datumbazdemando(array('(0 + `cheno`)' => 'ID',
                              'cheno', 'traduko'),
                        'tradukoj',
                        array("`dosiero` = '" . $dosiernomo . "'",
                              "`iso2` = '" . $chefa . "'"),
                        "",
                        array("order" => "`ID` ASC"));
    /*
        "\n SELECT (0 + `cheno`) AS `ID`, `cheno`, `traduko` " .
        "\n   FROM `" . $tabelo . "`  " .
        "\n   WHERE `dosiero` = '" . $dosiernomo . "' " .
        "\n     AND `iso2` = '" . $chefa . "' " .
        "\n     ORDER BY `ID` ASC ";
    */
    echo("<pre>$sql_org</pre><pre>$sql_trad</pre>");

    $rez_org = mysql_query($sql_org);
    $rez_trad = mysql_query($sql_trad);

    $linio_org = mysql_fetch_assoc($rez_org);
    $linio_trad = mysql_fetch_assoc($rez_trad);
    while (true) {
        if (null == $linio_org) {
            // ne plu estas linioj en la originala tabelo
            if (null == $linio_trad) {
                break;
            }
            // TODO: listu la restantajn
            $id_org = PHP_INT_MAX;
            $id_trad = (int) $linio_trad['ID'];
        }
        else if (null == $linio_trad) {
            // ne plu estas linioj en la traduktabeloj, sed ja en la originala
            // TODO: listu la restantajn
            $id_org = (int) $linio_org['ID'];
            $id_trad = PHP_INT_MAX;
        }
        else {
            $id_org = (int) $linio_org['ID'];
            $id_trad = (int) $linio_trad['ID'];
        }
        //        echo "<pre>org: $id_org, trad: $id_trad</pre>\n";

        if ($id_trad < $id_org) {
            // ni havas tradukon sen originalo - ne traktu nun, estos
            // trovita poste.

            // next(trad)
            $linio_trad = mysql_fetch_assoc($rez_trad);
        }
        else {
            // ni trovis linion en la originala tabelo, ĉu
            // kun aŭ sen traduko
            
            $trad_kampo = eotransformado($linio_org['org'],
                                         "por-tradukilo");

            if ($id_org == $id_trad) {
                // linio kun jam ekzistanta traduko
                $cheno = $linio_trad['cheno'];

                // ==> ni komparu ĝin nun.
                if ($trad_kampo != $linio_trad['traduko']) {
                    // proponu aktualigon
                    skatolo_por_cheno("aktualigu",
                                      $tradukoj["stato-aktualigenda-db"],
                                      "retradukenda",
                                      $dosiernomo, 1, $cheno, $chefa,
                                      $linio_trad['traduko'], $trad_kampo);
                }
                // next(trad)
                $linio_trad = mysql_fetch_assoc($rez_trad);
            }
            else {
                // ni havas linion en la originala tabelo sen tradukoj
                $trovitaj[]= $dosiernomo . "#" . $id_org;

                if ($atributoj['helpoteksto']) {
                    $cheno =
                        ((string)$id_org) .
                        " (" . $linio_org['helpoteksto'] . ")";
                }
                else  {
                    $cheno = (string)$id_org;
                }
                $komento = "";
                if ($atributoj['helpeDe']) {
                    if ($atributoj['klarigoj']) {
                        
                        require_once($GLOBALS['prafix'] .
                                     "/iloj/iloj_tekstoj.php");
                        $helpdosiero =
                            $GLOBALS['prafix'] . $atributoj['klarigoj'];

                        $informoj =
                            donu_tekstpriskribon($linio_org['helpo'],
                                                 $helpdosiero);
                        $komento = eotransformado($informoj['priskribo'],
                                                  "por-tradukilo");
//                         echo "<pre>";
//                         //                        var_export();
//                         var_export($helpdosiero);
//                         var_export($komento);
//                         echo "</pre>";
                    }
                    else {
                        $komento = "";
                    }
                }

                // proponu aldonon
                skatolo_por_cheno("aldonu",
                                  $tradukoj["stato-aldonenda-db"],
                                  "aldonenda",
                                  $dosiernomo, 1, $cheno, $chefa,
                                  "", $trad_kampo,
                                  $komento);
            }

            // por la listo de trovitajxoj
            $trovitaj[]= $dosiernomo . "#" . $cheno;
            // next(org)
            $linio_org = mysql_fetch_assoc($rez_org);
            
        } // else

    }// while

}  // traktu_kampon