My_changes addon... I don't get it?

It makes “upgrading” easier…when you go to upgrade and your skin folders have custom code, you need to manually verify and apply changes all over again.



The Theory is my_changes will make upgrading less painful.



Others can chime in…

Help with understanding Hooks - Store Design & Templates - CS-Cart Community Forums



Try reading that, may help.

It depends on exactly what you want to do. If you want to change the header, which is:


{hook name="index:main_content"}


{/hook}




You would create a file called main_content.override.tpl and put it into skins/your-skin/customer/addons/my_changes/hooks/index



In the file, you'd put your header code. For example:


```php




{$manifest.Customer_logo.alt}


{include file="top_quick_links.tpl"}

{include file="top_menu.tpl"}



 
 


{hook name="index:user_info"}
{assign var="escaped_current_url" value=$config.current_url|escape:url}
{if !$auth.user_id}
{$lang.sign_in}
{$lang.or}
{$lang.register}
{else}
{if $user_info.firstname && $user_info.lastname}{$user_info.firstname} {$user_info.lastname}{else}{$user_info.email}{/if}
({include file="buttons/button.tpl" but_role="text" but_href="auth.logout?redirect_url=`$escaped_current_url`" but_text=$lang.sign_out})
{/if}

{if $settings.General.secure_auth != "Y"}


{$lang.sign_in}

{include file="views/auth/login_form.tpl" style="popup" form_name="login_popup_form" id="popup"}


{/if}
{/hook}


{include file="common_templates/search.tpl"}





 
 

{include file="views/checkout/components/cart_status.tpl"}

{if $localizations|sizeof > 1}
{include file="common_templates/select_object.tpl" style="graphic" suffix="localization" link_tpl=$config.current_url|fn_link_attach:"lc=" items=$localizations selected_id=$smarty.const.CART_LOCALIZATION display_icons=false key_name="localization" text=$lang.localization}

{/if}

{if $languages|sizeof > 1}
{include file="common_templates/select_object.tpl" style="graphic" suffix="language" link_tpl=$config.current_url|fn_link_attach:"sl=" items=$languages selected_id=$smarty.const.CART_LANGUAGE display_icons=true key_name="name" language_var_name="sl"}

{/if}

{if $currencies|sizeof > 1}
{include file="common_templates/select_object.tpl" style="graphic" suffix="currency" link_tpl=$config.current_url|fn_link_attach:"currency=" items=$currencies selected_id=$secondary_currency display_icons=false key_name="description"}

{/if}



```

If you want to change the central area:

```php {hook name="index:columns"}


{include file="common_templates/breadcrumbs.tpl"}
{include file="common_templates/notification.tpl"}

{block group="central"}



{if $left|trim}

{$left}

{/if}

{if $right|trim}

{$right}

{/if}
{/hook} ```

You'd create a file called columns.override.tpl and put it into skins/your-skin/customer/addons/my_changes/hooks/index

In there, you'd put your new column code.

Does any of that help?

Thanks,

Brandon

[quote]

surely the act of copying the 'basic' folder and selecting the new skin means I'm not changing the core code but changing my own folder code

[/quote]



Note that when an upgrade runs, it will adjust any files by the same name in ALL installed skins.

Hence, if you simply copy basic to my_skin and them make your changes to my_skin/customer/styles.css, then when an upgrade comes along with changes to styles.css, it iwll update basic and my_skin because they are both installed.



If it didn't do this, then it would only update the repository and then the repository and the installed skins would be out of sync.



So you have 2 options:

  1. rename all the files in the skin with some prefix like 'my_' so styles.css becomes my_styles.css
  2. use hooks to have your changes in an area that will not be affected by an upgrade. You sometimes have to add hooks to isolate the area you want to change and so the best practice there is to bracket the added hook with consistent comments so they will be easy to spot in upgrade conflicts.

[font=verdana,geneva,sans-serif][size=4]Hello![/size]

This seems to be an issue that is always discussed and there is never any solution provided with each update to resolve these questions and queries.



[size=4]So is the “My Changes” add-on capable of doing anything?? Does it automate the process of monitoring page hooks being loaded on a web page, then replacing sections if the hook has been added to the path (skins/____/customer/addons/my_changes/hooks/index/)?

Or is it a complete manual system - where you must actually re-create files and add them to the correct/appropriate heirarchy within the …/addons/My_Changes/ directory?[/size]



[size=4]Also, I find it very odd that nothing at all is still mentioned, after notifying CS-Cart several times in the past 2+ years, about how this add-on works, bold pre-cautions you must be aware of (e.g. upgrading and consequences or actions that may occur without your knowing upon upgrade - for example: modifying files for all skins that are actively installed).[/size]





