output.inc.php 1003 B

123456789101112131415161718192021222324252627282930313233
  1. function linkage($field, $value) {
  2. $setting = string2array($this->fields[$field]['setting']);
  3. $datas = getcache($setting['linkageid'],'linkage');
  4. $infos = $datas['data'];
  5. if($setting['showtype']==1) {
  6. $result = $this->_get_parent($value, $setting['linkageid'], $setting['space']);
  7. } elseif($setting['showtype']==2) {
  8. $result = $value;
  9. } else {
  10. $result = $infos[$value]['name'];
  11. }
  12. return $result;
  13. }
  14. function _get_parent($linkageid, $keyid, $space = '>', $result = array(), $infos = array()) {
  15. if($space=='' || !isset($space))$space = '>';
  16. if(!$infos) {
  17. $datas = getcache($keyid,'linkage');
  18. $infos = $datas['data'];
  19. }
  20. if(array_key_exists($linkageid,$infos)) {
  21. $result[]=$infos[$linkageid]['name'];
  22. return $this->_get_parent($infos[$linkageid]['parentid'], $keyid, $space, $result, $infos);
  23. } else {
  24. if(count($result)>0) {
  25. krsort($result);
  26. $result = implode($space,$result);
  27. return $result;
  28. }
  29. else {
  30. return $result;
  31. }
  32. }
  33. }