Hi @rensa,
Many thanks for coming back on this, and apologies for not providing the code in a better form
The only input object, besides the assorted App files is a list of the page names that are stored in a .RData file, which is read in at the start of the global.R file. the Index object was created with the following line:
Index <- list('page1','page2')
Which was then saved.
The code in all of the app files is below, I hope it's not too awkward to read / deal with. Thanks again, any guidance is much appreciated!!!
Adam
global.R
```sourcePrefix <- 'source(file.path("'
```sourceMidfix <- '","'
```sourceSuffix <- '"), local = TRUE)$value'
```AddItem <- function(Folder,File,Type) {
``` AIcnt <- length(File)
``` AIui <- paste(File,'_ui.R',sep='')
``` AIserver <- paste(File,'_server.R',sep='')
``` ParseStr <- ''
``` for (i in 1:AIcnt) {
``` if (i < AIcnt) {
``` if (Type=="server") {
``` ParseStr <- paste0(ParseStr,' ',sourcePrefix,Folder,sourceMidfix,AIserver[i],sourceSuffix)
``` } else {
``` ParseStr <- paste0(ParseStr,' ',sourcePrefix,Folder,sourceMidfix,AIui[i],sourceSuffix,',')
``` }
``` } else {
``` if (Type=="server") {
``` ParseStr <- paste0(ParseStr,' ',sourcePrefix,Folder,sourceMidfix,AIserver[i],sourceSuffix)
``` } else {
``` ParseStr <- paste0(ParseStr,' ',sourcePrefix,Folder,sourceMidfix,AIui[i],sourceSuffix)
``` }
``` }
``` }
``` return(ParseStr)
```}
app.R
=====
```library(shiny)
```source("global.R")
```ui <- navbarPage(
``` source(file.path("BASEMOD", "HOME_ui.R"), local = TRUE)$value,
``` navbarMenu("MENU",
``` eval(parse(text=as.character(AddItem("SubFolder",Index,"ui"))))
``` )
```)
```server <- function(input, output, session) {
``` source(file.path("BASEMOD", "HOME_server.R"), local = TRUE)$value
``` eval(parse(text=as.character(AddItem("SubFolder",Index,"server"))))
```}
``
```shinyApp(ui = ui, server = server)
To create Index/Index.RData
===========================
```Index <- list('page1','page2')
```Save(Index,file='filelocation/Index/Index.RData')
SubFolder/page2_ui.R
====================
```tabPanel(
``` "Page 2",
``` uiOutput("content2")
```)
SubFolder/page2_server.R
========================
```output$content2 <- renderUI({
``` "Page 2 content"
```})
SubFolder/page1_ui.R
====================
```tabPanel(
``` "Page 1",
``` uiOutput("content1")
```)
SubFolder/page1_server.R
========================
```output$content1 <- renderUI({
``` "Page 1 content"
```})
BASEMOD/HOME_ui.R
=================
```tabPanel(
``` "HOME",
``` uiOutput("contentHome")
```)
BASEMOD/HOME_server.R
=====================
```output$contentHome <- renderUI({
``` "HOME content"
```})