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