Hi,
We conducted a research to see how often someone tweeted about a page powered by CiviCRM in the past month and a half. We analysed 858 tweets by 612 users about 163 sites, some big names like oxfam or the red cross, some for tiny organisations.
Hi,
We conducted a research to see how often someone tweeted about a page powered by CiviCRM in the past month and a half. We analysed 858 tweets by 612 users about 163 sites, some big names like oxfam or the red cross, some for tiny organisations.
Hi,
We are having a discussion on the API group about the current limitations of the framework used in civicrm for the ORM and DB layer (pear DB_DataObject and DB... ).
If you are not familiar with the BAO/DAO structure, you might want to read this blog post (written in 2006) first.
Beside a general dislike of the existing framework that show its age, we have identified several issues:
Hi,
Some improvements on permissions and the API are landing on 3.4.2 and 4.0.2.
On the previous versions, the permissions where not enforced (on php and smarty) and checked on the same permission "access civicrm" for the rest and ajax no matter the operation and entity.
Have you ever clicked a few zillion time on the admin interface to create a lot of groups, tags, values for a custom field... ?
Have you ever screamed having to do the same tedious tasks you did on the staging one more time on the production site?
Have you cursed the import wizard after having clicked again and again on the next button ?
Hi all,
Was reading lobo's latest blog and I'm almost sure that with these improvments we can have an event smoother event registration. The workflow would be:
1) You create the event
So far so good, same as before
This new API is the recommended method to Create, Get, Delete or Update any CiviCRM data from your code or an external system. It is much more coherent and easier to use than the api v2.
We’re preparing a CiviCRM developer camp in Brussels on February 3rd and 4th – right before FOSDEM 2011 and Drupal Days. Developer Camps are a place where CiviCRM developers, administrators and users can get together around CiviCRM.
The PES -who sponsored the development of the badge feature- used civievent for the first time at a big scale: their council in warsow. You might see some bits of it in the news, like the greek prime minister that just finished his speech, but only on this blog will you know more about part of the logistic of such a big event, and how civicrm helped it. We put in place 3 different registrations, one for the journalist, one for the representatives and guests of the national parties and the last one for the activists.
Hi all,
For the training in london, we wanted a simple example that illustrates how to customise and improve civicrm for specific usages using the ajax interface. I'm sharing the result with you, hoping you will find it useful.
One common workflow we have is to change the status of an activity from "scheduled" to "complete". The default way is to click on edit, go to the full form, change the status, save, and go back to the list of activities
We are going to improve it with a "one click click complete": on the list of activities, we transform the status column into an action (when "scheduled"), and when I click on it, it changes it to Completed, without changing screen. For that, we are using the ajax interface and the activity api. Copy the template templates/CRM/Activity/Selector/Activity.tpl into your override directory, and add a few lines of jQuery at the top:
{literal} <script> jQuery(function ($){ $("td.crm-activity-status_1") .attr("title","Change the status to completed") .css("cursor","pointer") .click (function () { aid=$(this).parent("tr").attr('id'); var activity_id = aid.replace("crm-activity_", ""); cj().crmAPI ('activity','update',{id:activity_id,status_id:2}, {callBack: function(result,settings){ if (result.is_error == 1) { $(settings.msgbox) .addClass('msgnok') .html(result.error_message); return false; } else { $('#crm-activity_'+activity_id) .removeClass('status-overdue') .find('td.crm-activity-status_1') .removeClass('crm-activity-status_1') .addClass('crm-activity-status_2') .html("Completed"); } } }); }); }); </script> {/literal} Oh, it's magic! What does it do in detail ? Well, you should attend a developer training, you will discover it, and way more ;) X+