/** * Uzas la serĉ-opciojn por serĉi kaj * montras la rezulton. * * TODO: Plibeligu la aspekton. * @uses Sercxilo */ function montruRezulton($valoroj) { $sercxilo = new Sercxilo(); $teksto = eotransform("<h3>Serc^rezulto</h3>\n"); list($kampoj, $inversa, $sql) = kreuSercxSQL($valoroj); if (empty($kampoj)) { eoecho("<p>Vi elektu <em>almenau^ unu serc^indaj^o</em>" . " – alikaze mi nenion povas serc^i.</p>"); return; } $sercxilo->metu_sql($sql); $teksto .= "<p><code>{$sql}</code></p>"; $kolumnoj = array(); foreach ($kampoj as $alias) { $kol = array('kampo' => $alias, 'titolo' => $inversa[$alias]['titolo']); if ($inversa[$alias]['ligo']) { $kol['ligilsxablono'] = $inversa[$alias]['ligo']; } $kolumnoj[] = $kol; // $kolumnoj []= array($alias, $inversa[$alias]['titolo'], 'XXXXX', 'l', // $inversa[$alias]['ligo'], ''); } $sercxilo->metu_kolumnojn($kolumnoj); if (in_array('nomo', $kampoj) and in_array('personanomo', $kampoj) and in_array('ID', $kampoj)) { if ($valoroj['sercxo_titolo']) { $sercxilo->metu_menutitolon("g^en. serc^o: " . $valoroj['sercxo_titolo']); } else { $sercxilo->metu_menutitolon("rezulto de sennoma " . "g^enerala serc^o"); } } else { } reset($kampoj); $sercxilo->metu_ordigon(current($kampoj), 'asc'); $sercxilo->metu_sumregulojn(array(array(array('entute:', '', 'r'), array('XX', 'A', 'l')))); $sercxilo->metu_memligomontradon(true); $sercxilo->metu_identigilon('gxenerala_sercxo_rezulto'); if (strtoupper(substr($_REQUEST['tipo'], 0, 4)) == 'HTML') { echo $teksto; } echo "<!-- " . var_export($sercxilo, true) . "-->"; $sercxilo->montru_rezulton_en_tipo($_REQUEST['tipo']); }
/** * Kreas kaj redonas HTML-ligilon. * * @param urlstring $kien la URI de la paĝo (povas esti relativa). * @param eostring $teksto la teksto de la ligilo (en eo-kodigo) * @param string $celo (nenecesa) se en alia ol la defaŭlta * kadro, donu ties nomon. * @param string|array $aldona_skripto aldonaj atributoj por * la '<a>'-Elemento. * aŭ en unu ĉeno (inkluzive atributnomoj, * '=' kaj citiloj), aŭ kiel nomo-valoro-array. * * @return u8string la HTML-kodo, preta por eldoni ĝin. */ function donu_ligon($kien, $teksto, $celo = "", $aldona_skripto = "") { $rez = '<a href="' . str_replace('&', '&', $kien) . '" '; if ($celo) { $rez .= "target='{$celo}'"; } if (is_string($aldona_skripto)) { $rez .= " " . htmlspecialchars($aldona_skripto, ENT_NOQUOTES); } else { if (is_array($aldona_skripto)) { foreach ($aldona_skripto as $nomo => $valoro) { $rez .= " " . $nomo . '="' . htmlspecialchars($valoro, ENT_COMPAT) . '"'; } } } $rez .= ">"; $rez .= eotransform($teksto); $rez .= "</a>"; return $rez; }
/** * Montras serĉo-kampon kun elekteblaj kondiĉoj en tabellinio. * * La kondiĉo-parto enhavas la eblecon elekti unu aŭ plurajn * el listo de valoroj - iu datumbazero estos trovita, se la valoro * de la kampo estas unu el la markitaj. * ... * * @param eostring $priskribo la nomo de kampo (por serĉantoj), * t.e. titolo en la serĉ-tabelo. * @param string $tabelo nomo de datumbaztabelo. * @param string $nomo la (datumbaza) nomo de la kampo. * @param array $valoroj la ĝenerala serĉ-detaloj-strukturo. * * @param array $elekteblecoj: array() kun eroj de la formo * interna_valoro => priskribo (eostring). * * @param string $alias kiel ni renomu la kampon dum la serĉo? * (necesa se samnoma kampo aperas en * diversaj tabeloj.) * @param eostring $titolo se donita, ni uzas tion kiel nomo de la * rezulto-tabelo. Se ne, ni uzas $priskribo. */ function sercxelektolinio($priskribo, $tabelo, $nomo, $valoroj, $elekteblecoj, $alias = "", $titolo = "") { $tipnomo = "sercxo_{$tabelo}__{$nomo}_tipo"; $montrunomo = "sercxo_{$tabelo}__{$nomo}_montru"; $uzunomo = "sercxo_{$tabelo}__{$nomo}_estasKriterio"; // $skripto = "kolorSxangxoDekstre('$tabelo', '$nomo')"; eoecho("<tr id='{$tabelo}-{$nomo}-tabellinio'><th >{$priskribo}</th><td>"); if ($alias) { tenukasxe("sercxo_{$tabelo}__{$nomo}_alias", $alias); } if ($titolo) { tenukasxe("sercxo_{$tabelo}__{$nomo}_titolo", $titolo); } else { tenukasxe("sercxo_{$tabelo}__{$nomo}_titolo", $priskribo); } jes_ne_bokso($montrunomo, $valoroj[$montrunomo], "kolorSxangxoMaldekstre('{$tabelo}', '{$nomo}')"); echo "</td><td>"; jes_ne_bokso($uzunomo, $valoroj[$uzunomo], "kolorSxangxoDekstre('{$tabelo}', '{$nomo}')"); echo "</td><td><span id='{$tabelo}-{$nomo}-kriterioj'>"; // simpla_entajpbutono($tipnomo, $valoroj[$tipnomo], "malatentu", "kutima", $skripto); // eoecho (" <em>ne uzu</em> |\n"); tenukasxe($tipnomo, "unu_el"); eoecho(" nur unu el la sekve krucitaj: <br/>\n"); $valornomo = "sercxo_{$tabelo}__{$nomo}_elekto"; $elektoj = $valoroj[$valornomo]; if (!is_array($elektoj)) { $elektoj = array($elektoj); } $elekttekstoj = array(); foreach ($elekteblecoj as $frazo => $alias) { $teksto = "<input type='checkbox' name='{$valornomo}[]' value='{$frazo}' "; if (in_array($frazo, $elektoj)) { $teksto .= "checked='checked' "; } $teksto .= "/> "; $teksto .= eotransform($alias); $elekttekstoj[] = $teksto; } echo join(" |\n", $elekttekstoj); echo "\n</span></td></tr>\n"; }
function eoecho($io) { echo eotransform($io); }
/** * kreas listeron (<li>) pri tiu paŝo por la paŝo-navigilo. * * @param array $pasxo_dato array() kun informoj pri unu paŝo, kiel kreita * de necesaj_kaj_eblaj_pasxoj. * 'id' => identifigilo * 'nomo' => nomo * 'ebla' => ĉu eblas atingi tiun paŝon nun * 'necesa' => ĉu necesas trairi tiun paŝon * 'aktuala' => ĉu tiu estas la aktuala paŝo * 'sekva' => ĉu tiu estas la sekva paŝo * 'onta' => ĉu tiu estas unu el la ontaj paŝoj */ function formatu_pasxon($pasxo_datoj) { if (DEBUG) { echo "<!-- pasxo-datoj: " . var_export($pasxo_datoj, true) . "-->"; } extract($pasxo_datoj); if ($ebla) { $ligoteksto = donu_ligon("akceptado-" . $id . ".php", $nomo); } else { $ligoteksto = eotransform($nomo); } if ($aktuala) { $stilo = 'aktuala'; } else { if ($onta) { $stilo = 'onta'; } else { $stilo = 'inta'; } } if (!$necesa) { $ligoteksto = "(" . $ligoteksto . ")"; } return "<li class='akceptado-pasxo-" . $stilo . "'>" . $ligoteksto . "</li>"; }