|
@@ -0,0 +1,144 @@
|
|
|
+<?php
|
|
|
+
|
|
|
+namespace Collection\Lib;
|
|
|
+
|
|
|
+use Dever;
|
|
|
+use Dever\Support\Img as Handle;
|
|
|
+
|
|
|
+class Create
|
|
|
+{
|
|
|
+
|
|
|
+ public function up($info_id, $source_id, $type = 11, $data, $cover = '')
|
|
|
+ {
|
|
|
+ $where['info_id'] = $info_id;
|
|
|
+
|
|
|
+ $info = Dever::db('collection/content')->getNew($where);
|
|
|
+
|
|
|
+ if ($type == 11) {
|
|
|
+ $data = explode(',', $data);
|
|
|
+ if (!$cover) {
|
|
|
+ $cover = $data[0];
|
|
|
+ $cover = Dever::load('upload/view')->get($cover, 't', 1);
|
|
|
+ $cover = Dever::load('upload/view')->get($cover, 'c', 1);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ $max = 15;
|
|
|
+ $result = array();
|
|
|
+
|
|
|
+ if ($info) {
|
|
|
+ if ($info['reorder'] >= $max) {
|
|
|
+ $result['reorder'] = $info['reorder'] = 1;
|
|
|
+ $name = '第' . $result['reorder'] . '篇';
|
|
|
+
|
|
|
+ $page = Dever::db('collection/page')->find($info['page_id']);
|
|
|
+ if ($page) {
|
|
|
+
|
|
|
+ if ($page['reorder'] >= 12) {
|
|
|
+
|
|
|
+ } else {
|
|
|
+ $page_reorder = $page['reorder'] + 1;
|
|
|
+ $name = '第' . ;
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ $name = '第' . $result['reorder'] . '篇';
|
|
|
+
|
|
|
+ $result['page_id'] = $this->createPage($info_id, $source_id, $month_name, $parent_page_id, $times_id_parent, $times_id, $page_desc, $cover, $reorder, $max);
|
|
|
+
|
|
|
+ $result['content_id'] = $this->createContent($info_id, $source_id, $result['page_id'], 11, $name, $cover);
|
|
|
+
|
|
|
+ } else {
|
|
|
+ $result['reorder'] = $info['reorder'] + 1;
|
|
|
+ $name = '第' . $result['reorder'] . '篇';
|
|
|
+
|
|
|
+ $result['page_id'] = $info['page_id'];
|
|
|
+ $result['content_id'] = $this->createContent($info_id, $source_id, $result['page_id'], 11, $result['reorder'], $cover);
|
|
|
+
|
|
|
+ }
|
|
|
+ return $info['reorder'] + 1;
|
|
|
+ }
|
|
|
+
|
|
|
+ return 1;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ public function createTimes($info_id, $source_id, $name, $year = '', $parent = -1)
|
|
|
+ {
|
|
|
+ $table = 'collection/times';
|
|
|
+ $where['info_id'] = $info_id;
|
|
|
+ $where['source_id'] = $source_id;
|
|
|
+ $where['times_id'] = $parent;
|
|
|
+ $where['name'] = $name;
|
|
|
+ $param = array();
|
|
|
+ if ($year) {
|
|
|
+ $param['year'] = $year;
|
|
|
+ }
|
|
|
+ return Dever::upinto($table, $where, $param);
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ public function createPage($info_id, $source_id, $name, $parent = -1, $times_id_parent, $times_id, $desc = '', $pic = '', $reorder = 1, $max = 12, $num = 1)
|
|
|
+ {
|
|
|
+ $table = 'collection/page';
|
|
|
+ $where['info_id'] = $info_id;
|
|
|
+ $where['source_id'] = $source_id;
|
|
|
+ $where['name'] = $name;
|
|
|
+ $where['page_id'] = $parent;
|
|
|
+ $where['times_id_parent'] = $times_id_parent;
|
|
|
+ $where['times_id'] = $times_id;
|
|
|
+ if ($desc) {
|
|
|
+ $param['desc'] = $desc;
|
|
|
+ }
|
|
|
+ if ($pic) {
|
|
|
+ $param['pic'] = $pic;
|
|
|
+ }
|
|
|
+ if ($reorder) {
|
|
|
+ $param['reorder'] = $reorder;
|
|
|
+ }
|
|
|
+
|
|
|
+ if ($parent > 0) {
|
|
|
+ $where['clear'] = true;
|
|
|
+ $where['name'] .= '第'.$num.'期';
|
|
|
+ $info = Dever::db($table)->one($where);
|
|
|
+ if (!$info) {
|
|
|
+ $param = array_merge($where, $param);
|
|
|
+ $id = Dever::db($table)->insert($param);
|
|
|
+ } else {
|
|
|
+ $total = Dever::db('collection/content')->total(array('info_id' => $info_id, 'page_id' => $info['id'], 'clear' => true));
|
|
|
+
|
|
|
+ if ($total >= $max) {
|
|
|
+ $num = $num+1;
|
|
|
+ $reorder += $num;
|
|
|
+ $id = $this->createPage($info_id, $source_id, $name, $parent, $times_id_parent, $times_id, $desc, $pic, $reorder, $max, $num);
|
|
|
+ } else {
|
|
|
+ $id = $info['id'];
|
|
|
+ }
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ $id = Dever::upinto($table, $where, $param);
|
|
|
+ }
|
|
|
+
|
|
|
+ return $id;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ public function createContent($info_id, $source_id, $page_id, $type, $reorder, $pic)
|
|
|
+ {
|
|
|
+ $table = 'collection/content';
|
|
|
+ $where['info_id'] = $info_id;
|
|
|
+ $where['source_id'] = $source_id;
|
|
|
+ $where['reorder'] = $reorder;
|
|
|
+ $where['name'] = '第' . $reorder . '篇';
|
|
|
+ $where['page_id'] = $page_id;
|
|
|
+ $where['type'] = $type;
|
|
|
+
|
|
|
+ if ($pic) {
|
|
|
+ $param['pic'] = $pic;
|
|
|
+ }
|
|
|
+
|
|
|
+ return Dever::upinto($table, $where, $param);
|
|
|
+ }
|
|
|
+}
|