From 4258b860e5a7ed8b93296e0c7e4fea3e74a9f006 Mon Sep 17 00:00:00 2001 From: Earl Miles <merlin@logrus.com> Date: Sun, 12 Apr 2009 04:39:20 +0000 Subject: [PATCH] Port block content from Panels, reorganizing them so that the categories are more what the content is about than where it is from. --- includes/content.inc | 43 +- plugins/content_types/block/block.inc | 367 ++++++++++++++++++ .../block/icon_contrib_block.png | Bin 0 -> 574 bytes .../block/icon_contrib_block_empty.png | Bin 0 -> 450 bytes .../content_types/block/icon_contrib_menu.png | Bin 0 -> 552 bytes .../content_types/block/icon_contrib_page.png | Bin 0 -> 460 bytes .../block/icon_core_activeforumtopics.png | Bin 0 -> 603 bytes .../block/icon_core_authorinformation.png | Bin 0 -> 606 bytes .../content_types/block/icon_core_block.png | Bin 0 -> 568 bytes .../block/icon_core_block_empty.png | Bin 0 -> 450 bytes .../block/icon_core_block_menu.png | Bin 0 -> 552 bytes .../block/icon_core_booknavigation.png | Bin 0 -> 626 bytes .../block/icon_core_languageswitcher.png | Bin 0 -> 601 bytes .../block/icon_core_navigation.png | Bin 0 -> 818 bytes .../block/icon_core_newforumtopics.png | Bin 0 -> 604 bytes .../content_types/block/icon_core_page.png | Bin 0 -> 460 bytes .../block/icon_core_popularcontent.png | Bin 0 -> 604 bytes .../block/icon_core_primarylinks.png | Bin 0 -> 892 bytes .../block/icon_core_recentblogposts.png | Bin 0 -> 681 bytes .../block/icon_core_recentcomments.png | Bin 0 -> 662 bytes .../block/icon_core_recentpoll.png | Bin 0 -> 608 bytes .../block/icon_core_searchform.png | Bin 0 -> 717 bytes .../block/icon_core_syndicate.png | Bin 0 -> 803 bytes .../block/icon_core_userlogin.png | Bin 0 -> 601 bytes .../content_types/block/icon_core_whosnew.png | Bin 0 -> 732 bytes .../block/icon_core_whosonline.png | Bin 0 -> 744 bytes plugins/content_types/custom/custom.inc | 11 + 27 files changed, 406 insertions(+), 15 deletions(-) create mode 100644 plugins/content_types/block/block.inc create mode 100644 plugins/content_types/block/icon_contrib_block.png create mode 100644 plugins/content_types/block/icon_contrib_block_empty.png create mode 100644 plugins/content_types/block/icon_contrib_menu.png create mode 100644 plugins/content_types/block/icon_contrib_page.png create mode 100644 plugins/content_types/block/icon_core_activeforumtopics.png create mode 100644 plugins/content_types/block/icon_core_authorinformation.png create mode 100644 plugins/content_types/block/icon_core_block.png create mode 100644 plugins/content_types/block/icon_core_block_empty.png create mode 100644 plugins/content_types/block/icon_core_block_menu.png create mode 100644 plugins/content_types/block/icon_core_booknavigation.png create mode 100644 plugins/content_types/block/icon_core_languageswitcher.png create mode 100644 plugins/content_types/block/icon_core_navigation.png create mode 100644 plugins/content_types/block/icon_core_newforumtopics.png create mode 100644 plugins/content_types/block/icon_core_page.png create mode 100644 plugins/content_types/block/icon_core_popularcontent.png create mode 100644 plugins/content_types/block/icon_core_primarylinks.png create mode 100644 plugins/content_types/block/icon_core_recentblogposts.png create mode 100644 plugins/content_types/block/icon_core_recentcomments.png create mode 100644 plugins/content_types/block/icon_core_recentpoll.png create mode 100644 plugins/content_types/block/icon_core_searchform.png create mode 100644 plugins/content_types/block/icon_core_syndicate.png create mode 100644 plugins/content_types/block/icon_core_userlogin.png create mode 100644 plugins/content_types/block/icon_core_whosnew.png create mode 100644 plugins/content_types/block/icon_core_whosonline.png diff --git a/includes/content.inc b/includes/content.inc index 5c5c1a3e..a7a2a857 100644 --- a/includes/content.inc +++ b/includes/content.inc @@ -17,7 +17,7 @@ */ function ctools_ctools_plugin_content_types() { return array( - 'cache' => TRUE, + 'cache' => FALSE, 'defaults' => 'ctools_content_defaults', ); } @@ -61,20 +61,26 @@ function ctools_content_defaults($info, &$plugin) { } // Another ease of use check: - // If a content type is set to SINGLE and *no* subtypes are defined, this rewrites - // things so that the syntax is nicer. - if (!empty($plugin['single']) && !isset($plugin['content types'])) { - $type = array( - 'title' => $plugin['title'], - 'description' => $plugin['description'], - 'icon' => $plugin['icon'], - 'category' => $plugin['category'], - ); + if (!isset($plugin['content types'])) { + // If a content type is set to SINGLE and *no* subtypes are defined, this rewrites + // things so that the syntax is nicer. + if (!empty($plugin['single'])) { + $type = array( + 'title' => $plugin['title'], + 'description' => $plugin['description'], + 'icon' => $plugin['icon'], + 'category' => $plugin['category'], + ); - if (isset($plugin['required contexts'])) { - $type['required contexts'] = $plugin['required contexts']; + if (isset($plugin['required contexts'])) { + $type['required contexts'] = $plugin['required contexts']; + } + $plugin['content types'] = array($plugin['name'] => $type); + } + // Otherwise, auto discover the function based upon pattern naming. + else if (function_exists($function_base . 'content_types')) { + $plugin['content types'] = $function_base . 'content_types'; } - $plugin['content types'] = array($plugin['name'] => $type); } } @@ -376,7 +382,7 @@ function ctools_content_configure_form_defaults(&$form, &$form_state) { // Unless we're not allowed to override the title on this content type, add this // gadget to all panes. - if (empty($plugin['no title overridex'])) { + if (empty($plugin['no title override']) && empty($subtype['no title override'])) { $form['aligner_start'] = array( '#value' => '<div class="option-text-aligner">', ); @@ -412,7 +418,10 @@ function ctools_content_configure_form_defaults(&$form, &$form_state) { * * The $form_info and $form_state need to be preconfigured with data you'll need * such as whether or not you're using ajax, or the modal. $form_info will need - * your next/submit callbacks so that you can cache your data appropriate. This + * your next/submit callbacks so that you can cache your data appropriate. + * + * @return + * If this function returns false, no form exists. */ function ctools_content_form($op, $form_info, &$form_state, $plugin, $subtype, &$conf, $step = NULL) { $form_state += array( @@ -435,6 +444,10 @@ function ctools_content_form($op, $form_info, &$form_state, $plugin, $subtype, & _ctools_content_create_add_form_info($form_info, $plugin['edit form'], $plugin, $subtype, $op); } + if (empty($form_info['order'])) { + return FALSE; + } + ctools_include('wizard'); return ctools_wizard_multistep_form($form_info, $step, $form_state); diff --git a/plugins/content_types/block/block.inc b/plugins/content_types/block/block.inc new file mode 100644 index 00000000..be244625 --- /dev/null +++ b/plugins/content_types/block/block.inc @@ -0,0 +1,367 @@ +<?php +// $Id$ + +/** + * @file + * Provide Drupal blocks as content. + * + * Since blocks don't provide all of the features we do, we have to do a little + * extra work, including providing icons and categories for core blocks. Blocks + * from contrib modules get to provide their own stuff, or get relegated to + * the old "Miscellaneous" category. + */ + +/** + * Callback function to supply a list of content types. + */ +function ctools_block_ctools_content_types() { + return array( + // And this is just the administrative title. + // All our callbacks are named according to the standard pattern and can be deduced. + 'title' => t('Block'), + ); +} + +/** + * Return all block content types available. + * + * Modules wanting to make special adjustments the way that panels handles their blocks + * can implement an extension to the hook_block() family, where the function name is + * of the form "$module . '_ctools_block_info'". + */ +function ctools_block_content_type_content_types() { + $types = array(); + foreach (module_list() as $module) { + $module_blocks = module_invoke($module, 'block', 'list'); + if ($module_blocks) { + foreach ($module_blocks as $delta => $block) { + // strip_tags used because it goes through check_plain and that + // just looks bad. + $info = array( + 'title' => strip_tags($block['info']), + ); + + // Ask around for further information by invoking the hook_block() extension. + $function = $module . '_ctools_block_info'; + if (!function_exists($function)) { + $function = 'ctools_default_block_info'; + } + $function($module, $delta, $info); + + // this check means modules can remove their blocks; particularly useful + // if they offer the block some other way (like we do for views) + if ($info) { + $types["$module-$delta"] = $info; + } + } + } + } + return $types; +} + +/** + * Output function for the 'block' content type. Outputs a block + * based on the module and delta supplied in the configuration. + */ +function ctools_block_content_type_render($subtype, $conf) { + list($module, $delta) = explode('-', $subtype, 2); + $block = (object) module_invoke($module, 'block', 'view', $delta); + if (empty($block)) { + return; + } + + $block->title = $block->subject; + + if (user_access('administer blocks')) { + $block->admin_links = array( + array( + 'title' => t('Configure block'), + 'alt' => t("Configure this block's 'block settings' in administer >> site building >> blocks"), + 'href' => "admin/build/block/configure/$module/$delta", + 'query' => drupal_get_destination(), + ), + ); + } + + // TEMP: Disabling block visibility checking. Ultimately we may be able to + // finally just say it's not supported. + return $block; + + // This seems extra but it prevents an unnecessary query sometimes. + if (empty($conf['block_visibility']) && $block->module != 'block') { + return $block; + } + + // Test for block visibility + + $result = db_query("SELECT title, pages, visibility FROM {blocks} WHERE module = '%s' AND delta = '%s'", $block->module, $block->delta); + $block_visibility = db_fetch_object($result); + + if ($block->module == 'block') { + $block->title = $block_visibility->title; + } + + if (empty($conf['block_visibility'])) { + return $block; + } + + if ($block_visibility && $block_visibility->pages) { + if ($block_visibility->visibility < 2) { + $path = drupal_get_path_alias($_GET['q']); + $regexp = '/^('. preg_replace(array('/(\r\n?|\n)/', '/\\\\\*/', '/(^|\|)\\\\<front\\\\>($|\|)/'), array('|', '.*', '\1'. preg_quote(variable_get('site_frontpage', 'node'), '/') .'\2'), preg_quote($block_visibility->pages, '/')) .')$/'; + $page_match = !($block_visibility->visibility xor preg_match($regexp, $path)); + } + else { + $page_match = drupal_eval($block_visibility->pages); + } + } + else { + $page_match = TRUE; + } + + if ($page_match) { + return $block; + } +} + +/** + * Empty form so we can have the default override title. + */ +function ctools_block_content_type_edit_form(&$form, &$form_state) { + // Does nothing! +} + +/** + * The submit form stores the data in $conf. + */ +function ctools_block_content_type_edit_form_submit(&$form, &$form_state) { + $form_state['conf'] = $form_state['values']; +} + +/** + * Returns an edit form for a block. + */ +//function ctools_block_content_type_edit_form($id, $parents, $conf) { +// if (user_access('administer advanced pane settings')) { +// $form['block_visibility'] = array( +// '#type' => 'checkbox', +// '#title' => t('Use block visibility settings (see block config)'), +// '#default_value' => !empty($conf['block_visibility']), +// '#description' => t('If checked, the block visibility settings for this block will apply to this block.'), +// ); +// // Module-specific block configurations. +// if ($settings = module_invoke($module, 'block', 'configure', $delta)) { +// // Specifically modify a couple of core block forms. +// if ($module == 'block') { +// unset($settings['submit']); +// $settings['info']['#type'] = 'value'; +// $settings['info']['#value'] = $settings['info']['#default_value']; +// } +// panels_admin_fix_block_tree($settings); +// $form['block_settings'] = array( +// '#type' => 'fieldset', +// '#title' => t('Block settings'), +// '#description' => t('Settings in this section are global and are for all blocks of this type, anywhere in the system.'), +// '#tree' => FALSE, +// ); +// +// +// $form['block_settings'] += $settings; +// } +// } +// +// return $form; +//} + +//function panels_admin_submit_block(&$form_values) { +// if (!empty($form_values['block_settings'])) { +// module_invoke($form_values['module'], 'block', 'save', $form_values['delta'], $form_values['block_settings']); +// } +//} +// +///** +// * Because form api cannot collapse just part of a tree, and the block settings +// * assume no tree, we have to collapse the tree ourselves. +// */ +//function panels_admin_fix_block_tree(&$form, $key = NULL) { +// if ($key) { +// if (!empty($form['#parents'])) { +// $form['#parents'] = array_merge(array('configuration', 'block_settings'), $form['#parents']); +// } +// else if (empty($form['#tree'])) { +// $form['#parents'] = array('configuration', 'block_settings', $key); +// } +// } +// +// if (isset($form['#type']) && $form['#type'] == 'textarea' && !empty($form['#rows']) && $form['#rows'] > 10) { +// $form['#rows'] = 10; +// } +// +// foreach (element_children($form) as $key) { +// panels_admin_fix_block_tree($form[$key], $key); +// } +//} + +/** + * Returns the administrative title for a type. + */ +function ctools_block_content_type_admin_title($subtype, $conf) { + list($module, $delta) = explode('-', $subtype, 2); + $block = module_invoke($module, 'block', 'list'); + if (empty($block) || empty($block[$delta])) { + return t('Deleted/missing block @module-@delta', array('@module' => $module, '@delta' => $delta)); + } + + $title = filter_xss_admin($block[$delta]['info']); + return $title; +} + +/** + * Output function for the 'block' content type. Outputs a block + * based on the module and delta supplied in the configuration. + */ +function ctools_block_content_type_admin_info($subtype, $conf) { + list($module, $delta) = explode('-', $subtype, 2); + $block = (object) module_invoke($module, 'block', 'view', $delta); + if (!empty($block)) { + $block->title = $block->subject; + return $block; + } +} + +/** + * Provide default icon and categories for blocks when modules don't do this + * for us. + */ +function ctools_default_block_info($module, $delta, &$info) { + $core_modules = array('aggregator', 'block', 'blog', 'blogapi', 'book', 'color', 'comment', 'contact', 'drupal', 'filter', 'forum', 'help', 'legacy', 'locale', 'menu', 'node', 'path', 'ping', 'poll', 'profile', 'search', 'statistics', 'taxonomy', 'throttle', 'tracker', 'upload', 'user', 'watchdog', 'system'); + + if (in_array($module, $core_modules)) { + $info['icon'] = 'icon_core_block.png'; + $info['category'] = t('Miscellaneous'); + } + else { + $info['icon'] = 'icon_contrib_block.png'; + $info['category'] = t('Miscellaneous'); + } +} + +// These are all on behalf of modules that don't implement panels but we that +// we care about. +function menu_ctools_block_info($module, $delta, &$info) { + $info['icon'] = 'icon_core_block_menu.png'; + $info['category'] = t('Menus'); + if ($delta == 'primary-links' || $delta == 'secondary-links') { + $info['icon'] = 'icon_core_primarylinks.png'; + } +} + +function forum_ctools_block_info($module, $delta, &$info) { + $info['category'] = t('Activity'); + switch ($delta) { + case '0': + $info['icon'] = 'icon_core_activeforumtopics.png'; + break; + + case '1': + $info['icon'] = 'icon_core_newforumtopics.png'; + break; + + default: + // safety net + panels_default_block_info($module, $delta, $info); + } +} + +function profile_ctools_block_info($module, $delta, &$info) { + // Hide the author information block which isn't as rich as what we can + // do with context. + return NULL; + $info['icon'] = 'icon_core_authorinformation.png'; + $info['category'] = t('Core blocks'); +} + +function book_ctools_block_info($module, $delta, &$info) { + // Hide the book navigation block which isn't as rich as what we can + // do with context. + return NULL; + $info['icon'] = 'icon_core_booknavigation.png'; + $info['category'] = t('Core blocks'); +} + +function blog_ctools_block_info($module, $delta, &$info) { + $info['icon'] = 'icon_core_recentblogposts.png'; + $info['category'] = t('Activity'); +} + +function poll_ctools_block_info($module, $delta, &$info) { + $info['icon'] = 'icon_core_recentpoll.png'; + $info['category'] = t('Activity'); +} + +function comment_ctools_block_info($module, $delta, &$info) { + $info['icon'] = 'icon_core_recentcomments.png'; + $info['category'] = t('Activity'); +} + +function search_ctools_block_info($module, $delta, &$info) { + $info['icon'] = 'icon_core_searchform.png'; + $info['category'] = t('Widgets'); +} + +function node_ctools_block_info($module, $delta, &$info) { + $info['icon'] = 'icon_core_syndicate.png'; + $info['category'] = t('Widgets'); +} + +function aggregator_ctools_block_info($module, $delta, &$info) { + $info['icon'] = 'icon_core_syndicate.png'; + $info['category'] = t('Feeds'); +} + +function block_ctools_block_info($module, $delta, &$info) { + $info['icon'] = 'icon_core_block_empty.png'; + $info['category'] = t('Miscellaneous'); +} + +function user_ctools_block_info($module, $delta, &$info) { + $info['category'] = t('Activity'); + switch ($delta) { + case '0': + $info['icon'] = 'icon_core_userlogin.png'; + $info['category'] = t('Widgets'); + break; + + case '1': + $info['icon'] = 'icon_core_navigation.png'; + $info['category'] = t('Menus'); + break; + + case '2': + $info['icon'] = 'icon_core_whosnew.png'; + break; + + case '3': + $info['icon'] = 'icon_core_whosonline.png'; + break; + + default: + // safety net + ctools_default_block_info($module, $delta, $info); + } +} + +function locale_ctools_block_info($module, $delta, &$info) { + $info['icon'] = 'icon_core_languageswitcher.png'; + $info['category'] = t('Widgets'); +} + +function statistics_ctools_block_info($module, $delta, &$info) { + $info['icon'] = 'icon_core_popularcontent.png'; + $info['category'] = t('Activity'); +} + +function system_ctools_block_info($module, $delta, &$info) { + $info['icon'] = 'icon_core_drupal.png'; + $info['category'] = t('Widgets'); +} diff --git a/plugins/content_types/block/icon_contrib_block.png b/plugins/content_types/block/icon_contrib_block.png new file mode 100644 index 0000000000000000000000000000000000000000..fa78ec179a83428e5b8e247890278cdf91a8cb3e GIT binary patch literal 574 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbKJOS+@4BLl;=8&~`zjDUQ}64!{5 z;QX|b^2DN42FH~Aq*MjZ+{E<Mpwz^a%EFVWHb6za0X`wFr45!Je(pYfWm-(COIf{R zd6V9oHxIsid0$fJW$SEo`f5jcz0Kr#;igtPWlb7C|6e?HweQFOEB9`%zH@8cwJS?s zew%dq@~pQ%Hop2cr@TdB$^y5t8qc@iSAF=g_1DjDXU|Og@&9sJgYlcUPo^&LIdf&= zlzD;P!IqytKQF6u{q*bLf@QgT_BMU}ed7QB|3DYT#AfRNDgBZlzhIyU34kGLsl|7o z)<2#ujv*Ddk}e1fiA|h-osCIX;lgER4h1$v5k@}S28JYoYgZYWeFZLDeaZk772MFU ztgVerS>S{rGmAj8jfaD?v!i2UYjjvlpQJ*A1Jfmibqf^i?VA_L7&|Z+X1sot(Xnwu z!w#NRT}4?8j7Jun<r7IrN_zP0*+WK71{Q$;hu~&USJ&1?_t4Opp|QLQ4F)U>OdXEg zItmI4IG$*KURlh<BH+>B>e|rlEqG%3qu@s@KxgP$`nu(@>FI?n*t0}KS|4Q7%GJhQ zr!}-TZTjTdv1#K+psr@Qb}IpmMn>t`v&?`hUc4+UFfd-t$f&NazkZvXLjxnjnNaC9 Um!If;0EPpDr>mdKI;Vst09}j(6951J literal 0 HcmV?d00001 diff --git a/plugins/content_types/block/icon_contrib_block_empty.png b/plugins/content_types/block/icon_contrib_block_empty.png new file mode 100644 index 0000000000000000000000000000000000000000..6d0891b03d97142074cabbe5ed47175ad01c838e GIT binary patch literal 450 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbKJOS+@4BLl;=8&~`zjDUQ}64!{5 z;QX|b^2DN42FH~Aq*MjZ+{E<Mpwz^a%EFVWHb6yz0X`wFC3RjgsV;BcJoxhEy{VOs zt+Ua!D@$K~n{?;ax_h@*|N8mu)welk&rEys_KA0}<>$}O7c9$t{cX{ny-ja_Z2a(J z>(}2WKK$JM_WP<&zYhNY{~u^-oa}-PKuWqK$S)Wuf&(z9n{b-~m0j?3aSW-rl{Dee zlZ3|)1(}!_6(&q#;!t4o6Jcc2Y+y)wFhPWsnNwiGloSS_sF|lkI1k4T2}Y)lMt31K zT{R`8Ge<cD91<8iY$oWR12K7=CM`<1>acFZ4hwO42L?k9!^K<-ECK-xYoyPJiadGF z%%Q-;2sBuLfxBUcgPpm(wgW>WOG8Z|$NbsTMHLz(Sav8dH96Q>TMKi8w14>A?Rd3# zv$5eupefBF%=Q8wniz$J=L-NOJv<E!42(W8GHPpccTW&;XkcWRWF*M;&3w{spx+og MUHx3vIVCg!05FTNRsaA1 literal 0 HcmV?d00001 diff --git a/plugins/content_types/block/icon_contrib_menu.png b/plugins/content_types/block/icon_contrib_menu.png new file mode 100644 index 0000000000000000000000000000000000000000..38cf72090abaa16000c9dceedee8196df1c5251e GIT binary patch literal 552 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbKJOS+@4BLl;=8&~`zjDUQ}64!{5 z;QX|b^2DN42FH~Aq*MjZ+{E<Mpwz^a%EFVWHb6x!0X`wF7b?@wRVIA-^8S2fT1lN( zOsb2mv(cM34@|9ezW%;==hnJ!e{LN0^}Tjw>5o6Rj`(`tyS@5CRpwD&pSM3Ye*Jy! zY-Q8|Yx@J%F6S!aj`(`L{l4maW%93|-@g66diKn;4?niPdHdvmwZj2xNAF<E&!3+! zSeE<Y=k7gwo4)=&@#)vW|Ns939TLv>@EefQDGBlm28s|17>-}#>;dZg<muuVQgJKk zg4lycQzr+rGleQ#xW>kzz{V)TD3;s6ko4fvB?e|+feV+C7=fa3x)R~M94QfuOdXDX z+-hsp^!0TPa|t*kFm~8X&{qX9d0s_1>|3xvftlHO^Oh|=Mh*;yD~uUgD=I2lT7FEO zG9_gSBNK-PL&&+~$B&=Y)joZ4<su#d2LVR54mLM8(Nv(70j!)HADgdeYiX_8z{n!t z;ovK`LS~7hi%TP~LW4v|Y6DZk(;lHki{8jEFdkX3YSAJ!9nP@z8fxdxF#@f>rK9Dr zfPwAJn^Uhq(reEiI&^9k4@*vtjLfTB42*0HH!n)>RokiqN(T&{u6{1-oD!M<9@Y9V literal 0 HcmV?d00001 diff --git a/plugins/content_types/block/icon_contrib_page.png b/plugins/content_types/block/icon_contrib_page.png new file mode 100644 index 0000000000000000000000000000000000000000..4a2fa51d3856f366098978742cfe13e9389b487e GIT binary patch literal 460 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbKJOS+@4BLl;=8&~`zjDUQ}64!{5 z;QX|b^2DN42FH~Aq*MjZ+{E<Mpwz^a%EFVWHb6yD0X`wFF{v)EzRfAA^Rjg|diiaV zsg=%~HxKUIT6gdE>T6e)YUs(GJay{r>uaAsKY#P~$(Jwhy@M^!o|*RR=eIq3n_hog z^!4|N1<P{Z{@D28=k5<bw!Zzo>eH`-|Ns978o&N=?L8nRR}$nG3>3i)7~V+8!~s>F z^K@|xskoK&;9<gZ5fKqKCPPC*$H>SAhNK4*9GRMuHZd?BIiRP^#db+SLG2iefCJAQ zqeTU>NkUFMKp6!M=E>70Oc4=JV&G8Nz%YaRkvFFy1B*cOh8~R$_D5abo}8Q@u7Uk3 z1_uU4)&si^#s~_=F*Yz95&-I8Gu*(?!TrSelMyqEfCs~g=}jLbf6icJ>TvYoP*Pxe zvU$UXjZ7>85e%#3G!C5S5^!)}RE&#@volC|{QMacP`{c&LV^GTQ(9VBm>ydL12cn{ XlyLFyyCxffK4b87^>bP0l+XkKAQ-*h literal 0 HcmV?d00001 diff --git a/plugins/content_types/block/icon_core_activeforumtopics.png b/plugins/content_types/block/icon_core_activeforumtopics.png new file mode 100644 index 0000000000000000000000000000000000000000..8414a8f8829be40a052814087e24c5800dcc6e4b GIT binary patch literal 603 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbKJOS+@4BLl;=8&~`zjDUQ}64!{5 z;QX|b^2DN42FH~Aq*MjZ+{E<Mpwz^a%EFVWHb6x)1AIbUUwr!e_1C{Auikp4)wzVE z8d*B)7+O7e@#fIOzp>?0pMLlqky*d-){j*;zgNuK5>?Ro{?nJ$m+vLk%&u9mr)0|d z<B$JtJ^SG0=YP}opPhf;_R>?=JfaHcT>AF&&%g7}|K<0u0?NJn_V3Ntf0NFCTX*SB z+01R<e*W5e??=;`y$2uv+GFXq`@zrW?>}3*1P7;9=T2N!GjIF<|NnumyZ4Jn8b}$J z1o;I6MMwk;h4c3IF)%Q4db&7<RNP835DJ+%X~G2trdkC9BPI?7Hb-Y>W?ehMM8gdX zn*|*h3?+(;q_QNn3Jblmva+P4jF?#jnj04?1{}CBA<$o%<4Obr6NgR$hhRYX^T1?A z4uu(9d~CJ~^TT^t6&fUX8kKmG1e$p(ua+<}ai}QhWggJrHfp~d;47}s;J{SH)+5j? z+FAmX>^L|f`uqg`q;(qN`}_2O_P*fG$U4=``|QDkOP3Q_ITR)|Y}>U;k(s$!rhOid zur^4=YDQL`)*nB=9&ued_2x|mrVht=clX)t;wdfjn9QxMr9rMYe9gcpEFkf!aP#Xd t2B6a?3K|=8ck2mk*tBV5rUWC41Ow|Q#iJL)q(MQ;;OXk;vd$@?2>>K86*B+; literal 0 HcmV?d00001 diff --git a/plugins/content_types/block/icon_core_authorinformation.png b/plugins/content_types/block/icon_core_authorinformation.png new file mode 100644 index 0000000000000000000000000000000000000000..ab248f3f1bb62536bbf23296a949bfe05cd56bc7 GIT binary patch literal 606 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbKJOS+@4BLl;=8&~`zjDUQ}64!{5 z;QX|b^2DN42FH~Aq*MjZ+{E<Mpwz^a%EFVWHb6y-0(?STjVzs~?LWKw!OuHyzrX+V z<@x*1-+unO@%p=tq1ET_KUZJAxAfGtjkkWRyL9L3o8NOTecO8P$D(qtb1#2KXI5N% z^*g_zuPi4yG06GJtGDNtHfNOAzkhV?<kh<;pa1^!;@-*GrKfK^D4)0S!<TP2-u}7! z;m@b9-&{gcEy9`)Ps#8~t6OyS+llAD4?h0YnP{}J%yrex?@ep==1yGp^7=7Lm*D^Z z{{x+QzcV)+NST!c`GG`82Mi1Q{R|lx7#TcW978H@B^f+@^fWESgn`Lf!N8Q2LxD|C zgwZ#+fg$OE=|wiCScMB0FB%$NWC2R#38yK<$NBsFPw(vP^yO7(kdSC(+BK<4VS)C6 z!^_wN90V9`l@%^retI!Im>H;^SvXDBF|$xvxlq}$w$>~eXr@6z;<bwtgpG}aj4v^8 zGO!2)G{m}lF)wj-j`i-oDxuJDfXU~Tl*58`{6Y*s6PzbBG*}5R{QR?qhk=nrC_(7K zMRq2I`SDGRK+Ac2O-!#|>1k|eY;1PE2-GXVV;X5`X&HLZ!861S#P>0c44v}x#}5~m smX;J((H2Igj)PZ3BD*&lIy5jc$ag6`Uyzy~2n<aIPgg&ebxsLQ0Lelg8~^|S literal 0 HcmV?d00001 diff --git a/plugins/content_types/block/icon_core_block.png b/plugins/content_types/block/icon_core_block.png new file mode 100644 index 0000000000000000000000000000000000000000..b0d9628adf19efed3b30c847a7511fc093d469b9 GIT binary patch literal 568 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbKJOS+@4BLl;=8&~`zjDUQ}64!{5 z;QX|b^2DN42FH~Aq*MjZ+{E<Mpwz^a%EFVWHb6yP0X`wF-+um@w*Tzz2R~gxQoYjZ zB5J3-|Mca-i#L9ai`HIx9a=ZT$kKV))z8IqcIg;ec{eUycj?a3Q`c5q{<!+`y^Xhi zY`FAt()n+(H4`%DA6|9y`__9u+?rR-x%BPx&;Oxya{?RYJ$d!^)6f5_F2Bv0e;|L} zp6BmBTe<{C*G@V3_*d@4Wld}Lo_PNI|Ns9$=X9&ToCc)yN`m}?fg;2MhNk}FP@v9V zo-U3d6}OTuh>8iMq+DTQ@>RHSm6bz*Em4F~EVh9mN#MdoHfCNRnaBtfb==U<wriJ_ zuz-O9Gm8MTvWG)#Y*^T|soq{Kjgkrt4or^})+q^`IB5)$Zl2b+ZI_0&c8B(IrSl8e z1RQvxavT`_{KE9~;^HPSI504>nq0A*I%Ud}iqMcLmLXRem^hpn6dEK<4l+48eR9}m zv|r2IfuWHlVrol8#goPw&N|jSpp!17Tu68{>G8vd45z%iH-2UW+O%wy*5r;Qdu-U* z_xDIxTgy8z7{1uFf~k>7V#DUunIIMG^tic=H%kc=6o3Ah`I3o6f`RLe)R!Z(E0zL7 Ofx*+&&t;ucLK6UI&jhvr literal 0 HcmV?d00001 diff --git a/plugins/content_types/block/icon_core_block_empty.png b/plugins/content_types/block/icon_core_block_empty.png new file mode 100644 index 0000000000000000000000000000000000000000..da08c64c64f2c6f7c5c34a442d4c1e3287f17053 GIT binary patch literal 450 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbKJOS+@4BLl;=8&~`zjDUQ}64!{5 z;QX|b^2DN42FH~Aq*MjZ+{E<Mpwz^a%EFVWHb6yz0X`wFUTJkMA*l~uym|lWi;kg{ zk)`wM%lFn@x-;qgx2319P1}F=+s|KfE`59Q>h1IQpDkU2b0;oaboE=)n!Ouu{n&c% z$BE~^cR%>K>gM-@kAMCD{~u^7ug{|nASGQA<QEJS!2uZ5O}I^g$}V`iIEGZ*N}7<A z{QSuyAtok9g$a|GI272-L>SpL8yJ!jri-vLa|%qDlEMHK_4AYn=i%5P$;i~v=q;qC ztEQxM<}8PRLjq%m%>?~(ASRE~q(uo=9oB8wVPS6Xz+lK>xR{H9MIeA-jr18&ktdJY zITUypfd&gOa5wC5u;Z84c3@~^X{agWnBP8KRG~qFWrreDlY<>QyD&FM`-hL6j#oby z7#MB@n$j%7EHCh(iBVX1zW`9u!_&~fz~~b*qqa78_XH7#21bU?azVDeJFc7u`i;TU L)z4*}Q$iB}{|m0& literal 0 HcmV?d00001 diff --git a/plugins/content_types/block/icon_core_block_menu.png b/plugins/content_types/block/icon_core_block_menu.png new file mode 100644 index 0000000000000000000000000000000000000000..84594431b705009714e569d99bf3a2739c42b7f5 GIT binary patch literal 552 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbKJOS+@4BLl;=8&~`zjDUQ}64!{5 z;QX|b^2DN42FH~Aq*MjZ+{E<Mpwz^a%EFVWHb6x!0X`wFy9ydyLQ>y<`m#Bv-Yczc zXI_JmrSpRqZ*&Z;F24G`?$VtbZ~yG}2-{Q8xcc(FrKhfKy!B(RXV@Okuv_o{oO}6u zZC3q$E7x6?Zo53fR^9x*F}r@+{<GhH{@Qx)$F{tNt8aeqwsd>)>g^s&x99IaTe<}2 zPF%M8!Ox~Odrv(7eem(G|Ns939kM2~&jU#5lmz(&14W1h49Bl=_5k&L@^o<wskoJN z;o0Ly)2D^8GleQ#xW>kzz-A}HD3;s6ko4fvB?e|+feV+C7=fa7x)R~M94QivOdXC< z+-hspw6zrua|k#jFm~8X(ANYpd0s_1*y-!*Gc#+io-?P1%Ynggg)t*53oC1DOU0Ba zQ&K`0m^d^TLiBWW&YacNKYw!N8YTe;0Y<hCwzRZVQJ|FptehMl8?I<;XlQI^WD)Ri z@D*Djv&7NGWg@RagG5Mb15?7&GeL_My^&#HJhEWbnl)+)jA82)^p2fl1X_Pf=aj<& z4z@RMv|fRv*PcCe=)?*pmYf_JnOC<M7}*$3>qzf?c;Z7X(Dw|Uu6{1-oD!M<Mzi%< literal 0 HcmV?d00001 diff --git a/plugins/content_types/block/icon_core_booknavigation.png b/plugins/content_types/block/icon_core_booknavigation.png new file mode 100644 index 0000000000000000000000000000000000000000..52dfca5369bfd5cabe1b46b7ab9ff54b7c8dc14c GIT binary patch literal 626 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbKJOS+@4BLl;=8&~`zjDUQ}64!{5 z;QX|b^2DN42FH~Aq*MjZ+{E<Mpwz^a%EFVWHb6xi1AIbUjVzrv-um(W)0b~Qe?5Qy z`Nr$-I)+wfp8wbrntbQ&_mj`QufBZm>YLx|F5Ovr>e`%3-#&l;x!1t@+{@p`pM2lv z6~5QXEjqK};;Y~1U;M~#=sS7!?vqz<?|%5R*UociR?Qw;&ktX|oqYcL;N35KLz55W z)!umfXJ<%K`MiybFMK$C<H25it509QP1}EV>%AW?A*qY5e)CGJ+hgms`@zo>&wsDF z`8{{yvZghA4?g~7=@R_^|9_yXul+e<3#6<|g8V=tWCDhTN37)-7#JBmT^vIyZY6Da z^z7;7i-ych!3rBTF>xrc<%uvdYd0_?J=ki(##}70VT%a^P}I)bPvbfV$BeHGOdXEw z8V3^fl$5lxjx0QVVhy{1g94+db1^4pSy`;JrEr=pP`AP6DW)bSLLyf#C7GB^N#6!C z!&uEP)mgc$Oi$0v*;F`<yMcj;YlBwdi!8=Q&h|FDZdM0|MwT<ZB|CStwEFsdX=Gwx zJd(gAmXKn?`0;0?1OpR?3d57x4nO`};sMEIWhN|Gp3ca^!;_QqN(?M=KuJMi0WTZZ zq@W}aKlOmp;!}qYE9>d0EYVo0$tK{y6Bc$NN=Ju*iHAXNf%5Bi=Cn9qkTQ6>`njxg HN@xNAw}vc6 literal 0 HcmV?d00001 diff --git a/plugins/content_types/block/icon_core_languageswitcher.png b/plugins/content_types/block/icon_core_languageswitcher.png new file mode 100644 index 0000000000000000000000000000000000000000..dc4521fffadb3b58e0d6d8a4463e0f99ba17f4a7 GIT binary patch literal 601 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbKJOS+@4BLl;=8&~`zjDUQ}64!{5 z;QX|b^2DN42FH~Aq*MjZ+{E<Mpwz^a%EFVWHb6y71AIbUAG~;zmRI4GR_79u`u@|G z-4A{ime<|dEMsKptYc{P;Y`BKrIuUo{aAhZ-nvV7mY%w{>gM<MB;`4mzCGIRSX|Y3 zajs}{d-tNN-_G<aOgjH<N2kv54*rg0<?~b2b~ec!pQ``*aLnt|g^ymoKiDFDWtqgr zTR(n2nKWa@jA{GNe*5|B<jGS{UcLSE_2TpQpDkU24?g~NxSlt6;<BH&%1%80-Lz)! z|NsAiE;V{T`x%fjFA4Gs28xgY7z85cb_0$0?&;zfQgJKE;PKPP*Dn|_GC3<47&CJy zu*Hcmsu?#hBt0-TWn-=tFfdJJ0*cm6XxO!D#*7XQZSB=+#tsaI84Rpfe78C@Omq*O zEUD1o!1QWaPmaQZqZ$iN@(4Kas5vmIx`l<w$(2rMkOL~8u|Z<BhE@S{<C+$e00xDI z2Bu$cmRTt*SeB-+ZZ*4rLjt3$sa~a}p0e@;2B2~YCzd5C4optFWEdD(L<Ph|MA$ep ziWyi0ninp!+dWH=MZ&|VfC<E1w{FD>Mga|GLuO`mkUfSknHtR`3=Ce(1gV}WDJ*Qf lSx%s!prB~h3`Q0ShU7BECH%?DHUfiy!PC{xWt~$(69DHg42=K) literal 0 HcmV?d00001 diff --git a/plugins/content_types/block/icon_core_navigation.png b/plugins/content_types/block/icon_core_navigation.png new file mode 100644 index 0000000000000000000000000000000000000000..fb4c1f84f8261e47110d3414be92f9aa910c8646 GIT binary patch literal 818 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbKJOS+@4BLl;=8&~`zjDUQ}64!{5 z;QX|b^2DN42FH~Aq*MjZ+{E<Mpwz^a%EFVWHVh1m`T;&6t}Y>|UTJlkbLw~IHRu>x z8Cg0ny83NbLBoR=Z{C0UvfCr<|NsB1FW;MU>D$_@`Zu4x?(qy`PTctY*Kek{4eKu5 z5v$(ITzh0=cKy3gUl@|Nv8Qk2h*~jg&&g-^9zA{YIbg=&BUkUKb{&87@$-v!pMt0F zTYu&*XXe(gzy4Y^u0Ebux#{$^qYvKQe)g8BXh-#u-MkTf0x=VIS-LTo?Rog>JwxtJ zhS<$Ln+~l%d6OY})w|DMnbI~})-H8vSsmQBRVibtWX0|s7ay*>cxRVK7`J1MSlO0m zZ$3PJ_oaEu#l4sA*-gLj`qS5k@4j7l@tq-S=hKfrK79GXk-KldmFv`fXCoJ1NSwO$ z+s|KH@BP@8*Rb){kES(ySKa)++tTgHtGDkzf8As0_Wb>4OPAo?4}Kne{400jGGM?y z(zu)oq*6<Q{DOfYLvz3&nQ^HZ7*`UWE{-7;w~{;_3I>L9c1`K*@nLJ4BGSN+^dRul z_bFS<rx`GF8!TgB5olh#ZP9{>owGKT3kehy8#4h#cCTD8b={0sx%wa_ffgf>n(p-( z8>Vd7CmW!kqoXv1QK3QN3G<bme{))G_Bi}m5x@pC_rk=o$=n;u3Z|x}r}6Rg`!aAS zv_-I{GfVS+j__q%w`0eS3oIaIU961W^E*0LXqavL0TSqV;^XC&lFpu;kksW5(v&ix zfkE7(wxp!QM%#g*kwvKSn0uqihfl{g0Nv(Xq!GZdW{&5a{{CiGpfe^tek`m!=fJDQ zyv&vn3``x0t%h<ONe3F5l@*16(m_EIl9Cca4GmMLwyGMjDjZ-q=5D+BadGuuV5Bg3 My85}Sb4q9e0NfO=EdT%j literal 0 HcmV?d00001 diff --git a/plugins/content_types/block/icon_core_newforumtopics.png b/plugins/content_types/block/icon_core_newforumtopics.png new file mode 100644 index 0000000000000000000000000000000000000000..70bbde26bbe02b474b610658a8a97f51707a4ea1 GIT binary patch literal 604 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbKJOS+@4BLl;=8&~`zjDUQ}64!{5 z;QX|b^2DN42FH~Aq*MjZ+{E<Mpwz^a%EFVWHb6yl0(?STUwr!e_18bIw7Ms+-nxXO zK6vp)$I!~i()rNCzflF9Pe1&QEuXsT=J$$OTQ=VM5s_J6IeY8-PhS#iX4fp(bNun& zt!E!h+kf`u=YJ(r)~~*NZ~lSXKmYtIo4GB&f7OGRpWl4_=Mh!7^whOU=fADHbZ5?` zZ|}bSJOBLO9!s}xKYwk#_oHde-h+>S?SAmn(k1x$`_I9t)wvUw)y&)e|NnoW1ASw5 zssbsKk|4iepa`je!8=?jm4Shg&C|s(q~cbR!L*Pt5#h^BOw0-fW^5b^Y@W)_&Wv%K ziGdp!CL2017)lfxOG!$eEH3oU%+8jUG-PBEXkIADV({uULn9lv0|O)Lm4gBr3s#<7 zevnDP!9Y}o=a++BKS;(<g3(pNMUhSVW5x?676A{3m{Su1rIz&E_HY(gXmDWq)z%|W zyUM9*7X#ywgd^+ok8m4Cv~&mi10^MRShj9WReV-d@bdLWW{_U@;A0()jgGy}@vSpu zK?+P7nB1J^%=z_5iOXwE4#<cF%a<QM&U|T+{_*ptPO%9%@Er50ayY=l;`Zy$nq5&K r6**^)967Xzo8`@$oSdj*z(8OKwpR+?@=0A27@`cGu6{1-oD!M<)FK@u literal 0 HcmV?d00001 diff --git a/plugins/content_types/block/icon_core_page.png b/plugins/content_types/block/icon_core_page.png new file mode 100644 index 0000000000000000000000000000000000000000..f0417cb6515aa7fb2856c90722b386ed99bfc501 GIT binary patch literal 460 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbKJOS+@4BLl;=8&~`zjDUQ}64!{5 z;QX|b^2DN42FH~Aq*MjZ+{E<Mpwz^a%EFVWHb6yD0X`wFE+MINE`9S#t2456o^<}3 zj-i#Dir(tW_tssyv-H%p2QS{7I(h2a%eT+pe}4bz%ad1cEnR}A?LYhN=dY$Udly~( zcH;T(jkkW}PF%M8!OyMteyqCr{ovzY|Ns978vk!K_g5e#R}$nG3>3i)7~V+8!~s>F z^K@|xskoK&Ao2MF5fKqKrozHP$H>SAhNOh)j!aFDHZd?BIiRS_#db+SLGK)kfCJAQ zqeTU>kA$3ffHDdi%#){0m?9#a#K57jfnf&sBX3Sa1{Q(l4Luqi?2o!UJvli+Tm$)4 z3=Ry8tOs@-j1d%!V{BkJBmmUGR=9zogZqi`CnIJS0S|@~)0;j>{+!9k)ZrMzp`^g{ zWb=lCjZ7>85e%#3G!7i+5^!)}RE&#@t221;=y4h|P`{c&LV^GTQ(9VBm>F9G12cn9 XiE#1KH6NpaK4b87^>bP0l+XkKLQcLN literal 0 HcmV?d00001 diff --git a/plugins/content_types/block/icon_core_popularcontent.png b/plugins/content_types/block/icon_core_popularcontent.png new file mode 100644 index 0000000000000000000000000000000000000000..70bbde26bbe02b474b610658a8a97f51707a4ea1 GIT binary patch literal 604 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbKJOS+@4BLl;=8&~`zjDUQ}64!{5 z;QX|b^2DN42FH~Aq*MjZ+{E<Mpwz^a%EFVWHb6yl0(?STUwr!e_18bIw7Ms+-nxXO zK6vp)$I!~i()rNCzflF9Pe1&QEuXsT=J$$OTQ=VM5s_J6IeY8-PhS#iX4fp(bNun& zt!E!h+kf`u=YJ(r)~~*NZ~lSXKmYtIo4GB&f7OGRpWl4_=Mh!7^whOU=fADHbZ5?` zZ|}bSJOBLO9!s}xKYwk#_oHde-h+>S?SAmn(k1x$`_I9t)wvUw)y&)e|NnoW1ASw5 zssbsKk|4iepa`je!8=?jm4Shg&C|s(q~cbR!L*Pt5#h^BOw0-fW^5b^Y@W)_&Wv%K ziGdp!CL2017)lfxOG!$eEH3oU%+8jUG-PBEXkIADV({uULn9lv0|O)Lm4gBr3s#<7 zevnDP!9Y}o=a++BKS;(<g3(pNMUhSVW5x?676A{3m{Su1rIz&E_HY(gXmDWq)z%|W zyUM9*7X#ywgd^+ok8m4Cv~&mi10^MRShj9WReV-d@bdLWW{_U@;A0()jgGy}@vSpu zK?+P7nB1J^%=z_5iOXwE4#<cF%a<QM&U|T+{_*ptPO%9%@Er50ayY=l;`Zy$nq5&K r6**^)967Xzo8`@$oSdj*z(8OKwpR+?@=0A27@`cGu6{1-oD!M<)FK@u literal 0 HcmV?d00001 diff --git a/plugins/content_types/block/icon_core_primarylinks.png b/plugins/content_types/block/icon_core_primarylinks.png new file mode 100644 index 0000000000000000000000000000000000000000..6dafb99ed084232acc18dfccb2b8f8327051245a GIT binary patch literal 892 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbKJOS+@4BLl;=8&~`zjDUQ}64!{5 z;QX|b^2DN42FH~Aq*MjZ+{E<Mpwz^a%EFVWHVh1m@c}*|t}Y>|n{(<n-umH{R%c}C zyfd$1(baD{hE@+=yjgwu-nBQs*JjlpfA)Lbr91!s|38^qG3U~^Tkrl%_q4jQso_vm z`r)X|Yv*pyZ;F`R=(DS!VV9-btStxE%_?2e9du!7`C*@kX;Drq_MK|Uv%FZ`x@~Fg z#}|jE2Rcm)_1LkjVZ-6GtJmzDQSb5f`;WuEDGx5KDGXGqjWNF8+L!95I4Q#6>a(w3 zpC8@j5q5RO<}e4z?Fo6;C(Ziy>O{Pa^nOdfD|P)xf>YC6h4*jhyOLEqefP-=)!i3^ zGN0YqyxSwJI?-h7(eoMJYDIqP?>~LHe)8&6d$Vc&PSZRrKRr79@xj47Ke=lwH^02G z?ZV67$E_nCU*G=X@vc3dVL1V6pI@F>I4$D)%j1EjqAl+FKi|Cl{_@1!V26#__4}<{ z^ZaDK{rt7{-j8j04F@0pT6OdLZcDc(uioylbld&lr=?5q^Y@=~CoXGRvlkc<H`(Kl z0;$rHAirQ>0MZ>W%-(SC6)>)qJY5_^DsCldJbV%=GF6YQNl8INlaWJ#&Ck!*Qrz2r z1w%2X1B2lQHLlyY)HQy8N?~M_mp2BAWJp@weA!mLyDRl6v!fL=P((s~_3EG8KUp<C zJV{S6SZd6`BGA0Kq9-#ZXvsuQ@d@+io?{Sj;5oW+p_bRGJTb*dYu3!1`I41^@koG< z;0nR~wdu*CPv=daK0OYs?3Sa^MZvzfM4y{Cb8=cC%3ce+SvWr}f$z$J6A=+0RjyV| zO)-D|D1EA|w6wHr)d3myWb#yg6Fcc8jt&abSrr;2x-K;`B|PoXymLq94M;vDV#fIt zwy^oiQ%@b_1Dc_Frqy8rH=B$M>rs$&(4jMD4g@f;=;*w8b5xaqk&QvW&~=yLkGWfb P(Z%5D>gTe~DWM4fkge9O literal 0 HcmV?d00001 diff --git a/plugins/content_types/block/icon_core_recentblogposts.png b/plugins/content_types/block/icon_core_recentblogposts.png new file mode 100644 index 0000000000000000000000000000000000000000..785207ac49e311f1716220982f79afe382c861bb GIT binary patch literal 681 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbKJOS+@4BLl;=8&~`zjDUQ}64!{5 z;QX|b^2DN42FH~Aq*MjZ+{E<Mpwz^a%EFVWHb6!90(?STz0&G}QmWp6`l4fKwe{YQ zZ$Ez-SvpVKe|FuaJ4;VpTYdT7>vs}QKm6W!>qmLV?3#JommIwM`|n?$*n<7{zkUAp z<MDH)j)lwq|KBxj<I$Kf-}fKn+Goso_U_~DXRlV>{C@WKgS+=ko2TV&-Ltf7PTs+X zpKso_&Tg5|JHK(;m1nQM{%c;lZ`QU`haUg>|G((QJ-tJxJ^ufH{^HZ$DSJ+>IC*>e z{xfq{@A?0qvv>7@|Np1`{PpL=)$=dD{M&ls+P)J$KY#yu{{Hjs2S5E2%Pd`jb0;oq zTC?}y<6kZzssH~o{0CwNh9zS9u0YDGB*-rqC_){;5T(6e8ffZoPZ!6Kid#t^o;-Sx zl3vcpl&<jM3k!z=o8E$k&WU0n4F`o48YC=iLXJ!kz1kD&c;Ij|BS?UC>W;g2U6;1T z$~H7y<pqk|NEOv7xqJ63Ym96}L`CFX2Bwb2*tk;;ckageOCOn@T*?eIR9rIDxV*eP z+SA;ifC<D`)6Ofet1I^A2lE#+^tJ73>Fr<-VNhsjU|P2>Pfl)GO`ijU2m?@YdItl~ z21XVEj{}Sv2aa<vIWRUbBo(Bwayu~c8#^!<THL;Ey+bmJyRoO>%9BJkpbmewYJm;R x%+>1RK$Rc9q$DuxV&}MVW5&!_8%8D`hD|a?63X9dmI8x;!PC{xWt~$(69DExUbFxJ literal 0 HcmV?d00001 diff --git a/plugins/content_types/block/icon_core_recentcomments.png b/plugins/content_types/block/icon_core_recentcomments.png new file mode 100644 index 0000000000000000000000000000000000000000..ba96e32a31863c59c6ecab8df957c0da95437532 GIT binary patch literal 662 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbKJOS+@4BLl;=8&~`zjDUQ}64!{5 z;QX|b^2DN42FH~Aq*MjZ+{E<Mpwz^a%EFVWHb6xu1AIbUgHx;DfBN#`%RiTp)S7wQ zpMLo5l~$)?X!Y>Jzsk<pKmPn*b@O}0tSv^C&JSL^S$+B5x=VMKp1Stp^S{d3TN7($ zKl}9W<(GdEne~r9{(JlF-^N=%7G3@J^UuHc-~Y{7y=VS`+poX=`~Lg?{rCSqeE;|E z+rLTYzvcI@Dw(qW)z^PD3--j8Pn~n=TiMKQ9#Mr?U;W#9_Q8XfpMU)RzxCda@{ZZN zAN-uQ|LnJ)zn;8$8&%Nx_1C`_pZ-37|Jl+d_{8(y2Os~+ow%%N&EEh2{{wx)`2KD` zka8{w@(TuvPzV?tlUUvZ4Q26kaSW-rl~nLZT)@P%l!2*Qp`eI~LxHVMgwagBfgwqt zU<)g=wLn2h3NujD(Ou#?3&)umj7%K|uUrh9-`eULF~dFfvd5_&Nri?6rcXN4jEtsD zn|5kV)Sa|542(w}JUEfGQbA2k`?QM65~ZXxW&sBtz8;%tK1Ijo%sF;UW{p^y8PFAi z0-{r=OqsyI6>*z^MPL?JwlvV{4e249lO8cKIlJ<Pv1P|KFfei5cp1^yI8Uf~o29-3 zgW-+YH)nQ4FfcZYwy)EYw+4wsN6+>sEH3u;HkRo4{Ba{Qi$JsRY*T?5%?!;J^Lv?r tN-QilZZtH$&A_OyZ@s%&*r9=uL2;GZ-ydGTCIW+(!PC{xWt~$(697^*Rj2>} literal 0 HcmV?d00001 diff --git a/plugins/content_types/block/icon_core_recentpoll.png b/plugins/content_types/block/icon_core_recentpoll.png new file mode 100644 index 0000000000000000000000000000000000000000..c23fa23e65cc833643971cf2fe2bdbbb0a800348 GIT binary patch literal 608 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbKJOS+@4BLl;=8&~`zjDUQ}64!{5 z;QX|b^2DN42FH~Aq*MjZ+{E<Mpwz^a%EFVWHb6y71AIbU=Un=>@z#$AFW$WW^u;T! z&dAbv()n-eF5Ovu`QFk~*Yfi6fC}&3yZ86+-}?IcB}<lQYipO4m7P6%_T9U8EiEmV zE?r_`V!C?us*H@xuV23&KYrZZ-5n4RFn#*;u&}Vez`)AN%6043MMp=Ai;I8%{yjcE ze%k)C-+ul&@%;CbS8t!c|7__Jy!*jV9Yd?F_kJw8`Ym_jvZghAT|!b1KK`}p=J)^q z{{tP6_p|m4kTNd`@(TuvkO3G3BIkAkjriy3;uunKE6Lz-!t;<|V-_Z61p{Md4h1$o z5k@iN28N^r^Q#QZ$pQwZsf<8Tzu;g!MmYh0c8)8(3``x4XG1)Dq8U$^8yQ_n4l!rq zP*~8giDkRRg!PNlmt-%>V-axRX<Ig_sOyiFRaI4w0%I=FM1z!T2BOy(IT?OBFg7qS zaWR~|)_mgi>+DQs7J-0<aF<XHMFyZgwlhu3meut1sHr*FHH&FGFfg({@m;#4F(x*) zmW|Cf3}jNk^NACmGI_o>-muZ|B@>H4bK|sWT^cU7%+kV>^&A)sXKc)1Y*dplFwB$& t$<CDI?w&Z&Okl&NSFfaIF|tT7cz;&8d*x9^A21{sJYD@<);T3K0RVeJ68!)G literal 0 HcmV?d00001 diff --git a/plugins/content_types/block/icon_core_searchform.png b/plugins/content_types/block/icon_core_searchform.png new file mode 100644 index 0000000000000000000000000000000000000000..3ad1deb65c4a1cada8cdedb7619f3ed5e8ff0587 GIT binary patch literal 717 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbKJOS+@4BLl;=8&~`zjDUQ}64!{5 z;QX|b^2DN42FH~Aq*MjZ+{E<Mpwz^a%EFVWHb6yh1AIbUz0&F)ym<5e)0eIHez=6B z8d*B)7+TG_^ljaxI~&X0R$soi^whP@8#m?#+Z^A&voO-*>Hq&H_wRc2>(9w2{|`U@ z=_t<NtuIj;=R3Wt>COND?>_#%`r-eA=~F(wdw2Wa|As{Gg-ci3@-leqi0d&h{Qvhq z-`Duh-~U={3?Kgg4^(E>W?-mD@VDV-Xjf+V{Qv*<HA{AF*ifJ7eQ4{NsT2C<Oz3{~ z@%yLmzqL3RQtcII&stCt=jElquzJxvFIlFKAKpY;D^1&f_S?^2yC3{~^6KrzTR)z^ z|7__Jyy)t;gO7imc>X(g;<BbSdsp53{{R1fppWkvG^__w{v|<v!9Woz0tVZ#4VxJl z7`Z)N978H@C4G4O=s{V*2R0^sg%6*ZITYCRL>SrZ8yJ!veE7=3%rEfaYbpa!G;aYz z|3ZuXt6GEwEH*K)2sAgZSMQ%Xan0PutxU$7yOp^e7#dlge66jm{n}$XGqy%1l7Xq? z;O*<dx6fP;_jQgsef0S8i@XXA5_@LaRQlG2E@5dYJ;21k$RhG#!-kJvr%rxi{JpTe zycFny2@RbqdM0!%SSJ+00ManS#zrT1s_50D7H{v~jE!Vu;!t_OVj{=!#`5jWxj=5m z!PA0D58l1w6G=<~c|borTzvvld3jk`wVRt6&?g^~3s{-b4H8mHKC=Pk?d{pv#Kg=M i5>iu>KYwH9FkmP?YkX3nt}hW7;tZayelF{r5}E)OENK`3 literal 0 HcmV?d00001 diff --git a/plugins/content_types/block/icon_core_syndicate.png b/plugins/content_types/block/icon_core_syndicate.png new file mode 100644 index 0000000000000000000000000000000000000000..27c54bf00c8ef49996f633cef4f998aa6445833b GIT binary patch literal 803 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbKJOS+@4BLl;=8&~`zjDUQ}64!{5 z;QX|b^2DN42FH~Aq*MjZ+{E<Mpwz^a%EFVWHVh1mvH?CJt}Y>|UTJj?Uc7n#>C5-& z7CMGjKWABfon&rg>HPoa=a1c{KW19~`|;`59Lp~g&DLGI^Lwt<>w2T5r>?EOeD6c2 z$-hs}{(gM+uGQpIuj!vdE&slMdRC(UqSEm1t*zgtnEyJr{N3u#-#g2HUf=&_TJpbV z=RQq#`t$hgkM)_qpWXPiChpxtpT~K6-w)4x*J}Kv#{Kh>^mnsT-p@_>x-#R(JeQyI zUB4cf@xIsb%d+%ehx<QnpZ;Y{@vqHU?>0^SwaD$)zUD8R8vcEJ_V3ND-z$T@?49vr zOX;V@X|Fmxf1a5AeQoC7`v?Er-1=jG-|zKtU-!@axisk8Y?o)<2`@TBzhBw+ePO__ z%bWi`Jv(jx*>698J$d!k(k1x$`_H)(mo=@~`~UxcU@*2T1pNk5@g+fi!9Woj0*1-6 z;&p&=qUh=37*cU7sYCdgI2U&}V^fAgM>jKv0$ZX8<1vc{hNK7mrNw5Yq7xrXPELH> z+ndS)lv@~a_{NP0x$=62_y+4aj0z1Bhmy9II2}n!wiIow`BuQzz`(@yg6ZmN>tn~f ziZ&Ow8Z)p6IQy)z?4Q+YI6Eh24fphl3Ka(i!y^XLjAtKw5&Y2g)KHkGA87UhhWHJ0 zGjx`#?T%Qp-X{d8h>^A7+s#wQtX4!F_40IgWdfRHV%)vFYe{Fun!O7`auP(?L5kKS zCp+KVn>;n8DM?hxf`O?+(dtg8ao9X>`!MHQM%UUpMS;#-w0O}Un;l13d8cgs$~0p} z1S3#cpCK2A(t(CfO(Qm-ibszmBqb%38XKCMr<$tqDI8$X2sY!(-&EfVj28w^S3j3^ HP6<r_#GSE+ literal 0 HcmV?d00001 diff --git a/plugins/content_types/block/icon_core_userlogin.png b/plugins/content_types/block/icon_core_userlogin.png new file mode 100644 index 0000000000000000000000000000000000000000..dc4521fffadb3b58e0d6d8a4463e0f99ba17f4a7 GIT binary patch literal 601 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbKJOS+@4BLl;=8&~`zjDUQ}64!{5 z;QX|b^2DN42FH~Aq*MjZ+{E<Mpwz^a%EFVWHb6y71AIbUAG~;zmRI4GR_79u`u@|G z-4A{ime<|dEMsKptYc{P;Y`BKrIuUo{aAhZ-nvV7mY%w{>gM<MB;`4mzCGIRSX|Y3 zajs}{d-tNN-_G<aOgjH<N2kv54*rg0<?~b2b~ec!pQ``*aLnt|g^ymoKiDFDWtqgr zTR(n2nKWa@jA{GNe*5|B<jGS{UcLSE_2TpQpDkU24?g~NxSlt6;<BH&%1%80-Lz)! z|NsAiE;V{T`x%fjFA4Gs28xgY7z85cb_0$0?&;zfQgJKE;PKPP*Dn|_GC3<47&CJy zu*Hcmsu?#hBt0-TWn-=tFfdJJ0*cm6XxO!D#*7XQZSB=+#tsaI84Rpfe78C@Omq*O zEUD1o!1QWaPmaQZqZ$iN@(4Kas5vmIx`l<w$(2rMkOL~8u|Z<BhE@S{<C+$e00xDI z2Bu$cmRTt*SeB-+ZZ*4rLjt3$sa~a}p0e@;2B2~YCzd5C4optFWEdD(L<Ph|MA$ep ziWyi0ninp!+dWH=MZ&|VfC<E1w{FD>Mga|GLuO`mkUfSknHtR`3=Ce(1gV}WDJ*Qf lSx%s!prB~h3`Q0ShU7BECH%?DHUfiy!PC{xWt~$(69DHg42=K) literal 0 HcmV?d00001 diff --git a/plugins/content_types/block/icon_core_whosnew.png b/plugins/content_types/block/icon_core_whosnew.png new file mode 100644 index 0000000000000000000000000000000000000000..51303e7fae68ef81eb001d8231f486bcf02afee2 GIT binary patch literal 732 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbKJOS+@4BLl;=8&~`zjDUQ}64!{5 z;QX|b^2DN42FH~Aq*MjZ+{E<Mpwz^a%EFVWHb6z61AIbUT|!d5((1O}`w`l(%*fLD z{iiQFhE|Kpy<WeQNDOlR|Nno%yrX3~$=w_Gt-gHk|Nm*T_ns`CwoJn|?f?IxjPm-X zB^!H}?P!fRUa+a}|9{T^|DT^YxpChKpOdpo-#@x`YEk2=o8J$e_IUJMv1?A=x=VK! z9KEpm+>NyQ?xJwBfXapGQ+IE_{Or?<dy_Wpd;dZ1#y!2|JG)mLJX<qm`lhYZo2TV& zy!GS%|6N%TW^L1_Pg#55?mg3+x2>n_IrZ-2=f}^LrffXcyY<GmpTC~J|J<2qwCcjA z!&5RW!kR5zf;X1A?tbtycjB_THCLO~?0tFt*ulrY{{IJhn_<~B<47PCSQ6wH4D=vX z0Yk={6$cp@7==7t978H@C2>3m7JRVvBO{Z(0tW{JhXR{jsB)@sspATUWCjNY!xfUn zKYrhi%=q2NATF*96nGK!k^A>=?WkWrE14RVnSml5uRLe|{QbJyl9_SxO0dX>DDPjt zf1l1cQB_f4p>1Krz#`DxZ*qZ0wYZXBprEXT9cYbwv@<hjbs>Me0s|*Vo?rWdg<6@V zUwph@e3^QA149$nj#nRk{QC4`m(@;YpaSs-ha;j(j$S?6$*R!cz%<Y2j9%V4hX>Cd z9b*!3;EC(2n|DU<-n~4B2X7x7Vgrfz`6Vz4TzK>?jhRECjloS_Jx$zqg249f3A_1$ su4Z8|FfuaO!OY0bEj`<x!J&bXL2jp6;3}B~pj6A?>FVdQ&MBb@08Ynnq5uE@ literal 0 HcmV?d00001 diff --git a/plugins/content_types/block/icon_core_whosonline.png b/plugins/content_types/block/icon_core_whosonline.png new file mode 100644 index 0000000000000000000000000000000000000000..a5896e3a54bbe148beddc5ef31aa4f93329b60a2 GIT binary patch literal 744 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbKJOS+@4BLl;=8&~`zjDUQ}64!{5 z;QX|b^2DN42FH~Aq*MjZ+{E<Mpwz^a%EFVWHb6yx0(?STT|!c~-uvN|Ru|f^%*fLD z{iiQFhF1Uo|6f$@wfgeCj&-{egPaTI9WBdAwteT~^4??e?vw8yUF%%2_r(7bMN^k; zy!AuZz0mQ6cgK<)ar2w=)=o{Ix_kBi)xBG9th)K#?Ow=<MNR82-Kkr!Uc)x6Y4vP% zo77+be>pt&UVr-j^zBDhoxR>TZ&PN+j5&MO{`vnWZ_DI_Ma@?Kt%|142{@DX`TysZ zM2nuayWW2IG=1l>qA7D{A2<_GxiF)=KImj-VOns&&6rOw?xhx|`QC{*IlJ`R&tK2q zf9^~)T6N*m;VBswVa=8<!5hn5cR%=<J8@avnyXD~_P)G+?BL^H#{Z3h0dT<Lg$a-f zDGBlm26~y=fFbyM(M1LZMj=lZ$B>F!NgU5YwmcB}z|It}z`@7Hp}^*+?ak~dE4YFo z*ua6oFk|HhR@P4GOqM1FYinVkzzoZiFIZV6y;<0PF*I^B14T4GuI6NCJ(<0mk#X?~ zut>p8=~*nSH*Z;1S6A;oxzm7wMWA`V-UXggch-D?g5r-%Kx^uYeQPxpgWoeKFmQt8 z?X@phxbZo@YhZZCz!$FHz|h21Vex^D<pW#Ajw(i=0{w^s$C#HKJ$!j8t3rbVlU>i5 zck|>N9=v>al1adUXP;i9-I;fFb@Ln^sK3@@1Bt9#m%u16;n~MvRt|->1hw$+wDRl; z0{y!;O}7WSnuXoi(9ocQk&&BQdUm~mLjxm&%6yAyx<|J^28KR^r>mdKI;Vst04y$Q AG5`Po literal 0 HcmV?d00001 diff --git a/plugins/content_types/custom/custom.inc b/plugins/content_types/custom/custom.inc index c28187cb..26eb6baf 100644 --- a/plugins/content_types/custom/custom.inc +++ b/plugins/content_types/custom/custom.inc @@ -1,6 +1,14 @@ <?php // $Id$ +/** + * @file + * Custom content type. + * + * This content type is nothing more than a title and a body that is entered + * by the user and run through standard filters. The information is stored + * right in the config, so each custom content is unique. + */ /** * Callback function to supply a list of content types. @@ -88,6 +96,9 @@ function ctools_custom_content_type_edit_form(&$form, &$form_state) { return $form; } +/** + * The submit form stores the data in $conf. + */ function ctools_custom_content_type_edit_form_submit(&$form, &$form_state) { $form_state['conf'] = $form_state['values']; } -- GitLab