-
-
Save xurizaemon/4a4e80273f89f0c570d2 to your computer and use it in GitHub Desktop.
Export of CiviCRM view to render contact and custom images via ImageCache External
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// For http://forum.civicrm.org/index.php/topic,34929.0.html | |
// | |
// Ingredients: | |
// * CiviCRM + some contact images or custom fields | |
// * Install Views PHP. Actually don't, use templating to achieve the same effect without Views PHP. This is just for demo. | |
// * Install Imagecache External. | |
// * Have the default "thumbnail" image style. | |
// * Whitelist your own site at admin/config/media/imagecache_external | |
// * Configure the custom fields in the view - this view contains names from a sample DB which your site won't match. This export contains magic strings which you need to adjust. | |
// - image_358 | |
// - civicrm_value_contact_details_17 | |
// - $data->civicrm_value_contact_details_17_image_358 | |
$view = new view(); | |
$view->name = 'contact_images'; | |
$view->description = ''; | |
$view->tag = 'default'; | |
$view->base_table = 'civicrm_contact'; | |
$view->human_name = 'Contact Images'; | |
$view->core = 7; | |
$view->api_version = '3.0'; | |
$view->disabled = FALSE; /* Edit this to true to make a default view disabled initially */ | |
/* Display: Master */ | |
$handler = $view->new_display('default', 'Master', 'default'); | |
$handler->display->display_options['title'] = 'Contact Images'; | |
$handler->display->display_options['use_more_always'] = FALSE; | |
$handler->display->display_options['access']['type'] = 'none'; | |
$handler->display->display_options['cache']['type'] = 'none'; | |
$handler->display->display_options['query']['type'] = 'views_query'; | |
$handler->display->display_options['exposed_form']['type'] = 'basic'; | |
$handler->display->display_options['pager']['type'] = 'full'; | |
$handler->display->display_options['pager']['options']['items_per_page'] = '10'; | |
$handler->display->display_options['style_plugin'] = 'table'; | |
$handler->display->display_options['style_options']['columns'] = array( | |
'id' => 'id', | |
'display_name' => 'display_name', | |
'first_name' => 'first_name', | |
); | |
$handler->display->display_options['style_options']['default'] = '-1'; | |
$handler->display->display_options['style_options']['info'] = array( | |
'id' => array( | |
'sortable' => 0, | |
'default_sort_order' => 'asc', | |
'align' => '', | |
'separator' => '', | |
'empty_column' => 0, | |
), | |
'display_name' => array( | |
'sortable' => 0, | |
'default_sort_order' => 'asc', | |
'align' => '', | |
'separator' => '', | |
'empty_column' => 0, | |
), | |
'first_name' => array( | |
'sortable' => 0, | |
'default_sort_order' => 'asc', | |
'align' => '', | |
'separator' => '', | |
'empty_column' => 0, | |
), | |
); | |
/* Field: CiviCRM Contacts: Display Name */ | |
$handler->display->display_options['fields']['display_name']['id'] = 'display_name'; | |
$handler->display->display_options['fields']['display_name']['table'] = 'civicrm_contact'; | |
$handler->display->display_options['fields']['display_name']['field'] = 'display_name'; | |
$handler->display->display_options['fields']['display_name']['link_to_civicrm_contact'] = 1; | |
/* Field: CiviCRM Custom: Personal Information: Image */ | |
$handler->display->display_options['fields']['image_358']['id'] = 'image_358'; | |
$handler->display->display_options['fields']['image_358']['table'] = 'civicrm_value_contact_details_17'; | |
$handler->display->display_options['fields']['image_358']['field'] = 'image_358'; | |
$handler->display->display_options['fields']['image_358']['label'] = 'Custom Image'; | |
/* Field: CiviCRM Contacts: Image Url */ | |
$handler->display->display_options['fields']['image_URL']['id'] = 'image_URL'; | |
$handler->display->display_options['fields']['image_URL']['table'] = 'civicrm_contact'; | |
$handler->display->display_options['fields']['image_URL']['field'] = 'image_URL'; | |
/* Field: Global: Custom text */ | |
$handler->display->display_options['fields']['nothing']['id'] = 'nothing'; | |
$handler->display->display_options['fields']['nothing']['table'] = 'views'; | |
$handler->display->display_options['fields']['nothing']['field'] = 'nothing'; | |
$handler->display->display_options['fields']['nothing']['label'] = 'Custom Image URL'; | |
$handler->display->display_options['fields']['nothing']['alter']['text'] = '[image_358]'; | |
/* Field: Global: PHP */ | |
$handler->display->display_options['fields']['php']['id'] = 'php'; | |
$handler->display->display_options['fields']['php']['table'] = 'views'; | |
$handler->display->display_options['fields']['php']['field'] = 'php'; | |
$handler->display->display_options['fields']['php']['label'] = 'Contact Image'; | |
$handler->display->display_options['fields']['php']['use_php_setup'] = 0; | |
$handler->display->display_options['fields']['php']['php_output'] = '<?php | |
print theme(\'imagecache_external\', array( | |
\'path\' => $row->image_URL, | |
\'style_name\'=> \'thumbnail\', | |
\'alt\' => \'contact image\', | |
)); | |
?>'; | |
$handler->display->display_options['fields']['php']['use_php_click_sortable'] = '0'; | |
$handler->display->display_options['fields']['php']['php_click_sortable'] = ''; | |
/* Field: Global: PHP */ | |
$handler->display->display_options['fields']['php_1']['id'] = 'php_1'; | |
$handler->display->display_options['fields']['php_1']['table'] = 'views'; | |
$handler->display->display_options['fields']['php_1']['field'] = 'php'; | |
$handler->display->display_options['fields']['php_1']['label'] = 'Custom Image'; | |
$handler->display->display_options['fields']['php_1']['use_php_setup'] = 1; | |
$handler->display->display_options['fields']['php_1']['php_setup'] = '// Ripped from civicrm_handler_field_custom_file.inc | |
function civicrm_handler_field_custom_file_render($file_id) { | |
$fileType = CRM_Core_DAO::getFieldValue(\'CRM_Core_DAO_File\', | |
$file_id, | |
\'mime_type\' | |
); | |
if ($fileType && in_array($fileType, array( | |
"image/jpeg", "image/pjpeg", "image/gif", "image/x-png", "image/png"))) { | |
$uri = CRM_Core_DAO::getFieldValue(\'CRM_Core_DAO_File\', | |
$file_id, | |
\'uri\' | |
); | |
$config = CRM_Core_Config::singleton(); | |
return str_replace(\'persist/contribute\', \'custom\', $config->imageUploadURL) . $uri; | |
} | |
else { | |
$entityField = $this->aliases[\'entity_id\']; | |
return CRM_Utils_System::url(\'civicrm/file\', | |
"reset=1&id={$file_id}&eid={$values->$entityField}", | |
TRUE, NULL, TRUE, TRUE | |
); | |
} | |
}'; | |
$handler->display->display_options['fields']['php_1']['php_value'] = '$file_id = $data->civicrm_value_contact_details_17_image_358; | |
return civicrm_handler_field_custom_file_render($file_id);'; | |
$handler->display->display_options['fields']['php_1']['php_output'] = '<?php | |
print theme(\'imagecache_external\', array( | |
\'path\' => $value, | |
\'style_name\'=> \'thumbnail\', | |
\'alt\' => \'contact image\', | |
)); | |
?>'; | |
$handler->display->display_options['fields']['php_1']['use_php_click_sortable'] = '0'; | |
$handler->display->display_options['fields']['php_1']['php_click_sortable'] = ''; | |
/* Filter criterion: CiviCRM Contacts: Image Url */ | |
$handler->display->display_options['filters']['image_URL']['id'] = 'image_URL'; | |
$handler->display->display_options['filters']['image_URL']['table'] = 'civicrm_contact'; | |
$handler->display->display_options['filters']['image_URL']['field'] = 'image_URL'; | |
$handler->display->display_options['filters']['image_URL']['operator'] = 'contains'; | |
$handler->display->display_options['filters']['image_URL']['value'] = '/'; | |
/* Filter criterion: CiviCRM Custom: Personal Information: Image */ | |
$handler->display->display_options['filters']['image_358']['id'] = 'image_358'; | |
$handler->display->display_options['filters']['image_358']['table'] = 'civicrm_value_contact_details_17'; | |
$handler->display->display_options['filters']['image_358']['field'] = 'image_358'; | |
$handler->display->display_options['filters']['image_358']['operator'] = 'not empty'; | |
$handler->display->display_options['filters']['image_358']['value'] = '/'; | |
/* Display: Page */ | |
$handler = $view->new_display('page', 'Page', 'page'); | |
$handler->display->display_options['path'] = 'contact-images'; | |
$translatables['contact_images'] = array( | |
t('Master'), | |
t('Contact Images'), | |
t('more'), | |
t('Apply'), | |
t('Reset'), | |
t('Sort by'), | |
t('Asc'), | |
t('Desc'), | |
t('Items per page'), | |
t('- All -'), | |
t('Offset'), | |
t('« first'), | |
t('‹ previous'), | |
t('next ›'), | |
t('last »'), | |
t('Display Name'), | |
t('Custom Image'), | |
t('Image Url'), | |
t('Custom Image URL'), | |
t('[image_358]'), | |
t('Contact Image'), | |
t('Page'), | |
); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment