The Stack Overflow podcast is back! Listen to an interview with our new CEO.
10

The two directories are found side-by-side. The location varies by CMS; see below. Note that you'll need access to your server's file system. If you have FTP/SFTP/SSH access, you can use that. If you have a control panel, check for a "File Manager" plugin: Drupal: <drupalroot>/sites/default/files/civicrm/ Joomla: <joomlaroot>/media/civicrm/ ...


7

Insert {debug} into a message template then perform the relevant action (ie make an online contribution if you modified Contributions - Receipt (on-line)). The email sent will contain a list of all the smarty variables assigned to that template


6

I dont think CiviCRM does this by default However, I do think this is a good idea and makes sense to include it in core for non-civimail mailings (which already have a header/footer) Might want to modify the core mailing functions: CRM_Core_BAO_MessageTemplate::sendTemplate to add a default header / footer Might want to allow this to be overridden both ...


6

Further down (halfway) to the Billingblock.tpl change the following value from true to false // detect if billing checkbox should default to checked var checked = false;


5

You can force inline CSS with this extension.


5

This code might help shed some light: $template = CRM_Core_Smarty::singleton(); print_r($template->template_dir);


4

You can insert the {debug} Smarty token into your template: http://forum.civicrm.org/index.php/topic,14845.msg63471.html#msg63471


4

The short answer is "not without extensions". It would be difficult, for instance, to say exactly which of a contact's many contributions you want to pull data from. That said, other users have created extensions that give you many of the most commonly needed tokens. Check out the Summary Fields, Contributions Table, and Eileen's custom tokens, in that ...


4

Tracked this one down. It worked out of the box in 4.4.x, but doesn't in 4.5.x. Not sure whether it was deliberate, but it's pretty easy to 'fix'. Edit templates/CRM/Mailing/Form/InsertTokens.tpl and change: cj.post( dataUrl, {tid: val}, function( data ) { if ( !isPDF ) { if (prefix == "SMS") { text_message = "sms_text_message"; ...


4

I think the real answer to this situation is: "don't use tpl.extra files in an extension". The reason is that there can be only one of them, and potentially many extensions. That little trick is really only suitable for in-house customizations, in which case you can stick it in the custom templates folder. Here's some solutions to the same problem that do ...


4

You say you want to change 'Edit Contact' - but if you mean, you want a way for a logged in user to be able to be directed 'somewhere' to update their details, then here is one non-coding solution suitable for just a couple of different roles that i hope others can improve on. (The more I wrote this out the more convoluted it seemed Ingredients: - one ...


4

In current 4.7 you need to enable debugging for the tpl to be shown in the source. Go to Administer > System Settings > Debugging and Error Handling then select Enable Debugging and save. Remember to disable it when done.


3

Try following: // php code; $_SESSION['test'] = 'Hello World'; // assign 'Hello World' to .tpl $this->assign('test', $_SESSION['test']); // use '{$test}' following in .tpl file to display on Thank you page, For e.g <tr> <td>{$test}</td> // this will print 'Hello World' on page </tr&...


3

If you use that template when either sending an individual Mail or a CiviMailing you should have an option at the bottom to save as new template.


3

I figured it out on my own. To print <div> on different pages, it needs to be positioned relative. So, I ended up putting all the existing <div> with position absolute into a <div> with position relative. However, that is not sufficient enough, I also needed to fill in a simple <br /> tag as well. This worked: <div id="page" ...


3

It sounds like you want to edit your Smarty templates for your receipts and use the Smarty "capture" function: From http://www.smarty.net/docs/en/language.function.capture.tpl: "{capture} is used to collect the output of the template between the tags into a variable instead of displaying it. Any content between {capture name='foo'} and {/capture} is ...


3

If you want to remove them when they are empty you will have to create a customization using the CiviCRM hooks. If you want to remove them from the email and do not really care about the data in them, you could contemplate disabling the custom fields?


3

I'd say best to stick with where Civix (aka Tim) says it should go! (i.e. no subdirs) - and note that Civix can help you create the page: https://wiki.civicrm.org/confluence/display/CRMDOC/Create+a+Module+Extension#CreateaModuleExtension-Addabasicwebpage To generate a Page: me@civisys:/home/me$ cd /var/www/extensions/com.example.myextension me@civisys:/...


3

How are you collecting the payment? As far as I understand it, those fields are required by certain merchant account services. For instance, on our page if we do pay later or Paypal, those fields do not come up. But if you select credit card, which is run through Authorize.net, then those fields become available (and required). There's a checkbox to state ...


3

The comment by Demerit solved my problem: Check under Administer - CiviCase - CiviCase Settings, there's an option that says "Redact Activity Email". That was set to "Redact Emails" and I had to set it to "Do Not Redact Emails".


3

Looks like this is indeed a bug: https://lab.civicrm.org/dev/core/issues/653


3

Welcome to SE, You can set contact type mandatory by using hook_civicrm_buildForm something like below function extension_civicrm_buildForm($formName, &$form) { if ('CRM_Contact_Form_Contact' == $formName && !($form->getVar('_action') & CRM_Core_Action::DELETE) ) { $form->addRule('contact_sub_type', ts('This field is ...


3

Unchecking the box in the image below for each field in your custom data set ensures it is not searchable. If no fields within the custom data set are searchable, the "accordion" is removed from the advanced search. If just one is searchable, then the accordion appears. Just confirmed this with 5.10.3. As for your second question, if you want to rename "...


3

In the message template, put this in the <body> section of the html format section and then send yourself a contribution receipt. {assign_debug_info} <table id="table_assigned_vars"> {section name=vars loop=$_debug_keys} <tr class="{cycle values="odd,even"}"> <th>{ldelim}${$_debug_keys[vars]|escape:'html'}{...


2

Despite getting a Tumbleweed award for this, I have submitted a fix See https://issues.civicrm.org/jira/browse/CRM-17030 and https://github.com/civicrm/civicrm-core/pull/6508


2

Are you searching for Contacts or Memberships? By default, Basic and Advanced Search return Contacts. Your search needs to return Memberships, not Contacts if you want the membership tokens to be available in the PDF letter. a) use Search >> Find Memberships b) use Search >> Advanced Search and set "Display results as" to Memberships In both cases you ...


2

The best way I've found to do this is by copying the source code from your original. To do this, edit your 'master' template that you want to use as your base. Go to the HTML Format section of your template and click the Source button in the Toolbar. This changes your WYSIWYG template into HTML and CSS code that can be copied. Select all of that code and ...


2

At this year's Denver sprint or con, Veda consulting demoed a working extension. The core stuff is supported by the upstream editor itself, so I don't think any smarty hacks were required. That's the limit of my knowledge though — I wasn't there. Hopefully we'll get to see it for 4.7 if not before. Here is the code: https://github.com/veda-consulting/uk.co....


2

Try using webform_civicrm! make different webforms exposing different contact fields you can do that for multiple contacts (i.e. make it into a batch update screen!) set the webform permissions such that different roles can submit the different forms


2

I think jQuery is the best way to achieve this at the moment, rather than trying to customise the template, or load a custom template for an individual event. Doing this in jQuery also keeps the logic separated out. If it's critical that the questions appear in this order, then you can use the introductory message and some creative CSS / JS to hide the ...


Only top voted, non community-wiki answers of a minimum length are eligible