/** * Return either a count or an array of the member's contributions * * @param object $member Current member * @param string $option Component name * @param string $authorized Authorization level * @param integer $limit Number of record to return * @param integer $limitstart Record return start * @param string $sort Field to sort records on * @param array $areas Areas to return data for * @return array */ public function onMembersContributions($member, $option, $limit = 0, $limitstart = 0, $sort, $areas = null) { if (is_array($areas) && $limit) { if (!isset($areas[$this->_name]) && !in_array($this->_name, $areas) && !array_intersect($areas, array_keys($this->onMembersContributionsAreas()))) { return array(); } } // Do we have a member ID? if ($member instanceof \Hubzero\User\User) { if (!$member->get('id')) { return array(); } else { $uidNumber = $member->get('id'); $username = $member->get('username'); } } else { if (!$member->uidNumber) { return array(); } else { $uidNumber = $member->uidNumber; $username = $member->username; } } include_once PATH_CORE . DS . 'components' . DS . 'com_wiki' . DS . 'models' . DS . 'page.php'; $versions = \Components\Wiki\Models\Version::all()->whereEquals('created_by', $uidNumber)->whereEquals('approved', 1)->group('page_id')->rows(); $ids = array(); foreach ($versions as $version) { $ids[] = $version->get('page_id'); } $rows = \Components\Wiki\Models\Page::all()->whereEquals('state', \Components\Wiki\Models\Page::STATE_PUBLISHED)->whereEquals('scope', 'site')->whereIn('id', $ids)->limit($limit)->start($limitstart); if (!$limit) { return $rows->count(); } else { return $rows->rows(); } }
/** * Delete a revision * * @return void */ public function removeTask() { if (!User::authorise('core.delete', $this->_option)) { App::abort(403, Lang::txt('JERROR_ALERTNOAUTHOR')); } $pageid = Request::getInt('pageid', 0); $ids = Request::getVar('id', array(0)); $ids = !is_array($ids) ? array($ids) : $ids; if (count($ids) <= 0) { Notify::warning(Lang::txt('COM_WIKI_ERROR_MISSING_ID')); return $this->cancelTask(); } // Incoming $step = Request::getInt('step', 1); $step = !$step ? 1 : $step; // What step are we on? switch ($step) { case 1: Request::setVar('hidemainmenu', 1); // Output the HTML $this->view->set('ids', $ids)->set('pageid', $pageid)->setErrors($this->getErrors())->display(); break; case 2: // Check for request forgeries Request::checkToken(); // Check if they confirmed $confirmed = Request::getInt('confirm', 0); if (!$confirmed) { Notify::error(Lang::txt('COM_WIKI_CONFIRM_DELETE')); // Output the HTML $this->view->set('ids', $ids)->set('pageid', $pageid)->setErrors($this->getErrors())->display(); return; } $i = 0; foreach ($ids as $id) { // Load the revision $version = Version::oneOrFail($id); $pageid = $version->get('page_id', $pageid); // Get a count of all approved revisions $count = Version::all()->whereEquals('page_id', $pageid)->whereEquals('approved', 1)->total(); // Can't delete - it's the only approved version! if ($count <= 1) { Notify::error(Lang::txt('COM_WIKI_ERROR_CANNOT_REMOVE_REVISION')); continue; } // Delete it if (!$version->destroy()) { Notify::error($version->getError()); } $i++; } if ($i) { Notify::success(Lang::txt('COM_WIKI_PAGES_DELETED', $i)); } // Set the redirect App::redirect(Route::url('index.php?option=' . $this->_option . '&controller=' . $this->_controller . '&pageid=' . $pageid, false)); break; } }
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. * * HUBzero is a registered trademark of Purdue University. * * @package hubzero-cms * @copyright Copyright 2005-2015 HUBzero Foundation, LLC. * @license http://opensource.org/licenses/MIT MIT */ // No direct access. defined('_HZEXEC_') or die; Pathway::append(Lang::txt('COM_WIKI_SPECIAL_FIX_LENGTH'), $this->page->link()); $rows = \Components\Wiki\Models\Version::all()->whereEquals('length', 0)->whereEquals('scope', $this->page->get('scope'))->whereEquals('scope_id', $this->page->get('scope_id'))->rows(); ?> <form method="get" action="<?php echo Route::url($this->page->link()); ?> "> <p> <?php echo Lang::txt('COM_WIKI_SPECIAL_FIX_LENGTH_ABOUT'); ?> </p> <div class="container"> <table class="entries"> <thead> <tr> <th scope="col">