Answers.Body: <p>One of my sites also required a customised event page and ended up doing up their own designs but only grabbed the event details (e.g description, time, venue) and registration link from CIVICRM via API.  This is quite doable if you have someone handy with html/js.</p>
  
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2021-07-15T03:28:12.817Z
Answers.LastActivityDate: 2021-07-15T03:28:12.817Z
Answers.UserDisplayName: Clement Leong
Answers.Body: <p>You can update the rendered html content with implementing the <a href="https://docs.civicrm.org/dev/en/latest/hooks/hook_civicrm_alterContent/" rel="nofollow noreferrer">alterContent hook</a> in an extension. You can check the tplName input to decide that the given content is connected to an event page or not. In case of event templates it is looks like <code>CRM/Event/...</code>. The  html string is stored in the content variable. You can use the <a href="https://github.com/phpquery/phpquery" rel="nofollow noreferrer">phpQuery</a> tool for doing the dom manipulation. For example you can remove the section that contains the default when and fees block. It changes the html content on the server side.</p>
  <p>Other solution could be adding custom js files and do the manipulation with javascript functions on the client side. You can implement the <a href="https://docs.civicrm.org/dev/en/latest/hooks/hook_civicrm_pageRun/" rel="nofollow noreferrer">pageRun</a> and <a href="https://docs.civicrm.org/dev/en/latest/hooks/hook_civicrm_buildForm/" rel="nofollow noreferrer">buildForm</a> hooks in your extension. If you are on the event pages or forms (you can decide it based on the page and form names that prefixed with <code>CRM_Event_</code>), you can add your custom js files with the <code>Civi::resources()-&gt;addScriptFile()</code> function.</p>
  <p>The EventInfo.tpl will not be changed with the options above.</p>
  
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2021-07-15T08:04:46.187Z
Answers.LastActivityDate: 2021-07-15T08:04:46.187Z
Answers.UserDisplayName: akosgarai
Body: <p>Using BackdropCMS and CiviCRM.</p>
  <p>I'm looking for tips on how to customize the event pages. The pages used to display the details of individual events.</p>
  <p>We are including the event location and price in the 'complete description' field for the event and would prefer that CiviCRM not display this information again at the bottom of the page, right before the register button.</p>
  <p>See image:</p>
  <p><a href="https://i.sstatic.net/kMWEf.png" rel="nofollow noreferrer"><img src="https://i.sstatic.net/kMWEf.png" alt="enter image description here" /></a></p>
  <p>I was leaning towards editing the EventInfo.tpl file as the best solution, but found this in documentation:</p>
  <blockquote>
  <p>Changing page templates is the wrong choice when ...it is possible to
  make the needed changes by updating the CSS styles. For example, if a
  requirement is to hide or move some information or form fields on a
  screen, a CSS style for that HTML element can be changed to display:
  none, or position: absolute within the CSS file.</p>
  </blockquote>
  <p><a href="https://docs.civicrm.org/dev/en/latest/framework/templates/" rel="nofollow noreferrer">https://docs.civicrm.org/dev/en/latest/framework/templates/</a></p>
  <p>Hiding fields with CSS does not feel like it is the best solution. But, is it the best solution available?</p>
  
Comments.ContentLicense: CC BY-SA 4.0
Comments.CreationDate: 2021-07-15T06:50:33.020Z
Comments.Text: you could ignore this altogether and just build these out using a View, assuming Backdrop Views offers similar to Drupal Views
Comments.UserDisplayName: petednz - fuzion
Tags: <civievent><backdrop>
Title: Customize the display page for events
ThreadText: # Customize the display page for events
  
  (Asked by: username_0 on 2021-07-15)
  
  Using BackdropCMS and CiviCRM.
  
  I'm looking for tips on how to customize the event pages. The pages used to display the details of individual events.
  
  We are including the event location and price in the 'complete description' field for the event and would prefer that CiviCRM not display this information again at the bottom of the page, right before the register button.
  
  See image:
  
  [![enter image description here](https://i.sstatic.net/kMWEf.png)](https://i.sstatic.net/kMWEf.png)
  
  I was leaning towards editing the EventInfo.tpl file as the best solution, but found this in documentation:
  
  > Changing page templates is the wrong choice when ...it is possible to
  > make the needed changes by updating the CSS styles. For example, if a
  > requirement is to hide or move some information or form fields on a
  > screen, a CSS style for that HTML element can be changed to display:
  > none, or position: absolute within the CSS file.
  
  <https://docs.civicrm.org/dev/en/latest/framework/templates/>
  
  Hiding fields with CSS does not feel like it is the best solution. But, is it the best solution available?
  
  **Tags:** civievent, backdrop
  
  > **Comments:**
  > **username_1**: you could ignore this altogether and just build these out using a View, assuming Backdrop Views offers similar to Drupal Views  
  
  ---
  
  ## 2 answers
  
  ### Answer by username_2 on 2021-07-15. Score: 0
  
  One of my sites also required a customised event page and ended up doing up their own designs but only grabbed the event details (e.g description, time, venue) and registration link from CIVICRM via API. This is quite doable if you have someone handy with html/js.
  
  
  ---
  
  ### Answer by username_3 on 2021-07-15. Score: 0
  
  You can update the rendered html content with implementing the [alterContent hook](https://docs.civicrm.org/dev/en/latest/hooks/hook_civicrm_alterContent/) in an extension. You can check the tplName input to decide that the given content is connected to an event page or not. In case of event templates it is looks like `CRM/Event/...`. The html string is stored in the content variable. You can use the [phpQuery](https://github.com/phpquery/phpquery) tool for doing the dom manipulation. For example you can remove the section that contains the default when and fees block. It changes the html content on the server side.
  
  Other solution could be adding custom js files and do the manipulation with javascript functions on the client side. You can implement the [pageRun](https://docs.civicrm.org/dev/en/latest/hooks/hook_civicrm_pageRun/) and [buildForm](https://docs.civicrm.org/dev/en/latest/hooks/hook_civicrm_buildForm/) hooks in your extension. If you are on the event pages or forms (you can decide it based on the page and form names that prefixed with `CRM_Event_`), you can add your custom js files with the `Civi::resources()->addScriptFile()` function.
  
  The EventInfo.tpl will not be changed with the options above.
  
  
  ---
  
  