1<?php
2// (c) Copyright by authors of the Tiki Wiki CMS Groupware Project
3//
4// All Rights Reserved. See copyright.txt for details and a complete list of authors.
5// Licensed under the GNU LESSER GENERAL PUBLIC LICENSE. See license.txt for details.
6// $Id$
7
8class Tiki_Profile_InstallHandler_Blog extends Tiki_Profile_InstallHandler
9{
10	function getData()
11	{
12		if ($this->data) {
13			return $this->data;
14		}
15
16		$defaults = [
17			'description' => '',
18			'user' => 'admin',
19			'public' => 'n',
20			'max_posts' => 10,
21			'heading' => '',
22			'post_heading' => '',
23			'use_find' => 'y',
24			'comments' => 'n',
25			'show_avatar' => 'n',
26		];
27
28		$data = array_merge($defaults, $this->obj->getData());
29
30		$data = Tiki_Profile::convertYesNo($data);
31
32		return $this->data = $data;
33	}
34
35	function canInstall()
36	{
37		$data = $this->getData();
38		if (! isset($data['title'])) {
39			return false;
40		}
41
42		return true;
43	}
44
45	function _install()
46	{
47		$bloglib = TikiLib::lib('blog');
48
49		$data = $this->getData();
50
51		$this->replaceReferences($data);
52
53		$blogId = $bloglib->replace_blog(
54			$data['title'],
55			$data['description'],
56			$data['user'],
57			$data['public'],
58			$data['max_posts'],
59			0,
60			$data['heading'],
61			$data['use_author'],
62			$data['add_date'],
63			$data['use_find'],
64			$data['allow_comments'],
65			$data['show_avatar'],
66			$data['post_heading'],
67			$data['use_find'],
68			$data['allow_comments'],
69			$data['show_avatar'],
70			$data['alwaysOwner'],
71			$data['post_heading'],
72			$data['show_related'],
73			$data['related_max'],
74			$data['use_excerpt']
75		);
76
77		return $blogId;
78	}
79
80	/**
81	 * Remove blog
82	 *
83	 * @param string $blog
84	 * @return bool
85	 */
86	function remove($blog)
87	{
88		if (! empty($blog)) {
89			$bloglib = TikiLib::lib('blog');
90			$blog = $bloglib->get_blog_by_title($blog);
91			if (! empty($blog['blogId']) && $bloglib->remove_blog($blog['blogId'])) {
92				return true;
93			}
94		}
95		return false;
96	}
97
98	/**
99	 * Get current blog data
100	 *
101	 * @param array $blog
102	 * @return mixed
103	 */
104	public function getCurrentData($blog)
105	{
106		$blogName = ! empty($blog['title']) ? $blog['title'] : '';
107		$blog = explode('$', $blogName);
108		$blogName = ! empty($blog[2]) ? $blog[2] : $blogName;
109		if (! empty($blogName)) {
110			$bloglib = TikiLib::lib('blog');
111			$blogData = $bloglib->get_blog_by_title($blogName);
112			$blogId = ! empty($blogData['blogId']) ? $blogData['blogId'] : 0;
113			if (! empty($blogId)) {
114				$blogPost = $bloglib->list_blog_posts($blogId);
115				$blogPostData = ! empty($blogPost['data']) ? $blogPost['data'] : [];
116				foreach ($blogPostData as $key => $post) {
117					$blogPostData[$key]['images'] = $bloglib->get_post_images($post['postId']);
118				}
119				$blogData['posts'] = $blogPostData;
120				return $blogData;
121			}
122		}
123		return false;
124	}
125}
126