@@ -1836,7 +1836,10 @@ function caProcessTemplateForIDs($ps_template, $pm_tablename_or_num, $pa_row_ids
1836
1836
if (!isset ($ va_relationship_values [$ vs_pk_val ])) { $ va_relationship_values [$ vs_pk_val ] = array (0 => null ); }
1837
1837
1838
1838
foreach ($ va_relationship_values [$ vs_pk_val ] as $ vn_relation_id => $ va_relationship_value_array ) {
1839
+ $ vb_is_related = false ;
1840
+ $ va_related_ids = array ();
1839
1841
$ va_val = null ;
1842
+
1840
1843
if (isset ($ va_relationship_value_array [$ vs_tag ]) && !(isset ($ pa_options ['showHierarchicalLabels ' ]) && $ pa_options ['showHierarchicalLabels ' ] && ($ vs_tag == 'label ' ))) {
1841
1844
$ va_val = array ($ vs_val = $ va_relationship_value_array [$ vs_tag ]);
1842
1845
} else {
@@ -1855,10 +1858,20 @@ function caProcessTemplateForIDs($ps_template, $pm_tablename_or_num, $pa_row_ids
1855
1858
$ vs_get_spec = $ vs_tag ;
1856
1859
}
1857
1860
1861
+ $ va_spec_bits = explode (". " , $ vs_get_spec );
1862
+ if ((sizeof ($ va_spec_bits ) == 1 ) && ($ o_dm ->getTableNum ($ va_spec_bits [0 ]))) {
1863
+ $ vs_get_spec .= ".preferred_labels " ;
1864
+ }
1858
1865
$ va_val = $ qr_res ->get ($ vs_get_spec , array_merge ($ pa_options , array ('returnAsArray ' => true )));
1866
+ $ vb_is_related = true ;
1867
+ $ va_related_ids = $ qr_res ->get ($ va_tmp [0 ].". " .$ o_dm ->getTablePrimaryKeyName ($ va_tmp [0 ]), array ('returnAsArray ' => true ));
1859
1868
} else {
1860
1869
if ($ va_tmp [0 ] == $ ps_tablename ) { array_shift ($ va_tmp ); } // get rid of primary table if it's in the field spec
1861
1870
1871
+ if (!sizeof ($ va_tmp )) {
1872
+ $ va_tmp [] = "preferred_labels " ;
1873
+ }
1874
+
1862
1875
if (isset ($ pa_options ['showHierarchicalLabels ' ]) && $ pa_options ['showHierarchicalLabels ' ]) {
1863
1876
if ($ va_tmp [1 ] == 'preferred_labels ' ) {
1864
1877
array_unshift ($ va_tmp , 'hierarchy ' );
@@ -1892,6 +1905,10 @@ function caProcessTemplateForIDs($ps_template, $pm_tablename_or_num, $pa_row_ids
1892
1905
1893
1906
1894
1907
if (is_array ($ va_val )) {
1908
+ if ($ vb_is_related ) {
1909
+ $ va_val = caCreateLinksFromText ($ va_val , $ va_tmp [0 ], $ va_related_ids );
1910
+ }
1911
+
1895
1912
foreach ($ va_val as $ vn_j => $ vs_val ) {
1896
1913
$ va_tag_val_list [$ vn_i ][$ vn_j ][$ vs_tag ] = $ vs_val ;
1897
1914
if ((is_array ($ vs_val ) && (sizeof ($ vs_val ))) || (strlen ($ vs_val ) > 0 )) {
0 commit comments