I had the same issue when doing an upgrade to 4.7.12. I believe The problem was with the civicrm_dashboard table. I copied the structure from a clean install of 4.7.12 and was able to get rid of the error.

This is assuming you are starting from a point where you have reverted to a version of the site prior to attempting the update.

CIVICRM_DASHBOARD TABLE
Make a backup of the civicrm_dashboard table data. Then run the following on your DB to create the dashboard again.

Here is the SQL for my civicrm_dashboard table schema:

DROP TABLE civicrm_dashboard;

CREATE TABLE civicrm_dashboard (
  id int(10) UNSIGNED NOT NULL AUTO_INCREMENT,
  domain_id int(10) UNSIGNED NOT NULL COMMENT 'Domain for dashboard',
  name varchar(64) DEFAULT NULL COMMENT 'Internal name of dashlet.',
  label varchar(255) DEFAULT NULL COMMENT 'dashlet title',
  url varchar(255) DEFAULT NULL COMMENT 'url in case of external dashlet',
  permission varchar(255) DEFAULT NULL COMMENT 'Permission for the dashlet',
  permission_operator varchar(3) DEFAULT NULL COMMENT 'Permission Operator',
  fullscreen_url varchar(255) DEFAULT NULL COMMENT 'fullscreen url for dashlet',
  is_active tinyint(4) DEFAULT 0 COMMENT 'Is this dashlet active?',
  is_reserved tinyint(4) DEFAULT 0 COMMENT 'Is this dashlet reserved?',
  cache_minutes int(10) UNSIGNED NOT NULL DEFAULT 60,
  PRIMARY KEY (id),
  CONSTRAINT FK_civicrm_dashboard_domain_id FOREIGN KEY (domain_id)
  REFERENCES civicrm_domain (id) ON DELETE RESTRICT ON UPDATE RESTRICT
)
ENGINE = INNODB
AUTO_INCREMENT = 18
AVG_ROW_LENGTH = 1365
CHARACTER SET utf8
COLLATE utf8_unicode_ci
ROW_FORMAT = DYNAMIC;

CIVICRM_DASHBOARD_CONTACT TABLE
Make a backup of the civicrm_dashboard_contact table data and run the following on it. You will likely need to re-import your data to the new table.

Here is the SQL for my civicrm_dashboard_contact table schema:

DROP TABLE civicrm_dashboard_contact;

CREATE TABLE civicrm_dashboard_contact (
  id int(10) UNSIGNED NOT NULL AUTO_INCREMENT,
  dashboard_id int(10) UNSIGNED NOT NULL COMMENT 'Dashboard ID',
  contact_id int(10) UNSIGNED NOT NULL COMMENT 'Contact ID',
  column_no tinyint(4) DEFAULT 0 COMMENT 'column no for this widget',
  is_active tinyint(4) DEFAULT 0 COMMENT 'Is this widget active?',
  weight int(11) DEFAULT 0 COMMENT 'Ordering of the widgets.',
  PRIMARY KEY (id),
  UNIQUE INDEX index_dashboard_id_contact_id (dashboard_id, contact_id),
  CONSTRAINT FK_civicrm_dashboard_contact_contact_id FOREIGN KEY (contact_id)
  REFERENCES civicrm_contact (id) ON DELETE CASCADE ON UPDATE RESTRICT,
  CONSTRAINT FK_civicrm_dashboard_contact_dashboard_id FOREIGN KEY (dashboard_id)
  REFERENCES civicrm_dashboard (id) ON DELETE CASCADE ON UPDATE RESTRICT
)
ENGINE = INNODB
AUTO_INCREMENT = 413
AVG_ROW_LENGTH = 199
CHARACTER SET utf8
COLLATE utf8_unicode_ci
ROW_FORMAT = DYNAMIC;

At that point I would try to run the update again. Let me know if it works...

If it fails again, check your apache logs (here for linux: /var/log/apache2/error.log) and see if it gives you any more detail on what is happening.


Import – match to contact by email without creating duplicate email address

As far as I understand, provided you are importing to the same Location Type then the match should occur without adding a new email address.


Display cases in contact summary tab in reverse order (ORDER BY id DESC)

I found quick hack to add sort in CRM_Case_Selector_Search class file. Though its not good practice to touch core, I could not find better option to get around this problem

  public function &getRows($action, $offset, $rowCount, $sort, $output = NULL) {
       //adding sort here for descending
        $sort->_vars[1] = array('name'=>'case_id',
                                'direction'=>CRM_Utils_Sort::DESCENDING,
                                'title'=>ts('Case ID')
                               );


Price set contribution field won't accept negative amounts?

Ah - I strongly suspect this is a 'rule'/'validation' (either in the javascript or the form layer) - to ensure people donate extra as opposed to giving themselves a discount.

The workaround is obvious: create an Arbitrary Amount similar to how you created the Discount Amount - or do you need it to be this type of field?


width of email field on contribution form

One way to customize styling is by putting your custom CSS inside the css/extras.css file. But I'm not sure which page you mean. The front-end contribution page has different sizes (https://wpmaster.demo.civicrm.org/contribution-page/) and the back-end New Contribution form doesn't have email on it.


Exclude certain Activity types on Activities tab

I'm not aware of a way of doing this through the user interface. However once a user sets the activity type filter, this should persist for that user, as it gets saved as a user preference. See Save user preferences for filtering Activities tab listings.

To set the default value of the filter, I would try using the buildForm hook.


Error when trying to connect to civicrm from gmail using civigmail chrome extension by vedaconsulting: Error unsupported response type

I was able to get the oauth login to work by checking "Allow the implicit flow" on the basic settings for the oauth2 server I setup.

/admin/structure/oauth2-servers/manage/[server-name]


You can achieve this by creating a custom fields for Contribution i.e by creating
1. contact reference field that will list Organization.
2. Note field that will give you option to add notes.

Ref: https://docs.civicrm.org/user/en/latest/organising-your-data/creating-custom-fields/

HTH
Pradeep


You need to have selected a case type before the custom fields will appear.


How are CiviCase Case ID numbers generated?

I am not 100% sure, but there are some peculiarities within the case process. One of them is that the complete set of data is saved at the end of the overall case transaction, and for CiviCRM purposes it is a rather long transaction. And if there is either an error or a cancel somewhere during the whole sequence it might be that a record was created in civicrm_case (allocating an ID) which is then removed later on, but the ID is gone.

If you look at the table it does mention that ID is auto increment, meaning it is sequencing. As a test you might want to try creating a case but then not completing the open case activity and see if it allocated a case ID (if you catch my drift...) We certainly encountered some un-characteristic stuff when creating custom extensions for CiviCase :-)


If I can perform a straight forward query in search with regard to finding an “activity type’ within a specified ‘case type’  would it not be a significant progression for the CRM to be able to perform this as a report.

As an implementor I finally got around the problem using smart groups, but ..  seeing as the table join is already part of the ‘extended report’ functionality would it not be a massive progression for Civi report to offer this in a more direct way.

Many thanks to the suggestions to make a view and incorporate as a block, I can do this, I appreciate the power of the views module, should it be necessary.  The push to make civiCRM a software capable of case management  and it being really useful to organisations who wish to manage actual case requirements means that a fairly simple code change could offer significant Implementor level advancement.

I really don’t want to try and remember how to code, yours in eternal laziness x


Reusing scheduled & sent emails - screen goes blank

The problem was somewhere between multi-lingual and logging - log_civicrm_group was missing the column title_en_GB.  Switching logging off and on again refreshed the log table schema and resolved the blank screen problem.


I think this is now fixed in 5.14. You can try applying patch from here or upgrade CiviCRM to 5.15.1.

Thanks

Pradeep


in the menu->Administrater->Customize data and Screen->Navigation (civicrm/admin/menu), you can edit the menu and add entries


Seems like the issue was resolved in the latest 4.7.23 release.


creating a custom group and and field using extension

Here is how I add custom groups and fields:

