Extends \CHttpRequest

Description of HttpRequest

Used in LSYii_Application.php


Every route will be interpreted as a regex pattern.


Return the referal url, it's used for the "close" buttons, and the "save and close" buttons So it checks if the referrer url is the same than the current url to avoid looping.

getUrlReferrer(mixed $sAlternativeUrl = null) : string

If it the case, a paramater can be set to tell what referrer to return. If the referrer is an external url, Yii return by default the current url.


To avoid looping between two urls (like simpleStatistics <=> Expert Statistics),

it can be necessary to check if the referrer contains a specific word (an action in general)

So if you want to forbid a return to a certain page, just provide an alternative url, and the forbidden key world

The checkLoopInNavigationStack-Method will check for looping, though the forbiddenUrl array is not required anymore

Not all "close" and "save and close" buttons should use it. Only close button for pages that can be accessed since different places. eg: edit question, that can be accessed from question list or question

TODO: implement it for all those pages List of pages where it should be implemented : - All pages accessible via the top nav-bar (eg: create a new survey, edit template, etc.) - All pages accessible via quick actions (home page, survey quick actions, question group quick actions, etc.) - All pages accessible via question explorer (only "add question to group" for now) - Edition of question and question group, which are accessible via summary or list - Import question, question group

TODO: remove misused of it It should not be used for pages accessible from only one place - Token activation etc.

In doubt, just use getUrlReferrer with a default link to home page for full page layout pages, or a link to the survey summary for sidemenu layout pages, with the controller action as forbidden world. So the close button will never loop.

TODO : Each time a new quick action or button is added to access an existing page, the "close" & "save and close" button should be updated to use getUrlReferrer()




string, the url to return if referrer url is the same than current url.



if success, else null

Method to update the LimeSurvey Navigation Stack to prevent looping


Method to check if an url is part of the stack Returns true, when an url is saved in the stack

checkLoopInNavigationStack(mixed $referrerURL) 




The URL that is checked against the stack







_pathInfo : 


noCsrfValidationRoutes :