-
Notifications
You must be signed in to change notification settings - Fork 231
Drupal Integrating Mathjax with Field Collections
From https://groups.google.com/d/msg/mathjax-users/fE2NQew_uLo/TOjihEPMAbYJ
Thank you both, Peter and Davide, for all your help. I was able to locate the error in the apache log files and I am investigating what happened. It appears that the error is occurring within the PHP code for the field collection module. If I learn anything useful about using Drupal, MathJax and Field Collections or if I have any further questions regarding MathJax in this issue I will be sure to post them here.
In case anyone is curious, the function that breaks with Mathjax enabled is shown below. The error occurs on the line indicated as "Call to undefined function (line 869 of /sites/all/modules/field_collection/field_collection.module)" which works fine when MathJax is uninstalled or disabled.
/**
* Implements hook_field_formatter_view().
*/
function field_collection_field_formatter_view($entity_type, $entity, $field, $instance, $langcode, $items, $display) {
$element = array();
$settings = $display['settings'];
switch ($display['type']) {
case 'field_collection_list':
foreach ($items as $delta => $item) {
if ($field_collection = field_collection_field_get_entity($item)) {
$output = l($field_collection->label(), $field_collection->path());
$links = array();
foreach (array('edit', 'delete') as $op) {
if ($settings[$op] && field_collection_item_access($op == 'edit' ? 'update' : $op, $field_collection)) {
$title = entity_i18n_string("field:{$field['field_name']}:{$instance['bundle']}:setting_$op", $settings[$op]);
$links[] = l($title, $field_collection->path() . '/' . $op, array('query' => drupal_get_destination()));
}
}
if ($links) {
$output .= ' (' . implode('|', $links) . ')';
}
$element[$delta] = array('#markup' => $output);
}
}
field_collection_field_formatter_links($element, $entity_type, $entity, $field, $instance, $langcode, $items, $display);
break;
case 'field_collection_view':
$element['#attached']['css'][] = drupal_get_path('module', 'field_collection') . '/field_collection.theme.css';
$view_mode = !empty($display['settings']['view_mode']) ? $display['settings']['view_mode'] : 'full';
foreach ($items as $delta => $item) {
if ($field_collection = field_collection_field_get_entity($item)) {
$element[$delta]['entity'] = $field_collection->view($view_mode);
$element[$delta]['#theme_wrappers'] = array('field_collection_view');
$element[$delta]['#attributes']['class'][] = 'field-collection-view';
$element[$delta]['#attributes']['class'][] = 'clearfix';
$element[$delta]['#attributes']['class'][] = drupal_clean_css_identifier('view-mode-' . $view_mode);
$links = array(
'#theme' => 'links__field_collection_view',
);
$links['#attributes']['class'][] = 'field-collection-view-links';
foreach (array('edit', 'delete') as $op) {
if ($settings[$op] && field_collection_item_access($op == 'edit' ? 'update' : $op, $field_collection)) {
$links['#links'][$op] = array(
/*
<------------------------ CALL TO UNDEFINED FUNCTION 'entity_i18n_string' OCCURS ERROR OCCURS on line of code below ----------------------->
*/
'title' => entity_i18n_string("field:{$field['field_name']}:{$instance['bundle']}:setting_$op", $settings[$op]),
'href' => $field_collection->path() . '/' . $op,
'query' => drupal_get_destination(),
);
}
}
$element[$delta]['links'] = $links;
}
}
field_collection_field_formatter_links($element, $entity_type, $entity, $field, $instance, $langcode, $items, $display);
break;
case 'field_collection_fields':
$view_mode = !empty($display['settings']['view_mode']) ? $display['settings']['view_mode'] : 'full';
foreach ($items as $delta => $item) {
if ($field_collection = field_collection_field_get_entity($item)) {
$element[$delta]['entity'] = $field_collection->view($view_mode);
}
}
break;
}
return $element;
}
Here is some information on this:
It looks like there is a patch that you can apply to fix the problem. It doesn't seem to be related to MathJax in any way, but perhaps installing the MathJax extension updated part of your system and caused the error.
Davide
You are a hero and a saint. I came home from my other job last night prepared to get my hands dirty but was pleasantly surprised to see that it appears I will not have to do so. I have to go back to work again today, but I will roll this solution out tonight or tomorrow. I will be sure to post my results. Many thanks Davide! Cheers.
Implementing the changes from the drupal groups worked like Magic. Thanks!