/course/format/page/backuplib.php

https://github.com/galitush2005/RTL-BIDI-Hebrew-Moodle-Plugins · PHP · 85 lines · 51 code · 11 blank · 23 comment · 2 complexity · cb39130d36d6bb68ab93fd6b8d22119c MD5 · raw file

  1. <?php
  2. /**
  3. * Backup routine for this format
  4. *
  5. * @author Jeff Graham
  6. * @version $Id: backuplib.php,v 1.1 2009/12/21 01:00:28 michaelpenne Exp $
  7. * @package format_page
  8. **/
  9. /**
  10. * Format's backup routine
  11. *
  12. * @param handler $bf Backup file handler
  13. * @param object $preferences Backup preferences
  14. * @return boolean
  15. **/
  16. function page_backup_format_data($bf, $preferences) {
  17. $status = true;
  18. if ($pages = get_records('format_page', 'courseid', $preferences->backup_course)) {
  19. fwrite ($bf,start_tag('PAGES',3,true));
  20. foreach ($pages as $page) {
  21. fwrite ($bf, start_tag('PAGE', 4, true));
  22. fwrite ($bf, full_tag('ID', 5, false, $page->id));
  23. fwrite ($bf, full_tag('NAMEONE', 5, false, $page->nameone));
  24. fwrite ($bf, full_tag('NAMETWO', 5, false, $page->nametwo));
  25. fwrite ($bf, full_tag('DISPLAY', 5, false, $page->display));
  26. fwrite ($bf, full_tag('PREFLEFTWIDTH', 5, false, $page->prefleftwidth));
  27. fwrite ($bf, full_tag('PREFCENTERWIDTH', 5, false, $page->prefcenterwidth));
  28. fwrite ($bf, full_tag('PREFRIGHTWIDTH', 5, false, $page->prefrightwidth));
  29. fwrite ($bf, full_tag('PARENT', 5, false, $page->parent));
  30. fwrite ($bf, full_tag('SORTORDER', 5, false, $page->sortorder));
  31. fwrite ($bf, full_tag('TEMPLATE', 5, false, $page->template));
  32. fwrite ($bf, full_tag('SHOWBUTTONS', 5, false, $page->showbuttons));
  33. fwrite ($bf,full_tag('LOCKS',5,false,$page->locks));
  34. // Now grab the page items
  35. if ($items = get_records('format_page_items', 'pageid', $page->id, 'position, sortorder')) {
  36. fwrite ($bf, start_tag('ITEMS', 5, true));
  37. foreach($items as $item) {
  38. fwrite ($bf, start_tag('ITEM', 6, true));
  39. fwrite ($bf, full_tag('ID', 7, false, $item->id));
  40. fwrite ($bf, full_tag('CMID', 7, false, $item->cmid));
  41. fwrite ($bf, full_tag('BLOCKINSTANCE', 7, false, $item->blockinstance));
  42. fwrite ($bf, full_tag('POSITION', 7, false, $item->position));
  43. fwrite ($bf, full_tag('SORTORDER', 7, false, $item->sortorder));
  44. fwrite ($bf, full_tag('VISIBLE', 7, false, $item->visible));
  45. fwrite ($bf, end_tag('ITEM', 6, true));
  46. }
  47. fwrite ($bf, end_tag('ITEMS', 5, true));
  48. }
  49. fwrite ($bf, end_tag('PAGE', 4, true));
  50. }
  51. $status = fwrite ($bf,end_tag('PAGES',3,true));
  52. }
  53. return $status;
  54. }
  55. /**
  56. * Return a content encoded to support interactivities linking. This function is
  57. * called automatically from the backup procedure by {@link backup_encode_absolute_links()}.
  58. *
  59. * @param string $content Content to be encoded
  60. * @param object $restore Restore preferences object
  61. * @return string The encoded content
  62. **/
  63. function page_encode_format_content_links($content, $restore) {
  64. global $CFG;
  65. $base = preg_quote($CFG->wwwroot,'/');
  66. $search = "/(".$base."\/index.php\?page\=)([0-9]+)/";
  67. $content = preg_replace($search, '$@COURSEFORMATFRONTPAGE*$2@$', $content);
  68. $search = "/(".$base."\/course\/view.php\?id\=)([0-9]+)(\&amp;|\&)page\=([0-9]+)/";
  69. $content = preg_replace($search, '$@COURSEFORMATPAGE*$2*$4@$', $content);
  70. $search = "/(".$base."\/course\/format\/page\/managemenu.php\?id\=)([0-9]+)/";
  71. $content = preg_replace($search, '$@COURSEFORMATMANAGEMENU*$2@$', $content);
  72. return $content;
  73. }
  74. ?>