You&Me --(now)--> You&Me //we could do htmlspecialchars_decode but it allows <> marks here, so we just transform & to & - it's not so scary. $loadPage = str_replace("&", "&", $lookupHash['page'] ); // Fix nignx mapping of '+' sign when doing rewrite $loadPage = str_replace("+", " ", $loadPage ); if( $loadPage && $existsInfo = BitPage::pageExists( $loadPage ) ) { if (count($existsInfo)) { if (count($existsInfo) > 1) { // Display page so user can select which wiki page they want (there are multiple that share this name) $gBitSmarty->assign( 'choose', $lookupHash['page'] ); $gBitSmarty->assign('dupePages', $existsInfo); $gBitSystem->display('bitpackage:wiki/page_select.tpl', null, [ 'display_mode' => 'display' ]); die; } $loadPageId = $existsInfo[0]['page_id']; $loadContentId = $existsInfo[0]['content_id']; } } elseif( $loadPage ) { $gBitSmarty->assign('page', $loadPage);//to have the create page link in the error } } if( !empty( $loadContentId ) ) { $gContent = BitPage::getLibertyObject( $loadContentId ); } if( empty( $gContent ) || !is_object( $gContent ) ) { $gContent = new BitPage(); } } // we weren't passed a structure, but maybe this page belongs to one. let's check... if( $gContent->isValid() && empty( $gStructure ) ) { //Get the structures this page is a member of $structure = !empty($lookupHash['structure']) ? $structure=$lookupHash['structure'] : ''; if( $structs = $gContent->getStructures() ) { $structId = $structs[0]['structure_id']; if( count( $structs ) > 0 ) { $gBitSmarty->assign('showstructs', $structs); foreach( $structs as $struct ) { if( $struct['parent_id'] == 0 ) { $structId = $struct['structure_id']; break; } } } $gStructure = new LibertyStructure( $structId ); if( $gStructure->load() ) { $gStructure->loadNavigation(); $gStructure->loadPath(); $gBitSmarty->assign( 'structureInfo', $gStructure->mInfo ); } } } $gBitSmarty->clearAssign( 'gContent' ); $gBitSmarty->assign( 'gContent', $gContent );