From 0f4c544d5ee9fb9cf9fc05162c17f6df03ec0cac Mon Sep 17 00:00:00 2001
From: Joe Murray <joe.murray@jmaconsulting.biz>
Date: Mon, 28 Oct 2019 16:40:48 -0400
Subject: [PATCH] Update civix.md

---
 docs/extensions/civix.md | 8 +++-----
 1 file changed, 3 insertions(+), 5 deletions(-)

diff --git a/docs/extensions/civix.md b/docs/extensions/civix.md
index 9eef1ebe..eb4b0b23 100644
--- a/docs/extensions/civix.md
+++ b/docs/extensions/civix.md
@@ -354,11 +354,9 @@ To include static resources such as stylesheets, Javascript files, or images pla
 
 ### Add a report {:#generate-report}
 
-CiviReport enables developers to define new business reports using customizable SQL logic and form layouts. 
+CiviReport enables developers to define new business reports using customizable SQL logic and form layouts. This command is available if you want to create a new report. It also provides an option, if another existing report is close to your needs, to easily copy and modify it.
 
-In many cases you can take advantage of the [alterReportVar hook](/hooks/hook_civicrm_alterReportVar) to adjust the columns, sql, or event rows of an existing report to modify it to suit your needs. 
-
-This civix command is available if you want to create a new report. It also provides an option, if another existing report is close to your needs, to easily copy and modify it.
+In many cases you can take advantage of the [alterReportVar hook](/hooks/hook_civicrm_alterReportVar) to adjust the columns, sql, or event rows of an existing report to modify it to suit your needs instead of creating a new report. 
 
 To see the available report generation options activate the `civix` help:
 
@@ -387,7 +385,7 @@ For example, this command will copy the activity report in the class `CRM_Report
 civix generate:report --copy CRM_Report_Form_Activity MyActivity Contact
 ```
 
-Note that copying a report like this and modifying it is likely to lead to maintenance issues similar to those related to overriding core files in an extension. In particular, bug fixes or other changes to code that you have copied will not automatically be applied to your new report. There are a few ways to avoid this maintenance headache. First, if you are not going to change a function in the report you have subclassed (ie made a copy of), just delete those functions and the original code will run. Second, if possible run the original code and then just tweak the behaviour afterwards, ie at the beginning of thisFn(), call parent::thisFn() then add your code.
+Note that copying a report like this and modifying it is likely to lead to maintenance issues similar to those related to overriding core files in an extension. In particular, bug fixes or other changes to code that you have copied will not automatically be applied to the copied code your new report. Often a better approach is to extend the class of the core report in your extension (eg CRM_myExtension_Form_Report_ExtendContributionDetails extends CRM_Report_Form_Contribute_Detail), then selectively override its functions. In the functions that you override, if possible run the original code and then just tweak the behaviour afterwards, ie at the beginning of thisFn(), call parent::thisFn() then add your code.
 
 ### Add a custom search {:#generate-search}
 
-- 
GitLab