Ignore:
Timestamp:
1999-07-20T15:02:16+12:00 (25 years ago)
Author:
sjboddie
Message:

added an [icon] option, added ability to call get_formatted_string
with icon and link arguments set

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/gsdl/src/recpt/formattools.cpp

    r359 r407  
    1212/*
    1313   $Log$
     14   Revision 1.4  1999/07/20 03:02:15  sjboddie
     15   added an [icon] option, added ability to call get_formatted_string
     16   with icon and link arguments set
     17
    1418   Revision 1.3  1999/07/09 02:44:35  sjboddie
    1519   fixed parent(All) function so it only outputs parents and not current
     
    3438
    3539// a few function prototypes
    36 static text_t format_string (const ResultDocInfo_t &docinfo, format_t *formatlistptr);
     40static text_t format_string (const ResultDocInfo_t &docinfo, format_t *formatlistptr,
     41                 const text_t &link, const text_t &icon);
    3742
    3843static bool parse_action (text_t::const_iterator &here, const text_t::const_iterator &end,
     
    134139  else if (meta == "num")
    135140    formatlistptr->command = comNum;
     141
     142  else if (meta == "icon")
     143    formatlistptr->command = comIcon;
    136144
    137145  else {
     
    385393}
    386394
    387 static text_t get_or (const ResultDocInfo_t &docinfo, format_t *orptr) {
     395static text_t get_or (const ResultDocInfo_t &docinfo, format_t *orptr,
     396              const text_t &link, const text_t &icon) {
    388397
    389398  text_t tmp;
    390399  while (orptr != NULL) {
    391400
    392     tmp = format_string (docinfo, orptr);
     401    tmp = format_string (docinfo, orptr, link, icon);
    393402    if (!tmp.empty()) return tmp;
    394403
     
    399408
    400409static text_t get_if (const ResultDocInfo_t &docinfo, const decision_t &decision,
    401               format_t *ifptr, format_t *elseptr) {
     410              format_t *ifptr, format_t *elseptr, const text_t &link,
     411              const text_t &icon) {
    402412
    403413  // not much of a choice yet ...
     
    405415    if (get_meta (docinfo, decision.meta) != "") {
    406416      if (ifptr != NULL)
    407     return get_formatted_string (docinfo, ifptr);
     417    return get_formatted_string (docinfo, ifptr, link, icon);
    408418    }
    409419    else {
    410420      if (elseptr != NULL)
    411     return get_formatted_string (docinfo, elseptr);
     421    return get_formatted_string (docinfo, elseptr, link, icon);
    412422    }
    413423  }
     
    415425}
    416426
    417 static text_t format_string (const ResultDocInfo_t &docinfo, format_t *formatlistptr) {
     427static text_t format_string (const ResultDocInfo_t &docinfo, format_t *formatlistptr,
     428                 const text_t &link, const text_t &icon) {
    418429
    419430  if (formatlistptr == NULL) return "";
     
    423434    return formatlistptr->text;
    424435  case comLink:
    425     return "<a href=\"_httpdocument_&cl=search&d=" + docinfo.OID + "\">";
     436    return link;
    426437  case comEndLink:
    427438    return "</a>";
     439  case comIcon:
     440    return icon;
    428441  case comNum:
    429442    return docinfo.result_num;
     
    431444    return get_meta (docinfo, formatlistptr->meta);
    432445  case comIf:
    433     return get_if (docinfo, formatlistptr->decision, formatlistptr->ifptr, formatlistptr->elseptr);
     446    return get_if (docinfo, formatlistptr->decision, formatlistptr->ifptr,
     447           formatlistptr->elseptr, link, icon);
    434448  case comOr:
    435     return get_or (docinfo, formatlistptr->orptr);
     449    return get_or (docinfo, formatlistptr->orptr, link, icon);
    436450  }
    437451  return "";
     
    440454
    441455
    442 text_t get_formatted_string (const ResultDocInfo_t &docinfo, format_t *formatlistptr) {
     456text_t get_formatted_string (const ResultDocInfo_t &docinfo, format_t *formatlistptr,
     457                 const text_t &link, const text_t &icon) {
    443458
    444459  text_t ft;
    445460  while (formatlistptr != NULL) {
    446     ft += format_string (docinfo, formatlistptr);
     461    ft += format_string (docinfo, formatlistptr, link, icon);
    447462    formatlistptr = formatlistptr->nextptr;
    448463  }
     
    451466
    452467
    453 
    454 
     468text_t get_formatted_string (const ResultDocInfo_t &docinfo, format_t *formatlistptr) {
     469
     470  text_t link = "<a href=\"_httpdocument_&cl=search&d=" + docinfo.OID + "\">";
     471  text_t icon = "_icontext_";
     472
     473  text_t ft;
     474  while (formatlistptr != NULL) {
     475    ft += format_string (docinfo, formatlistptr, link, icon);
     476    formatlistptr = formatlistptr->nextptr;
     477  }
     478  return ft;
     479}
     480
     481
     482
     483
Note: See TracChangeset for help on using the changeset viewer.