as a first step, add an upgrader to your extension with civix generate:upgrader
then add the call to your creating function to the install function in the upgrader:

     public function install() {
        // install custom groups and fields
        CRM_Example_CustomData::createGroupsAndFields();

I also think your extends does not have to be an array? I use

'extends' => 'Individual',


Is your client an organization or individual? I know at one time it only worked with individual-individual, but I thought that was updated, but maybe not. I get the same error when I try on the public demo (4.6) with an org client.


How to create latitude and longitude automatically for civirm contact

You need to enable Mapping and Geocoding from civicrm/admin/setting/mapping?reset=1

Enter your API Key or Application ID. An API Key is required for the Google Maps API. Refer to developers.google.com for the latest information.
Save the form and you should be able to see latitude and longitude based on your contact's address. Note that it displays when you click on inline edit and load the address form as shown below.

Also see https://docs.civicrm.org/user/en/latest/initial-set-up/mapping/


Slow loading of front end (public site) forms (profiles)

It seems to fail to load all sorts of *.js and *.css files inside your iframe.


How to include price field data in a Contribution Thank You letter

It doesn't work because $lineItem is not set in the template, you'll have to loop thorough $contribtuions and use the API:

{foreach from=$contributions item=contribution}
{crmAPI var='result' entity='LineItem' action='get' contribution_id=$contribution.id}
  {foreach from=$result.values item=lineitem}
    {$lineitem.label} // Price field label
  {/foreach}
{/foreach}

Please note: this works fine generating ThankYou's with one contribution per individual.

Related topics for more details:

How can I use custom tokens when grouping Thank You letters
Contribution Note Smarty Variable

Let me know if that helps.


Adding Referenced civicrm_entity contact in node with email, address and phone doesnt work

So I've done some development to enable CiviCRM Entity Reference (CER) fields that target CiviCRM Contacts, either via the Drupal contact edit form "/civicrm-contact/add" or via an entityreference field targeting contacts (which form has CER fields attached), that can be on nodes or other entity types, using the Inline Entity Form Single widget.

Its available now on the -dev version of CiviCRM Entity, and will be in the next beta.

Support for the Inline Entity Form Multi widget is not yet included, it will take another small leap to get it working there, although the foundation is now laid.

The functionality for inline entity forms on either reference field type has worked and continues to work for node/entity edits.


What is the difference between Email and Mailing?

The main difference is that the mails are sent "synchronously", when you save it, that sets a limit of max 50 emails, whilst the mailings are sent in the background via a cron (so you don't get any timeout and can send it to millions)

The BAO/DAO for emails are into CRM/Core

if you have installed civi from buildkit (or from git) you have a xml/schema folder that defines the structure of the tables and where the DAO are (it's from there it's generated). I find it more convenient to search than the CRM code


How can I prevent Contribution Pages forcing the email to be of type Billing

One solution is to create your own custom module/plugin to do what is required. Steps:

Use hook_civicrm_postProcess hook for the target contribution page, you can give the contribution id or name in if condition.
Use civicrm contact create api call to edit email address type.


Remove Default Profile Fields from Drop Downs

Typically the "billing address" you collect for credit cards should only contain the fields actually needed by the credit card processor, as that's all it is used for. The home address can collect additional fields, and the user would need to enter that additional info as it won't be collected for the credit card.


Allow WordPress Users To Edit Own CiviCRM Record

I am not completely sure on how to do this. But in Civicrm you can create profiles. A profile has multiple purposes and one of them is an input form for editing contact data. You can then insert this profile into a WordPress page


file permission issue -- file attachment in mass mail

It's seems like a bug to me. I can reproduced it on at least one of my site.
The permission used to be 660 and is now 600 with the new angular CiviMail.

Can you log an issue in JIRA ?

In the mean time, I think it's possible to use legacy UI instead of Angular but can't find how :(

EDIT

In my case, i am able to make it work when running the task manually because it's then run as www-data. But it doesn't work when the process is run by cron.


Civicrm utilises sql triggers for a number of purposes - including but not limited to populating values into the log_civicrm_% tables - if you have logging turned on under Admin -> System Settings -> Misc

You can't alter triggers. Easiest to dump the database then strip out triggers using the following perl

perl -pi -e 's#\/\*\!5001[7|3].*?`[^\*]*\*\/##g' /path/to/mysqldump.sql

by way of Jon G and Chris Burgess on Why do I get "Access denied; you need (at least one of) the SUPER privilege(s) for this operation" when importing a SQL dump to CiviCRM?

after you import Civicrm will rebuild triggers as needed.


Upgrade fails with Row size too large error

Ok so the problem is Multi Lingual with CiviCRM adds a per language column to the tables where its needed. In the case of the civi_event table this is one of the most troublesome as it has quite a lot of columns that are needed in the different languages.

What I've done to get round this in the past is clear out the relevant data from the fields i.e. create a copy of civi_event as it stands, delete the data in the multilingual description and then try the upgrade again. This was in the earlier versions of MySQL where the rowsize wasn't really controllable.

More recent versions of MySQL have some config options to allow you to setup your MySQL a little differently, I haven't tried the file format options in this thread but we do run table per file regularly.

https://stackoverflow.com/questions/15585602/change-limit-for-mysql-row-size-too-large

Please do let us know how you get on, its a common problem for multi language CiviCRM installs.


I am a bit lost on CiviCRM's functionality

tl;dr: start by reading the book :)

I think the most important thing for you to know at this point is that Civi is a tool not a complete solution. You'll get out of it what you put into it.

It's certainly possible to do those things by combining CiviCRM with other tools (namely Drupal or Wordpress + plug-ins), and if you do your homework and put in the time to craft the final product it could be perfect. Or if you don't, it could be a mess.

Here's an analogy to your requirement:

  I want to purchase a blender that can make healthy, delicious smoothies full of organic fruit, yoghurt or non-dairy milk (depending on the user's preference) and supplemental protein and/or vegetable powders. I want to be able to serve these beverages in tall, ice cold glasses to about a dozen friends on a weekly basis.

Well, if you know what you're doing, get the right ingredients, assemble it correctly (important: put the lid on!), and combine the final product with the right serving containers, yes your blender can do that (although one might argue that you are making the smoothies, not the blender). If you don't, it'll probably just make a mess all over your kitchen floor and ceiling.

But I digress about blenders. From your description it sounds like you are wanting to build a basic social networking site. CiviCRM doesn't do that at all. But if you use Drupal or WP to build a site with the social networking features you need, plugging CiviCRM into it can give you some additional features like mailing lists, fundraising tools, paid membership management, among others. If you don't need those things and just want a basic social networking site, then you probably don't need CiviCRM.


Error after Installing CiviCRM 4.6.4 on Drupal 6, drupal attempts to reinstall at localhost/drupal

Unless there is a good reason why you have chosen to use Drupal 6, I would suggest that you use Drupal 7 instead.  As Laryn points out Drupal will reach end of life soon.  Things are more likely to go smoothly if you are using Drupal 7 and you also find it easier to get help.

I would also recommend that you use the latest version of CiviCRM - currently 4.6.12 (or 4.7.1).


CiviCase: How to handle confidential cases

You can do it in reverse if regular users have only "access my cases" permission. If they need access to cases that aren't theirs they can be added as any role to that case which will let them see it. But it sounds like you want the default to be to allow at the start, so then at that point you're into some kind of coding anyway. But then rather than access hooks, your postprocess hook on a new case would add in all the other staff as a role unless the custom field says don't.

If you want to generalize it, the custom field could be a multiselect list of groups, with the default being an "all staff" group.


Why is isFrontend set differently for Profile in create mode vs HTML snippet?

That is most likely a bug in the html snippet generator. Changing the snippet is indeed the solution to your problem, and as long as it works for your form no I wouldn't worry about that change causing problems.


Multiple item tax sub-totals are shown incorrectly on confirmation pages and emails

This issue is reported at https://lab.civicrm.org/dev/core/-/issues/1603 and there was a fix merged into 5.27 which is scheduled to be out today, unfortunately the fix was reverted since it created regression bug.


What do I do when rebuild Smart Group Cache fails?

could you create a new issue for this on JIRA and link it as related to https://issues.civicrm.org/jira/browse/CRM-15816.


Questions for using civi as part of a election campaign

So i have downloaded the files for all of the voters in PA. I have
  some questions

  Have other people loaded these types of files into Civi before and if so a. How do you keep track of things like if the person is a dem
  or rep or other b. How do you keep track of the times in which they
  have voted c. How do you keep track of the multiple districts that
  they live in d. How can you search on all of the above so that you can
  find all of one party who has voted in the primary and general of x
  year and is in District Y

Yes, political parties import voter data into CiviCRM.  There's a CiviCRM partner whose main clients are Libertarian parties, and Rick Santorum ran his 2012 presidential campaign on CiviCRM.  One of my clients is a political party.

You'd use custom fields to store that data; you can use multi-value custom fields to store multiple districts.  The Electoral API extension will create some of those fields - and automatically look up which district they live in (Federal and State only, but it wouldn't cost much to have someone add municipal-level).  Searches work like any other search.  You might need to get a little clever with smart groups to get "voted in primary" and "voted in general election", but it's certainly doable.

  I saw a note back in 2014 that they were working on the ability to "cut turf" does anyone know if that was completed, and if so do I need
  to download anything else

  If you can cut turf is it done visually? So on a map and i can draw on the map to cut the turf? if so is there a demo somewhere

Nope, sorry.

  Is there a way to print by street (or turf) odd and even street numbers?

Yes, the Walk List Report.

  If you can not cut turf, is there a way to create a list of people then go out and meet with those people, then somehow pull the same
  list up and quickly enter data?

Yes, there are several ways to do this, depending on your needs.

  If you do go out and lets assume you are giving out pampletts, where would you store the information like ... not home..took
  pamplet...agreed to have lawn sign..agreed to volunteer..so that we
  keep track of that as part of a date related item..so when we run for
  office again we can look back see who did it last time and then
  capture if they will do it again this time

You'd capture that as an activity type, and add custom fields as necessary to that activity type.

  Becuase the campaign has a limited life, can this be hosted on a shared server at godaddy or hostgator or something that is
  inexpensive. I need to keep the costs down but I never want to lose
  the data

I would NOT use shared hosting for a database that holds the entire voting population of PA.  Get a Linode or similar for $10/month.

All this said - I'll answer a meta-question.  ANY campaign organizing tool is going to cost you time and money.  CiviCRM is "free" - but if you want to run an effective campaign, you'll need to be willing to spend money.


CiviCRM API V3 : Translate Two Digit State to State_Province_id?

Try this:

$result = civicrm_api3('StateProvince', 'get', array(
  'sequential' => 1,
  'abbreviation' => array('IN' => array("AL", "MD", "FL")),
  'country_id' => 1228,
));

Note that you should specify country_id as state abbreviations are not globally unique.


At what line in a file should I add a new variable

I assume you mean CRM/Core/Config/Variables.php

If you're adding something to that file that you're going to submit as a pull request or patch back to core, put your changes where they fit most logically.  It'll make more sense to others in the future.

If you're doing a site-specific customization and want to edit the file, don't.  You'll have trouble when it comes time to upgrade.  Instead, create an extension.


Membership status rule - restart at 'New'

We have gone with a CiviRule and created a custom action:

trigger - 'membership is changed'

field value comparison on 'membership status' from (original value) 'expired' to 'current'

The custom action then changes that status immediately to 'new' with a status override for 6 months from the renewal data.


For all reports, CiviReport shows a page with no content

I have just had this issue whilst upgrading from ver 5.3 to 5.4 (using Drupal 7 as the CMS).  After a couple of frustrating days going through the debugger and finding nothing, I did a fresh 5.40 install on a VM and all was fine.

Going back over the steps I took upgrading, and retraced - one of the steps was to clear down the files/civicrm/templates_c/en_US directory.  I cleared down everything I could in the en_US directory and all was fine.

See Clear Cached file in the section

  Upgrade in Drupal 7


There are a couple of ways to do this - but the easy no-coding way is to use the "Word Replacements" function.  Go to Administer menu > Customize Data and Screens > Word Replacements and put in the phrase you want to replace, along with what to replace it with.  Don't forget to check "Enabled", and next time you reload that report page, you should see your change.

For the official documentation, check here: http://gitbook.civicrm.org/initial-set-up/customizing-the-user-interface.html


Is upgrade possible for `payment` type Extension?

Uninstall the extension form the site.
Upgrade the site to 4.7.
Make the extension compatible with the latest version - Eg - Upgrade Paystation processor to 4.7 compatible and Install the extension again.


How to expose the civicase hashed value that gets sent in Subject when sending an email from case

Here's the override code I've used to make it accept some variations of case id (with and without the word case, with and without the # sign) as well as hash, prioritizing the fanciest to the plainest. It looks like the original code hasn't changed since 4.2 so this should work against 4.7 too.

Create an override for CRM/Activity/BAO/Activity.php, and in lines 607 thru 622 replace it with this:

$matches = array();
$subj_to_match = CRM_Utils_Array::value('subject', $params);
if (preg_match('/\[case #([0-9a-h]{7})\]/', $subj_to_match, $matches)) {
  $key        = CRM_Core_DAO::escapeString(CIVICRM_SITE_KEY);
  $hash       = $matches[1];
  $query      = "SELECT id FROM civicrm_case WHERE SUBSTR(SHA1(CONCAT('$key', id)), 1, 7) = '$hash'";
} elseif (preg_match('/\[case #(\d+)\]/', $subj_to_match, $matches)) {
  $hash       = $matches[1];
  // this seems like an odd query but we are checking the id actually exists
  $query      = "SELECT id FROM civicrm_case WHERE id = '$hash'";
} elseif (preg_match('/\[#(\d+)\]/', $subj_to_match, $matches)) {
  // technically this is a subset of the one below, but keeping it allows a subject that had both and prioritize this one
  $hash       = $matches[1];
  $query      = "SELECT id FROM civicrm_case WHERE id = '$hash'";
} elseif (preg_match('/\[(\d+)\]/', $subj_to_match, $matches)) {
  $hash       = $matches[1];
  $query      = "SELECT id FROM civicrm_case WHERE id = '$hash'";
}
if (!empty($matches)) {
  $caseParams = array(
    'activity_id' => $activity->id,
    'case_id' => CRM_Core_DAO::singleValueQuery($query),
  );
  if ($caseParams['case_id']) {
    CRM_Case_BAO_Case::processCaseActivity($caseParams);
  }
  else {
    self::logActivityAction($activity, "unknown case hash encountered: $hash");
  }
}

One interesting side effect of this is that saving a non-case activity using the normal civi UI but putting [1234] in the subject will save it as a case activity on case 1234!


how do I find a new page I just created so that I can link it on another page?

Never mind. I just went into my browser history and found it that way, but it seems like there must be a better way.


Upgrade Now Button does not show when upgrading to 4.6.9

If you disable the verify SSL certs and Force SSL certs before doing the upgrade (even if your site is on SSL) then the upgrade works fine.

So in the upgrade process before turning of CiviCRM additional modules disable the two fields of Verify SSL certs and Force SSL certs. You can find the settings under /civicrm/admin/setting/url?reset=1

Remember to turn them back on.

Cheers.


You are using Stripe.js in live mode over an insecure connection

Not only must the stripe dashboard be "test" but CiviCRM's contribution page must be rendered in "test drive" mode as well.   Is that the case?


What can I do about this error after attempting to install CiviCRM on a Wordpress site: Table 'myprefix_civicrm.civicrm_setting' doesn't exist

It turns out that the civicrm folder in the wp-content/uploads folder was preventing a clean reinstall. Deleting that folder allowed me to start the install over.


I think this would be a custom token to get it in the format that you're looking for, but it wouldn't be too difficult and I am pretty sure you'll be able to find one someone has already written -

Check out the bottom two links of this page:

https://forum.civicrm.org/index.php?topic=13757.0

The last post April 29: "We discovered at the sprint that just about everyone has written a token for this at some point"...

I think there was a good example on coleman's blog here, too, but the main content doesn't seem to be loading for me anymore:

https://civicrm.org/blog/colemanw/create-your-own-tokens-for-fun-and-profit (corrected link)


The same questions was asked at WordPress Site Health contains critical errors unless CiviCRM is disabled and had some good answers.
Summary:

Yes CiviCRM is to blame for the notice.
No - it's not a real problem.
Plugins exists to suppress the notice.


“Missing parameters” error in unsubscribe confirmation

It appears this issue is fixed in CiviCRM 5.24.5. We upgraded and re-tested and unsubscribe now works.


Accounts are handled by the CMS, so it depends if you are using drupal, wordpress or Joomla.

Check the documentation of your CMS on you to enable then again, and you should be able to access your site again


Generating links or a popup to edit a single multivalue custom field record in CiviCRM 4.7

You're on the right track. If you go to the contact summary page and click the popup links to add/edit custom data then you can re-use those exact links in your report. Give the <a> a class of crm-popup and Civi's js will do the rest for you. No need to redirect back to the report, you can make it refresh automatically via ajax when the popup form is saved by using the CRM.refreshParent method similar to crm.livepage.js


It's hard to answer definitively without knowing your version of CiviCRM.  However:

If you're using CiviCRM 4.5+, IPN transactions (the silent post URL) are stored in civicrm_system_log.  You can also replay them.
You should search your web server logs (Apache/Nginx/etc.) for references to the IPN URL.  If you're not seeing them, then Authorize isn't talking to your server.  If they ARE there, check to see whether there was a 200 (success) response or another response (e.g. 404 error).
Try visiting your IPN URL in your web browser.  Do you get a response along the lines of "The transaction has failed", or do you get something like your site's web page?  If the latter, you may have a broken redirect rule in your web server settings.


Why do 'track click through' links not redirect to correct address?

If you have access to the database then try checking the civicrm_mailing_trackable_url table to see exactly where the URL's are going to. This should identify if they're incorrect. You'll need to know the mailing id of the job you've run but you should be able to get that easily enough from the URL of the mailing reports.


Can't use backup migrate module, CIVI crm error is: "The website encountered an unexpected error. Please try again later."

To clear up the smaller issue - Drupal, like most modern web apps, will not have a directory corresponding to most of its URLs.  It will use redirects (defined in the webroot .htaccess file) to map URLs to a dynamically-generated page which doesn't exist on disk.

To speak to your primary issue - it sounds like you've got a MySQL view in your database.  CiviCRM doesn't typically create MySQL views, though there are some exceptions (I believe CiviCase might use them).  There are also sometimes reasons to create them manually - for instance, I created one for a client so CiviCRM could integrate with software that produces membership cards.

You have a view that references data that no longer exists.  It seems someone recently deleted a custom field group called "Files" with a custom group id of 8.  You have a MySQL view built in part from the table that holds that data.  The table is gone, so the view is broken.

Most likely, if the custom group is deleted, you no longer need the view, and it's safe to simply delete the view using PhpMyAdmin or similar.  However, it may be worth exploring whether that custom field group was deleted intentionally.


New CiviMail does not use the 'CMS editor' set in 'Display settings'

My understanding is that the new CiviMail approach necessitated disabling the "use CMS default" option for WYSIWYG.  The new preferred approach is CiviCRM extensions to implement other WYSIWYG editors - it took about an hour to create the first WYSIWYG extension for CiviCRM, and others can build even quicker, using that extension as a guide.  You can find it here: https://github.com/relldoesphp/com.aghstrategies.tinymce


We've seen some major improvements in the 4.7.x version (Mosaico 2.0) [over the 4.6.x version] - if a client wishes to use Mosaico we do recommend moving them up the 4.7.x first;


Message template option missing in send SMS activity in CiviCRM 4.5.8

I just wrote a fix for this - https://github.com/PalanteJon/civicrm-core/commit/a7ea8fd5e8f74ea415d9ac026da4607e5a4da0fd

I'll submit it upstream as soon as I have a minute to write a webtest for it.


Newsletter tab would be for outgoing bulk mailings ie civimail.

Activities tab (what you translated above as Actions tab) is where incoming mail goes because they are created as an Activity.


Allowing user to update their contact details while renewing their membership

If you are using Drupal with a no-redirection payment processor, your best chance to do this is by using Webform CiviCRM. Webform comes with a lot of functionnality like multisteps, fields grouping and conditional fields.

Otherwise, if you are not in Drupal or want to have a cross platform solution, i can see 2 possibilities :

you do a contribution page with profile containing all the fields you need and then you add javascript to make it multistep (e.g. jquery steps). You might find it difficult to make CiviCRM embedded javascript to work in all context.
you do a contribution page that is the first step of the process and then redirect to a profile to let the user update its information when the payment is done (the user won't be able to see the thankyou page so you might want to add a thank you message in the profile). You should be able to do so using CiviCRM hook_civicrm_buildForm like :

function myextension_civicrm_buildForm($formName, &$form) {
  if ($formName == 'CRM_Contribute_Form_Contribution_ThankYou') {
    $formId = $form->getVar('_id');
    if ($formId == FORM_ID) {
      ...
      $url = CRM_Utils_System::url('civicrm/profile/edit', "gid={$gid}&id={$indId}&reset=1&context=thankyou" . $checksum, FALSE, NULL, FALSE);
      CRM_Utils_System::redirect($url);
    }
  }
}


A couple of ideas within your framework: 1) Use civicrm fields exposed to drupal user registration and do away with the fields from the drupal db, so everything is housed in civicrm.

2) Write a Rules action to update civicrm fields based on the drupal fields so you can display them.

Our solution to the issue of displaying civicrm fields and drupal profile fields uses views 3 integration for a 'civicrm membership view' and better exposed filters to search, which is a different strategy than the link you provided and from what you have built out so far but it does the job well.


Fill in custom field of type contact reference field from javascript returns TypeError

The solution is to use 'data' instead of 'val':

CRM.$("#s2id_custom_13_-1").select2('data', { "id": 188, "text":"NAME OF THE CONTACT"} );


What is the Membership type 'domain' in the api?

On multisite you tie each membership type to a domain id. You can find what the domain ID's by looking at the civicrm_domain id table (or in the civicrm.setting.php file).

If you create the memberships on the correct domain they will be correct I believe, but if you don't then just adjust the domain_id in the civicrm_membership_type table.

Then only the memberships tied to a certain domain will be available for selection on a given domain.


Any source of unknown data should be fine - I'd use a command like this just because it's quicker:

head -n 1000 /dev/urandom | md5sum


Can I send membership reminders "retroactively"

This answer assumes that this is a one-off requirement to deal with the "backlog" of reminders that has arisen because you haven't had the ability to send scheduled reminders before and that once the site is established you will be sending reminders at 2 months before the membership end date.

You wouldn't do this with a scheduled reminder.  You would use Advanced Search or Find Membership to identify all those who "missed" the two-month-before reminder and send an email to them using CiviMail.


An email confirmation with these payment instructions has been sent to

This looks like there's a fix just hasn't been confirmed yet:

https://lab.civicrm.org/dev/core/issues/1255

https://github.com/civicrm/civicrm-core/pull/15314

If you can try out the patch and make a comment there that it fixes it for you it will help get it included faster.


Webform CiviCRM, Membership and # of Terms

The API we're using to tell CiviCRM to generate this recurring series - is the

ContributionRecur API:
$resultRecur = wf_civicrm_api('ContributionRecur', 'create', $contributionRecurParams);

I don't know how that API connects with PayPal WPS; one of the $contributionRecurParams is the PaymentProcessor, but I don't have any clients on PayPal WPS - so can't test how well it works for IPN payment processors.

Here's what to do: Create a Membership Type with duration: 1day and minimum fee = $1; then do what you describe above (live): purchase 2 terms on your Webform; and pay in 2 installments; That should:

result in Contact getting the Membership
result in Contact having a Contribution in his record: $1 receive date today
result in Contact having a Recurring Series (at the bottom of the Contribution tab) in his record: status: in progress, 2 installments, daily, next scheduled date: tomorrow

Tomorrow:
 - hopefully - another $1 contribution is generated and the Recurring Series status is updated to completed;

Update: you told me that the second $1 payment was indeed processed in PayPal WPS - so that's great; your CiviCRM did not receive the IPN so you had to manually reconcile - that's an issue between PayPal WPS and your CiviCRM [unrelated to Webform CiviCRM]

I really don't know how PayPal WPS handles expired/lost/stolen credit cards; and I don't know what business logic/consequences may be attached to a failed recurring payment; For the iATS Extensions we handle different Failed attempts - differently; but what we don't do is add any business logic - as many orgs will have different logic e.g. whether or not memberships should be canceled automatically on a failed recurring contribution.

Conclusion: if you setup Membership recurring with CiviCRM native - the code will do some things differently compared to when (we're on the outside - interacting with CiviCRM via the API) you use Webform CiviCRM; I can really only confirm that this is working fine for 4.6 and 4.7 when using an inline payment processor - like our iATS extension; but we've not coded anything specific to iATS about this. Again, we're using the CiviCRM API to create RecurringSeries - it's possible though that the API needs some improving.


You will probably want to introduce an image or images into your message templates, which you can find under admin>mailings>message templates.

The documentation for this is at https://docs.civicrm.org/user/en/stable/email/set-up/#creating-and-maintaining-message-templates


You might consider not making those into contacts.  Instead, set up a set of custom fields on an individual (parent) or household that allows for multiple entries (in a tab).  You can then record the necessary information without cluttering your CRM with contacts who have no names and can't be contacted.


Webform Civicrm Custom Fields across Multiple Contacts not working in Drupal 7 and Drupal 8

Re -> Tab with Table style are these Multi value custom fields? We recently fixed a bug re: such custom fields in WFC D8/D9 and backported it to D7. What versions are you using? Are you able to clone from git or pull in a patch?
PS Multi value custom fields do complicate things (like eg reporting) so it may be a better option to create a regular Custom data set with the fields you need in it.
For sure non-Multi value custom fields across multiple contacts are working well - we're collecting custom fields data for up to 5 Contacts in e.g. a Family Registration form (up to 2 Adults + up to 3 Kids) - we did this in D7 -> and now on D8 (this project just upgraded).


It started working, the last action before it did so was me updating the views module.


email activity - any solution to being able to preview like print/merge document?

There isn't such a feature currently.

This is related, but not exactly the same as what you're asking, but if implemented might help facilitate a preview: https://lab.civicrm.org/dev/core/-/issues/1750


If you install the Extended Reports extension there is a report called 'Event Overview' with which you can create a list of events. Just select the Event ID & Event Title columns to display and you should get a list. You can then export the list to CSV.


I would suggest you create a contact sub-type called "Parent" (sub-type of Individial). This allows you to create a custom field group just for parents, and you can collect whatever additional information you wish.


Setting up an "ethics wall" - anonymous contributions

As far as the end-of-year giving statements are concerned, this has been available in CiviCRM since 4.4, but not documented in the user and admin guide.

It is documented in the 4.6 version of the guide which will be published soon. (The publishing software we were using has stopped working, so we are working hard to get it ready to publish via a different route).  In the mean time the relevant section is:


Best way to write module for 'unusual' payment gateway

What you are describing is not unusual and is within the range of processes that CiviCRM can handle. See here for some details:
https://wiki.civicrm.org/confluence/pages/viewpage.action?pageId=184188933

Two key things you want to do for your specific payment processor code are:
1. Set the 'payment type' to '2' - this sets some default assumptions for debit cards as opposed to credit card (e.g. fields).
2. Create an automated job to pull in the completed contributions.

There are some complex things you may want to implement later, like being able to manage the recurring schedule from CiviCRM, but for now you can probably get the basics working without too much suffering.

You'll want to look at a few examples and also the core payment object that you'll be subclassing:
https://github.com/civicrm/civicrm-core/blob/master/CRM/Core/Payment.php


CiviMail won't send mailings; start/completed date is "0th, 0 12:00 AM"

I'm not sure what causes this - but an upgrade on a site of mine (MySQL 5.5, Debian 8.9) caused my civicrm_mailing_job database table to not allow NULL values for start_date and end_date.  Since a NULL start date is a condition for sending emails, this causes CiviMail to fail.

To fix this, you need to run the following SQL commands:

ALTER TABLE civicrm_mailing_job MODIFY start_date timestamp null;
ALTER TABLE civicrm_mailing_job MODIFY end_date timestamp null;


The 'Type' field is automatically calculated upon the fields present in the profile. Your profile must be having custom field for certain Event name that's the reason it shows 'ParticipantEventName:Event Name'. There is no way you can update this field through UI. However if you want to update then either you can run update query or run api in create mode from api explorer, but still the 'Type' will be recalculated when the profile fields will updated or added.


Multiple currencies in the report totals

I am afraid that CiviCRM will not provide a lot of features out of the box for multi-currency use. Also, it does not know exchange rates (in fact it only stores the currency and one amount value - not both).

Searches and reports will usually not differentiate between the currencies and (depending on your requirements) you may have to invest quite some time to improve reports & usability.

We thought about doing a exchange rate extension at some point but it is not quite that easy (particularly as they are fluctuating, and may be different when a contribution is created, completed...).

However, apart from the lack of features in the UI, the "currency-information" is stored properly in the database and will allow you to base custom reports & functions on it e.g. using custom reports & searches, drupal views, Civisualize or custom reporting tools such as pentaho.


In 4.7 a contact's activites are in ascending date order: should that be descending?

This is believed to be an unresolved bug and is reported at https://issues.civicrm.org/jira/browse/CRM-18275?jql=project%20%3D%20CRM
Hope this helps.


What's the logic behind Contribution's Payment Method for offline Contributions?

The reason is probably that no financial transaction (which is different from contributions) is recorded for pending contributions.

Once you have a financial transaction e.g. if you change the status to completetes you will be able to edit it in the edit contribution screen (click on the little pen - see screenshot).

I think this behaviour was introduced only recently and I am not sure if it is a bug or a feature that you cannot change the payment instrument before you have a financial transaction.


Has anyone run into scheduled jobs drifting on Centos7?

I don't know if this is the case here, and it seems more regular than my experience, but my coworkers and I have seen cron jobs walk fairly regularly.  (We're more commonly using Ubuntu 14.04 or 12.04, however.)

The usual issue I see is the following with a daily scheduled job:

cron run starts at 1:00:00
there are a bunch of things to do, so it gets to the daily job at 1:00:20
the next day at 1:00:00, cron runs again
there's less to do, so it gets to the daily scheduled job at 1:00:10
being "daily", the scheduled job checks to make sure its previous run was more than one day ago, and that check fails since it was 23 hours, 59 minutes, 50 seconds ago
the scheduled job executes the next time cron runs

In my experience, that would normally make the scheduled job walk one cron interval (usually 5, 6, 10, or 15 minutes) rather than an entire hour.  However, if you only have the cron job running hourly, that would explain your phenomenon exactly.

Unfortunately, there's no way to guarantee that a scheduled job will get run at a precise time each day unless you have a separate cron job to run the single scheduled job.  However, reducing the cron interval will mean that when the schedule job does walk, it'll take smaller steps.

(Side note: this situation is why I always have the scheduled reminders job run hourly rather than daily.  Otherwise, the scheduled job might walk all the way to 11:00 pm, potentially reminding people about the next day's event after the recipients have gone to bed.)

UPDATE: As Karin describes below, this was addressed in 4.6.3, so the later 4.6.x releases all fix this.  However, some changes introduced in 4.7 had the result of undoing this.  The relevant issue is CRM-18671 for describing what's going on.


Contact ID 1 is an organization and causing errors

The messages about roles are verbose output from the CiviGroup Roles Sync module (civicrm_group_roles) which are logged in Drupal watchdog. Are you seeing these on screen? They don't indicate a problem, they just record which roles a user is being sync'd with and why.

I don't think it's problematic in itself that contact id 1 is an organization or that user id 1 is linked to contact id 2. The user id will not in general be the same as the linked contact id. The link is initially established based on email address and is then stored in the civicrm_uf_match table in the CiviCRM database.

Re:

  how did the "organization (default organization)" create the groups

The messages from civicrm_group_roles are saying that user 1 gets certain roles (Publish Events, Publish Jobs) because the contact that it's linked to, contact id 2 - which I assume is an Individual - is in certain groups (group ids 5, 7).


Report for number of events attended by each person

I think you can get what you want with the "Event Participants Report" (under the Events > Event Reports Menu). In the "Sorting" tab, just tick the box for "Section Header / Group By" against "Last Name, First Name". You use the "Filters" tab to restrict to a particular time period, set of events etc.

In general if I can't do something off the shelf in CiviCRM then I export a search result or report to Excel and manipulate it there. A lot easier than writing a new report. In this case I would have used the Subtotal function in Excel if I couldn't have done it within CiviCRM.


Civimail 'Send test email to group' allows sending mailings to groups for which 'Mailing list' has been disabled

Which version of CiviCRM are you using? Version 4.6 adds a "preview" window that shows you exactly who will recieve the test mailing to prevent mistakes:


System Status page empty and status remains 'critical' after updating from 4.7.8 to 4.7.11 on Drupal 6

For some the answer has been to resolve the Timezone error, if it is present - see: http://civicrm.stackexchange.com/questions/14841/error-datetimezone-construct-unknown-or-bad-timezone-7200

If you have stumbled upon this thread more recently - we found a blank status page after a recent upgrade from 4.6.30 to 4.7.27 where there was no timezone error, in fact, no errors at all in the logs. The solution was to change "Asset caching" from "Auto" to "Disable" (/civicrm/admin/setting/debug?reset=1).


Two civicrm contacts have become "mixed" somehow

There is a table civicrm_uf_match but also during certain situations it will match on email. So check both those things.


Unable to access Registration Screen dropdown Civievnts

Some of the forms on Civicrm won't allow me to access dropdown menus. The menus are greyed out. I thought this was a browser issue as it happens only on Firefox and Chrome, but not on MS Edge. It is caused by the Dashlane password extension. I started Firefox in safe mode, with extensions disabled. The issue goes away. I have removed Dashlane from Firefox and Chrome. Civi is working well.


What would cause contributions and contacts to go missing?

1/ unlikely to be upgrade related

2/ assuming you have access to 'log' tables you can write an sql query to identify records where the first/last names have changed from the previous log record

3/ if you mean how to find and prevent in future, use the logs to try and identify who/when and figure out what the person was trying to do and train them otherwise (assuming user error at backend) OR if problem occured by front-end process then perhaps check your Matching rules


UPDATE: It's available now for INBOUND emails (bounce processing/email processor) in 5.32 as a hidden extension. See https://docs.civicrm.org/sysadmin/en/latest/setup/oauth/#enable-the-module

It's in progress for google and would likely be the same for outlook/exchange.
See https://lab.civicrm.org/dev/mail/issues/59
It supports using a bearer token already
but we could use some coding help though for someone to write the code to get/store/use the refresh tokens in order to get the bearer token.


Why doesn't custom search enable "Actions" items for selected records after upgrade to 4.6.3?

Since the number of selected records hasn't updated when you check the box, that suggests it's possibly a Javascript error.  Try the steps in Troubleshooting JavaScript in CiviCRM and post back any new diagnostic info you find.


Membership Fixed period, early bird before membership year start

rollover means if i join on April 2nd i get ~ 13 months in the first year. so if that is what you mean by early bird then yes you should be sorted


Is it possible to use CiviCRM tokens in external services?

Simple answer: No. Those tokens are expanded into text strings by CiviMail for each recipient and your third party service is not going to know what values to substitute for those.

Complex answer: Maybe.  If your third party service has a way to allow you to provide tokens for substitution, and you can generate the correct data and format out of Civi then you might be able to make it work.

But it's much easier just to use CiviMail!

If you are comparing CiviMail with another mailing service, do make sure you are using the Mosaico extension - it's way better than the old interface.


Multiple Memberships on one contact ID, different orgs?

Yes I believe that is still the standard workaround.


Kai, welcome to civicrm stackexchange. I am afraid to say that this is not supported at the moment in Civi and also i doubt if there are any extension available for this. But you can achieve this if you have experience in programming than you can write an extension and implement hook to create token that will generate barcode.
Thanks
Pradeep


I have no idea what your React application is so I am not going to be able to answer your question easily :-)

There is an API section in the CiviCRM Developer Guide that should help you: https://docs.civicrm.org/dev/en/latest/api/


APIv3 does option-matching by default. APIv4 only does option-matching if you ask it to. The way to do that is by specifying what property of the option you are passing in. Typically :name for the machine name or :label for the localized label.
Try this api call:
$ cv api4 Contact.update '{"where":[["id","=",202]],"values":{"constituent_information.Marital_Status:label":"Married"}}'

Passing in an invalid option should fail.


How do I scrape an old website into a .CSV file for data migration?

I would recommend to use "Open Refine" for preparing your data!

Open Refine (formerly: Google Refine) is an open source tool, running on your own computer, that allows to perform data manipulation as you need for any CiviCRM migration project.

To get a quick idea how it works, you could take a look on these tutorial videos:

https://www.youtube.com/watch?v=yNccGtn3Wb0 (Introduction 1 of 3)

https://www.youtube.com/watch?v=45EnWK-fE9k (Introduction 2 of 3)

https://www.youtube.com/watch?v=5tsyz3ibYzk (Introduction 3 of 3)

The third video will show how to "add column by fetching URL's" - this should deliver what you need!

I have save hundreds of hours using OpenRefine during CiviCRM data migration projects. Of course, you will have a learning curve in using it. But this is one of the rare tools where you will save time already the first time you are using it.


Can I customize the columns that are displayed on the Manage Events page?

You can change that display by writing some code using hook_civicrm_searchColumns

The template is CRM/Event/Form/Selector.tpl but you may not need to change that.


"Could not copy Mosaico Template' in 4.7.20

This issue is resolved by upgrading to Mosaico Version 2.0 beta2.


How can I adjust the date widget on Reports

Under Administer > Customize Data and Screens > Date Preferences you can adjust various date settings. In this case it's a little unclear but rather than changing the "Birth and deceased dates" setting you need to adjust the "searchDate" setting which is "Used in search forms and for relationships."
The "Start offset" value is the number of years prior to today that should be allowed in the datepicker.


Send mail when my grant status has been changed

CiviRules is a work in progress. Maybe this condition is not implemented yet. But you can do it yourself. The following manual describes how:

https://docs.civicrm.org/civirules/en/latest/create-your-own-condition/


I can not think of a way to limit the number of events based on a membership out of the box.

I would certainly add a custom field to a membership which I would then populate automatically based on the membership type with the CiviRules extension (more information here: https://docs.civicrm.org/civirules/en/latest/).

What CMS are you using?


how to copy data from one custom field to another (text to textarea)

To find the correct table(s), you need to know the id of the custom field as well as the id of the custom group it's in.

Go to Administer menu » Customize Data and Screens » Custom Fields
Click View and Edit Custom Fields next to the relevant custom field group.
Look in the URL - it should read something like:

http://mysite.org/civicrm/admin/custom/group/field?reset=1&action=browse&gid=4

Look for the number after gid= (in the example above, "4").
In phpMyAdmin, look for the tables starting with civicrm_value.  Find the one that ends with the gid you identified above.
You should be able to find your custom field data in there.  If your fields are very similarly named, you might also need to know the custom field ID.  In that case, click Edit Field and note the id in the URL.  The custom field you're looking for ends with that number.


If unsure about settings I normally double check them against the relevant sandbox -> https://wpmaster.demo.civicrm.org/ (or dmaster for drupal).

My post upgrade checks for a missing civicrm menu are:

Clear Caches - Twice
Delete all files and directories inside templates_c (Usually located at directory that [civicrm_files] points at. Unless this is overridden in civicrm.settings.php)
Rebuild Menu's

(Note for wordpress the wordpress civicrm admin utilities you mention provides handy links to these, plus more -> https://wordpress.org/plugins/civicrm-admin-utilities/)

Drupal: http://example.com/civicrm/menu/rebuild?reset=1

WordPress: http://example.com/wp-admin/admin.php?page=CiviCRM&q=civicrm%2Fmenu%2Frebuild%3Freset%3D1

Joomla: https://example.com/administrator/?option=com_civicrm&task=civicrm/menu/rebuild?reset=1

(adapted from Joe Murray's answer on How to run triggerRebuild URL)

Check the Browser console for Javascript errors. Extensions (Shoreditch for example) if not kept up-to-date can cause problems if they are overriding files, or expecting specific code that has changed in core. This can lead to the menu not showing. Probably not relevant to you - but for Drupal for example if the setting to combine and compress js files into one is selected then often a completely unrelated error can cause havoc else where. Turn off any aggregation.

Incorrect resource url:
This warning is triggered if the following file can't be resolved.
"CiviCRM Resource URL"/packages/jquery/css/images/arrow.png
(Should be located at https://example.com/wp-content/plugins/civicrm/civcirm//packages/jquery/css/images/arrow.png
If you see the "arrows" in you civicrm menu then this is a false positive. If you can't see your menu that doesn't really help sorry.
From memory there have been some false positives for this warning in a recent install.

Additionally you possibly want to think about upgrading to the latest version of civicrm as there have been a few security releases since your version was released. As well as being insecure, if you are not running the latest version you run the risk that the problem you are having was a core bug that has since been fixed.


How can I disable the JQuery date widget and all just text input?

Adding the following CSS disables the date picker widget and allows users to simply type the date into the field:-

#ui-datepicker-div, .ui-datepicker .ui-widget  { display: none !important; }


Why are contacts not receiving emails when do not email not checked?

You may have zombies. I use this term not because it's almost Halloween, but because imports can leave you with undead contacts, and this may be a variation of that.

Boolean (yes/no) fields in CiviCRM have the value 1 or 0, but it's possible in the database for the field to have a null value.  When you create a contact manually, the Is Deceased, Do Not Mail, etc. fields are set to 0, but if you run an import with one of those fields and only mark the dead or no-mail people with 1s, the rest will have the value as null.

When viewing a contact, it will only display deceased or do not mail if those values are 1. When sending email, it will only send if those values are 0.  Hence, you have this mysterious issue.

I suspect you may have imported elected officials, included Do Not Email, but neglected to fill the zeroes where it's okay to email.  Xavier's solution should work: by editing and re-editing the field, you can reset the value.  It gets tedious for a bunch of contacts, though.

In the database you can execute the following query to fix this:

UPDATE civicrm_contact SET do_not_email = 0 WHERE do_not_email IS NULL;

Repeat for is_deceased and any others like that you want.  You can also find these contacts in the Search Builder and use Batch Update Via Profile on the results, using a profile with Do Not Email in it.


How to copy an existing letter template?

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.


Is there a way to preserve paragraphs when importing Event descriptions using API csv Import?

I was able to fix this using this module:

https://www.drupal.org/project/webform_html_textarea

Used an html textarea field on my form instead of plain text. The field gets submitted with html markup which preserves the paragraphs.


Do the localisation files change between releases, as a rule?

The l10n translation files (civicrm.mo files in the l10n directory, distributed in the civicrm-l10n-4.6.x.tar.gz files) should change between versions, however:

The latest translation files always support the 3 last CiviCRM versions. So currently, civicrm-l10n-4.6.5.tar.gz can be used for CiviCRM 4.4.x, 4.5.x and 4.6.x. This was done a while back to avoid having version-specific translation spaces on Transifex.com, while still supporting older versions.
Between minor versions of CiviCRM (4.6.4 to 4.6.5), there can be changes in the code that require us to send new strings to Transifex. For example, if someone fixed a typo in a string, added new strings, etc. We have not been doing that systematically for every release. While the process of pushing strings has become easier, it's still kind of messy, time consuming, because it requires validations to make sure we don't accidentally delete strings, or I find typos in new strings that need to be patched before we can update the strings, etc.


Are you using price sets for the ones that are public and chargeable? If so, we add an option and set the visibility to Admin. Then we can add them in the back-end, but they don't show up publicly.


It's hard to answer this without knowing your CiviCRM version - but in 4.6+, there should be a "Tracking" tab when you go to Mailings » New Mailing.  See screenshot below.  You can uncheck Track Click-Throughs.  Note that this is a per-mailing setting!


What's the best way to make use of the GDPR extension's capabilities via webforms in Drupal?

There's a drupal module available here https://github.com/tapashdatta/webform_gdpr/tree/5.x ,


How do the Rebuild Smart Group Cache scheduled job and the Smart group cache timeout setting interact?

The rebuild job will build any smart groups that are not yet built. It is a good idea to run this job often if you hate your server or being able to see counts on the manage groups page is more important to you than your server not hanging. Otherwise the rebuild groups scheduled job has no benefit.

If you do not run that job then smart groups will be built on demand. This is particularly suitable if you have a lot of smart groups. If group has expired it will be flushed and rebuilt.

Note I DO recommend running the job that flushes expired groups by scheduled job - just not the one that rebuild them all, even the ones you don't really need

I've put up a PR on this https://github.com/civicrm/civicrm-user-guide/pull/397


How to ensure end-of-period donations are recorded in the correct fiscal year?

CiviCRM 4.7 have accrual integration where you can specify Revenue recognition for a contribution. You can enable the 'Enable Deferred Revenue' setting by navigating to CiviCRM >> Administer >> CiviContribute >> CiviContribute Component settings.

Once you have enabled the setting you will need to create 'Deferred Revenue' relationship between Financial type and Financial Account.

On new contribution form once you have selected financial type you will revenue recognition field

Documentation : https://wiki.civicrm.org/confluence/display/CRM/CiviAccounts+Data+Flow#CiviAccountsDataFlow-DeferredRevenueImprovements


I've got 100% discount, PayPal and the register button does not show for civiEvent, how do I get it to show?

This is what we did to get the payment buttons to display when the payment value is $0.
The logic is borrowed from CiviDiscount
CiviDiscount apply button refreshes the page, there are 2 processes

Person fills out the form and applies the code. The page is refreshed and we check the state to determine whether the register button is shown
The code is applied before the form is filled out completely. We wait for a form valid state.

The conditions to show the buttons are

If payment form is hidden
The value is $0
A discount code is specified
The form is valid

In conclusion the following is the code. The apply discount button does a page refresh so we can check the value and whether a discount has been applied on page load.There is a watch on this as the inline script that hides the buttons runs after the other scripts. There is also an observer to check whether the form is valid.
CRM.$(function ($) {
'use strict';

function interlatedIsTotalZero() {
 var zero = false;
 $('.price-set-option-content input').each(function () {
  var currentTotal = $(this).data('amount').replace(/[^\/\d]/g, '');
  if ($(this).is(':checked') && Number(currentTotal) === 0) {
    zero = true;
  }
 });
 return zero;
}

function interlatedCheckFormValid() {
  var form = $('#billing-payment-block').closest('form');
  return form.valid();
}

// The whole page is reloaded on discount code
function interlatedShowSubmitButtons() {
  // Is the payment form shown?
  var paymentInformation = document.getElementById('payment_information');
  var paymentInformationShown = paymentInformation.style.display;
  var submitButtons = $('.crm-submit-buttons', $('#billing-payment-block').closest('form'));
  if (interlatedCheckFormValid() && paymentInformationShown === 'none' && $('#discountcode').length > 0 && interlatedIsTotalZero()) {
    submitButtons.show();
    return true;
 }

// Form is not valid or similar.
submitButtons.hide();
  return false;
}

// Discount code reloads the whole page. Not a mutation.
interlatedShowSubmitButtons();

// Timing of the jquery to hide the buttons is unpredictable
const buttonsDetectShow = function (mutationsList, observer) {
  for (let mutation of mutationsList) {
    if (mutation.type !== 'attributes') {
      return;
    }
    var buttonsBlockShown = mutation.target.style.display;
    if (buttonsBlockShown === 'none') {
      interlatedShowSubmitButtons();
    }
  }
}

function addObserverIfButtonsAvailable() {
  var buttonsEl = $('.crm-submit-buttons', $('#billing-payment-block').closest('form'))[0];
  if (!buttonsEl) {
    window.setTimeout(addObserverIfButtonsAvailable, 500);
    return;
  }
  interlatedShowSubmitButtons();
  observerButtons.observe(buttonsEl, {attributes: true});
}

const observerButtons = new MutationObserver(buttonsDetectShow);
addObserverIfButtonsAvailable();
var recentMutation = new Date().getTime();

// What happens if we show the button but then the form becomes invalid
const formErrorsDetect = function (mutationsList, observer) {
  var now = new Date().getTime();
  if ((now - recentMutation) < 200) {
    return
  }
  recentMutation = now;
  var mutation = mutationsList[0];
  if (mutation.type !== 'childList') {
    return;
  }
  if (mutation.target.classList.contains("error")) {
    // Show or hide the buttons depending on whether the form is valid
    interlatedShowSubmitButtons();
  }
}

function addObserverFormErrors() {
$('.crm-profile .crm-section .content  ', $('#billing-payment-block').closest('form')).each(function () {
  var formEl = $(this)[0];
  observerFormErrors.observe(formEl, {childList: true, subtree: true});
});
}

const observerFormErrors = new MutationObserver(formErrorsDetect);
addObserverFormErrors();

});


PayPal standard recurring payments fail with "Access Denied"

PayPal appears to have resolved whatever firewall blockage was preventing access to their subscription services.  We are again able to set up recurring contributions without having changed anything within our site configuration.


How can I assign tag when certain profiles are submitted

You could set up a drupal webform to accomplish this. A webform can do everything a standalone profile form can do, plus a lot more, including tagging.


No Civi Confirmation Email After Using Paypal

Not sure if this applies, but there is a known issue regarding receipts and payment recording for recurring payments.
See CRM-18805.

PR-8615 corrects this and is scheduled to be merged into the 4.7.10 release, or you can apply it yourself to 4.7.6.


cv error: "Call to undefined function Civi\Cv\Command\posix_getuid()"

cv has a PHP dependency that CiviCRM doesn't - the posix plugin.  It's installed by default on many systems with PHP (e.g. Debian/Ubuntu) but with the Red Hat/CentOS "remi" repository, it isn't.  You can install the php-process package to resolve this.


If you mean to order it on Contact Report section on the Report Page - Not yet from UI(need to write custom), they are actually ordered based on its id.

You can anyway move each report to the navigation menu(Access tab of each Report) and then order it according to your needs from Administer -> Customize Data and Screens -> Navigation Menu.


Why settings.default.json file is neglected during install?

The solution was:

Add a define('CIVICRM_L10N_BASEDIR', '/var/aegir/platforms/YOUR-PATH'); statement to platform.settings.php file of Aegir (see: Altering Aegir's Behaviours), to set an environmental variable for CiviCRM, to locate the exact place of its l10n files. More info on CIVICRM_L10N_BASEDIR here and here.
Correct the line breaks of the example settings.default.json, otherwise it's not being read as JSON file. The address_format and mailing_format should be one line, and \n have to be added when line break is required. See MR.


CiviContributions > New Contribution Page with an ANONYMOUS USER and no Login Display in Drupal (CiviCRM 5.25.0 / Drupal 7.70)

I think 1 will take care of #2
Profile listings and forms are NOT for your public users. Only trusted users. You want to change that one
Here are the permission you need for Anonymous and Authenticed Users
CiviCRM: profile create
CiviCRM: profile edit
CiviCRM: profile view
CiviContribute: make online contributions


Recurring contributions with Webform-CiviCRM?

Yes, thanks to generous contributions from the community, this feature has now been added.

See this issue for details.


To send a auto-reply for an incoming SMS you can use Auto-reply twilio extension. You can modify the extension to support for your provider as this extension supports for only Twilio.

HTH
Pradeep


How can I merge two memberships in the same contact (without losing contribution info, etc)?

Currently there's no support for what you're describing built in to CiviCRM.  You could implement this with API calls in an extension.  If you do, please consider submitting it to the extensions directory!


Contact Layout Editor menu item not available

I had the same problem but fixed it - the problem was that I didn't have the pre requisites installed before installing the extension. One of them I installed afterwards. So, I disabled then uninstalled the contact layout extension, then re-installed it.  Then the menu item appeared as 'Contact Summary Layouts' as the last item on the 'Customise Data and Screens' menu.


CiviCRM select box items can't be selected in wordpress page create

I had a similar problem with this - See CRM 18496.  It turned out that there may have been interference with CiviCRM's jQuery and CSS from a Wordpress plugin.  You could try deactivating any plugins that you have installed, one by one, to see if there is conflict.  My problem went away without me discovering which of the many plugins I have was the culprit but one of them that I deactivated was Jetpack.

Unfortunately, you can't test this out on the demo site because you can't there create a new page in which to enter the appropriate civicrm shortcode.


I get a bunch of identical messages "Notice: Trying to access array offset on value of type int in element_children() ..."

There are a few items here:

It's safe to upgrade CiviCRM from 5.26 to 5.30 in a single step.   As always, back up your database first, and if you need to restore it, it's safest to drop the existing contents before reimporting the backup.

Notices should not be configured to appear on a production site, they're mainly of concern to developers.  Since you use Drupal you can turn notices off from the UI.  Other should change their php.ini.

Regardless, notices shouldn't prevent an upgrade, and moreover, the notices appear to be coming from Drupal, not CiviCRM.
Finally - I noticed that MySQL 5.7.31 doesn't like to export data unless you a) grant all privileges, or b) pass --no-tablespaces to mysqldump.  Either approach is fine.


Does CiviDiscount work with Pay Later Memberships when using Price Sets

In Pete's case the problem turned out to be price sets not pay later. There is a fix now merged into master - but be aware that the code is 'consumed' when the pending transaction is created - not when it is confirmed


easy way to link an (offline) payment to a participant

Not sure I understand the question 100%, but Civi can be configured with ACH payment processing (e.g. using iATS: http://home.iatspayments.com/) - this will allow for users to register themselves online and will link the event payment with the participant record. For cash payments, you can use "Pending (Pay Later)" either from the front end (by enabling this as an option in the event configuration on the amounts tab - e.g. pay at the door) or back end (creating a back office registration and recording a contribution with a status of pending pay later).

Hope this helps!
Tamar


How can you remove or disable some US states from showing up in profile?

If you want to show only few US states across whole CiviCRM form than you can set civicrm_state_province.is_active = 0 for the ones to not show for country_id = 1228


how to create a report based on date subscription to a group?

Under custom searches there is a search you can use for date range of subscription to a group. You could then create a smart group from the results if needed. Its called "Search Group Subscription by Date Range"


Create an activity when a specific profile is submitted?

Yes, you can CiviRules extension to create activity when a profile is submitted. Or you can write a extension to use post hook for 'Profile' Object and then use Activity create api to create Activity(Note: you might need to pass check_permission to FALSE in api params to bypass permission)

HTH

Pradeep


how to trigger a Drupal rule on CiviMember Roles Sync?

In case anyone needs this we ended up doing this with a simple drupal rule -

Event = Content is viewed

Conditions = AND user has role authenticated user, NOT user has role current member

Action = Show a message "your membership has expired", repeat message = false


In the post you linked you said you would use a code like this:

{capture assign=gender}{contact.gender}{/capture}
{if $gender eq 'Homme'} Cher {contact.first_name},
{elseif $gender eq 'Femme'} Chère {contact.first_name},
{/if}

Instead of putting it directly in the template you could also add this smarty logic to the email greeting (/civicrm/admin/options/email_greeting?reset=1). CiviCRM would then generate the correct greeting for each contact and it also works with Mosaico etc.. For many of our German customers we use this logic to cover some more exceptions:

{if "{contact.communication_style}"=="familiär"}{if "{contact.individual_prefix}"=="Frau"}Liebe{ }{contact.first_name}{elseif "{contact.individual_prefix}"=="Herr"}Lieber{ }{contact.first_name}{else}Liebe(r) Unterstützer(in){/if}{else}{if "{contact.individual_prefix}"=="Frau"}Sehr geehrte Frau {contact.formal_title}{ }{contact.last_name}{elseif "{contact.individual_prefix}"=="Herr"}Sehr geehrter Herr{ }{contact.formal_title}{ }{contact.last_name}{else}Sehr geehrte Damen und Herren{/if}{/if}

There are two issues with this approach:
If you change the greeting logic it will not automatically update all contacts. You could use the scheduled job that does that: (/civicrm/admin/job?action=update&id=7&reset=1)
Also the maximum length for the smarty logic is limited so can't go too crazy. If you need more complex logic and/or more different greetings, please have a look a the extension "More Greetings" which we developed a while ago.


Have a look in your bounce and/or email-to-activity inboxes. We had this bug where UTF-8 in the display name caused the whole cron run to repeatedly crash, and cron would not run until I moved the offending message.


afaik there is nothing in civicrm that delivers quite what you ask.

The closest 'in the box' is probably the 'contact dashboard' which does let Primary Contact edit the Organisation record, and if you "allow second degree relationship permissions" here the if Primary Contact has permission over the ORganisation and the Organisation has permissioned relationship over the other employees, then Primary contact can edit those people.

Of course the Primary Contact needs a joomla record to login to do this


How to limit number of participant less than 10 for a single transaction?

This function is added to CiviCRM core 4.7. But I have managed to get it done by this extension
https://github.com/veda-consulting/uk.co.vedaconsulting.maxadditionalparticipants


Email-to-activity processing - Error message: Process Activities failed

So after plenty of back and forth, the issue seems to be the fact I am specifying a Source folder in my IMAP account.

When I created a brand new account for testing, found same issue with a folder named CRM. Tried crm in case there was case sensitivity, still the same.

Only when I removed source and let it read from the Inbox directory did it work consistently. It was nothing to do with a specific email, simply the folder being used.

Would love to know if this can be fixed (or even where in the code it is so I can try myself) as meanwhile I will need to maintain an extra email account.


Access Denied on one computer, but not another using same user

Are you sure the two computers access the same address? It's a common mistake to have both www.yourdomain.org and yourdomain.org (without the www) that display the same pages.

Unfortunately, connecting to one doesn't automatically connect to the other, even if they look exactly the same. It's the same with the protocol, so login on http:://yourdomain.org doesn't mean you are authenticated on https://yourdomain.org.

Check what is the main domain name and protocol, the one put into civicrm.settings.php, it must me the "official" one and it's where you have to do and login to work properly. That's probably what was done on the computer that works but you are logged to the "wrong" domain on the second one.

X+


When editing my own profile visible under my contact dashboard, it does not enter CiviCRM "civicrm_post"API hook?

Add following line before add_filter function:

require_once(ABSPATH . 'wp-includes/pluggable.php');


"No user/contact ID was specified, so the Profile cannot be used in edit mode"

Change the shortcode to create mode instead of edit, Civi expects a contact id if it's in edit mode, ie a logged in user,  it would be something like [civicrm component="profile" gid="xx" mode="create" hijack="0"] where xx would be the profile id.


How do I get correct currency data to stripe.com from my CiviCRM transactions

It transpired that the error was due to the fact that the affected transactions were recurring payments, and the stripe extension did not pass currency data to stripe.com. So, in my use case, a user has submitted a recurring payment in GBP, and a subsequent user has attempted to submit the same payment in terms of amount and frequency, but in USD. As the currency was not being included in the payment plan data being submitted, stripe.com assumes that the plan is in GBP, because that is how the plan was originally defined, and so takes the payment in GBP.

Having liaised with the extension developer, this issue has since been addressed and I'm aiming to test the changes as soon as possible to see if it has resolved the issue.


Recent 'git' seems to be missing CRM/Event/DAO folder

A git clone of the CiviCRM source tree is not a complete CiviCRM codebase.

Some CiviCRM code is autogenerated, via a script named GenCode.php

See Github for CiviCRM for full instructions.


For events that require participant approval, where do I change the pop-up message?

Sounds like a job for grep. Use grep -r "Once approved, you will receive" templates in your civicrm folder, and it will tell you it's templates/CRM/Event/Form/Registration/Confirm.tpl. Similarly grep'ing for the other one it's in ThankYou.tpl in the same folder.


Volunteer Report Error: Expression #2 of SELECT list is not in GROUP BY clause

As you must be aware CiviVolunteer is not fully tested for 5.5.x version of CiviCRM. The last extension version was released for 5.0. This error usually occur when sql_mode for mysql is configured for only_full_group_by. I have just submitted a pull request for this fix.

You can either apply the patch from here or turn off only_full_group_by sql mode

HTH

Pradeep


Where do I find Webform CiviCRM module for D8?

Two options:

1) look for and download the 8.x-5.x-dev version [this is updated every couple of months/I will try make that weeks]:

https://www.drupal.org/project/webform_civicrm/releases/8.x-5.x-dev

2) or check out the 8.x-5.x branch from the GitHub repo to always be on the latest:

git clone https://github.com/colemanw/webform_civicrm.git --branch 8.x-5.x

and then:

git pull


There is an Activity Type called Membership Renewal :-)

Not an obvious thing to search for but could do what you need


Set cookies for petitions (and probably other online forms) as session cookies that will expire after signing

Aah,

Indeed, the cookie should apply only to the petition (ie contain the petition id).

It's a bug and shouldn't be difficult to fix. Do you or someone in your team have the skills to fix it? PR welcome ;)


Go to Administer > Customize Data and Screens > Search Preferences, and beside Autocomplete Contact Search and/or Contact Reference Options disable Street Address and possibly other fields.


outgoing sms activity link to provider when using multiple providers?

From the db schema https://doc.symbiotic.coop/dev/civicrm/latest/schema/tables/civicrm_sms_provider.html

It looks like you might be after the sms_provider_id from the civicrm_mailing table, or sms_provider_id from the civicrm_action_schedule table.


How can I find a contributor to help my organization with an urgent/difficult upgrade?

Javiera welcome to CiviCRM stackexchange, You can find experts on CiviCRM website or drop a message on CiviCRM mattermost channel.


Why does setting my Directories or Resources not save?

The changes are not being saved because the settings are being overridden by civicrm.settings.php

To improve this we have made a PR to help clarify to the user what is happening by providing a pop up message saying "Fields Inputs loaded as 'readonly' as they have been set (overridden) in civicrm_settings.php"


I'm assuming this is a new server as well. The first sounds like a PHP issue - some kind of mismatch for the GD extension in php.ini or php-gd rpm package is not even installed. When I say extension I mean PHP extension, nothing to do with CiviCRM other than GD might be used by CiviCRM, but it's usually installed by default. In joomla admin you can go into site system information and see the output from phpinfo to see if it's installed.

The second is probably a mysql trigger/view issue, where you have a different mysql user for your joomla database than the one that created the original civicrm trigger/view. You can either create and use the same mysql user (civicrm@localhost) for your database, or recreate the trigger/views manually. A third option is start again and edit the sql file and edit the part of the trigger/view creation that sets the definer before you import it to the mysql user that you are actually using.


Can Drupal be used to send an email if an existing contact's name is changed

The extension CiviRules is maybe an option. You can find it in the extension directory https://civicrm.org/extensions/civirules and the latest documentation is at https://docs.civicrm.org/civirules/en/latest/ .


How to use Find Contribution to find folk who Donated via a line item on a Membership Price set

Seems like the old chestnut about storing financial type on contribution, where it originated, vs line item, where it later appeared, leading to the sort of issue you've described. There was talk a while back of retiring financial type on contribution, which would seem to require changing contribution search to check financial type on line items instead, in the way you describe.

You've specified Find Contributions but as a workaround for now, does the Bookkeeping Transactions report provide what's needed?


I've recently had to address this issue.

1) Make sure that the PayPal's "callback" setting is enabled and set to point to your website.

2) Speak with your sysadmin and make sure that calls from PayPal are not being blocked.

3) Look in your CiviCRM logs around the time of the payment to see if there are any errors.

4) Ask your friendly neighbourhood software developer (or me or a CiviCRM partner agency if you don't have one) to add extra logging and debug output to determine if the calls are being received and traced through the system.

5) Check the spam folders - there's a lot of things that you can do if emails end up being sent to spam.

