CS-Cart 4.0.1 installation bug add-on in the "mail" directories

Dear friends,



While developing on the add-on for the version CS-Cart 4.0.1 we found standard bug. The error consists in the fact that at installation add-on the files from the directories “mail” aren’t copied":

“var/themes_repository/basic/mail/templates/addons/”;

“var/themes_repository/basic/mail/css/addons/”;

“var/themes_repository/basic/mail/media/images/addons/”.



The code in the file “app/functions/fn.addons.php” was studied. It turns out that CS-Cart’s architects just forgot about the folder “mail” :)

The mistake’s fix consists in that that the code was added to the “fn_install_addon_templates” function.

The code containing the mistake’s fix is given below:

<br />
/**<br />
* Copies addon templates from repository<br />
*<br />
* @param string $addon_name Addons name to copy templates for<br />
* @return bool Always true<br />
*/<br />
function fn_install_addon_templates($addon_name)<br />
{<br />
	$repo_dir = fn_get_theme_path('[repo]/basic/');<br />
<br />
	if (fn_allowed_for('ULTIMATE')) {<br />
		foreach (fn_get_all_companies_ids() as $company) {<br />
			$installed_themes = fn_get_installed_themes($company);<br />
			$design_dir = fn_get_theme_path('[themes]/', 'C', $company);<br />
			foreach ($installed_themes as $theme_name) {<br />
				if (is_dir($repo_dir . 'templates/addons/' . $addon_name)) {<br />
					fn_copy($repo_dir . 'templates/addons/' . $addon_name, $design_dir . $theme_name . '/templates/addons/' . $addon_name);<br />
				}<br />
				if (is_dir($repo_dir . 'css/addons/' . $addon_name)) {<br />
					fn_copy($repo_dir . 'css/addons/' . $addon_name, $design_dir . $theme_name . '/css/addons/' . $addon_name);<br />
				}<br />
				if (is_dir($repo_dir . 'media/images/addons/' . $addon_name)) {<br />
					fn_copy($repo_dir . 'media/images/addons/' . $addon_name, $design_dir . $theme_name . '/media/images/addons/' . $addon_name);<br />
				}<br />
				// [WSA-team] fixed standard bug 2013/07/27<br />
				if (is_dir($repo_dir . 'mail/templates/addons/' . $addon_name)) {<br />
					fn_copy($repo_dir . 'mail/templates/addons/' . $addon_name, $design_dir . $theme_name . '/mail/templates/addons/' . $addon_name);<br />
				}<br />
				if (is_dir($repo_dir . 'mail/css/addons/' . $addon_name)) {<br />
					fn_copy($repo_dir . 'mail/css/addons/' . $addon_name, $design_dir . $theme_name . '/mail/css/addons/' . $addon_name);<br />
				}<br />
				if (is_dir($repo_dir . 'mail/media/images/addons/' . $addon_name)) {<br />
					fn_copy($repo_dir . 'mail/media/images/addons/' . $addon_name, $design_dir . $theme_name . '/mail/media/images/addons/' . $addon_name);<br />
				}<br />
				// [/WSA-team]<br />
<br />
			}<br />
<br />
		}<br />
	} else {<br />
		$installed_themes = fn_get_installed_themes();<br />
		$design_dir = fn_get_theme_path('[themes]/', 'C');<br />
		foreach ($installed_themes as $theme_name) {<br />
			if (is_dir($repo_dir . 'templates/addons/' . $addon_name)) {<br />
				fn_copy($repo_dir . 'templates/addons/' . $addon_name, $design_dir . $theme_name . '/templates/addons/' . $addon_name);<br />
			}<br />
			if (is_dir($repo_dir . 'css/addons/' . $addon_name)) {<br />
				fn_copy($repo_dir . 'css/addons/' . $addon_name, $design_dir . $theme_name . '/css/addons/' . $addon_name);<br />
			}<br />
			if (is_dir($repo_dir . 'media/images/addons/' . $addon_name)) {<br />
				fn_copy($repo_dir . 'media/images/addons/' . $addon_name, $design_dir . $theme_name . '/media/images/addons/' . $addon_name);<br />
			}<br />
			// [WSA-team] fixed standard bug 2013/07/27<br />
			if (is_dir($repo_dir . 'mail/templates/addons/' . $addon_name)) {<br />
				fn_copy($repo_dir . 'mail/templates/addons/' . $addon_name, $design_dir . $theme_name . '/mail/templates/addons/' . $addon_name);<br />
			}<br />
			if (is_dir($repo_dir . 'mail/css/addons/' . $addon_name)) {<br />
				fn_copy($repo_dir . 'mail/css/addons/' . $addon_name, $design_dir . $theme_name . '/mail/css/addons/' . $addon_name);<br />
			}<br />
			if (is_dir($repo_dir . 'mail/media/images/addons/' . $addon_name)) {<br />
				fn_copy($repo_dir . 'mail/media/images/addons/' . $addon_name, $design_dir . $theme_name . '/mail/media/images/addons/' . $addon_name);<br />
			}<br />
			// [/WSA-team]<br />
<br />
		}<br />
	}<br />
<br />
	return true;<br />
}<br />

```<br />
<br />
Also I attached the file with a fix of the described mistake in attachments.<br />
I hope the given information will be useful to somebody.<br />
<br />
Thank you.<p><a href="127.0.0.1/uploads/monthly_07_2013/post-21046-0-21027700-1374931332.ipb">fn.addons.php</a></p>

The same fix is required for the fn_uninstall_addon_templates

Posted in the bug tracker.