function express_add_content_node_add in Express 7.2
1 string reference to 'express_add_content_node_add'
- express_add_content_theme_registry_alter in modules/
custom/ express_add_content/ express_add_content.module
File
- modules/
custom/ express_add_content/ express_add_content.module, line 17
Code
function express_add_content_node_add($vars) {
// Check to see if any content types exist yet
if ($vars['content']) {
$output = array();
// Get node bundles
if ($cache = cache_get('express_add_content_express_node_list_groups')) {
$bundles = $cache->data;
}
else {
$bundles = module_invoke_all('express_node_list_groups', $variables = NULL);
// Save this for 30 days - it should only be cleared on a code update
cache_set('express_add_content_express_node_list_groups', $bundles, 'cache', time() + 60 * 60 * 24 * 30);
}
uasort($bundles, '_express_add_content_sort_types');
// Links fromt node_add_list().
$content = $vars['content'];
// Build new links list with title as key
$links = array();
foreach ($content as $link) {
$key = $link['title'];
$links[$key] = $link;
}
// Step through bundles
foreach ($bundles as $key => $bundle) {
$output[$key]['title']['#markup'] = '<h2>' . $bundle['title'] . '</h2>';
$bundle_class = 'bundle-type-' . _express_add_content_string_to_machine($bundle['title']);
$output[$key]['#prefix'] = '<div class="admin-panel express-add-group ' . $bundle_class . '">';
$output[$key]['#suffix'] = '</div>';
// Add content types for each bundle
$types = '';
foreach ($bundle['types'] as $type) {
if (!empty($links[$type])) {
$types .= '<li class="clearfix">';
$types .= '<span class="label">' . l($links[$type]['title'], $links[$type]['href'], $links[$type]['localized_options']) . '</span>';
$types .= '<div class="description">' . filter_xss_admin($links[$type]['description']) . '</div>';
$types .= '</li>';
// Remove from $links array so we can check for leftovers that are not included in bundles
unset($links[$type]);
}
}
// Add markup for types, otherwise unset so empty set is not rendered
if (!empty($types)) {
$output[$key]['types']['#markup'] = $types;
$output[$key]['types']['#prefix'] = '<ul class="admin-list">';
$output[$key]['types']['#suffix'] = '</ul>';
}
else {
unset($output[$key]);
}
}
// Output leftover links that were not assigned to a bundle
if (!empty($links)) {
$output['other']['title']['#markup'] = '<h2>Other</h2>';
$output['other']['#prefix'] = '<div class="admin-panel express-add-group">';
$output['other']['#suffix'] = '</div>';
$types = '<ul class="admin-list">';
foreach ($links as $link) {
$types .= '<li class="clearfix">';
$types .= '<span class="label">' . l($link['title'], $link['href']) . '</span>';
$types .= '<div class="description">' . filter_xss_admin($link['description']) . '</div>';
$types .= '</li>';
}
$types .= '</ul>';
$output['other']['types']['#markup'] = $types;
}
return $output;
}
else {
$output = '<p>' . t('You have not created any content types yet. Go to the <a href="@create-content">content type creation page</a> to add a new content type.', array(
'@create-content' => url('admin/structure/types/add'),
)) . '</p>';
return $output;
}
}