Good luck!


How to modify/test Upgrade/Incremental/sql..sql script?

If you're targeting the 4.6 branch, then put the upgrade script in the latest 4.6.X.mysql.tpl. If you're targeting the master branch, then use 4.7.alpha1.mysql.tpl.

As a rule of thumb, we try to minimize schema changes in stable release branches (e.g. 4.6.x) and instead put them in master. But that's not absolute.

The difference between a bugfix and a new feature is a bit academic. When a user installs vX.Y.Z., the upgrader needs to apply all schema changes needed to match vX.Y.Z.


This is due to a Javascript error. You should make sure again that the CiviCRM files are all in the correct place.

Then try to run the upgrade in Firefox with Firebug enabled and look for JS errors in Firebug and that will provide you the clue as to what the problem is.


Does CiviVolunteer expose fields to webforms?

Sorry - the answer is 'no' there is indeed no CiviVolunteer - Webform Civicrm integration yet and much of our current efforts on the Webform CiviCRM project are directed towards a prototype version for D8;


Creating reports with custom fields relating accounts and contacts - how does it work?

Welcome!

While a lot more information should be collected about your intended processes to set things up in the best way... my short answer would be "Yes, you will be able to accomplish this with civiCRM - but it's possible your solution may require some custom code for the report to look the way you want it to unless you're planning to use Drupal."

