← Back to team overview

mahara-contributors team mailing list archive

[Bug 628113] Re: Using javascript for Back link

 

so the back button is used in the following:

view/view.php
view/artefact.php
user/view.php

all three only display it for logged in users, and only when
microheaders is ON

The looping will happen if it came from ANY of those three pages.

I do find it a useful feature for the microview.

If the owner is the logged on user, they instead get an edit this page
button

I would make following suggestions:
- As it is a useful feature, fix it up so it doesn't loop
- also find other places where it could be useful and add it in (maybe seperate bug/feature for this)
- remove constraint of having a logged in user (ie public nonlogged in will still get back button)
- When page is editable, show both edit button and back button


Also seperate bug, will file. When a non logged in user accesses a public site page the "edit this page" is present, but when they access a public user-owned page, it doesn't appear.

Ideas? comments?

-- 
You received this bug notification because you are a member of Mahara
Contributors, which is subscribed to Mahara.
https://bugs.launchpad.net/bugs/628113

Title:
  Using javascript for Back link

Status in Mahara ePortfolio:
  Confirmed

Bug description:
  Now we are using $_SERVER['HTTP_REFERER'] to get a previous view page.
  But for example the following 2nd case, we can not go back to the Top Page.

  1. Top Page > Links and Resources > Site view 001 > Back > Top Page
  2. Top Page > Links and Resources > Site view 001 > Public view by user001 > Back > Site view 001 > Back > public view by user001 > Back > Site view 001

  So how about changing view/view.php as below?

  File: view/view.php
  Line: 179

  [ Before ]
  if ($USER->is_logged_in() && !empty($_SERVER['HTTP_REFERER'])) {
      $page = get_config('wwwroot') . 'view/view.php?id=' . $viewid . ($new ? '&new=1' : '');
      if ($_SERVER['HTTP_REFERER'] != $page) {
          $smarty->assign('backurl', $_SERVER['HTTP_REFERER']);
      }
  }

  [ After ]
  if ($USER->is_logged_in() && !empty($_SERVER['HTTP_REFERER'])) {
      $page = get_config('wwwroot') . 'view/view.php?id=' . $viewid . ($new ? '&new=1' : '');
      if ($_SERVER['HTTP_REFERER'] != $page) {
          $smarty->assign('backurl', 'javascript:history.back()');
      }
  }


References