/blocks/social_activities/block_social_activities.php

https://bitbucket.org/ciceidev/cicei_moodle_conditional_activities · PHP · 172 lines · 143 code · 24 blank · 5 comment · 42 complexity · 0eb86f75a8b0973c7b5b7b51c4bb6043 MD5 · raw file

  1. <?php //$Id$
  2. class block_social_activities extends block_list {
  3. function init(){
  4. $this->title = get_string('blockname', 'block_social_activities');
  5. $this->version = 2007101509;
  6. }
  7. function applicable_formats() {
  8. return array('course-view-social' => true);
  9. }
  10. function get_content() {
  11. global $USER, $CFG, $COURSE;
  12. if ($this->content !== NULL) {
  13. return $this->content;
  14. }
  15. $this->content = new object();
  16. $this->content->items = array();
  17. $this->content->icons = array();
  18. $this->content->footer = '';
  19. if (empty($this->instance)) {
  20. return $this->content;
  21. }
  22. if ($COURSE->id == $this->instance->pageid) {
  23. $course = $COURSE;
  24. } else {
  25. $course = get_record('course', 'id', $this->instance->pageid);
  26. }
  27. require_once($CFG->dirroot.'/course/lib.php');
  28. $context = get_context_instance(CONTEXT_COURSE, $course->id);
  29. $isediting = isediting($this->instance->pageid) && has_capability('moodle/course:manageactivities', $context);
  30. $modinfo = get_fast_modinfo($course);
  31. /// extra fast view mode
  32. if (!$isediting) {
  33. if (!empty($modinfo->sections[0])) {
  34. foreach($modinfo->sections[0] as $cmid) {
  35. $cm = $modinfo->cms[$cmid];
  36. if (!$cm->uservisible) {
  37. continue;
  38. }
  39. if ($cm->modname == 'label') {
  40. $this->content->items[] = format_text($cm->extra, FORMAT_HTML);
  41. $this->content->icons[] = '';
  42. } else {
  43. $linkcss = $cm->visible ? '' : ' class="dimmed" ';
  44. $instancename = format_string($cm->name, true, $course->id);
  45. $this->content->items[] = '<a title="'.$cm->modplural.'" '.$linkcss.' '.$cm->extra.
  46. ' href="'.$CFG->wwwroot.'/mod/'.$cm->modname.'/view.php?id='.$cm->id.'">'.$instancename.'</a>';
  47. //Accessibility: incidental image - should be empty Alt text
  48. if (!empty($cm->icon)) {
  49. $icon = $CFG->pixpath.'/'.$cm->icon;
  50. } else {
  51. $icon = $CFG->modpixpath.'/'.$cm->modname.'/icon.gif';
  52. }
  53. $this->content->icons[] = '<img src="'.$icon.'" class="icon" alt="" />';
  54. }
  55. }
  56. }
  57. return $this->content;
  58. }
  59. /// slow & hacky editing mode
  60. $ismoving = ismoving($this->instance->pageid);
  61. $sections = get_all_sections($this->instance->pageid);
  62. if(!empty($sections) && isset($sections[0])) {
  63. $section = $sections[0];
  64. }
  65. if (!empty($section)) {
  66. get_all_mods($this->instance->pageid, $mods, $modnames, $modnamesplural, $modnamesused);
  67. }
  68. $groupbuttons = $course->groupmode;
  69. $groupbuttonslink = (!$course->groupmodeforce);
  70. if ($ismoving) {
  71. $strmovehere = get_string('movehere');
  72. $strmovefull = strip_tags(get_string('movefull', '', "'$USER->activitycopyname'"));
  73. $strcancel= get_string('cancel');
  74. $stractivityclipboard = $USER->activitycopyname;
  75. }
  76. /// Casting $course->modinfo to string prevents one notice when the field is null
  77. $editbuttons = '';
  78. if ($ismoving) {
  79. $this->content->icons[] = '&nbsp;<img align="bottom" src="'.$CFG->pixpath.'/t/move.gif" class="iconsmall" alt="" />';
  80. $this->content->items[] = $USER->activitycopyname.'&nbsp;(<a href="'.$CFG->wwwroot.'/course/mod.php?cancelcopy=true&amp;sesskey='.$USER->sesskey.'">'.$strcancel.'</a>)';
  81. }
  82. if (!empty($section) && !empty($section->sequence)) {
  83. $sectionmods = explode(',', $section->sequence);
  84. foreach ($sectionmods as $modnumber) {
  85. if (empty($mods[$modnumber])) {
  86. continue;
  87. }
  88. $mod = $mods[$modnumber];
  89. if (!$ismoving) {
  90. if ($groupbuttons) {
  91. if (! $mod->groupmodelink = $groupbuttonslink) {
  92. $mod->groupmode = $course->groupmode;
  93. }
  94. } else {
  95. $mod->groupmode = false;
  96. }
  97. $editbuttons = '<br />'.make_editing_buttons($mod, true, true);
  98. } else {
  99. $editbuttons = '';
  100. }
  101. if ($mod->visible || has_capability('moodle/course:viewhiddenactivities', $context)) {
  102. if ($ismoving) {
  103. if ($mod->id == $USER->activitycopy) {
  104. continue;
  105. }
  106. $this->content->items[] = '<a title="'.$strmovefull.'" href="'.$CFG->wwwroot.'/course/mod.php?moveto='.$mod->id.'&amp;sesskey='.$USER->sesskey.'">'.
  107. '<img style="height:16px; width:80px; border:0px" src="'.$CFG->pixpath.'/movehere.gif" alt="'.$strmovehere.'" /></a>';
  108. $this->content->icons[] = '';
  109. }
  110. $instancename = $modinfo->cms[$modnumber]->name;
  111. $instancename = format_string($instancename, true, $this->instance->pageid);
  112. $linkcss = $mod->visible ? '' : ' class="dimmed" ';
  113. if (!empty($modinfo->cms[$modnumber]->extra)) {
  114. $extra = $modinfo->cms[$modnumber]->extra;
  115. } else {
  116. $extra = '';
  117. }
  118. if (!empty($modinfo->cms[$modnumber]->icon)) {
  119. $icon = $CFG->pixpath.'/'.$modinfo->cms[$modnumber]->icon;
  120. } else {
  121. $icon = $CFG->modpixpath.'/'.$mod->modname.'/icon.gif';
  122. }
  123. if ($mod->modname == 'label') {
  124. $this->content->items[] = format_text($extra, FORMAT_HTML).$editbuttons;
  125. $this->content->icons[] = '';
  126. } else {
  127. $this->content->items[] = '<a title="'.$mod->modfullname.'" '.$linkcss.' '.$extra.
  128. ' href="'.$CFG->wwwroot.'/mod/'.$mod->modname.'/view.php?id='.$mod->id.'">'.$instancename.'</a>'.$editbuttons;
  129. //Accessibility: incidental image - should be empty Alt text
  130. $this->content->icons[] = '<img src="'.$icon.'" class="icon" alt="" />';
  131. }
  132. }
  133. }
  134. }
  135. if ($ismoving) {
  136. $this->content->items[] = '<a title="'.$strmovefull.'" href="'.$CFG->wwwroot.'/course/mod.php?movetosection='.$section->id.'&amp;sesskey='.$USER->sesskey.'">'.
  137. '<img style="height:16px; width:80px; border:0px" src="'.$CFG->pixpath.'/movehere.gif" alt="'.$strmovehere.'" /></a>';
  138. $this->content->icons[] = '';
  139. }
  140. if ($modnames) {
  141. $this->content->footer = print_section_add_menus($course, 0, $modnames, true, true);
  142. } else {
  143. $this->content->footer = '';
  144. }
  145. return $this->content;
  146. }
  147. }
  148. ?>