| Conditions | 7 |
| Paths | 10 |
| Total Lines | 20 |
| Code Lines | 13 |
| Lines | 0 |
| Ratio | 0 % |
| Changes | 1 | ||
| Bugs | 0 | Features | 0 |
| 1 | <?php |
||
| 22 | public function getRedirectUrl(?string $url = null): string |
||
| 23 | { |
||
| 24 | if (!$url) { |
||
| 25 | $url = \implode('?', \array_filter([\implode('/', Craft::$app->getRequest()->getSegments()), Craft::$app->getRequest()->getQueryStringWithoutPath()])); |
||
| 26 | } |
||
| 27 | // Special case for globals – account for their handles being edited before redirecting back |
||
| 28 | $segments = \explode('/', $url); |
||
| 29 | if ($segments[0] ?? null === 'globals') { |
||
| 30 | if (Craft::$app->getIsMultiSite()) { |
||
| 31 | $siteHandle = $segments[1] ?? null; |
||
| 32 | $globalSetHandle = $segments[2] ?? null; |
||
| 33 | } else { |
||
| 34 | $siteHandle = Craft::$app->getSites()->getPrimarySite()->handle; |
||
| 35 | $globalSetHandle = $segments[1] ?? null; |
||
| 36 | } |
||
| 37 | if ($siteHandle && $globalSetHandle && $globalSet = GlobalSet::find()->site($siteHandle)->handle($globalSetHandle)->one()) { |
||
| 38 | $url = "edit/$globalSet->id?site=$siteHandle"; |
||
| 39 | } |
||
| 40 | } |
||
| 41 | return Craft::$app->getSecurity()->hashData($url, Craft::$app->getConfig()->getGeneral()->securityKey); |
||
| 42 | } |
||
| 45 |