hayamiki.anubis 1.68 KB
/*
 * Created by PyramIDE.
 * User: フランスのトトロ aka (David RENÉ) 
 * Date: 13/02/2016
 * Time: 09:45
 * © Calexium 
 */

read calexium_lib/web/CXM_web_arg_utils.anubis
transmit hayamiki_lib/model/fields.anubis
transmit hayamiki_lib/model/database.anubis
transmit hayamiki_lib/model/columns.anubis

public type HK_Referer:
  no_referer,
  hk_referer(
    String  referer_table,
    String  referer_row_id,
    String  fk_table,
    String  fk_column
  )
.

public define HK_Referer
  get_HK_Referer_from_web_arg
  (
    List(Web_arg) lwa,
    String        __prefix__
  )=
  if get_Bool(lwa, __prefix__+"hk_referer")   then
    if get_String(lwa, __prefix__+"referer_table")    is { failure then no_referer, success(referer_table)    then
    if get_String(lwa, __prefix__+"referer_row_id")   is { failure then no_referer, success(referer_row_id)   then
    if get_String(lwa, __prefix__+"fk_table")         is { failure then no_referer, success(fk_table)         then
    if get_String(lwa, __prefix__+"fk_column")        is { failure then no_referer, success(fk_column)        then
      hk_referer(
        referer_table,
        referer_row_id,
        fk_table,
        fk_column
     )
    }}}}
  else
    no_referer
.

public define String
  to_Web_arg
  (
    HK_Referer  referer,
    String      __prefix__
  )=
  if referer is
  {
    no_referer  then __prefix__+"hk_referer=false",
    hk_referer(referer_table, referer_row_id, fk_table, fk_column) then
      __prefix__+"hk_referer=true&"+
      __prefix__+"referer_table="+referer_table+"&"+
      __prefix__+"referer_row_id="+referer_row_id+"&"+
      __prefix__+"fk_table="+ fk_table+"&"+
      __prefix__+"fk_column="+ fk_column
  }
.