Answers.Body: <p>Despite it not really being best practice, but lacking programmers to work thru the API, I created a customized template directory structure as described <a href="https://docs.civicrm.org/dev/en/latest/framework/templates/customizing/" rel="nofollow noreferrer">here</a>.  Then I made a copy of the ICalendar.tpl file (the default one found at <strong>wordpress/wp-content/plugins/civicrm/civicrm/templates/CRM/Event/Page</strong>), placed it in <strong>wordpress/wp-content/civicrm-custom/CRM/Event/Page</strong>, and made the modifications to show the registration links (see <a href="https://docs.civicrm.org/dev/en/latest/framework/templates/" rel="nofollow noreferrer">here</a> for how to locate your template file).  The modifications were:</p>
  
  <ul>
  <li>Before the table begins, add the line <code>{* CNP force registration links *} {assign var="registration_links" value=true;}</code>.  This is because the registration link code is actually already there but hidden by default (unless you use the Shopping Cart mode - then it becomes an "Add to Cart").  This sets it to show by default.</li>
  <li>In the table's header row, the line <code>{if $registration_links}&lt;th&gt;{ts}Register{/ts}&lt;/th&gt;{/if}</code> is good as is.</li>
  <li>In the body of the table, I modified the existing IF as so: <code>{if $registration_links}&lt;td&gt;&lt;a {* CNP orig was href="{$event.registration_link}" *} href="{crmURL p='civicrm/event/register' q="id=</code>$event.event_id<code>"}" &gt;{$event.registration_link_text}&lt;/a&gt;&lt;/td&gt;{/if}</code>.</li>
  <li>I also moved that link column to be the 2nd column on the event listings page, but that's a matter of personal choice.</li>
  </ul>
  
  <p>Afterwards, remember to add this custom template path in CiviCRM at <strong>System Settings, Directories, Custom Template Directory</strong> (my path was <code>[cms.root]/wp-content/civicrm-custom/</code>).</p>
  
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2018-02-21T00:07:29.217Z
Answers.Text: nice write up. thx
Answers.UserDisplayName: petednz - fuzion
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2018-02-20T22:47:41.847Z
Answers.LastActivityDate: 2018-02-20T22:47:41.847Z
Answers.UserDisplayName: Ruth D
Answers.Body: <p>Perhaps this file is  worth checking: civicrm/templates/CRM/Event/Page/DashBoard.tpl; you may want to have a customized version of the template and put something like a piece of code below  into an appropriate place of HTML markup:  </p>
  
  <p><code>&lt;a href="{crmURL p="civicrm/event/register" q="reset=1&amp;id=</code>$id<code>"}" title="{ts}Register now{/ts}"&gt;{ts}Register now{/ts} &lt;/a&gt;</code>  </p>
  
  <p>Please do not forget to follow all CiviCRM guides regarding custom templates creation.</p>
  
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2018-02-16T21:08:57.183Z
Answers.Text: yurg, thx very much for your reply.  I did find the template file you're talking about - problem is I'm too novice to understand where this new code should go.  Could you please elaborate a little on that?  I know I'm probably just adding another '<td>' but I'm even having trouble identifying the columns that currently show on the event listing page.  And I WILL read up on custom template creation - thx for the heads-up.
Answers.UserDisplayName: Ruth D
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2018-02-17T00:00:21.010Z
Answers.Text: Might it actually be the ICalendar.tpl file that would need to be modified?
Answers.UserDisplayName: Ruth D
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2018-02-17T00:26:14.243Z
Answers.Text: In the ICalendar.tpl file I recognize the columns as being the ones displayed in the event listing.  This file actually includes the line "{if $registration_links}<td><a href="{$event.registration_link}">{$event.registration_link_text}</a></td>{/if}".  I'm assuming the answer to the IF is "no", but if it were "yes" then the link would display for us??  If so, where is that variable set to "no"?
Answers.UserDisplayName: Ruth D
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2018-02-17T19:42:34.447Z
Answers.Text: @RuthD Perfect, you're on the right track: you've got the main idea behind all of this, please keep going!
Answers.UserDisplayName: yurg
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2018-02-16T10:56:53.447Z
Answers.LastActivityDate: 2018-02-16T10:56:53.447Z
Answers.UserDisplayName: yurg
Body: <p>Is there a way to add <strong>Register</strong> buttons to the public events listing page (.../civicrm/?page=CiviCRM&amp;q=civicrm/event/ical&amp;reset=1&amp;list=1&amp;html=1)?  I'd like a website visitor to be able to choose to register from this listing, rather than having to go first to the event detail page to find the <strong>Register</strong> button.</p>
  
  <p>Using 4.7.29 on Wordpress 4.9.2.</p>
  
  <p>Thanks for any help!</p>
  
