1
0
Fork 0
mirror of https://github.com/ganelson/inform.git synced 2024-07-05 16:44:21 +03:00
inform7/inter/index-module/Chapter 3/Relations Element.w

45 lines
1.8 KiB
OpenEdge ABL
Raw Normal View History

2021-06-08 01:03:35 +03:00
[RelationsElement::] Relations Element.
2021-06-04 01:03:51 +03:00
To write the Relations element (Rl) in the index.
2021-07-26 01:56:17 +03:00
@ A four-column table of relations.
2021-06-04 01:03:51 +03:00
=
2021-07-26 15:48:49 +03:00
void RelationsElement::render(OUTPUT_STREAM, index_session *session) {
localisation_dictionary *LD = Indexing::get_localisation(session);
tree_inventory *inv = Indexing::get_inventory(session);
2022-02-03 01:35:38 +02:00
InterNodeList::array_sort(inv->relation_nodes, MakeSynopticModuleStage::module_order);
2021-06-04 01:03:51 +03:00
HTML_OPEN("p");
HTML::begin_plain_html_table(OUT);
2021-07-26 01:56:17 +03:00
HTML::first_html_column(OUT, 0);
2021-07-26 02:34:51 +03:00
Localisation::italic(OUT, LD, I"Index.Elements.Rl.NameColumn");
2021-07-26 01:56:17 +03:00
HTML::next_html_column(OUT, 0);
2021-07-26 02:34:51 +03:00
Localisation::italic(OUT, LD, I"Index.Elements.Rl.CategoryColumn");
2021-07-26 01:56:17 +03:00
HTML::next_html_column(OUT, 0);
2021-07-26 02:34:51 +03:00
Localisation::italic(OUT, LD, I"Index.Elements.Rl.FromColumn");
2021-07-26 01:56:17 +03:00
HTML::next_html_column(OUT, 0);
2021-07-26 02:34:51 +03:00
Localisation::italic(OUT, LD, I"Index.Elements.Rl.ToColumn");
2021-06-04 01:03:51 +03:00
HTML::end_html_row(OUT);
2021-07-25 00:04:35 +03:00
inter_package *pack;
LOOP_OVER_INVENTORY_PACKAGES(pack, i, inv->relation_nodes) {
2021-06-04 01:03:51 +03:00
text_stream *name = Metadata::read_optional_textual(pack, I"^name");
text_stream *type = Metadata::read_optional_textual(pack, I"^description");
if ((Str::len(type) == 0) || (Str::len(name) == 0)) continue;
HTML::first_html_column(OUT, 0);
WRITE("%S", name);
2021-07-24 20:16:56 +03:00
IndexUtilities::link_package(OUT, pack);
2021-06-04 01:03:51 +03:00
HTML::next_html_column(OUT, 0);
if (Str::len(type) > 0) WRITE("%S", type); else WRITE("--");
HTML::next_html_column(OUT, 0);
text_stream *term0 = Metadata::read_optional_textual(pack, I"^term0");
if (Str::len(term0) > 0) WRITE("%S", term0); else WRITE("--");
HTML::next_html_column(OUT, 0);
text_stream *term1 = Metadata::read_optional_textual(pack, I"^term1");
if (Str::len(term1) > 0) WRITE("%S", term1); else WRITE("--");
HTML::end_html_row(OUT);
}
HTML::end_html_table(OUT);
HTML_CLOSE("p");
}