Without more information this is what I would start thinking about - it's possible that with more information, however, this is not the optimal solution :) ... only my fourth item mentions any custom code per-say:

I would use relationships from Organization <-> Individual to define the Firm <-> Founder relationships. Both firms and founders can hold multiple relationships of the same type.
Create a custom date field for Organization contact types "Date Founded" (or like)
School needs more information and might be trickier but doable, sounds like it should be either a custom field for individuals (founders) or a custom activity type (visit school), based on your two sentences about it. Can one founder ever have multiple schools listed? Will you collect more information about schools (contact reference field) or just the name (plain text, maybe even a school-named group or tag depending on functions you need)? etc.
I think your required 'report' as civicrm uses the term would require some custom code (many answers on this SE about how to go about that). You could probably generate this list using certain search techniques 'out of the box' but it would be slightly complex and depend on the level of comfort of your users. Using Drupal Views to generate this list may be an even easier way to go, if Drupal is a viable candidate for you.

Hope this is helpful!


You may be thinking of the old multi-select widget, which required Ctrl+click. The new one is much improved (I think it was refreshed in 4.5) using the popular Select2 widget. It does find-as-you-type, and as it narrows down the options you can either click or press enter to add that option, then continue with the next one. You can also click in the field for a drop-down of all options (except the ones you've already chosen). Give it a shot on the Civi demo site; I'm sure you will like it.


It might depend of the template layout you use or token or... plenty of reasons that the pdf generation can become slow.

In general, if you want good performances for pdf generations, install wkhtmltopdf and configure civicrm to use it

The way pdf generation works is that civicrm generates an html page first, then convert it to pdf. wkhtmltopdf is a software that does it way faster than doing it in php native


The problem is that the database user doesn't have some higher level privileges required for CiviCRM. Ask your ISP support or database administrator to run the following commands for you as the root MySQL user:

-- Assuming a database called "civicrm" and a user called "civicrm_user"
-- and a MySQL version of 5.1.6+

GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, INDEX, ALTER,
    CREATE TEMPORARY TABLES,
    LOCK TABLES, TRIGGER, CREATE ROUTINE, ALTER ROUTINE ON civicrm.*
    TO 'civicrm_user'@'localhost' IDENTIFIED BY 'realpasswordhere';

For more details see:
http://wiki.civicrm.org/confluence/display/CRMDOC/CiviCRM+MySQL+Permission+Requirements


When you create a mailing with CiviMail, there's an option:

  Track Click Throughs

  Track the number of times recipients click each link in this mailing.

  NOTE: When this feature is enabled, all links in the message body will
  be automatically re-written to route through your CiviCRM server prior
  to redirecting to the target page.

Perhaps you have enabled this option? This wouldn't normally prevent the links from working, however.

Are the links in the email something like, http://mysite.com/sites/all/modules/civicrm/extern/url.php?u=123&qid=12345 ? If so, that is normal when tracking click throughs is enabled.

What happens when a user clicks on one of the links?

Which CiviCRM version and CMS (Drupal, Wordpress or Joomla) are you using?


To the best of my knowledge, the CiviDiscount module only allows one discount to be applied.  So you may want to consider utilizing one manually entered discount code that adds up to the total discount you're hoping to give (presumably only to certain members?).

Hope this helps,
Lesley


in-house civicrm install - but remote email install?

you could have a look at an extension called CiviProxy we developed a while ago. The major focus is on security as it enbables you to run CiviCRM without having to make your environment publically available.

However, most interesting for you is probably the fact that it enables pass-through of tracking data on opening and click-through rates as well as Sign-on and off of your newsletter (Webpage templates).

Please find more information on the github page and in this recorded video presentation.


Civicrm 4..6.10-drupal is missing directory CRM/common

Ive resolved my issue by drilling into the fine Civicrm template documentation. The log file leaves out the initial part of the directory so whats being referenced is actually sites/all/modules/civicrm/templates/CRM/common which does exist in 4.6.10. Whats missing is the file action.tpl, it was present in Ver 4.1.

Root cause though was having an old custom tpl file in sites/all/civicrm_templates/CRM/common which called action.tpl.

Fixed by deleting the old custom tpl files, then working through the version control checking the issue documentation to see if custom tpl files are still needed.


Looks like this could be the same as or related to issue CRM-16277, which has been fixed for 4.6.3.


How can I see the number of memberships at a given date in the past?

While there might be more elegant solutions possible with Reports (?), you can get the count using an advanced search:

Select Search | Advanced Search from the menu
In the Basic Criteria section select Display Results As: Memberships
In the Memberships section of the search form set Start Date to Choose Date Range and then set To to the date you are interested in (for your example 31/12/2014). Leave the From field empty.
Also in the Memberships section set End Date to Choose Date Range and then set its From to the day after the date you are interested in (for your example 01/01/2015). Leave its To field empty.
In the Memberships section you can also check the type(s) of membership you want to be retrieved.

After you run that search, CiviCRM is displaying the number of results - which is the number of active memberships at that point in time.

Next to the number of results it is also listing the search parameters used. For double checking, this is what it shows when I run it:

993 Results - Memberships
Start Date - less than or equal to "31. December 2014 11:59"
...AND...
End Date - greater than or equal to "1. January 2015 12:00"

Explanation
This search is filtering memberships that started any time before (Start Date To) 31/12/2014 and did not end before 01/01/2015 (End Date From).
If you are using the memberships in a way that is correctly updating the Start and End date of the memberships, this should return the correct results.


SOLVED: Can't run Upgrade script 4.7.21 (Drupal6) due to unknown column = civicrm_custom_group.is_public

We have had to create this field in the db in several sites we have upgraded. Not sure why the upgrade script is failing to do this correctly

Fuzion have provided a patch for this to avoid the problem for future folks doing upgrades


You can do this with CiviRules. The trigger is then Case is changed. At the condition you can select Field Value Comparison to check for the right case status.

At the action you select: Send E-mail to contacts on a case'

It might be that you need two condition with the field value comparison, one of the old case status and one for the new case status.

You need for this the CiviRules extension and the Email api extension.


This is not a particularly good answer to your question, but since Erik asked :)