Tags: <civievent><online-registration><button>
Title: Can we add Register buttons to the public-facing Events Listing page?
ThreadText: # Can we add Register buttons to the public-facing Events Listing page?
  
  (Asked by: username_0 on 2018-02-15)
  
  Is there a way to add **Register** buttons to the public events listing page (.../civicrm/?page=CiviCRM&q=civicrm/event/ical&reset=1&list=1&html=1)? I'd like a website visitor to be able to choose to register from this listing, rather than having to go first to the event detail page to find the **Register** button.
  
  Using 4.7.29 on Wordpress 4.9.2.
  
  Thanks for any help!
  
  **Tags:** civievent, online-registration, button
  
  
  ---
  
  ## 2 answers
  
  ### Answer by username_0 on 2018-02-20. Score: 2 | Accepted answer
  
  Despite it not really being best practice, but lacking programmers to work thru the API, I created a customized template directory structure as described [here](https://docs.civicrm.org/dev/en/latest/framework/templates/customizing/). Then I made a copy of the ICalendar.tpl file (the default one found at **wordpress/wp-content/plugins/civicrm/civicrm/templates/CRM/Event/Page**), placed it in **wordpress/wp-content/civicrm-custom/CRM/Event/Page**, and made the modifications to show the registration links (see [here](https://docs.civicrm.org/dev/en/latest/framework/templates/) for how to locate your template file). The modifications were:
  
  * Before the table begins, add the line `{* CNP force registration links *} {assign var="registration_links" value=true;}`. This is because the registration link code is actually already there but hidden by default (unless you use the Shopping Cart mode - then it becomes an "Add to Cart"). This sets it to show by default.
  * In the table's header row, the line `{if $registration_links} {ts}Register{/ts} |{/if}` is good as is.
  * In the body of the table, I modified the existing IF as so: `{if $registration_links} $event.event_id"}" >{$event.registration_link_text} |{/if}`.
  * I also moved that link column to be the 2nd column on the event listings page, but that's a matter of personal choice.
  
  Afterwards, remember to add this custom template path in CiviCRM at **System Settings, Directories, Custom Template Directory** (my path was `[cms.root]/wp-content/civicrm-custom/`).
  
  > **Comments:**
  > **username_1**: nice write up. thx  
  
  ---
  
  ### Answer by username_2 on 2018-02-16. Score: 1
  
  Perhaps this file is worth checking: civicrm/templates/CRM/Event/Page/DashBoard.tpl; you may want to have a customized version of the template and put something like a piece of code below into an appropriate place of HTML markup:
  
  `{ts}Register now{/ts}`
  
  Please do not forget to follow all CiviCRM guides regarding custom templates creation.
  
  > **Comments:**
  > **username_0**: username_2, thx very much for your reply.  I did find the template file you're talking about - problem is I'm too novice to understand where this new code should go.  Could you please elaborate a little on that?  I know I'm probably just adding another '<td>' but I'm even having trouble identifying the columns that currently show on the event listing page.  And I WILL read up on custom template creation - thx for the heads-up.  
  > **username_0**: Might it actually be the ICalendar.tpl file that would need to be modified?  
  > **username_0**: In the ICalendar.tpl file I recognize the columns as being the ones displayed in the event listing.  This file actually includes the line "{if $registration_links}<td><a href="{$event.registration_link}">{$event.registration_link_text}</a></td>{/if}".  I'm assuming the answer to the IF is "no", but if it were "yes" then the link would display for us??  If so, where is that variable set to "no"?  
  > **username_2**: @RuthD Perfect, you're on the right track: you've got the main idea behind all of this, please keep going!  
  
  ---
  
  