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

/modules/projects/views/revisions.fn.php

http://awarenet.googlecode.com/
PHP | 79 lines | 47 code | 20 blank | 12 comment | 10 complexity | 8597e634bb683f37928ef0e7e9c36385 MD5 | raw file
Possible License(s): GPL-3.0
  1. <?
  2. require_once($kapenta->installPath . 'modules/projects/models/membership.mod.php');
  3. require_once($kapenta->installPath . 'modules/projects/models/revision.mod.php');
  4. require_once($kapenta->installPath . 'modules/projects/models/project.mod.php');
  5. require_once($kapenta->installPath . 'modules/projects/inc/diff.inc.php');
  6. //--------------------------------------------------------------------------------------------------
  7. //| list revisions made to a project
  8. //--------------------------------------------------------------------------------------------------
  9. //arg: UID - UID or recordAlias of a project [string]
  10. //opt: projectUID - overrides UID [string]
  11. function projects_revisions($args) {
  12. global $kapenta;
  13. global $user;
  14. global $db;
  15. $html = ''; //% return value [string]
  16. //----------------------------------------------------------------------------------------------
  17. // check arguments and permissions
  18. //----------------------------------------------------------------------------------------------
  19. if (true == array_key_exists('projectUID', $args)) { $args['UID'] = $args['projectUID']; }
  20. if (false == array_key_exists('UID', $args)) { return false; }
  21. $model = new Projects_Project($args['UID']);
  22. if (false == $model->loaded) { return 'Project not found.'; }
  23. if (false == $user->authHas('projects', 'projects_project', 'show', $model->UID)) {
  24. return '';
  25. }
  26. //----------------------------------------------------------------------------------------------
  27. // load all revisions
  28. //----------------------------------------------------------------------------------------------
  29. $sql = "select * from projects_revision "
  30. . "where refUID='" . $db->addMarkup($args['UID']) . "' order by editedOn";
  31. $result = $db->query($sql);
  32. $lastRow = array();
  33. while ($row = $db->fetchAssoc($result)) {
  34. $row = $db->rmArray($row);
  35. if (count($lastRow) > 0) {
  36. $revisionLink = '/projects/revision/' . $row['UID'];
  37. $revisionDate = date('Y-m-d', $kapenta->strtotime($row['editedOn']));
  38. $item = "<hr/>\n"
  39. . "<table noborder>\n"
  40. . " <tr>\n"
  41. . " <td valign='top' width='200'>"
  42. . "[[:users::summarynav::userUID=" . $row['editedBy'] . ":]]<br/>"
  43. . "<a href='/projects/revision/" . $row['UID'] . "'>[view]</a>"
  44. . " </td>"
  45. . " <td valign='top'>";
  46. $ops = diffHtml($row['content'], $lastRow['content']);
  47. foreach($ops as $op) { $item .= diffOpToHtml($op); }
  48. $item .= "<br/><b>Saved:</b> " . $row['editedOn'] . "<br/>\n"
  49. . " </td>"
  50. . " </tr>"
  51. . "</table>";
  52. $html = $item . $html;
  53. }
  54. $lastRow = $row;
  55. }
  56. return $html;
  57. }
  58. //--------------------------------------------------------------------------------------------------
  59. ?>