Example #1
0
 /**
  * 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();
     }
 }
Example #2
0
 /**
  * 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;
     }
 }
Example #3
0
 * 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">