Sitepackage stuff not loading after upgrade to 4.0


(Daniel Bischoff) #1

Hey! :wave:

I mirrored the database and files in another subdomain, everything worked and looked fine.

So I started the upgrade as described here.
No error-messages anywhere BUT its not loading anything from (by example)

<f:section name="stylesheets">
 [...]
<link rel="stylesheet" href="{f:uri.resource(path: 'Styles/main.min.css', package: 'hkm.schulcloud')}" />
[...]
</f:section>

So i have all the content from NEOS CMS, but all Styles, metadata and scripts are missing.

As you can see here, Ressources i used in the backend are loading, but the files I define in /Templates/Page/Default.hml are missing.

Did I miss something in the upgrade-process?

screenshot of actual page


(Soren Malling) #2

Did you change the domain name in the domain record (Site Management) since you moved to a new subdomain ?


(Daniel Bischoff) #3

Yes, I did


(Karsten Dambekalns) #4

What is in the generated HTML? Nothing or some unparsed Fluid or …?


(Daniel Bischoff) #5

Nothing. Just the output i showed in the screenshot. Everything else is missing. :disappointed_relieved:


(David Sporer) #6

I had that when my Fusion files still had the file extension .ts2 instead of .fusion.
Might be only stupid me but maybe another one also stumbles accross this :wink:


(Daniel Bischoff) #7

Thank you, but it is ( my first, but ) a brand new project, so my root.fusion is a .fusion file… :frowning_face:


(Daniel Bischoff) #8

After exporting the package and import it in a fresh Neos 4.0 installation, i have the same issue. So there is something wrong with my package, but i dont know what and where to look first…


(Soren Malling) #9

Is the site package public avaiable somewhere for us to see?


(Bastian Heist) #10

Might be related to the document rendering refactoring in 4.0.
Do you have any Fusion prototypes which have the same name as your document nodetypes?


(Daniel Bischoff) #11

i read the changes again and found one error but it leads to the next one :sweat:

