Shopware storefront-watcher for different saleschannels/domains - shopware

is it possible to have the storefront-watcher working for different salechannels with different domains?
Right now it is only working for the domain specified in APP_URL for me, but maybe I'm doing something wrong. I'm using ./bin/watch-storefront.sh to start the watcher.

If you use the flex template (https://github.com/shopware/recipes/blob/main/shopware/platform/6.4/bin/watch-storefront.sh) you could overwrite the APP_URL using
APP_URL=http://the-other-storefront.example.com/ ./bin/watch-storefront.sh
This should work because the flex template's watch-storefront script restores globally set variables, so they can be overwritten.

Related

Is there a "switch" tag available

I just tried to use the switch tag on a twig template, on a Symfony 5 project and got an error.
Then looked for a solution on the web, found documentation, double checked my syntax, that was correct.
Finally, searched the twig vendor folders and didnt' found any switch*.php file.
I guess this is not available by default but can't believe it. Does anyone have an idea?
No, swicth not exists in default Twig installation.
To use the switch statement you must implement it by yourself or use a bundle/package like buzzingpixel/twig-switch.

Write custom grid layouts with extbase/fluid but without any extension like gridelements

I look for a tutorial, help or an example that tells me what I have to do to write a grid element like 2-colums in basic typo3 (v9) with fluid but no other extension like gridelements, DCE, Templa Voila, etc. I want the same gridelements can do but I dont want to be depended to this extention and move it in my own site extention.
I tried the same with normal content elements (CE) like here:
https://docs.typo3.org/c/typo3/cms-fluid-styled-content/9.5/en-us/AddingYourOwnContentElements/Index.html
But how can I nest a CE in a CE? And how can I do this by drag&drop in the backend?
You can't. The page module doesn't support nesting
You can't nest CEs in a CE. On database level this would mean that you have to make a tt_content record a subrecord of a parent tt_content record. You run into several problems, basically the multilanguage support will be broken and the shortcut element does not function as you will expect it to. That is why the extensions "gridelements" and "mask" exist.
I integrated the gridelements configuration into my sitepackage. So I do not need to bother anymore with it.
Just for your info:
There is now an initiative that works on integrating this functionality into the core (Structured Content Initiative, https://typo3.org/article/a-structured-content-initiative/). Stay tuned to it.
There is nothing special about providing Gridelements via external files, since it's based on TSconfig, TypoScript and Fluid. That's why there is not that much about it in the documentation, since it's the same thing you would do with any other kind of sitepackage. The TSconfig and TypoScript parameters are already explained there, while the Fluid would be up to you anyway.
To have a kind of kickstarter just take any extensions providing Gridelements layouts as an example. A very popular one would be bootstrap_grids, which can be found in the TER or here: https://github.com/laxap/bootstrap_grids
You don't necessarily need the flexform controller of that extension, but the Configuration and Resources folders, show you how to configure stuff and you can see how that is included via ext_localconf.php
There are even comments i.e. in the TSconfig files to explain what is possible there and how to handle i.e. mixed environments with record and file based setups. Although it would be recommended to go for files.
You would at least have to add the necessary backend rendering methods to a draw item hook, that will modify the preview of the container element.
So basically you would have to rewrite everything that DCE, Flux, Gridelements or other similar extensions already do.
Which brings us to the question, why you want to avoid those extensions, since especially those three are well known, widely spread, well supported and available for currently supported TYPO3 versions.

What is the correct way of using the xcdatamodels parameters in the apportable config file? I believe this is for using Core Data

Maybe I didn't set the correct APPORTABLE config parameters when using CoreData. I can ADD,EDIT,DELETE and List down the current records when the app is running. But when I remove it from the current running apps and tried to Open my app again all of the data are gone. Maybe setting the correct parameter would eliminate this bug I am encountering right now?
You shouldn't have to set the xcdatamodel list in the configuration.json unless you have a special apportable-specific xcdatamodel. the model should now automatically be compiled and put into the app bundle. in fact, if you were using our coredata before this change, i recommend undoing everything you have done in order to get it to work. it should just work.
as for your issue, would you mind creating a test case and then emailing it to sdk # apportable.com? it's tough to debug without a reduced test case that demonstrates the bug.
update: we didn't have hasChanges properly implemented in NSManagedObjectContext. We've implemented it better, and now the test project works. Look for it the next version of the SDK (could be a few days to a week for that), and let me know if you still have trouble.

Global variables in apache cocoon piplines

I have some static variables used the XSL which are currently stored in sitemap.xml as global variables.
<map:pipelines>
<map:component-configurations>
<global-variables>
...
</global-variables>
</map:component-configurations>
...
This is all well and good but, some of the variables are deployment specific so need to be changed when the web app starts up. Basically, I need a small number of properties, stored externally to the .WAR to be available in the XSLT.
Has anyone needed to do something similar? If so what approach did you use?
thanks
For reference, it's worth checking out the cocoon input module RequestModule
Why exactly do these properties need to be stored outside of the WAR? Cocoon already keeps plenty of deployment-specific configuration inside WEB-INF.
If you're simply trying to keep the configuration out of the sitemap, .properties files may be your solution. The properties defined in **.properties in WEB-INF are available for use in Cocoon's sitemaps using ${property-name} notation.
Note that my answer is based off my experience with Cocoon 2.1.11; it may work differently in other versions.

More efficient ExpressionEngine server moves

I'm trying to find a better way to move my Expression Engine 2 sites from development to live servers. I have a checklist that I go through, starting with running a find and replace for the old/new URLs and server paths, then I update the database config file. This however misses out a huge amount of settings that I then have to go through and change manually, but I don't see why I should need to (unless these are encrypyed somewhere).
For example, I have to change the "Basepath to Template File Directory" in the Global Template Settings manually, along with member settings and a handful of others. There must be a file or entry with these in somewhere that I can change before I upload but I can't find it.
Does anyone know where these are stored?
Those are stored in the database, unless you are using global config variables.
I would highly recommend looking into some sort of config bootstrap. There are quite a few solutions to this, but it's really up to you to pick what's right for your development style / environment(s).
Take a look at the following articles:
http://eeinsider.com/articles/creating-a-robust-config.php-file/
http://boblet.tumblr.com/post/68095239/ee-localhost
http://eeinsider.com/articles/multi-server-setup-for-ee-2/
I've tried those solutions, but in my opinion the best option is NSM config bootstrap.
Check it out here: [http://ee-garage.com/nsm-config-bootstrap][4]
The only thing (currently) missing from these solutions are new config vars regarding file upload paths and locations. You can add those to any of these solutions by adding the variables detailed in this article:
http://expressionengine.com/user_guide/cp/content/files/file_upload_preferences.html#overriding-upload-paths-and-urls-using-configuration-variables
I know I'm late on this one, but for anyone else searching, this plugin is very useful and I have used it on numerous occasions.
ExpressionEngine stores your website URL and Server Path in a ridiculous number of places.
REElocate helps you update these in one simple step.
https://github.com/expressodev/reelocate

Resources