I've worked on a chatbot app that can be used to integrate between Facebook and CiviCRM. Chatbot interacts via the messenger platform and pulls in their first name, last name and picture (which is what the messenger app allows). You can then use it it to further populate fields via a chat interface, e.g. you could ask the question "What city do you live in?" and put the answer in the city address field. But that doesn't sound like what you want to do though.

The Drupal module you reference looks like a good start. If you were able to get the info you needed into Drupal that would be a good proof of concept and would probably be a worthwhile first step if you haven't done it already since there is point going down this road if Facebook is not willing to let you have the information that you require.

I suspect getting the info from their into CiviCRM will require some custom coding, unless there is an integration between Drupal user profiles and CiviCRM that I am not aware of.

Hopefully that is of some use - sorry I can't be of more help at the moment.


Check out what you can achieve by using the Batch Update by Profile process.

Create a Profile that has the Fee Amount field for Participants.

Go to Find Participants. Search for those that attended your event. Under Actions click on Batch Update by Profile.

You should then be able to enter the required amount for the top row, and use the 'photocopy' icon above the Fee Amount column to apply that to all Participants.

If you want to record the 'total cost' of the event you could also look at adding a Custom Field on to Events and use that to record the total cost of the event.


Can CiviCRM's internal contact ID be exposed in reports?

