root/devel/mod/profile/lib/generate_vcard_adr_fields.php

Revision 1545, 4.1 kB (checked in by ewout, 1 year ago)

FOAF files were not being generated with error checking on. This was due to the use of the of array based profile data structure instead of the new class based one. Resolves #298.

  • Property svn:eol-style set to native
Line 
1 <?php
2
3     // If $data['vcard:profile:adr'] is set and has elements in it ...
4     
5         $user_id = (int) $parameter;
6     
7         $foaf_elements = "";
8         $where = run("users:access_level_sql_where",$_SESSION['userid']);
9     
10         if (!empty($data['vcard:profile:adr']) && sizeof($data['vcard:profile:adr']) > 0) {
11             
12             foreach($data['vcard:profile:adr'] as $foaf_element) {
13
14                 $value = "";
15                 $value_type = "";
16                 
17                 $profile_value = addslashes($foaf_element[0]);
18                 $foaf_name = $foaf_element[1];
19                 $individual = $foaf_element[2];
20                 $resource = $foaf_element[3];
21                 foreach($data['profile:details'] as $profile_element) {
22                     if ($profile_element->internal_name == $profile_value) {
23                         $value_type = $profile_element->field_type;
24                     }
25                 }
26                 if ($value_type != "keywords") {
27                     $result = get_records_select('profile_data',"name = '$profile_value' AND ($where) AND owner = ".$user_id,null,'','ident,value');
28                 } else {
29                     $result = get_records_select('tags',"tagtype = '$profile_value' AND ($where) AND owner = $user_id",null,'','ident,tag AS value');
30                 }
31                 if (!empty($result)) {
32                     if ($individual == "individual") {
33                         foreach($result as $element) {
34                             if (trim($element->value) != "") {
35                                 $value = stripslashes($element->value);
36                                 if ($resource == "resource") {
37                                     $enclosure = "\t\t\t<" . $foaf_name . " ";
38                                     if ($value_type == "keywords") {
39                                         $enclosure .= "dc:title=\"" . htmlspecialchars($value, ENT_COMPAT, 'utf-8') . "\" ";
40                                         $enclosure .= "rdf:resource=\"" . url . "tag/".urlencode($value)."\" />\n";
41                                     } else {
42                                         $enclosure .= "rdf:resource=\"" . htmlspecialchars($value, ENT_COMPAT, 'utf-8') . "\" />\n";
43                                     }
44                                     $foaf_elements .= $enclosure;
45                                 } else {
46                                     $enclosure = "\t\t\t<" . $foaf_name . "><![CDATA[" . htmlspecialchars($value, ENT_COMPAT, 'utf-8') . "]]></" . $foaf_name . ">\n";
47                                     $foaf_elements .= $enclosure;
48                                 }
49                             }
50                         }
51                     } else {
52                         foreach($result as $element) {
53                             if (trim($element->value) != "") {
54                                 if ($value != "") {
55                                     $value .= ", ";
56                                 }
57                                 $value .= stripslashes($element->value);
58                             }
59                             if ($resource == "resource") {
60                                 $enclosure = "\t\t\t<" . $foaf_name . " ";
61                                 if ($value_type == "keywords") {
62                                     $enclosure .= "dc:title=\"" . htmlspecialchars($value, ENT_COMPAT, 'utf-8') . "\" ";
63                                     $enclosure .= "rdf:resource=\"" . url . "tag/".urlencode($value)."\" />\n";
64                                 } else {
65                                     $enclosure .= "rdf:resource=\"" . htmlspecialchars($value, ENT_COMPAT, 'utf-8') . "\" />\n";
66                                 }
67                             } else {
68                                 $enclosure = "\t\t\t<" . $foaf_name . "><![CDATA[" . htmlspecialchars($value, ENT_COMPAT, 'utf-8') . "]]></" . $foaf_name . ">\n";
69                             }
70                         }
71                         $foaf_elements .= $enclosure;
72                     }
73                 }
74                 
75             }
76             
77         }
78         
79         $run_result .= $foaf_elements;
80
81 ?>
Note: See TracBrowser for help on using the browser.