Dotclear

source: inc/core/class.dc.rs.extensions.php @ 2566:9bf417837888

Revision 2566:9bf417837888, 19.6 KB checked in by franck <carnet.franck.paul@…>, 12 years ago (diff)

Add some people in CREDITS, remove trailing spaces and tabs.

Line 
1<?php
2# -- BEGIN LICENSE BLOCK ---------------------------------------
3# This file is part of Dotclear 2.
4#
5# Copyright (c) 2003-2013 Olivier Meunier & Association Dotclear
6# Licensed under the GPL version 2.0 license.
7# See LICENSE file or
8# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
9#
10# -- END LICENSE BLOCK -----------------------------------------
11if (!defined('DC_RC_PATH')) { return; }
12
13/**
14@ingroup DC_CORE
15@brief Dotclear post record helpers.
16
17This class adds new methods to database post results.
18You can call them on every record comming from dcBlog::getPosts and similar
19methods.
20
21@warning You should not give the first argument (usualy $rs) of every described
22function.
23*/
24class rsExtPost
25{
26     /**
27     Returns whether post is editable.
28
29     @param    rs   Invisible parameter
30     @return   <b>boolean</b>
31     */
32     public static function isEditable($rs)
33     {
34          # If user is admin or contentadmin, true
35          if ($rs->core->auth->check('contentadmin',$rs->core->blog->id)) {
36               return true;
37          }
38
39          # No user id in result ? false
40          if (!$rs->exists('user_id')) {
41               return false;
42          }
43
44          # If user is usage and owner of the entrie
45          if ($rs->core->auth->check('usage',$rs->core->blog->id)
46          && $rs->user_id == $rs->core->auth->userID()) {
47               return true;
48          }
49
50          return false;
51     }
52
53     /**
54     Returns whether post is deletable
55
56     @param    rs   Invisible parameter
57     @return   <b>boolean</b>
58     */
59     public static function isDeletable($rs)
60     {
61          # If user is admin, or contentadmin, true
62          if ($rs->core->auth->check('contentadmin',$rs->core->blog->id)) {
63               return true;
64          }
65
66          # No user id in result ? false
67          if (!$rs->exists('user_id')) {
68               return false;
69          }
70
71          # If user has delete rights and is owner of the entrie
72          if ($rs->core->auth->check('delete',$rs->core->blog->id)
73          && $rs->user_id == $rs->core->auth->userID()) {
74               return true;
75          }
76
77          return false;
78     }
79
80     /**
81     Returns whether post is the first one of its day.
82
83     @param    rs   Invisible parameter
84     @return   <b>boolean</b>
85     */
86     public static function firstPostOfDay($rs)
87     {
88          if ($rs->isStart()) {
89               return true;
90          }
91
92          $cdate = date('Ymd',strtotime($rs->post_dt));
93          $rs->movePrev();
94          $ndate = date('Ymd',strtotime($rs->post_dt));
95          $rs->moveNext();
96          return $ndate != $cdate;
97     }
98
99     /**
100     Returns whether post is the last one of its day.
101
102     @param    rs   Invisible parameter
103     @return   <b>boolean</b>
104     */
105     public static function lastPostOfDay($rs)
106     {
107          if ($rs->isEnd()) {
108               return true;
109          }
110
111          $cdate = date('Ymd',strtotime($rs->post_dt));
112          $rs->moveNext();
113          $ndate = date('Ymd',strtotime($rs->post_dt));
114          $rs->movePrev();
115          return $ndate != $cdate;
116     }
117
118     /**
119     Returns whether comments are enabled on post.
120
121     @param    rs   Invisible parameter
122     @return   <b>boolean</b>
123     */
124     public static function commentsActive($rs)
125     {
126          return
127          $rs->core->blog->settings->system->allow_comments
128          && $rs->post_open_comment
129          && ($rs->core->blog->settings->system->comments_ttl == 0 ||
130          time()-($rs->core->blog->settings->system->comments_ttl*86400) < $rs->getTS());
131     }
132
133     /**
134     Returns whether trackbacks are enabled on post.
135
136     @param    rs   Invisible parameter
137     @return   <b>boolean</b>
138     */
139     public static function trackbacksActive($rs)
140     {
141          return
142          $rs->core->blog->settings->system->allow_trackbacks
143          && $rs->post_open_tb
144          && ($rs->core->blog->settings->system->trackbacks_ttl == 0 ||
145          time()-($rs->core->blog->settings->system->trackbacks_ttl*86400) < $rs->getTS());
146     }
147
148     /**
149     Returns whether post has at least one comment.
150
151     @param    rs   Invisible parameter
152     @return   <b>boolean</b>
153     */
154     public static function hasComments($rs)
155     {
156          return $rs->nb_comment > 0;
157     }
158
159     /**
160     Returns whether post has at least one trackbacks.
161
162     @return   <b>boolean</b>
163     */
164     public static function hasTrackbacks($rs)
165     {
166          return $rs->nb_trackback > 0;
167     }
168
169     /**
170     Returns whether post has been updated since publication.
171
172     @return <b>boolean</b>
173     */
174     public static function isRepublished($rs)
175     {
176          return ($rs->getTS('upddt') + dt::getTimeOffset($rs->post_tz)) > $rs->getTS();
177     }
178
179     /**
180     Returns full post URL.
181
182     @param    rs   Invisible parameter
183     @return   <b>string</b>
184     */
185     public static function getURL($rs)
186     {
187          return $rs->core->blog->url.$rs->core->getPostPublicURL(
188                    $rs->post_type,html::sanitizeURL($rs->post_url)
189               );
190     }
191
192     /**
193     Returns full post category URL.
194
195     @param    rs   Invisible parameter
196     @return   <b>string</b>
197     */
198     public static function getCategoryURL($rs)
199     {
200          return $rs->core->blog->url.$rs->core->url->getURLFor('category',html::sanitizeURL($rs->cat_url));
201     }
202
203     /**
204     Returns whether post has an excerpt.
205
206     @param    rs   Invisible parameter
207     @return   <b>boolean</b>
208     */
209     public static function isExtended($rs)
210     {
211          return $rs->post_excerpt_xhtml != '';
212     }
213
214     /**
215     Returns post timestamp.
216
217     @param    rs   Invisible parameter
218     @param    type <b>string</b>       (dt|upddt|creadt) defaults to post_dt
219     @return   <b>integer</b>
220     */
221     public static function getTS($rs,$type='')
222     {
223          if ($type == 'upddt') {
224               return strtotime($rs->post_upddt);
225          } elseif ($type == 'creadt') {
226               return strtotime($rs->post_creadt);
227          } else {
228               return strtotime($rs->post_dt);
229          }
230     }
231
232     /**
233     Returns post date formating according to the ISO 8601 standard.
234
235     @param    rs   Invisible parameter
236     @param    type <b>string</b>       (dt|upddt|creadt) defaults to post_dt
237     @return   <b>string</b>
238     */
239     public static function getISO8601Date($rs,$type='')
240     {
241          if ($type == 'upddt' || $type == 'creadt') {
242               return dt::iso8601($rs->getTS($type)+dt::getTimeOffset($rs->post_tz),$rs->post_tz);
243          } else {
244               return dt::iso8601($rs->getTS(),$rs->post_tz);
245          }
246     }
247
248     /**
249     Returns post date formating according to RFC 822.
250
251     @param    rs   Invisible parameter
252     @param    type <b>string</b>       (dt|upddt|creadt) defaults to post_dt
253     @return   <b>string</b>
254     */
255     public static function getRFC822Date($rs,$type='')
256     {
257          if ($type == 'upddt' || $type == 'creadt') {
258               return dt::rfc822($rs->getTS($type)+dt::getTimeOffset($rs->post_tz),$rs->post_tz);
259          } else {
260               return dt::rfc822($rs->getTS($type),$rs->post_tz);
261          }
262     }
263
264     /**
265     Returns post date with <var>$format</var> as formatting pattern. If format
266     is empty, uses <var>date_format</var> blog setting.
267
268     @param    rs   Invisible parameter
269     @param    format    <b>string</b>       Date format pattern
270     @param    type <b>string</b>       (dt|upddt|creadt) defaults to post_dt
271     @return   <b>string</b>
272     */
273     public static function getDate($rs,$format,$type='')
274     {
275          if (!$format) {
276               $format = $rs->core->blog->settings->system->date_format;
277          }
278
279          if ($type == 'upddt') {
280               return dt::dt2str($format,$rs->post_upddt,$rs->post_tz);
281          } elseif ($type == 'creadt') {
282               return dt::dt2str($format,$rs->post_creadt,$rs->post_tz);
283          } else {
284               return dt::dt2str($format,$rs->post_dt);
285          }
286     }
287
288     /**
289     Returns post time with <var>$format</var> as formatting pattern. If format
290     is empty, uses <var>time_format</var> blog setting.
291
292     @param    rs   Invisible parameter
293     @param    format    <b>string</b>       Time format pattern
294     @param    type <b>string</b>       (dt|upddt|creadt) defaults to post_dt
295     @return   <b>string</b>
296     */
297     public static function getTime($rs,$format,$type='')
298     {
299          if (!$format) {
300               $format = $rs->core->blog->settings->system->time_format;
301          }
302
303          if ($type == 'upddt') {
304               return dt::dt2str($format,$rs->post_upddt,$rs->post_tz);
305          } elseif ($type == 'creadt') {
306               return dt::dt2str($format,$rs->post_creadt,$rs->post_tz);
307          } else {
308               return dt::dt2str($format,$rs->post_dt);
309          }
310     }
311
312     /**
313     Returns author common name using user_id, user_name, user_firstname and
314     user_displayname fields.
315
316     @param    rs   Invisible parameter
317     @return   <b>string</b>
318     */
319     public static function getAuthorCN($rs)
320     {
321          return dcUtils::getUserCN($rs->user_id, $rs->user_name,
322          $rs->user_firstname, $rs->user_displayname);
323     }
324
325     /**
326     Returns author common name with a link if he specified one in its
327     preferences.
328
329     @param    rs   Invisible parameter
330     @return   <b>string</b>
331     */
332     public static function getAuthorLink($rs)
333     {
334          $res = '%1$s';
335          $url = $rs->user_url;
336          if ($url) {
337               $res = '<a href="%2$s">%1$s</a>';
338          }
339
340          return sprintf($res,html::escapeHTML($rs->getAuthorCN()),html::escapeHTML($url));
341     }
342
343     /**
344     Returns author e-mail address. If <var>$encoded</var> is true, "@" sign is
345     replaced by "%40" and "." by "%2e".
346
347     @param    rs   Invisible parameter
348     @param    encoded   <b>boolean</b>      Encode address.
349     @return   <b>string</b>
350     */
351     public static function getAuthorEmail($rs,$encoded=true)
352     {
353          if ($encoded) {
354               return strtr($rs->user_email,array('@'=>'%40','.'=>'%2e'));
355          }
356          return $rs->user_email;
357     }
358
359     /**
360     Returns post feed unique ID.
361
362     @param    rs   Invisible parameter
363     @return   <b>string</b>
364     */
365     public static function getFeedID($rs)
366     {
367          return 'urn:md5:'.md5($rs->core->blog->uid.$rs->post_id);
368
369          $url = parse_url($rs->core->blog->url);
370          $date_part = date('Y-m-d',strtotime($rs->post_creadt));
371
372          return 'tag:'.$url['host'].','.$date_part.':'.$rs->post_id;
373     }
374
375     /**
376     Returns trackback RDF information block in HTML comment.
377
378     @param    rs   Invisible parameter
379     @return   <b>string</b>
380     */
381     public static function getTrackbackData($rs)
382     {
383          return
384          "<![CDATA[>\n".
385          "<!--[\n".
386          '<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"'."\n".
387          '  xmlns:dc="http://purl.org/dc/elements/1.1/"'."\n".
388          '  xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/">'."\n".
389          "<rdf:Description\n".
390          '  rdf:about="'.$rs->getURL().'"'."\n".
391          '  dc:identifier="'.$rs->getURL().'"'."\n".
392          '  dc:title="'.htmlspecialchars($rs->post_title,ENT_COMPAT,'UTF-8').'"'."\n".
393          '  trackback:ping="'.$rs->getTrackbackLink().'" />'."\n".
394          "</rdf:RDF>\n".
395          "<!]]><!---->\n";
396     }
397
398     /**
399     Returns post trackback full URL.
400
401     @param    rs   Invisible parameter
402     @return   <b>string</b>
403     */
404     public static function getTrackbackLink($rs)
405     {
406          return $rs->core->blog->url.$rs->core->url->getURLFor('trackback',$rs->post_id);
407     }
408
409     /**
410     Returns post content. If <var>$absolute_urls</var> is true, appends full
411     blog URL to each relative post URLs.
412
413     @param    rs   Invisible parameter
414     @param    absolute_urls  <b>boolean</b>      With absolute URLs
415     @return   <b>string</b>
416     */
417     public static function getContent($rs,$absolute_urls=false)
418     {
419          if ($absolute_urls) {
420               return html::absoluteURLs($rs->post_content_xhtml,$rs->getURL());
421          } else {
422               return $rs->post_content_xhtml;
423          }
424     }
425
426     /**
427     Returns post excerpt. If <var>$absolute_urls</var> is true, appends full
428     blog URL to each relative post URLs.
429
430     @param    rs   Invisible parameter
431     @param    absolute_urls  <b>boolean</b>      With absolute URLs
432     @return   <b>string</b>
433     */
434     public static function getExcerpt($rs,$absolute_urls=false)
435     {
436          if ($absolute_urls) {
437               return html::absoluteURLs($rs->post_excerpt_xhtml,$rs->getURL());
438          } else {
439               return $rs->post_excerpt_xhtml;
440          }
441     }
442
443     /**
444     Returns post media count using a subquery.
445
446     @param    rs   Invisible parameter
447     @return   <b>integer</b>
448     */
449     public static function countMedia($rs)
450     {
451          if (isset($rs->_nb_media[$rs->index()]))
452          {
453               return $rs->_nb_media[$rs->index()];
454          }
455          else
456          {
457               $strReq =
458               'SELECT count(media_id) '.
459               'FROM '.$rs->core->prefix.'post_media '.
460               'WHERE post_id = '.(integer) $rs->post_id.' ';
461
462               $res = (integer) $rs->core->con->select($strReq)->f(0);
463               $rs->_nb_media[$rs->index()] = $res;
464               return $res;
465          }
466     }
467}
468
469/**
470@ingroup DC_CORE
471@brief Dotclear comment record helpers.
472
473This class adds new methods to database comment results.
474You can call them on every record comming from dcBlog::getComments and similar
475methods.
476
477@warning You should not give the first argument (usualy $rs) of every described
478function.
479*/
480class rsExtComment
481{
482     /**
483     Returns comment date with <var>$format</var> as formatting pattern. If
484     format is empty, uses <var>date_format</var> blog setting.
485
486     @param    rs   Invisible parameter
487     @param    format    <b>string</b>       Date format pattern
488     @param    type <b>string</b>       (dt|upddt) defaults to comment_dt
489     @return   <b>string</b>
490     */
491     public static function getDate($rs,$format,$type='')
492     {
493          if (!$format) {
494               $format = $rs->core->blog->settings->system->date_format;
495          }
496
497          if ($type == 'upddt') {
498               return dt::dt2str($format,$rs->comment_upddt,$rs->comment_tz);
499          } else {
500               return dt::dt2str($format,$rs->comment_dt);
501          }
502     }
503
504     /**
505     Returns comment time with <var>$format</var> as formatting pattern. If
506     format is empty, uses <var>time_format</var> blog setting.
507
508     @param    rs   Invisible parameter
509     @param    format    <b>string</b>       Date format pattern
510     @param    type <b>string</b>       (dt|upddt) defaults to comment_dt
511     @return   <b>string</b>
512     */
513     public static function getTime($rs,$format,$type='')
514     {
515          if (!$format) {
516               $format = $rs->core->blog->settings->system->time_format;
517          }
518
519          if ($type == 'upddt') {
520               return dt::dt2str($format,$rs->comment_updt,$rs->comment_tz);
521          } else {
522               return dt::dt2str($format,$rs->comment_dt);
523          }
524     }
525
526     /**
527     Returns comment timestamp.
528
529     @param    rs   Invisible parameter
530     @param    type <b>string</b>       (dt|upddt) defaults to comment_dt
531     @return   <b>integer</b>
532     */
533     public static function getTS($rs,$type='')
534     {
535          if ($type == 'upddt') {
536               return strtotime($rs->comment_upddt);
537          } else {
538               return strtotime($rs->comment_dt);
539          }
540     }
541
542     /**
543     Returns comment date formating according to the ISO 8601 standard.
544
545     @param    rs   Invisible parameter
546     @param    type <b>string</b>       (dt|upddt) defaults to comment_dt
547     @return   <b>string</b>
548     */
549     public static function getISO8601Date($rs,$type='')
550     {
551          if ($type == 'upddt') {
552               return dt::iso8601($rs->getTS($type)+dt::getTimeOffset($rs->comment_tz),$rs->comment_tz);
553          } else {
554               return dt::iso8601($rs->getTS(),$rs->comment_tz);
555          }
556     }
557
558     /**
559     Returns comment date formating according to RFC 822.
560
561     @param    rs   Invisible parameter
562     @param    type <b>string</b>       (dt|upddt) defaults to comment_dt
563     @return   <b>string</b>
564     */
565     public static function getRFC822Date($rs,$type='')
566     {
567          if ($type == 'upddt') {
568               return dt::rfc822($rs->getTS($type)+dt::getTimeOffset($rs->comment_tz),$rs->comment_tz);
569          } else {
570               return dt::rfc822($rs->getTS(),$rs->comment_tz);
571          }
572     }
573
574     /**
575     Returns comment content. If <var>$absolute_urls</var> is true, appends full
576     blog URL to each relative post URLs.
577
578     @param    rs   Invisible parameter
579     @param    absolute_urls  <b>boolean</b>      With absolute URLs
580     @return   <b>string</b>
581     */
582     public static function getContent($rs,$absolute_urls=false)
583     {
584          $res = $rs->comment_content;
585
586          if ($rs->core->blog->settings->system->comments_nofollow) {
587               $res = preg_replace_callback('#<a(.*?href=".*?".*?)>#ms',array('self','noFollowURL'),$res);
588          }
589
590          if ($absolute_urls) {
591               $res = html::absoluteURLs($res,$rs->getPostURL());
592          }
593
594          return $res;
595     }
596
597     private static function noFollowURL($m)
598     {
599          if (preg_match('/rel="nofollow"/',$m[1])) {
600               return $m[0];
601          }
602
603          return '<a'.$m[1].' rel="nofollow">';
604     }
605
606     /**
607     Returns comment author link to his website if he specified one.
608
609     @param    rs   Invisible parameter
610     @return   <b>string</b>
611     */
612     public static function getAuthorURL($rs)
613     {
614          if (trim($rs->comment_site)) {
615               return trim($rs->comment_site);
616          }
617     }
618
619     /**
620     Returns comment post full URL.
621
622     @param    rs   Invisible parameter
623     @return   <b>string</b>
624     */
625     public static function getPostURL($rs)
626     {
627          return $rs->core->blog->url.$rs->core->getPostPublicURL(
628                    $rs->post_type,html::sanitizeURL($rs->post_url)
629               );
630     }
631
632     /**
633     Returns comment author name in a link to his website if he specified one.
634
635     @param    rs   Invisible parameter
636     @return   <b>string</b>
637     */
638     public static function getAuthorLink($rs)
639     {
640          $res = '%1$s';
641          $url = $rs->getAuthorURL();
642          if ($url) {
643               $res = '<a href="%2$s"%3$s>%1$s</a>';
644          }
645
646          $nofollow = '';
647          if ($rs->core->blog->settings->system->comments_nofollow) {
648               $nofollow = ' rel="nofollow"';
649          }
650
651          return sprintf($res,html::escapeHTML($rs->comment_author),html::escapeHTML($url),$nofollow);
652     }
653
654     /**
655     Returns comment author e-mail address. If <var>$encoded</var> is true,
656     "@" sign is replaced by "%40" and "." by "%2e".
657
658     @param    rs   Invisible parameter
659     @param    encoded   <b>boolean</b>      Encode address.
660     @return   <b>string</b>
661     */
662     public static function getEmail($rs,$encoded=true)
663     {
664          if ($encoded) {
665               return strtr($rs->comment_email,array('@'=>'%40','.'=>'%2e'));
666          }
667          return $rs->comment_email;
668     }
669
670     /**
671     Returns trackback site title if comment is a trackback.
672
673     @param    rs   Invisible parameter
674     @return   <b>string</b>
675     */
676     public static function getTrackbackTitle($rs)
677     {
678          if ($rs->comment_trackback == 1 &&
679          preg_match('|<p><strong>(.*?)</strong></p>|msU',$rs->comment_content,
680          $match)) {
681               return html::decodeEntities($match[1]);
682          }
683     }
684
685     /**
686     Returns trackback content if comment is a trackback.
687
688     @param    rs   Invisible parameter
689     @return   <b>string</b>
690     */
691     public static function getTrackbackContent($rs)
692     {
693          if ($rs->comment_trackback == 1) {
694               return preg_replace('|<p><strong>.*?</strong></p>|msU','',
695               $rs->comment_content);
696          }
697     }
698
699     /**
700     Returns comment feed unique ID.
701
702     @param    rs   Invisible parameter
703     @return   <b>string</b>
704     */
705     public static function getFeedID($rs)
706     {
707          return 'urn:md5:'.md5($rs->core->blog->uid.$rs->comment_id);
708
709          $url = parse_url($rs->core->blog->url);
710          $date_part = date('Y-m-d',strtotime($rs->comment_dt));
711
712          return 'tag:'.$url['host'].','.$date_part.':'.$rs->comment_id;
713     }
714
715     /**
716     Returns whether comment is from the post author.
717
718     @param    rs   Invisible parameter
719     @return   <b>boolean</b>
720     */
721     public static function isMe($rs)
722     {
723          return
724          $rs->comment_email && $rs->comment_site &&
725          $rs->comment_email == $rs->user_email &&
726          $rs->comment_site == $rs->user_url;
727     }
728}
729
730/**
731@ingroup DC_CORE
732@brief Dotclear dates record helpers.
733
734This class adds new methods to database dates results.
735You can call them on every record comming from dcBlog::getDates.
736
737@warning You should not give the first argument (usualy $rs) of every described
738function.
739*/
740class rsExtDates
741{
742     /**
743     @param    rs   Invisible parameter
744     @return   <b>integer</b>      Date timestamp
745     */
746     public static function ts($rs)
747     {
748          return strtotime($rs->dt);
749     }
750
751     /**
752     @param    rs   Invisible parameter
753     @return   <b>string</b>       Date year
754     */
755     public static function year($rs)
756     {
757          return date('Y',strtotime($rs->dt));
758     }
759
760     /**
761     @param    rs   Invisible parameter
762     @return   <b>string</b>       Date month
763     */
764     public static function month($rs)
765     {
766          return date('m',strtotime($rs->dt));
767     }
768
769     /**
770     @param    rs   Invisible parameter
771     @return   <b>integer</b>      Date day
772     */
773     public static function day($rs)
774     {
775          return date('d',strtotime($rs->dt));
776     }
777
778     /**
779     Returns date month archive full URL.
780
781     @param    rs   Invisible parameter
782     @param    core      <b>dcCore</b>       dcCore instance
783     @return   <b>integer</b>
784     */
785     public static function url($rs,$core)
786     {
787          $url = date('Y/m',strtotime($rs->dt));
788
789          return $core->blog->url.$core->url->getURLFor('archive',$url);
790     }
791
792     /**
793     Returns whether date is the first of year.
794
795     @param    rs   Invisible parameter
796     @return   <b>boolean</b>
797     */
798     public static function yearHeader($rs)
799     {
800          if ($rs->isStart()) {
801               return true;
802          }
803
804          $y = $rs->year();
805          $rs->movePrev();
806          $py = $rs->year();
807          $rs->moveNext();
808
809          return $y != $py;
810     }
811
812     /**
813     Returns whether date is the last of year.
814
815     @param    rs   Invisible parameter
816     @return   <b>boolean</b>
817     */
818     public static function yearFooter($rs)
819     {
820          if ($rs->isEnd()) {
821               return true;
822          }
823
824          $y = $rs->year();
825          if ($rs->moveNext()) {
826               $ny = $rs->year();
827               $rs->movePrev();
828               return $y != $ny;
829          }
830          return false;
831
832     }
833}
834
835/**
836@ingroup DC_CORE
837@brief Dotclear dates record helpers.
838
839This class adds new methods to database dates results.
840You can call them on every record comming from dcAuth::checkUser and
841dcCore::getUsers.
842
843@warning You should not give the first argument (usualy $rs) of every described
844function.
845*/
846class rsExtUser
847{
848     /**
849     Returns a user option.
850
851     @param    rs   Invisible parameter
852     @param    name      <b>string</b>       Option name
853     @return   <b>string</b>
854     */
855     public static function option($rs,$name)
856     {
857          $options = self::options($rs);
858
859          if (isset($options[$name])) {
860               return $options[$name];
861          }
862          return null;
863     }
864
865     /**
866     Returns all user options.
867
868     @param    rs   Invisible parameter
869     @return   <b>array</b>
870     */
871     public static function options($rs)
872     {
873          $options = @unserialize($rs->user_options);
874          if (is_array($options)) {
875               return $options;
876          }
877          return array();
878     }
879}
Note: See TracBrowser for help on using the repository browser.

Sites map