Starting VirtoCommerce Storefront Theme Development - themes

Trying to start from Timber but the solution won't load without a site on IIS Express existing. Further the contents of the downloaded zip file, while working, the solution does not come with a way to deploy to a new zip so I can create a new zip and deploy. There seem to be files in the zip that are not in the solution so I'm concerned I might not end up with same result just zipping up the files in the solution.
Trying to download the Skeleton but no links to actually download from the app store?
https://virtocommerce.com/skeleton-theme

Starting from the VirtoCommerce.Storefront project.
Copy the contents of the App_Data/Themes/Default folder to a "theme" directory in a new directory.
Create a git repo from the root that contains the "theme" folder.
Add a GitVersion.yml file to control the versioning.
Running in Azure using blob storage you can create a CI process to automatically upload your theme when changes are checked in.
Lastly login to the platform, navigate to the site you uploaded to and activate the new theme. This allows you to fall back if needed.
Zip File
You could also zip the contents of your repo up as well.
The zip file should have a folder in it like "ThemeName-0.0.0", within that folder should be the assets, config, layout, locales, snippets, social and templates folders.
Upload that in the store of your choice and activate.

I'll suggest to use default storefont theme as base theme for customization and educations.
I'm providing some helpful information for helping you to better understand some technical moments related to working with the VC themes:
How theme resources resolving process works:
How to develop custom theme and what technology stack for this use:
Local running pre-compiled platform with installed modules
Local storefront fork (pre-compiled or from source code if you need to future customization)
For case with single theme you might directly change default (global) theme which contains in storefront project App_Data/Themes/default or make separated GitHub repository which will contain only theme and static pages files (as we made for our main site virtocommerce.com theme) and link folder with theme to storefront App_Data/Themes/{store name}/Themes.
Edit theme files in Visual studio code or any other preferred IDE, all changes will be immediately reflected to the local storefront, thanks to the cache invalidation based on theme folder file changes watcher.
Deploy theme changes to staging or productions environment by using any of
convenient CI processes. We are use Jenkins server and Azure Deployment.
Change theme files from manager UI not recommended because you will lose history of changes. And you should use this way only for emergency fixes or for debugging purposes.

Related

TYPO3 copied/existing installation

