/** * @param array $params deleted contact_id * @return array|void */ public function execute(&$params) { waLocale::loadByDomain('blog'); $post_model = new blogPostModel(); $comment_model = new blogCommentModel(); $links = array(); foreach ($params as $contact_id) { $links[$contact_id] = array(); if ($count = $post_model->countByField('contact_id', $contact_id)) { $links[$contact_id][] = array('role' => _wd('blog', 'Posts author'), 'links_number' => $count); } if ($count = $comment_model->countByField('contact_id', $contact_id)) { $links[$contact_id][] = array('role' => _wd('blog', 'Comments author'), 'links_number' => $count); } } return $links; }
public function backendSidebar($params) { $output = array(); $post_model = new blogPostModel(); $blogs = blogHelper::getAvailable(false); $search_options = array('contact_id' => wa()->getUser()->getId(), 'status' => blogPostModel::STATUS_PUBLISHED, 'blog_id' => array_keys($blogs)); $count = $post_model->countByField($search_options); $selected = ''; if (waRequest::get('search') == $this->id) { $selected = ' class="selected"'; } $img_url = wa()->getUser()->getPhoto(20); $title = _wp('Posts by me'); $output['menu'] = <<<HTML <li{$selected}> \t<span class="count my_count">{$count}</span> \t<a href="?search={$this->id}"> \t\t<i class="icon16 userpic20" style="background-image: url('{$img_url}');"></i>{$title} \t</a> </li> HTML; return $output; }
public function execute() { $this->setLayout(new blogDefaultLayout()); $blog_id = (int) waRequest::get('blog'); $blog_model = new blogBlogModel(); if ($blog_id && $this->getRights("blog.{$blog_id}") < blogRightConfig::RIGHT_FULL || !$blog_id && !$this->getRights(blogRightConfig::RIGHT_ADD_BLOG)) { throw new waRightsException(_w('Access denied')); } // save settings (POST) $settings = waRequest::post('settings'); $draft_data = array(); if ($settings) { $settings['status'] = isset($settings['status']) ? blogBlogModel::STATUS_PUBLIC : blogBlogModel::STATUS_PRIVATE; $settings['name'] = trim($settings['name']); $settings['icon'] = !empty($settings['icon_url']) ? $settings['icon_url'] : $settings['icon']; if (isset($settings['qty'])) { unset($settings['qty']); } if (isset($settings['sort'])) { unset($settings['sort']); } $settings['id'] = $blog_id; $validate_massages = $this->validate($settings); if (!$validate_massages) { //TODO handle settings if ($blog_id) { $blog_model->updateById($blog_id, $settings); $this->log('blog_modify'); } else { $settings['sort'] = (int) $blog_model->select('MAX(`sort`)')->fetchField() + 1; $blog_id = $blog_model->insert($settings); $this->getUser()->setRight($this->getApp(), "blog.{$blog_id}", blogRightConfig::RIGHT_FULL); $this->log('blog_add'); } // refresh qty post in blogs $blog_model->recalculate($blog_id); $this->redirect(array('blog' => $blog_id)); } else { $this->view->assign('messages', $validate_massages); $draft_data = $settings; } } $colors = $this->getConfig()->getColors(); $icons = $this->getConfig()->getIcons(); if ($blog_id) { if (!($blog = $blog_model->search(array('blog' => $blog_id), array('link' => false))->fetchSearchItem())) { throw new waException(_w('Blog not found'), 404); } $blog['other_settlements'] = blogBlogModel::getPureSettlements($blog); $blog['settlement'] = array_shift($blog['other_settlements']); } else { $blog = array('id' => false, 'name' => '', 'status' => blogBlogModel::STATUS_PUBLIC, 'icon' => current($icons), 'color' => current($colors), 'url' => false); $blogs = array($blog); $blogs = $blog_model->prepareView($blogs, array('link' => false)); $blog = array_shift($blogs); $blog['other_settlements'] = blogBlogModel::getPureSettlements($blog); $blog['settlement'] = array_shift($blog['other_settlements']); } $this->getResponse()->setTitle($blog_id ? trim(sprintf(_w('%s settings'), $blog['name'])) : _w('New blog')); $blog = !$draft_data ? $blog : array_merge($blog, $draft_data); $posts_total_count = 0; if ($blog_id) { $post_model = new blogPostModel(); $posts_total_count = $post_model->countByField('blog_id', $blog_id); if ($posts_total_count) { $blog_model = new blogBlogModel(); $blogs = $blog_model->getAvailable($this->getUser()); $this->view->assign('blogs', $blogs); } } /** * Backend blog settings * UI hook allow extends backend blog settings page * @event backend_blog_edit * @param array[string]mixed $blog Blog data * @param array['id']int $blog['id'] Blog ID * @return array[string][string]string $return['%plugin_id%']['settings'] Blog extra settings html fields */ $this->view->assign('backend_blog_edit', wa()->event('backend_blog_edit', $blog)); $this->view->assign('posts_total_count', $posts_total_count); $this->view->assign('blog_id', $blog_id); $this->view->assign('blog', $blog); $this->view->assign('colors', $colors); $this->view->assign('icons', $icons); }