PageRenderTime 40ms CodeModel.GetById 14ms RepoModel.GetById 0ms app.codeStats 0ms

/wp-content/plugins/simple-forum/template-tags/sf-template-tags-links.php

https://bitbucket.org/crypticrod/sr_wp_code
PHP | 298 lines | 156 code | 43 blank | 99 comment | 36 complexity | 4573fbadefda0164596479ab1d59a3d4 MD5 | raw file
Possible License(s): AGPL-1.0, GPL-2.0, LGPL-2.1, GPL-3.0, LGPL-2.0, AGPL-3.0
  1. <?php
  2. /*
  3. Simple:Press
  4. Template Tag(s) - Links
  5. $LastChangedDate: 2010-11-25 12:56:15 -0700 (Thu, 25 Nov 2010) $
  6. $Rev: 5028 $
  7. */
  8. if(preg_match('#' . basename(__FILE__) . '#', $_SERVER['PHP_SELF'])) {
  9. die('Access Denied');
  10. }
  11. /* =====================================================================================
  12. sf_forum_homelink()
  13. displays a standard link to your forums home page. Will use your theme styling.
  14. parameters:
  15. None
  16. ===================================================================================*/
  17. function sf_forum_homelink()
  18. {
  19. global $wpdb;
  20. $pid=sf_get_option('sfpage');
  21. $ftitle=$wpdb->get_var("SELECT post_title FROM $wpdb->posts WHERE ID=".$pid);
  22. echo '<a href="'.get_permalink($pid).'"/>'.$ftitle.'</a>';
  23. return;
  24. }
  25. /* =====================================================================================
  26. sf_group_link($groupid, $linktext, $listtags)
  27. displays a link to a specific forum group if current user has access privilege
  28. parameters:
  29. $groupid ID of the group to display Required
  30. $linktext Text for link - leave as empty string to use group name
  31. $listtags Wrap in <li> tags (li only) true/false true
  32. ===================================================================================*/
  33. function sf_group_link($groupid, $linktext='', $listtags=true)
  34. {
  35. global $wpdb, $current_user, $sfvars;
  36. $groupid = sf_esc_int($groupid);
  37. if (empty($groupid)) return '';
  38. sf_initialise_globals($sfvars['forumid']);
  39. $out = '';
  40. $forums = $wpdb->get_results("SELECT forum_id FROM ".SFFORUMS." WHERE group_id='".$groupid."'");
  41. if ($forums)
  42. {
  43. foreach ($forums as $forum)
  44. {
  45. if (sf_can_view_forum($forum->forum_id)) {
  46. $grouprec = sf_get_group_record($groupid);
  47. if (empty($linktext)) $linktext=sf_filter_title_display($grouprec->group_name);
  48. if ($listtags) $out.="<li>\n";
  49. $out.= '<a href="'.sf_build_qurl('group='.$groupid).'">'.$linktext.'</a>'."\n";
  50. if ($listtags) $out.="</li>\n";
  51. break;
  52. }
  53. }
  54. } else {
  55. $out = sprintf(__('Group %s Not Found', 'sforum'), $groupid)."\n";
  56. }
  57. echo $out;
  58. return;
  59. }
  60. /* =====================================================================================
  61. sf_forum_link($forumid, $linktext, $listtags)
  62. displays a link to a specific forum topic listing if current user has access privilege
  63. parameters:
  64. $forumid ID of the forum to display Required
  65. $linktext Text for link - leave as empty string to use forum name
  66. $listtags Wrap in <li> tags (li only) true/false true
  67. $display echo or return content true/false true (echo)
  68. ===================================================================================*/
  69. function sf_forum_link($forumid, $linktext='', $listtags=true, $display=true)
  70. {
  71. global $current_user;
  72. $forumid = sf_esc_int($forumid);
  73. if (empty($forumid)) return '';
  74. sf_initialise_globals($forumid);
  75. $out='';
  76. if(sf_can_view_forum($forumid))
  77. {
  78. $forumrec=sf_get_forum_record($forumid);
  79. $forumslug = $forumrec->forum_slug;
  80. if(empty($linktext)) $linktext=sf_filter_title_display($forumrec->forum_name);
  81. if($listtags) $out.="<li>\n";
  82. $out.= '<a href="'.sf_build_url($forumslug, '', 0, 0).'">'.$linktext.'</a>'."\n";
  83. if($listtags) $out.="</li>\n";
  84. } else {
  85. $out = sprintf(__('Forum %s Not Found', 'sforum'), $forumid)."\n";
  86. }
  87. if ($display)
  88. {
  89. echo $out;
  90. return;
  91. } else {
  92. return $out;
  93. }
  94. }
  95. /* =====================================================================================
  96. sf_topic_link($forumid, $topicid, $linktext, $listtags)
  97. displays a link to a specific topic post listing if current user has access privilege
  98. parameters:
  99. $forumid ID of the forum topic belongs to Required
  100. $topicid ID of the topic to display posts of Required
  101. $linktext Text for link - leave as empty string to use topic name
  102. $listtags Wrap in <li> tags (li only) true/false true
  103. ===================================================================================*/
  104. function sf_topic_link($forumid, $topicid, $linktext='', $listtags=true)
  105. {
  106. global $current_user;
  107. $forumid = sf_esc_int($forumid);
  108. $topicid = sf_esc_int($topicid);
  109. if (empty($forumid) || empty($topicid)) return '';
  110. sf_initialise_globals($forumid);
  111. $out = '';
  112. if(sf_topic_exists($topicid))
  113. {
  114. if(sf_can_view_forum($forumid))
  115. {
  116. $forumslug = sf_get_forum_slug($forumid);
  117. $topicrec = sf_get_topic_record($topicid);
  118. $topicslug = $topicrec->topic_slug;
  119. if(empty($linktext)) $linktext=sf_filter_title_display($topicrec->topic_name);
  120. if($listtags) $out.="<li>\n";
  121. $out.= '<a href="'.sf_build_url($forumslug, $topicslug, 1, 0).'">'.$linktext.'</a>'."\n";
  122. if($listtags) $out.="</li>\n";
  123. }
  124. } else {
  125. $out = sprintf(__('Topic %s Not Found', 'sforum'), $topicid)."\n";
  126. }
  127. echo $out;
  128. return;
  129. }
  130. /* =====================================================================================
  131. sf_forum_dropdown($forumids)
  132. displays a dropdown of links to forums
  133. parameters:
  134. $forumid ID's of forums (comma delimited in quotes) Required
  135. ===================================================================================*/
  136. function sf_forum_dropdown($forumid = 0)
  137. {
  138. global $current_user, $wpdb, $sfvars;
  139. $forumid = sf_esc_str($forumid);
  140. sf_initialise_globals($sfvars['forumid']);
  141. $out = '';
  142. if ($forumid == 0)
  143. {
  144. $forums = $wpdb->get_col("SELECT forum_id FROM ".SFFORUMS);
  145. } else {
  146. $forums = explode(',', $forumid);
  147. }
  148. $out.= '<select name="forumselect" class="sfcontrol" onChange="javascript:sfjchangeForumURL(this)">'."\n";
  149. $out.= '<option>'.__("Select Forum", "sforum").'</option>'."\n";
  150. foreach ($forums as $forum)
  151. {
  152. if (sf_can_view_forum($forum))
  153. {
  154. $forumrec = sf_get_forum_record($forum);
  155. $forumslug = $forumrec->forum_slug;
  156. $out.='<option value="'.sf_build_url($forumslug, '', 0, 0).'">--'.sf_filter_title_display($forumrec->forum_name).'</option>'."\n";
  157. }
  158. }
  159. $out.= '</select>'."\n";
  160. $out.= '<script type="text/javascript">';
  161. $out.= 'function sfjchangeForumURL(menuObj) {';
  162. $out.= 'var i = menuObj.selectedIndex;';
  163. $out.= 'if(i > 0) {';
  164. $out.= 'if(menuObj.options[i].value != "#") {';
  165. $out.= 'window.location = menuObj.options[i].value;';
  166. $out.= '}}}';
  167. $out.= '</script>';
  168. echo $out;
  169. return;
  170. }
  171. /* =====================================================================================
  172. sf_add_new_topic_tag($linktext, $beforelink, $afterlink, $beforetext, $aftertext)
  173. Creates a link for a user to go directly to a designated forum
  174. and to an open Add Topic form.
  175. parameters:
  176. $forumid ID of the Forum
  177. $linktext textual content of link text
  178. defaults to "Add new topic in the %FORUMNAME% forum"
  179. where placeholder %FORUMNAME% is eplaced by designated forum name
  180. $beforelink before link text/HTML ''
  181. $afterlink after link text/html ''
  182. $beforetext before text text/HTML ''
  183. $aftertext after text text/html ''
  184. ===================================================================================*/
  185. function sf_add_new_topic_tag($forumid, $linktext="Add new topic in the %FORUMNAME% forum", $beforelink='', $afterlink='', $beforetext='', $aftertext='')
  186. {
  187. global $current_user;
  188. $forumid = sf_esc_int($forumid);
  189. if($forumid == 0) return;
  190. sf_initialise_globals($forumid);
  191. if(sf_can_view_forum($forumid))
  192. {
  193. $forum=sf_get_forum_record($forumid);
  194. $linktext = str_replace("%FORUMNAME%", sf_filter_title_display($forum->forum_name), $linktext);
  195. $url = trailingslashit(sf_build_url($forum->forum_slug, '', 0, 0));
  196. $url = sf_get_sfqurl($url).'new=topic';
  197. $out = '<p>'.$beforelink.'<a href="'.$url.'">'.$beforetext.$linktext.$aftertext.'</a>'.$afterlink.'</p>';
  198. echo $out;
  199. }
  200. return;
  201. }
  202. /* =====================================================================================
  203. sf_profile_link()
  204. displays a standard link to the current users profile. If its not a user (ie a guest),
  205. nothing will be displayed
  206. parameters:
  207. $linktext Text for link - leave as empty string to use default
  208. ===================================================================================*/
  209. function sf_profile_link($linktext = '')
  210. {
  211. global $current_user;
  212. $out = '';
  213. if($current_user->ID != 0 && $current_user->ID != '')
  214. {
  215. if (empty($linktext)) $linktext = __("User Profile", "sforum");
  216. $out = '<a href="'.SFURL.'profile/">'.$linktext.'</a>';
  217. }
  218. echo $out;
  219. return;
  220. }
  221. ?>