I'm installing a TYPO3 installation from a website that already uses TYPO3.
These are the steps I already have done:
I installed a blank TYPO3 installation.
I copied the contentapi and contentelements from the existing server to the typo3conf/ext folder on my server
I imported the data from the mysql TYPO3 server of the existing database
When I log in to the TYPO3 webpage, I have no templates configured and have a few issues. I tried to fix them by searching on internet but didn't find something clear.
On the pages tab I only can see this:
in the log files:
The error is sending me to this page:
https://wiki.typo3.org/Exception/CMS/1294587217
I already did that, but didn't help, or I did it wrong
On my templates tab there are "no templates":
If someone can guide me to a next step, that would be very helpful.. thanks!
root template:
plugin.tx_ahcontentapi.settings.auth.user = bm
plugin.tx_ahcontentapi.settings.auth.password = sdfsdfdsf
plugin.tx_ahcontentapi.settings.url = https://sdfsdfdfs.com
plugin.tx_ahcontentapi.settings.https = 1
tree-view:
Web server root folder:
(laravel application is the green selected folder, with views,language files,..)
did you have all Extensions installed?
typeNum=0 not configured means you do not have created a PAGE Object within your TypoScript.
If you copy Data to a new TYPO3 installation, you need to install all Extension that are used in the source-installation. When the extensions are installed, they have to appear in the Template Module.
The INVALID VALUE gridelements_pi1 is the same - it seems you didn't have installed Gridelements to the new TYPO3 Installation.
Install all dependencies and everything should work like expected.
EDIT:
Going a bit deeper - when installed all Extensions, then click on your rootpage (the globe) and then open the templates module. When there is still the No Templates, you need to create one... message, then create a new template for a new page.
After you created it, you can open the tab Includes and select your templates there.
An TYPO3 installation consists of multiple parts:
the TYPO3 source (this can be updated individually)
/typo3_src (normaly a symlink to the TYPO3 sources)
the database (some tables could be truncated (caches))
extensions (all active extensions are needed)
/typo3conf/ext/*
language files
`/typo3conf/l10n'
original data files (in case you want to have images or other data, e.g. pdf)
/fileadmin/ or any other folders you may use with a file-storage record
processed files (images mostly are used resized, which are precaculated and stored for faster access)
/typo3temp/assets, /typo3temp/DATA, /uploads, /fileadmin/__processed__, ...
cached data (some codes are concatenated, so only one file needs to be included instead of a lot of small files)
/typo3temp/var, /typo3temp/CACHE
Not all parts are necessary for a copy of the installation, but it will help if you can copy all parts.
All caches can be rebuild and so there might be some differences like another domain it is highly recommended to delete caches.
Most processed data can be rebuild (as long as the original files are still present). But sometimes it is not recognized that a file needs to be processed again.
In your case I assume you missed to copy the extensions, especially the site extension so that you also miss the definition of your page object.

Which Umbraco folders do I need to backup after deploying from VS and adding to version control?

I did the following steps:
I have created a new Umbraco instance by using the nuget package and visual studio.
I have deployed to Azure, using Azure DB as backend.
Installed the articulate package.
Added my project to version control (including App_Plugins folder, articulate dlls and so on).
I am able delete the umbraco installation and I can restore it completely from version control including Articulate.
Now I am starting to add content, articles, pictures and so on.
Think I do not need to backup the whole folder on the web server. I am doing regular backups of my Azure DB and I need some folders which are also filled with new content, like
media (filling with pictures which I am adding to my articles)
App_Plugins (keeping installed packages in umbraco)
App_Data/packages (file directory for installed packages)
App_Data/umbraco.config (keeping some content for Articulate)
So, is this everything I need to be able to restore the whole system by using the version control part, azure db backup and the listed folders?
Ideally for data/contents you should backup media and App_Data folders. However, if you want to backup Umbraco site (including cache files) then I would recommend App_Plugins, App_Data, Bin, Config, Umbraco & Umbraco_Client folders.
Hope this information helps!
Basically I follow the approach as described in the question. I have added the following files and folders to the Visual Studio project and then later to version control (I have just expanded the more interesting folders which are not part of the project file by default, but needed when you redeploy the solution from scratch):
As described the backend is hosted on Azure SQL.
Open Live Writer makes it very easy to host article content on another ftp server.
By following this approach it is very easy to redeploy the complete solution, e.g. for umbraco upgrades or major changes on the site.

Updates to existing custom Joomla component

I am running Joomla 3.1.5. I have a custom component installed and I have made some minor changes to some of the files. How do I create an uploadable/installable zip file to install these changes to my production Joomla site?
Please disregard the discussion on templates in the comments above.
You don't need to rename your component it seems.
If you need to install on a single site:
on the prodution site, install the installer you first installed on
your development site
sync the files with a version control system
such as git / rsync / scp / sftp / ftp whichever you're most
comfortable with
If you need to install on multiple sites:
You need to repackage it, and add to the xml manifest any files/folders you added.
Simply explode the original zip installer somewhere on your drive, and figure out the folder structure (could be admin,site,media for example).
For each browse the custom_component_name.xml section and ensure it contains the files you added, if any.
Then copy the updated files over the folder structure, zip it, and upload it to production.
Once you do this the component will be registered in the other Joomla installation. You can also keep the copies aligned between the two servers with a code versioning system such as git.
If it's a component you plan on distributing, create a script to package it, look at the Joomla docs there's plenty of info, you could use a bash script, phing, ant, maven, choose one that suits you any will do the job

After copying the whole folder, they wont show up

I've been working on a website by building it on Joomla. I built it locally with XAMPP and today I copied the files to the directory on the FTP to publish the website and went to the admin panel and there are no plugins or templates, this is weird because I copied the whole folder and imported the database. Already did this twice but it seems to be another error than copy error.
Attention:
I did not install the template and plugins after getting the joomla online, I just copied it to the ftp
Your best bet is to use a tool like Akeeba Backup. This will automate the process and resolve most common issues when moving a Joomla site.

Visual Studio: Pre-Build add contents of directory to project

I have the following setup:
Main Website - MVC 3 project, to be hosted on www.domain.com
Intranet Web App - MVC 3 project, windows authentication, hosted on admin.domain.com, which is only accessible from within the local subnet.
CDN Website - A simple web app that merely serves images to both of the above. It will be hosted (publically) on cdn.domain.com, when we go live. I have set up a local project to mock the CDN during development.
I've written a business layer that allows users in the admin panel to upload images, which are then physically saved to the CDN path that's configured (currently on the local machine i.e. C:\Code\SolutionName\CDNProject\images). The main website then uses the same business layer to find and distribute the images via http://cdn.domain.com/images/. http://cdn.domain.com is currently set to http://localhost:55555, while we develop.
Whenever an image is created via the admin panel, it is physically created on disk. Each developer works on his own machine, we we want to be able to check these files in to TFS, for the time being. As you might have guessed, adding files to the file system does not automatically reference them in the project:
I thought there may be some way to reference these images as resources, or set a directory to a "content" directory of sorts... but I can't find anything.
Some developers work remotely via VPN, and do not have access to the local network (only TFS), so a network path is not an acceptable solution.
I thought I might be able to set a pre-build event up, to add all files in a directory to the project?
There is no very easy way to do that. There are a few ways to think about:
1) Write VS adding which adds new files to project (via DTE - starting point). Find out how to automatically run this VS addin on Pre-Build step. Install this addin to your developers machines.
2) Extend your admin logic to automatically check-in the uploaded files to TFS via TFS API
3) try to apply more sofisticated techonologies like this one: T4 Tutorial: Integrating Generated Files in Visual Studio Projects
Hope that helps,
Visual Studio project files have an XML syntax. Project file properties can be modified in a simple text editor (files added/removed, etc.).
You can create a script to open your solution, and before actually opening the solution, you can scan that directory and "inject" the files (with the appropriate XML tags) in the project files.
I don't think you can add this as a pre-build event because the project files are already loaded at that point, and you cannot modify them while they're used.

Resources