i had to change
page = Neos.Neos:Page {

to

prototype(Neos.NodeTypes:Page) < prototype(Neos.Neos:Page) {

right?

Because i had a prototype(Neos.NodeTypes:Page) already i merged it, but i’m using a condition for formBuilderStyles.
I’m having two forms and for each form i need a different js-file in <head>.

An exception was thrown while Neos tried to render your page
Catchable Fatal Error: Object of class Neos\Fusion\FusionObjects\Helpers\FusionPathProxy could not be converted to string in /html/neos-schulcloud-mirror/Data/Temporary/Development/Cache/Code/Fluid_TemplateCache/Frontend_Node_action_show_8110cb6b3bf52dc6546969f42df1ef85c1fe5eeb.php line 909

rootNeos.Fusion:Case/
documentTypeNeos.Fusion:Matcher/
elementNeos.NodeTypes:Page/
bodyNeos.Fusion:Template/

For a full stacktrace, open Data/Logs/Exceptions/20180612090733a3e211.txt

full stacktrace here
Exception #1 in line 909 of /html/neos-schulcloud-mirror/Data/Temporary/Development/Cache/Code/Fluid_TemplateCache/Frontend_Node_action_show_8110cb6b3bf52dc6546969f42df1ef85c1fe5eeb.php: Catchable Fatal Error: Object of class Neos\Fusion\FusionObjects\Helpers\FusionPathProxy could not be converted to string in /html/neos-schulcloud-mirror/Data/Temporary/Development/Cache/Code/Fluid_TemplateCache/Frontend_Node_action_show_8110cb6b3bf52dc6546969f42df1ef85c1fe5eeb.php line 909

33 Neos\Flow\Error\ErrorHandler::handleError(4096, "Object of class Neos\Fusion\FusionObjects\Helpers\FusionPathProxy could not be converted to string", "/html/neos-schulcloud-mirror/Data/Temporary/Develo…_show_8110cb6b3bf52dc6546969f42df1ef85c1fe5eeb.php", 909, array|5|)
32 Frontend_Node_action_show_8110cb6b3bf52dc6546969f42df1ef85c1fe5eeb::section_02083f4579e08a612425c0c1a17ee47add783b94(Neos\FluidAdaptor\Core\Rendering\RenderingContext)
31 TYPO3Fluid\Fluid\View\AbstractTemplateView::renderSection("body", array|7|, FALSE)
30 Neos\FluidAdaptor\View\AbstractTemplateView::renderSection("body")
29 Neos\Fusion\FusionObjects\TemplateImplementation_Original::evaluate()
28 Neos\Fusion\Core\Runtime_Original::evaluateObjectOrRetrieveFromCache(Neos\Fusion\FusionObjects\TemplateImplementation, "root<Neos.Fusion:Case>/documentType<Neos.Fusion:Matcher>/element<Neos.NodeTypes:Page>/body", array|11|, array|5|)
27 Neos\Fusion\Core\Runtime_Original::evaluateInternal("root<Neos.Fusion:Case>/documentType<Neos.Fusion:Matcher>/element<Neos.NodeTypes:Page>/body", "NULL", Neos\Fusion\FusionObjects\ArrayImplementation)
26 Neos\Fusion\Core\Runtime_Original::evaluate("root<Neos.Fusion:Case>/documentType<Neos.Fusion:Matcher>/element<Neos.NodeTypes:Page>/body", Neos\Fusion\FusionObjects\ArrayImplementation)
25 Neos\Fusion\FusionObjects\AbstractFusionObject::fusionValue("body")
24 Neos\Fusion\FusionObjects\ArrayImplementation_Original::evaluate()
23 Neos\Fusion\Core\Runtime_Original::evaluateObjectOrRetrieveFromCache(Neos\Fusion\FusionObjects\ArrayImplementation, "root<Neos.Fusion:Case>/documentType<Neos.Fusion:Matcher>/element<Neos.NodeTypes:Page>", array|23|, array|6|)
22 Neos\Fusion\Core\Runtime_Original::evaluateInternal("root<Neos.Fusion:Case>/documentType<Neos.Fusion:Matcher>/element<Neos.NodeTypes:Page>", "Exception")
21 Neos\Fusion\Core\Runtime_Original::render("root<Neos.Fusion:Case>/documentType<Neos.Fusion:Matcher>/element<Neos.NodeTypes:Page>")
20 Neos\Fusion\FusionObjects\RendererImplementation_Original::evaluate()
19 Neos\Fusion\FusionObjects\MatcherImplementation_Original::evaluate()
18 Neos\Fusion\Core\Runtime_Original::evaluateObjectOrRetrieveFromCache(Neos\Fusion\FusionObjects\MatcherImplementation, "root<Neos.Fusion:Case>/documentType<Neos.Fusion:Matcher>", array|4|, array|5|)
17 Neos\Fusion\Core\Runtime_Original::evaluateInternal("root<Neos.Fusion:Case>/documentType<Neos.Fusion:Matcher>", "Exception")
16 Neos\Fusion\Core\Runtime_Original::render("root<Neos.Fusion:Case>/documentType<Neos.Fusion:Matcher>")
15 Neos\Fusion\FusionObjects\CaseImplementation_Original::renderMatcher("documentType")
14 Neos\Fusion\FusionObjects\CaseImplementation_Original::evaluate()
13 Neos\Fusion\Core\Runtime_Original::evaluateObjectOrRetrieveFromCache(Neos\Fusion\FusionObjects\CaseImplementation, "root", array|13|, array|6|)
12 Neos\Fusion\Core\Runtime_Original::evaluateInternal("root", "Exception")
11 Neos\Fusion\Core\Runtime_Original::render("root")
10 Neos\Neos\View\FusionView_Original::render()
9 Neos\Flow\Mvc\Controller\ActionController_Original::callActionMethod()
8 Neos\Flow\Mvc\Controller\ActionController_Original::processRequest(Neos\Flow\Mvc\ActionRequest, Neos\Flow\Http\Response)
7 Neos\Flow\Mvc\Dispatcher_Original::initiateDispatchLoop(Neos\Flow\Mvc\ActionRequest, Neos\Flow\Http\Response)
6 Neos\Flow\Mvc\Dispatcher_Original::dispatch(Neos\Flow\Mvc\ActionRequest, Neos\Flow\Http\Response)
5 Neos\Flow\Mvc\DispatchComponent_Original::handle(Neos\Flow\Http\Component\ComponentContext)
4 Neos\Flow\Http\Component\ComponentChain_Original::handle(Neos\Flow\Http\Component\ComponentContext)
3 Neos\Flow\Http\Component\ComponentChain_Original::handle(Neos\Flow\Http\Component\ComponentContext)
2 Neos\Flow\Http\RequestHandler::handleRequest()
1 Neos\Flow\Core\Bootstrap::run()


HTTP REQUEST:
GET / HTTP/1.1
Host: test.schul.cloud
Accept-Language: de-DE,de;q=0.9,en-US;q=0.8,en;q=0.7
Accept-Encoding: gzip, deflate, br
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.183 Safari/537.36 Vivaldi/1.96.1147.42
Upgrade-Insecure-Requests: 1
Cache-Control: max-age=0



HTTP RESPONSE:
[response was empty]

PHP PROCESS:
Inode: 23930737
PID: 19176
UID: 1576387
GID: 100
User: p347117

    [array] => 

Did there change something to with conditions? Here is my full root.fusion:

prototype(Neos.NodeTypes:Page) < prototype(Neos.Neos:Page) {
	head {
		metadata = Neos.Fusion:Template {
			templatePath = 'resource://hkm.schulcloud/Private/Templates/Page/Default.html'
			sectionName = 'metadata'

			title = ${q(node).property('title')}
			description = ${q(node).property('description')}
        }
		stylesheets.site = Neos.Fusion:Template {
			templatePath = 'resource://hkm.schulcloud/Private/Templates/Page/Default.html'
			sectionName = 'stylesheets'
		}
		javascripts.site = Neos.Fusion:Template {
			templatePath = 'resource://hkm.schulcloud/Private/Templates/Page/Default.html'
			sectionName = 'headScripts'
		}
		// titleTag = null

		formBuilderStyles = Neos.Fusion:Tag {
			tagName = 'script'
			attributes {
				src = Neos.Fusion:ResourceUri {
					path = Neos.Fusion:Case {
						if = Neos.Fusion:Matcher {
							condition = ${q(node).property('uriPathSegment') == 'aktivierung'}
							renderer = 'resource://hkm.schulcloud/Public/JavaScript/t.min.js'
						}
						elseif = Neos.Fusion:Matcher {
							condition = ${q(node).property('uriPathSegment') == 'registrieren'}
							renderer = 'resource://hkm.schulcloud/Public/JavaScript/reg.min.js'
						}
					}
				}
			}
			@if.isInBackend = ${!documentNode.context.inBackend}
			@position = 'end'
		}
	}

	bodyTag {
		attributes.class = ${q(node).property('title')}
	}
	body {
		templatePath = 'resource://hkm.schulcloud/Private/Templates/Page/Default.html'
		sectionName = 'body'
		parts {
			menu = Neos.Neos:Menu {
				templatePath = 'resource://hkm.schulcloud/Private/Templates/FusionObjects/navimain.html'
				// attributes {
				// 	class = 'uk-navbar-nav'
				// }
			}

			metaMenu = Menu
			metaMenu {
				entryLevel = 2
				templatePath = 'resource://hkm.schulcloud/Private/Templates/FusionObjects/navihead.html'
				maximumLevels = 2
				uikiticon = ${q(node).property('uikiticon')}
				startingPoint = ${q(site).children('[uriPathSegment="headnavi"]').get(0)}
			}

			footerMenu = Menu
			footerMenu {
				entryLevel = 2
				templatePath = 'resource://hkm.schulcloud/Private/Templates/FusionObjects/navifooter.html'
				maximumLevels = 2
				startingPoint = ${q(site).children('[uriPathSegment="footernavi"]').get(0)}
			}
			title = ${q(node).property('title')}
		}




		// These are your content areas, you can define as many as you want, just name them and the nodePath.
		content {
			// The default content section
			main = Neos.Neos:PrimaryContent {
				nodePath = 'main'
			}
		}

		javascripts.site = Neos.Fusion:Template {
			templatePath = 'resource://hkm.schulcloud/Private/Templates/Page/Default.html'
			sectionName = 'bodyScripts'
		}
	}
}

prototype(Neos.NodeTypes:Text) {
	@process.wrapWithContainer = ${'<div class="uk-section uk-section-small uk-section-default"><div class="uk-container">' + value + '</div></div>'}
}
prototype(Neos.NodeTypes:Html) {
	templatePath = 'resource://hkm.schulcloud/Private/Templates/FusionObjects/Html.html'
}
prototype(Neos.NodeTypes:ContentReferences) {
	templatePath = 'resource://hkm.schulcloud/Private/Templates/FusionObjects/ContentReferences.html'
}
prototype(Neos.NodeTypes:MultiColumn) {
	attributes {
		class = 'uk-child-width-expand@m'
		uk-grid = ''
	}
	isGrey = ${q(node).property('isGrey') ? 'isgrey' : ''}
	secondColumnOrange = ${q(node).property('layout') == 'color' ? true : false}
	
	columns.iterationName = 'multiColumnIteration'

	# do not add padding to text-element in columns
	prototype(Neos.NodeTypes:Text) {
		@process.wrapWithContainer = ${value}
	}
}
prototype(Neos.NodeTypes.ColumnLayouts:MultiColumn) {
	templatePath = 'resource://hkm.schulcloud/Private/Templates/FusionObjects/MultiColumn.html'
	headerRenderer = hkm:MultiLineHeader
	header0 = ${q(node).children('header0').get(0)}
}
prototype(Neos.NodeTypes:MultiColumnItem) {
	// attributes.class = ${q(node).parent().property('layout') +  ' ' }
	// attributes.class = 'uk-section uk-section-small uk-section-default'
	// attributes.class.@if.cond1 = ${q(node).parent().property('layout') == 'orange'}

	attributes.class = Neos.Fusion:Case {
		if = Neos.Fusion:Matcher {
			condition = ${q(node).parent().property('layout') == 'color'}
			renderer = 'uk-section uk-section-small uk-section-default'
		}
	}

}

prototype(hkm:MultiLineHeader) < prototype(Neos.Neos:Content) {
        templatePath = 'resource://hkm.schulcloud/Private/Templates/FusionObjects/MultiLineHeader.html'

        headline = ${q(node).property('headline')}
		// image = ${q(node).property('image')}

		logoUri = Neos.Neos:ImageUri {
				asset = ${q(node).property('image')}
				// width = 100
				// height = 100
				// allowCropping = TRUE
				// allowUpScaling = TRUE
		}
		// attributes.class = ${q(node).property('layout')}
		attributes.class = Neos.Fusion:RawArray {
			layout = ${q(node).property('layout')}
			hasBG = ${q(node).property('image') ? 'hasBackgroundimage' : false}
		}
		attributes.id = ${q(node).property('id')}
		// attributes.style = ${"background-image: url(" + logoUri + ")"}
		
}

prototype(Shel.Blog:BlogEntry) < prototype(Content) {
	templatePath = 'resource://hkm.schulcloud/Private/Templates/Plugins/BlogEntry.html'
	attributes.class = 'blog-entry uk-article'

	imageSettings = Neos.Fusion:RawArray {
        // class = 'blog-entry-image'
		class = ${q(node).property('entryImage').height < q(node).property('entryImage').width ? 'horizontal blog-entry-image' : 'vertikal blog-entry-image'}
        width = 800
        height = 800
        cropping = false
        upScaling = false
    }
	summary.@process {
        stripTags = ${String.stripTags(value)}
        crop = ${String.crop(value, 600, '…')}
    }

	prototype(Neos.NodeTypes:Text) {
		@process.wrapWithContainer = ${'' + value + ''}
	}


}
prototype(Shel.Blog:BlogFeed) < prototype(Content) {
	templatePath = 'resource://hkm.schulcloud/Private/Templates/Plugins/BlogFeed.html'
}
prototype(Shel.Blog:BlogFeedEntry) < prototype(Shel.Blog:BlogEntry) {
    templatePath = ${'resource://hkm.schulcloud/Private/Templates/Plugins/BlogFeedEntry.html'}
}

prototype(Gerdemann.ReCAPTCHA:ReCAPTCHA.Definition) < prototype(Neos.Form.Builder:FormElement.Definition) {
	formElementType = 'Gerdemann.ReCAPTCHA:ReCAPTCHA'
}

prototype(hkm.schulcloud:Slider) {
        carouselItems = Neos.Neos:ContentCollection {
			nodePath = 'carouselItems'
			content.iterationName = 'carouselItemsIteration'
			attributes.class = 'uk-slider-items'
			tagName = 'ul'
        }

		// attributes.class = "uk-section uk-section-small uk-section-default"
		sliderid = ${q(node).property('_name')}
        // Collect the carousels children but only images
        // carouselItemArray = ${q(node).children('carouselItems').children('[instanceof Neos.NodeTypes:Image]')}
		carouselItemArray = ${q(node).children('carouselItems').children('[instanceof Neos.NodeTypes:TextWithImage]')}

        // Enhance image prototype when inside the carousel
        prototype(Neos.NodeTypes:TextWithImage) {
                // Render images in the carousel with a special template.
                templatePath = 'resource://hkm.schulcloud/Private/Templates/NodeTypes/SliderItem.html'
 
                // The first item should later be marked as active
                attributes.class = 'uk-section'

				imageClassName = ${ 'uk-align-' + q(node).property('alignment') }

                // We want to use the item iterator in fluid so we have to store it as variable.
                iteration = ${carouselItemsIteration}
        }
}

prototype(Neos.NodeTypes:TextWithImage) {
	// attributes.class = "uk-container uk-child-width-1-2 uk-flex uk-flex-between uk-flex-middle"
	// attributes.class = "uk-child-width-expand@m neos-nodetypes-twocolumn uk-grid"
	attributes.class = ${q(node).property('alignment') == 'above' ? 'uk-child-width-1-1 neos-nodetypes-twocolumn uk-grid' : 'uk-child-width-expand@m neos-nodetypes-twocolumn uk-grid' }
	
	attributes.uk-grid = ""
}

prototype(hkm.schulcloud:FormHTML.Definition) < prototype(Neos.Form.Builder:FormElement.Definition) {
	formElementType = 'hkm.schulcloud:FormHTML'
}