That's because the Activity report specifically hides the field in question.

Use one of the many methods of customization (PHP override directory, extension, etc.) to edit CRM/Report/Form/Activity.php.

There's a separate column for the Source, Assignee, and Target contact IDs - find the stanza that looks like:

      'contact_target_id' =>
      array(
        'name' => 'id',
        'alias' => 'civicrm_contact_target',
        'dbAlias' => "civicrm_contact_target.id",
        'no_display' => TRUE,
        'default' => TRUE,
        'required' => TRUE,
      ),

Change it to be this:

        'contact_target_id' => array(
          'name' => 'id',
          'alias' => 'civicrm_contact_target',
          'dbAlias' => "civicrm_contact_target.id",
          'title' => "Target ID",
          'default' => TRUE,
        ),

Do that for the other two contacts and you're good.

Note that this may cause you to get a bunch of notices that alterDisplay isn't working correctly - this is changing the names of some variables that are used to turn contact names into links.  You can ignore those notices if that functionality's not important - if it is, you may want to continue tweaking this a bit!


Accessing selectedMail in a new controller

selectedMail is a function on the route´s resolve property, I believe you cannot inject it into another controller because the controller is instantiated in the route, but you can access the resolve property anywhere injecting the $route service like this:

...
angular.module('crmMailing').controller('crmMailingRecurScheduleCtrl', function($scope, $filter, $route) {
  var mailing_id = $route.current.locals.selectedMail.id;
...

Alternatively the way your directives are defined, the scope value is default to true, therefore you should be able to access the parent scope like var mailing_id = $scope.mailing.id;, mailing is the object holding the mailing settings.


Why can't certain Civimail Mailings be reused?

The Re-Use link does not appear if either:

The user does not have at least one of the permissions (Create mailing OR access civimail)

or:

If the mailing was created from Find Search >> Email - schedule/send via CiviMail (which creates hidden smart group) and have Unsubscribe Group field set.

Thanks

Pradeep


Search ajax script "not a valid JavaScript MIME type"

The problem was WP Bakery and how it hijacks the page; getting rid of WP Bakery for a simpler page editor was the solution.


Even if you don't use a price set on a contribution page, the options that get presented end up being treated as a price set in the database.  Membership options in a price set don't need to be the minimum value of the membership itself, so my suspicion is that your hook isn't affecting the price options on the page, since they're set when you create the contribution page itself.

You'll need to use hook_civicrm_buildamount to change the actual price options' values on the form.