Template.php 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121
  1. <?php
  2. defined('BASEPATH') OR exit('No direct script access allowed');
  3. /**
  4. * Class 工单和报表模板编辑类
  5. */
  6. class Template extends MY_Controller
  7. {
  8. private $workorder = "workorder";
  9. private $report = "report";
  10. function __construct()
  11. {
  12. parent::__construct();
  13. $this->load->helper(array('form', 'date', 'file'));
  14. $this->load->model("template_model");
  15. }
  16. /**
  17. * 编辑工单模板
  18. */
  19. public function workorder()
  20. {
  21. if ($this->input->post()) {
  22. $template_id = $this->input->post("template_id", true);
  23. $template = $this->get_param();
  24. $template['template_id'] = $template_id;
  25. if ($template_id) {
  26. $this->template_model->update_template($template);
  27. $this->assign("message", "模板更新成功!");
  28. } else {
  29. $template['template_id'] = $this->create_id();
  30. $template['create_time'] = new MongoDB\BSON\UTCDateTime(time()*1000);
  31. $this->template_model->insert_template($template);
  32. $this->assign("message", "模板保存成功!");
  33. }
  34. $this->create_file($template['template_file'],$template['template_html'],"workorder");
  35. } else {
  36. $this->assign("message", "");
  37. }
  38. $template = $this->template_model->get_template_with_name($this->workorder);
  39. if ($template) {
  40. $this->assign("template", $template);
  41. } else {
  42. $model = $this->template_model->get_model();
  43. $model['template_name'] = $this->workorder;
  44. $model['template_file'] = $this->workorder . ".html";
  45. $this->assign("template", $model);
  46. }
  47. $this->display("template/workorder.html");
  48. }
  49. /**
  50. * 编辑报表模板
  51. */
  52. public function report()
  53. {
  54. if ($this->input->post()) {
  55. $template_id = $this->input->post("template_id", true);
  56. $template = $this->get_param();
  57. $template['template_id'] = $template_id;
  58. if ($template_id) {
  59. $this->template_model->update_template($template);
  60. $this->assign("message", "模板更新成功!");
  61. } else {
  62. $template['template_id'] = $this->create_id();
  63. $template['create_time'] = new MongoDB\BSON\UTCDateTime(time()*1000);
  64. $this->template_model->insert_template($template);
  65. $this->assign("message", "模板保存成功!");
  66. }
  67. $this->create_file($template['template_file'],$template['template_html'],"report");
  68. } else {
  69. $this->assign("message", "");
  70. }
  71. $template = $this->template_model->get_template_with_name($this->report);
  72. if ($template) {
  73. $this->assign("template", $template);
  74. } else {
  75. $model = $this->template_model->get_model();
  76. $model['template_name'] = $this->report;
  77. $model['template_file'] = $this->report . ".html";
  78. $this->assign("template", $model);
  79. }
  80. $this->display("template/report.html");
  81. }
  82. /**
  83. * 获取提交参数
  84. * @return array
  85. */
  86. public function get_param()
  87. {
  88. $template = array();
  89. $template['template_name'] = $this->input->post("template_name", true);
  90. $template['template_file'] = $this->input->post("template_file", true);
  91. $template['template_html'] = htmlspecialchars_decode($this->input->post("template_html"));
  92. return $template;
  93. }
  94. /**
  95. * 生成模板文件
  96. * @param $filename 文件名称
  97. * @param $content 文件内容
  98. * @param $end 文件名结尾
  99. */
  100. public function create_file($filename, $content, $end)
  101. {
  102. $path = getcwd() . "/application/views/templates/export/";
  103. $file = $path . $filename;
  104. $header = '{include file="export/header.html"}';
  105. $foot = '{include file="export/foot_'.$end.'.html"}';
  106. $data = $header . htmlspecialchars_decode($content,ENT_QUOTES ) . $foot;
  107. if (file_exists($file)) {
  108. delete_files($file);
  109. }
  110. if (!write_file($file, $data)) {
  111. show_error("文件写入失败,请检查" . $path . "是否有写入权限!");
  112. }
  113. }
  114. }