@@ -183,4 +183,136 @@ function b_qr_mecard_edit($options) {
183
183
return $ form ;
184
184
}
185
185
186
+ // vCard : lower device compatibility than MECARD, but requested
187
+
188
+ function b_qr_vcard_show ($ options ) {
189
+ for ($ i =0 ;$ i <28 ;$ i ++) {
190
+ $ options [$ i ]=mb_decode_numericentity ($ options [$ i ], array (0x0 , 0x2FFFF , 0 , 0xFFFF ), 'UTF-8 ' );
191
+ }
192
+ $ crlf ="\r\n" ;
193
+ $ vcard ="BEGIN:VCARDVERSION:3.0REV: " .date ('c ' ).$ crlf ;
194
+ $ vcard .="FN: {$ options [0 ]}" .$ crlf ;
195
+ $ vcard .="N: {$ options [1 ]}; {$ options [2 ]}; {$ options [3 ]}; {$ options [4 ]}; {$ options [5 ]}" .$ crlf ;
196
+ if (!empty ($ options [6 ])) $ vcard .="ORG: {$ options [6 ]}" .$ crlf ;
197
+ if (!empty ($ options [7 ])) $ vcard .="TITLE: {$ options [7 ]}" .$ crlf ;
198
+ if (!empty ($ options [9 ]) || !empty ($ options [10 ]) || !empty ($ options [11 ]) || !empty ($ options [12 ]) ||
199
+ !empty ($ options [13 ]) || !empty ($ options [14 ]) || !empty ($ options [15 ])) {
200
+ $ vcard .="ADR;TYPE= {$ options [8 ]}: {$ options [9 ]}; {$ options [10 ]}; {$ options [11 ]}; " ;
201
+ $ vcard .="{$ options [12 ]}; {$ options [13 ]}; {$ options [14 ]}; {$ options [15 ]}" .$ crlf ;
202
+ }
203
+ if (!empty ($ options [16 ])) $ vcard .="EMAIL;TYPE=INTERNET,PREF: {$ options [16 ]}" .$ crlf ;
204
+ if (!empty ($ options [17 ])) $ vcard .="EMAIL;TYPE=INTERNET: {$ options [17 ]}" .$ crlf ;
205
+ if (!empty ($ options [18 ])) $ vcard .="TEL;TYPE= {$ options [19 ]},PREF: {$ options [18 ]}" .$ crlf ;
206
+ if (!empty ($ options [20 ])) $ vcard .="TEL;TYPE= {$ options [21 ]}: {$ options [20 ]}" .$ crlf ;
207
+ if (!empty ($ options [22 ])) $ vcard .="TEL;TYPE= {$ options [23 ]}: {$ options [22 ]}" .$ crlf ;
208
+ if (!empty ($ options [24 ])) $ vcard .="URL: {$ options [24 ]}" .$ crlf ;
209
+ if (!empty ($ options [25 ])) $ vcard .="NOTE: {$ options [25 ]}" .$ crlf ;
210
+ if (!empty ($ options [26 ])) $ vcard .="{$ options [26 ]}" .$ crlf ;
211
+ if (!empty ($ options [27 ])) $ vcard .="{$ options [27 ]}" .$ crlf ;
212
+ $ vcard .="TZ: " .date ('O ' ).$ crlf ;
213
+ $ vcard .="END:VCARD " .$ crlf ;
214
+
215
+ $ dir = basename ( dirname ( dirname ( __FILE__ ) ) ) ;
216
+
217
+ $ block ['qrcode ' ]='<img src=" ' .XOOPS_URL .'/modules/ ' .$ dir .'/getqrcode.php?qrdata= ' .urlencode ($ vcard ).'" alt=" ' .$ options [28 ].'" title=" ' .$ options [28 ].'"> ' ;
218
+ $ block ['qrdata ' ]=urlencode ($ vcard );
219
+ $ block ['qrscript ' ]= XOOPS_URL .'/modules/ ' .$ dir .'/getqrcode.php?qrdata= ' ;
220
+ // $block['url']=$oururl;
221
+ $ block ['alt ' ]=$ options [28 ];
222
+ $ block ['imagedir ' ]= XOOPS_URL .'/modules/ ' .$ dir .'/images ' ;
223
+ $ block ['usepopup ' ]= $ options [29 ]?true :false ;
224
+ $ block ['mouseover ' ]= $ options [29 ]>1 ;
225
+ $ block ['popupprompt ' ]= $ options [30 ];
226
+ $ block ['popupclose ' ]=_MB_QR_SHOW_AS_POPUP_CLOSE ;
227
+ trigger_error (print_r ($ block ,1 ));
228
+
229
+ return $ block ;
230
+ }
231
+
232
+ function b_qr_formatvcard ($ tag ,$ value ) {
233
+ $ carditem ='' ;
234
+ $ value =mb_decode_numericentity ($ value , array (0x0 , 0x2FFFF , 0 , 0xFFFF ), 'UTF-8 ' );
235
+ // escape according to docomo docs
236
+ $ value =str_replace ("\\" ,"\\\\" ,$ value );
237
+ $ value =str_replace (": " ,"\\: " ,$ value );
238
+ $ value =str_replace ("; " ,"\\; " ,$ value );
239
+ if ($ tag =='N ' || $ tag =='ADR ' || $ tag =='KANA ' ) $ value =str_replace (", " ,"\\, " ,$ value );
240
+ if (!empty ($ value )) $ carditem =$ tag .': ' .$ value .'; ' ;
241
+ return $ carditem ;
242
+ }
243
+
244
+ function b_qr_vcard_add ($ prompt ,$ op ,$ value ,$ br =true ,$ type ='' )
245
+ {
246
+ $ form =$ prompt ;
247
+ $ l =$ br ?'<br /> ' :'' ;
248
+ switch (strtoupper ($ type )) {
249
+ case 'ADR ' :
250
+ $ form .= ": <select id='options[ {$ op }]' name='options[ {$ op }]'> " ;
251
+ $ form .= '<option value="WORK" ' .($ value =="WORK " ?' selected ' :'' ).'> ' ._MB_QR_VCARD_TYPE_WORK .'</option> ' ;
252
+ $ form .= '<option value="HOME" ' .($ value =="HOME " ?' selected ' :'' ).'> ' ._MB_QR_VCARD_TYPE_HOME .'</option> ' ;
253
+ $ form .= '</select> ' ;
254
+ break ;
255
+ case 'TEL ' :
256
+ $ form .= ": <select id='options[ {$ op }]' name='options[ {$ op }]'> " ;
257
+ $ form .= '<option value="CELL,VOICE" ' .($ value =="CELL,VOICE " ?' selected ' :'' ).'> ' ._MB_QR_VCARD_TYPE_CELL .'</option> ' ;
258
+ $ form .= '<option value="WORK,VOICE" ' .($ value =="WORK,VOICE " ?' selected ' :'' ).'> ' ._MB_QR_VCARD_TYPE_WORK .'</option> ' ;
259
+ $ form .= '<option value="HOME,VOICE" ' .($ value =="HOME,VOICE " ?' selected ' :'' ).'> ' ._MB_QR_VCARD_TYPE_HOME .'</option> ' ;
260
+ $ form .= '<option value="FAX" ' .($ value =="FAX " ?' selected ' :'' ).'> ' ._MB_QR_VCARD_TYPE_FAX .'</option> ' ;
261
+ $ form .= '</select> ' ;
262
+ break ;
263
+ default :
264
+ case '' :
265
+ $ form .= ": <input type='text' value=' {$ value }' id='options[ {$ op }]' name='options[ {$ op }]' /> " ;
266
+ break ;
267
+ }
268
+ return $ form .$ l ;
269
+ }
270
+
271
+ function b_qr_vcard_edit ($ options ) {
272
+ $ form = _MB_QR_VCARD_STRING ."<br /> " ;
273
+
274
+ $ form .= b_qr_vcard_add (_MB_QR_VCARD_FN ,'0 ' ,$ options [0 ]);
275
+ $ form .= b_qr_vcard_add (_MB_QR_VCARD_N_FAMILY ,'1 ' ,$ options [1 ]);
276
+ $ form .= b_qr_vcard_add (_MB_QR_VCARD_N_GIVEN ,'2 ' ,$ options [2 ]);
277
+ $ form .= b_qr_vcard_add (_MB_QR_VCARD_N_ADDITIONAL ,'3 ' ,$ options [3 ]);
278
+ $ form .= b_qr_vcard_add (_MB_QR_VCARD_N_PREFIX ,'4 ' ,$ options [4 ]);
279
+ $ form .= b_qr_vcard_add (_MB_QR_VCARD_N_SUFFIX ,'5 ' ,$ options [5 ]);
280
+ $ form .= b_qr_vcard_add (_MB_QR_VCARD_ORG ,'6 ' ,$ options [6 ]);
281
+ $ form .= b_qr_vcard_add (_MB_QR_VCARD_TITLE ,'7 ' ,$ options [7 ]);
282
+ $ form .= b_qr_vcard_add (_MB_QR_VCARD_ADR_TYPE ,'8 ' ,$ options [8 ],1 ,'ADR ' );
283
+ $ form .= b_qr_vcard_add (_MB_QR_VCARD_ADR_POBOX ,'9 ' ,$ options [9 ]);
284
+ $ form .= b_qr_vcard_add (_MB_QR_VCARD_ADR_EXTENDED ,'10 ' ,$ options [10 ]);
285
+ $ form .= b_qr_vcard_add (_MB_QR_VCARD_ADR_STREET ,'11 ' ,$ options [11 ]);
286
+ $ form .= b_qr_vcard_add (_MB_QR_VCARD_ADR_LOCALITY ,'12 ' ,$ options [12 ]);
287
+ $ form .= b_qr_vcard_add (_MB_QR_VCARD_ADR_REGION ,'13 ' ,$ options [13 ]);
288
+ $ form .= b_qr_vcard_add (_MB_QR_VCARD_ADR_POSTCODE ,'14 ' ,$ options [14 ]);
289
+ $ form .= b_qr_vcard_add (_MB_QR_VCARD_ADR_COUNTRY ,'15 ' ,$ options [15 ]);
290
+ $ form .= b_qr_vcard_add (_MB_QR_VCARD_EMAIL_PREF ,'16 ' ,$ options [16 ]);
291
+ $ form .= b_qr_vcard_add (_MB_QR_VCARD_EMAIL ,'17 ' ,$ options [17 ]);
292
+ $ form .= b_qr_vcard_add (_MB_QR_VCARD_TEL_PREF ,'18 ' ,$ options [18 ],0 );
293
+ $ form .= b_qr_vcard_add (_MB_QR_VCARD_TEL_TYPE ,'19 ' ,$ options [19 ],1 ,'TEL ' );
294
+ $ form .= b_qr_vcard_add (_MB_QR_VCARD_TEL ,'20 ' ,$ options [20 ],0 );
295
+ $ form .= b_qr_vcard_add (_MB_QR_VCARD_TEL_TYPE ,'21 ' ,$ options [21 ],1 ,'TEL ' );
296
+ $ form .= b_qr_vcard_add (_MB_QR_VCARD_TEL ,'22 ' ,$ options [22 ],0 );
297
+ $ form .= b_qr_vcard_add (_MB_QR_VCARD_TEL_TYPE ,'23 ' ,$ options [23 ],1 ,'TEL ' );
298
+ $ form .= b_qr_vcard_add (_MB_QR_VCARD_URL ,'24 ' ,$ options [24 ]);
299
+ $ form .= b_qr_vcard_add (_MB_QR_VCARD_NOTE ,'25 ' ,$ options [25 ]);
300
+ $ form .= b_qr_vcard_add (_MB_QR_VCARD_RAW ,'26 ' ,$ options [26 ]);
301
+ $ form .= b_qr_vcard_add (_MB_QR_VCARD_RAW ,'27 ' ,$ options [27 ]);
302
+
303
+ $ form .= _MB_QR_VCARD_ALT .": <input type='text' value=' " .$ options [28 ]."'id='options[28]' name='options[28]' /><br /><br /> " ;
304
+
305
+ $ form .= _MB_QR_SHOW_AS_POPUP .": <input type='radio' name='options[29]' value='1' " ;
306
+ if ($ options [29 ]==1 ) $ form .="checked='checked' " ;
307
+ $ form .= " /> " ._MB_QR_SHOW_POPUP_ONCLICK ." <input type='radio' name='options[29]' value='2' " ;
308
+ if ($ options [29 ]==2 ) $ form .="checked='checked' " ;
309
+ $ form .= " /> " ._MB_QR_SHOW_POPUP_ONMOUSE ." <input type='radio' name='options[29]' value='0' " ;
310
+ if (!$ options [29 ]) $ form .="checked='checked' " ;
311
+ $ form .= " /> " ._NO ."<br /><br /> " ;
312
+
313
+ $ form .= _MB_QR_SHOW_AS_POPUP_PROMPT .": <input type='text' size='20' value=' " .$ options [30 ]."'id='options[30]' name='options[30]' /><br /><br /> " ;
314
+
315
+ return $ form ;
316
+ }
317
+
186
318
?>
0 commit comments