[size=4]I find it bizzare the ‘Reference Guide’ makes no mention of My Changes and Hooks, it seems to imply that once installed it keeps track of modified files and code changes within files. It also reads, if you want to customise CS-Cart, refer to the API guide (???).[/size]

[size=3][quote][font=courier new,courier,monospace]This module enables CS-Cart to keep track of changes that you make in the code of the store.[/font][/size]

[font=courier new,courier,monospace][size=3]Changes are kept in the directory <cscart_dir>\addons\my_changes, and the changes are applied as a separate add-on.[/size]

[size=3]This considerably simplifies the upgrade process.[/size]

[size=3]For instructions and recommendations on how to customize CS-Cart, please refer to the API documentation at docs.cs-cart.com .[/size][/font]

[size=3][font=courier new,courier,monospace]The add-on does not have configurable settings.[/font][/quote][/size]



[size=4]I don’t understand that part “and the changes are applied as a separate add-on.” - I am not aware of any other separate add-on for My Changes?..[/size]





[size=4]Installed and using v2.2.4 Professional Licence. [/size]Fresh install for new site install (so running parallel to existing website). My Changes addon installed and active.



[size=4]Uploaded custom skin i[/i] and applied permissions to all directories i[/i] and leaving files at default permissions as per usual i[/i]. This isn’t exactly rocket science! :P[/size]





[size=4]Neither the “Live Design Mode” OR the “My Changes” add-on work as far as I can tell. Nothing is under the …/addons/My_Changes/ directory except the original ADDON.XML. Also, no /My_Changes/ folders are found either under the installed …/skins/ and add-on folders or the …/var/skins_repository/ folders…[/size]



[size=4]So I can only assume all the modifications made through the slow and time consuming “Template Editor” have not been “Watched or Monitored”?? [/size]

[size=4]Most of the changes made I have not even seen any hooks available to use to implement the changes manually through the …/addons/My_Changes/hooks/****/ etc…[/size]



[size=4]So I just don’t see how this is a useful add-on. Editing via the Admin template editor is FAR from being the fastest way to make changes (not to mention being unable to have 3 or 4 files open at the same time). What am I missing?[/size]





[size=4]I admit defeat! I would be happy to pay someone a few bucks who can offer a 1 or 2 page list of examples, how to properly use and get the most out of this ‘supposed’ useful add-on! Or alternatively, if an alternate feasible solution exists for monitoring changes (e.g. perhaps even Checksums + compare contents to the repository to obtain a list of changes (deletions, additions, modifications)!!! Duh! :P)) I would greatly appreciate it and be happy to reimburse you for your time.[/size]



[size=4]Thank you to anyone who can give me back my sanity after this![/size]

[size=4] :)[/size][/font]

[font=verdana,geneva,sans-serif]I thought I'd look at what Smarty was doing and did a Debug Output of all values etc.[/font]



[font=verdana,geneva,sans-serif]I saw this for the list of Add-ons:[/font]


[quote][size=3]my_changes => Array (2)

status => “A”

priority => “429496729x”[/size]

[/quote]



[font=verdana,geneva,sans-serif]Everything else has a normal priority. I just thought I'd check to see if anyone else has this, or, if everyone else has this?[/font]

[font=verdana,geneva,sans-serif]No idea if the number is sensitive, so replaced last number with an “x”.[/font]



[font=verdana,geneva,sans-serif]Thanks.[/font]

The priority just tells the system in what order to load the addon/functionality. See the documentation for more information.

It is simply a stub for developers to use to “hook” into the system. Nothing special about the name, it behaves as any other addon in the system behaves. Hence you can reference how things work by looking at another addon (suggest simple ones to start).



Cs-cart has no vested interest in teaching people how to customize their store. There is much more revenue in using their “Custom design services”. However, I do believe the basic abou the my_changes addon are in the KB and if you search the developer's corner, you will find a series of articles I wrote that will walk you though the whole process (php hooks, template hooks, addon.xml, etc.). There are some differences with 3.01. but not a lot related to how it all works.



Where did you find anything that indicated there was any active monitoring of what was going on? The template debugger is pretty good at identifying which templates are being used for a give page/section.

The high priority is to have it process after everything else so your changes will have priority. I.e. any override you do will happen last and any php hook you do will happen first.

The my_changes feature is a good thing but as a newbie I found it and am finding thats its not that easy to design and develop skins for a cs-cart site. Even with the added functionality of 3.01 the my_changes addon is very basic and there is no real documentation to support it in depth.



I have looked at several client projects using cs-cart and at least 3 of them have gone elsewhere as they have found that the tempalte system is far too complex to administer themselves without considerable further investment with myself or other designers.



Maybe this will all improve in the future?



Regards

Lee

This seems like a good place to start RE: add-on & my_changes.

http://docs.cs-cart.com/advanced-addon-tutorial



~B.