diff options
Diffstat (limited to 'views')
338 files changed, 12594 insertions, 1166 deletions
diff --git a/views/default/admin/appearance/default_widgets.php b/views/default/admin/appearance/default_widgets.php new file mode 100644 index 000000000..1bf5791ac --- /dev/null +++ b/views/default/admin/appearance/default_widgets.php @@ -0,0 +1,82 @@ +<?php +/** + * Default widgets landing page. + * + * @package Elgg.Core + * @subpackage Administration.DefaultWidgets + */ + +$object = elgg_get_entities(array( + 'type' => 'object', + 'subtype' => 'moddefaultwidgets', + 'limit' => 1, +)); + +if ($object) { + echo elgg_view('output/url', array( + 'text' => elgg_echo('upgrade'), + 'href' => 'action/widgets/upgrade', + 'is_action' => true, + 'is_trusted' => true, + 'class' => 'elgg_button elgg-button-submit', + 'title' => 'Upgrade your default widgets to work on Elgg 1.8', + )); +} + +elgg_push_context('default_widgets'); +$widget_context = get_input('widget_context'); +$list = elgg_trigger_plugin_hook('get_list', 'default_widgets', null, array()); + +// default to something if we can +if (!$widget_context && $list) { + $widget_context = $list[0]['widget_context']; +} + +$current_info = null; +$tabs = array(); +foreach ($list as $info) { + $url = "admin/appearance/default_widgets?widget_context={$info['widget_context']}"; + $selected = false; + if ($widget_context == $info['widget_context']) { + $selected = true; + $current_info = $info; + } + + $tabs[] = array( + 'title' => $info['name'], + 'url' => $url, + 'selected' => $selected + ); +} + +$tabs_vars = array( + 'tabs' => $tabs +); + +echo elgg_view('navigation/tabs', $tabs_vars); + +echo elgg_view('output/longtext', array('value' => elgg_echo('admin:default_widgets:instructions'))); + +if (!$current_info) { + $content = elgg_echo('admin:default_widgets:unknown_type'); +} else { + // default widgets are owned and saved to the site. + elgg_set_page_owner_guid(elgg_get_config('site_guid')); + elgg_push_context($current_info['widget_context']); + + $default_widgets_input = elgg_view('input/hidden', array( + 'name' => 'default_widgets', + 'value' => 1 + )); + + $params = array( + 'content' => $default_widgets_input, + 'num_columns' => $current_info['widget_columns'], + ); + + $content = elgg_view_layout('widgets', $params); + elgg_pop_context(); +} +elgg_pop_context(); + +echo $content; diff --git a/views/default/admin/appearance/menu_items.php b/views/default/admin/appearance/menu_items.php new file mode 100644 index 000000000..1d5c95cf9 --- /dev/null +++ b/views/default/admin/appearance/menu_items.php @@ -0,0 +1,10 @@ +<?php +/** + * Elgg administration menu items + * + * @package Elgg + * @subpackage Core + */ + + +echo elgg_view_form('admin/menu/save', array('class' => 'elgg-form-settings')); diff --git a/views/default/admin/appearance/profile_fields.php b/views/default/admin/appearance/profile_fields.php new file mode 100644 index 000000000..f1d78c19f --- /dev/null +++ b/views/default/admin/appearance/profile_fields.php @@ -0,0 +1,24 @@ +<?php +/** + * Admin area: edit default profile fields + */ + +$add = elgg_view_form('profile/fields/add', array('class' => 'elgg-form-settings'), array()); +$list = elgg_view('admin/appearance/profile_fields/list'); + +$reset = elgg_view('output/confirmlink', array( + 'text' => elgg_echo('reset'), + 'href' => 'action/profile/fields/reset', + 'title' => elgg_echo('profile:resetdefault'), + 'confirm' => elgg_echo('profile:resetdefault:confirm'), + 'class' => 'elgg-button elgg-button-cancel', + 'is_trusted' => 'true', +)); + +$body = <<<__HTML +$add +$list +<div class="mtl">$reset</div> +__HTML; + +echo $body; diff --git a/views/default/admin/appearance/profile_fields/list.php b/views/default/admin/appearance/profile_fields/list.php new file mode 100644 index 000000000..b9440a95d --- /dev/null +++ b/views/default/admin/appearance/profile_fields/list.php @@ -0,0 +1,55 @@ +<?php +/** + * Profile fields. + * + * @todo Needs some review + */ + +// List form elements +$n = 0; +$loaded_defaults = array(); +$items = array(); +$fieldlist = elgg_get_config('profile_custom_fields'); +if ($fieldlist) { + $fieldlistarray = explode(',', $fieldlist); + foreach ($fieldlistarray as $listitem) { + $translation = elgg_get_config("admin_defined_profile_$listitem"); + $type = elgg_get_config("admin_defined_profile_type_$listitem"); + if ($translation && $type) { + $item = new stdClass; + $item->translation = $translation; + $item->shortname = $listitem; + $item->name = "admin_defined_profile_$listitem"; + $item->type = elgg_echo("profile:field:$type"); + $items[] = $item; + } + } +} +?> +<ul id="elgg-profile-fields" class="mvm"> +<?php + +$save = elgg_echo('save'); +$cancel = elgg_echo('cancel'); + +foreach ($items as $item) { + echo elgg_view("profile/", array('value' => $item->translation)); + + //$even_odd = ( 'odd' != $even_odd ) ? 'odd' : 'even'; + $url = elgg_view('output/url', array( + 'href' => "action/profile/fields/delete?id={$item->shortname}", + 'text' => elgg_view_icon('delete-alt'), + 'is_action' => true, + 'is_trusted' => true, + )); + $type = elgg_echo($item->type); + echo <<<HTML +<li id="$item->shortname" class="clearfix"> + <span class="elgg-icon elgg-icon-drag-arrow elgg-state-draggable"></span> + <b><span id="elgg-profile-field-{$item->shortname}" class="elgg-state-editable">$item->translation</span></b> [$type] $url +</li> +HTML; +} + +?> +</ul>
\ No newline at end of file diff --git a/views/default/admin/dashboard.php b/views/default/admin/dashboard.php new file mode 100644 index 000000000..d3976ca38 --- /dev/null +++ b/views/default/admin/dashboard.php @@ -0,0 +1,12 @@ +<?php + +elgg_set_page_owner_guid(elgg_get_logged_in_user_guid()); + +$params = array( + 'num_columns' => 2, + 'exact_match' => true, + 'show_access' => false, +); +$widgets = elgg_view_layout('widgets', $params); + +echo $widgets;
\ No newline at end of file diff --git a/views/default/admin/footer.php b/views/default/admin/footer.php new file mode 100644 index 000000000..ce420e99a --- /dev/null +++ b/views/default/admin/footer.php @@ -0,0 +1,9 @@ +<?php +/** + * Elgg admin footer. Extend this view to add content to the admin footer + */ + +$options = array( + 'class' => 'elgg-menu-hz' +); +echo elgg_view_menu('admin_footer', $options);
\ No newline at end of file diff --git a/views/default/admin/header.php b/views/default/admin/header.php new file mode 100644 index 000000000..331190a88 --- /dev/null +++ b/views/default/admin/header.php @@ -0,0 +1,27 @@ +<?php +/** + * Elgg admin header + */ +$admin_title = elgg_get_site_entity()->name . ' ' . elgg_echo('admin'); + +$view_site = elgg_view('output/url', array( + 'href' => elgg_get_site_url(), + 'text' => elgg_echo('admin:view_site'), + 'is_trusted' => true, +)); +$logout = elgg_view('output/url', array( + 'href' => 'action/logout', + 'text' => elgg_echo('logout'), + 'is_trusted' => true, +)); +?> +<h1 class="elgg-heading-site"> + <a href="<?php echo elgg_get_site_url(); ?>admin"> + <?php echo $admin_title; ?> + </a> +</h1> +<ul class="elgg-menu-user"> + <li><?php echo elgg_echo('admin:loggedin', array(elgg_get_logged_in_user_entity()->name)); ?></li> + <li><?php echo $view_site; ?></li> + <li><?php echo $logout; ?></li> +</ul>
\ No newline at end of file diff --git a/views/default/admin/plugin_settings.php b/views/default/admin/plugin_settings.php new file mode 100644 index 000000000..1c6e9e206 --- /dev/null +++ b/views/default/admin/plugin_settings.php @@ -0,0 +1,26 @@ +<?php +/** + * Elgg plugin settings + * + * @uses ElggPlugin $vars['plugin'] The plugin object to display settings for. + * + * @package Elgg.Core + * @subpackage Plugins.Settings + */ + +$plugin = $vars['plugin']; +$plugin_id = $plugin->getID(); + +// required for plugin settings backward compatibility +$vars['entity'] = $plugin; + +$settings = false; + +if (elgg_view_exists("settings/$plugin_id/edit") || elgg_view_exists("plugins/$plugin_id/settings")) { + $title = $plugin->getManifest()->getName(); + + $params = array('id' => "$plugin_id-settings", 'class' => 'elgg-form-settings'); + $body = elgg_view_form("plugins/settings/save", $params, $vars); + + echo elgg_view_module('info', $title, $body); +}
\ No newline at end of file diff --git a/views/default/admin/plugins.php b/views/default/admin/plugins.php new file mode 100644 index 000000000..42f153d0f --- /dev/null +++ b/views/default/admin/plugins.php @@ -0,0 +1,197 @@ +<?php +/** + * Elgg administration plugin screen + * + * Shows a list of plugins that can be sorted and filtered. + * + * @package Elgg.Core + * @subpackage Admin.Plugins + */ + +elgg_load_js('lightbox'); +elgg_load_css('lightbox'); + +elgg_generate_plugin_entities(); +$installed_plugins = elgg_get_plugins('any'); +$show_category = get_input('category', 'all'); +$sort = get_input('sort', 'priority'); + +// Get a list of the all categories +// and trim down the plugin list if we're not viewing all categories. +// @todo this could be cached somewhere after have the manifest loaded +$categories = array(); + +foreach ($installed_plugins as $id => $plugin) { + if (!$plugin->isValid()) { + if ($plugin->isActive()) { + // force disable and warn + elgg_add_admin_notice('invalid_and_deactivated_' . $plugin->getID(), + elgg_echo('ElggPlugin:InvalidAndDeactivated', array($plugin->getId()))); + $plugin->deactivate(); + } + continue; + } + + $plugin_categories = $plugin->getManifest()->getCategories(); + + // handle plugins that don't declare categories + // unset them here because this is the list we foreach + switch ($show_category) { + case 'all': + break; + case 'active': + if (!$plugin->isActive()) { + unset($installed_plugins[$id]); + } + break; + case 'inactive': + if ($plugin->isActive()) { + unset($installed_plugins[$id]); + } + break; + case 'nonbundled': + if (in_array('bundled', $plugin_categories)) { + unset($installed_plugins[$id]); + } + break; + default: + if (!in_array($show_category, $plugin_categories)) { + unset($installed_plugins[$id]); + } + break; + } + + if (isset($plugin_categories)) { + foreach ($plugin_categories as $category) { + if (!array_key_exists($category, $categories)) { + $categories[$category] = ElggPluginManifest::getFriendlyCategory($category); + } + } + } +} + +$guids = array(); +foreach ($installed_plugins as $plugin) { + $guids[] = $plugin->getGUID(); +} + +// sort plugins +switch ($sort) { + case 'date': + $plugin_list = array(); + foreach ($installed_plugins as $plugin) { + $create_date = $plugin->getTimeCreated(); + while (isset($plugin_list[$create_date])) { + $create_date++; + } + $plugin_list[$create_date] = $plugin; + } + krsort($plugin_list); + break; + case 'alpha': + $plugin_list = array(); + foreach ($installed_plugins as $plugin) { + $plugin_list[$plugin->getFriendlyName()] = $plugin; + } + ksort($plugin_list); + break; + case 'priority': + default: + $plugin_list = $installed_plugins; + break; +} + + + +asort($categories); + +// we want bundled/nonbundled pulled to be at the top of the list +unset($categories['bundled']); +unset($categories['nonbundled']); + +$common_categories = array( + 'all' => elgg_echo('admin:plugins:category:all'), + 'active' => elgg_echo('admin:plugins:category:active'), + 'inactive' => elgg_echo('admin:plugins:category:inactive'), + 'bundled' => elgg_echo('admin:plugins:category:bundled'), + 'nonbundled' => elgg_echo('admin:plugins:category:nonbundled'), +); + +$categories = array_merge($common_categories, $categories); +// security - only want a defined option +if (!array_key_exists($show_category, $categories)) { + $show_category = reset($categories); +} + +$category_form = elgg_view_form('admin/plugins/filter', array( + 'action' => 'admin/plugins', + 'method' => 'get', + 'disable_security' => true, +), array( + 'category' => $show_category, + 'category_options' => $categories, + 'sort' => $sort, +)); + + +$sort_options = array( + 'priority' => elgg_echo('admin:plugins:sort:priority'), + 'alpha' => elgg_echo('admin:plugins:sort:alpha'), + 'date' => elgg_echo('admin:plugins:sort:date'), +); +// security - only want a defined option +if (!array_key_exists($sort, $sort_options)) { + $sort = reset($sort_options); +} + +$sort_form = elgg_view_form('admin/plugins/sort', array( + 'action' => 'admin/plugins', + 'method' => 'get', + 'disable_security' => true, +), array( + 'sort' => $sort, + 'sort_options' => $sort_options, + 'category' => $show_category, +)); + +$buttons = "<div class=\"clearfix mbm\">"; +$buttons .= elgg_view_form('admin/plugins/change_state', array( + 'action' => 'action/admin/plugins/activate_all', + 'class' => 'float', +), array( + 'guids' => $guids, + 'action' => 'activate', +)); +$buttons .= elgg_view_form('admin/plugins/change_state', array( + 'action' => 'action/admin/plugins/deactivate_all', + 'class' => 'float', +), array( + 'guids' => $guids, + 'action' => 'deactivate', +)); +$buttons .= "</div>"; + +$buttons .= $category_form . $sort_form; + +// construct page header +?> +<div id="content_header" class="mbm clearfix"> + <div class="content-header-options"><?php echo $buttons ?></div> +</div> + +<div id="elgg-plugin-list"> +<?php + +$options = array( + 'limit' => 0, + 'full_view' => true, + 'list_type_toggle' => false, + 'pagination' => false, +); +if ($show_category == 'all' && $sort == 'priority') { + $options['display_reordering'] = true; +} +echo elgg_view_entity_list($plugin_list, $options); + +?> +</div>
\ No newline at end of file diff --git a/views/default/admin/settings/advanced.php b/views/default/admin/settings/advanced.php new file mode 100644 index 000000000..a262740f2 --- /dev/null +++ b/views/default/admin/settings/advanced.php @@ -0,0 +1,9 @@ +<?php +/** + * Elgg administration site advanced settings + * + * @package Elgg + * @subpackage Core + */ + +echo elgg_view_form('admin/site/update_advanced', array('class' => 'elgg-form-settings')); diff --git a/views/default/admin/settings/advanced/site_secret.php b/views/default/admin/settings/advanced/site_secret.php new file mode 100644 index 000000000..e70ac7ab6 --- /dev/null +++ b/views/default/admin/settings/advanced/site_secret.php @@ -0,0 +1,11 @@ +<?php +/** + * Elgg administration site secret settings + * + * @package Elgg + * @subpackage Core + */ + +echo elgg_view_form('admin/site/regenerate_secret', array(), array( + 'strength' => _elgg_get_site_secret_strength(), +)); diff --git a/views/default/admin/settings/basic.php b/views/default/admin/settings/basic.php new file mode 100644 index 000000000..9334ba81b --- /dev/null +++ b/views/default/admin/settings/basic.php @@ -0,0 +1,9 @@ +<?php +/** + * Elgg administration site basic settings + * + * @package Elgg + * @subpackage Core + */ + +echo elgg_view_form('admin/site/update_basic', array('class' => 'elgg-form-settings')); diff --git a/views/default/admin/sidebar.php b/views/default/admin/sidebar.php new file mode 100644 index 000000000..100ce2af8 --- /dev/null +++ b/views/default/admin/sidebar.php @@ -0,0 +1,8 @@ +<?php +/** + * Admin sidebar -- just outputs the page menus + */ + +$content = elgg_view_menu('page', array('sort_by' => 'priority', 'show_section_headers' => true)); + +echo elgg_view_module('main', '', $content, array('class' => 'elgg-admin-sidebar-menu'));
\ No newline at end of file diff --git a/views/default/admin/statistics/overview.php b/views/default/admin/statistics/overview.php new file mode 100644 index 000000000..ac5aaac36 --- /dev/null +++ b/views/default/admin/statistics/overview.php @@ -0,0 +1,13 @@ +<?php +/** + * Elgg statistics screen + * + * @package Elgg + * @subpackage Core + */ + +echo elgg_view('admin/statistics/extend'); + +echo elgg_view_module('inline', elgg_echo('admin:statistics:label:basic'), elgg_view('admin/statistics/overview/basic')); + +echo elgg_view_module('inline', elgg_echo('admin:statistics:label:numentities'), elgg_view('admin/statistics/overview/numentities')); diff --git a/views/default/admin/statistics/overview/basic.php b/views/default/admin/statistics/overview/basic.php new file mode 100644 index 000000000..2c9b3b88e --- /dev/null +++ b/views/default/admin/statistics/overview/basic.php @@ -0,0 +1,19 @@ +<?php +// Work out number of users +$users_stats = get_number_users(); +$total_users = get_number_users(true); + +// Get version information +$version = get_version(); +$release = get_version(true); +?> +<table class="elgg-table-alt"> + <tr class="odd"> + <td><b><?php echo elgg_echo('admin:statistics:label:version'); ?> :</b></td> + <td><?php echo elgg_echo('admin:statistics:label:version:release'); ?> - <?php echo $release; ?>, <?php echo elgg_echo('admin:statistics:label:version:version'); ?> - <?php echo $version; ?></td> + </tr> + <tr class="even"> + <td><b><?php echo elgg_echo('admin:statistics:label:numusers'); ?> :</b></td> + <td><?php echo $users_stats; ?> <?php echo elgg_echo('active'); ?> / <?php echo $total_users; ?> <?php echo elgg_echo('total') ?></td> + </tr> +</table>
\ No newline at end of file diff --git a/views/default/admin/statistics/overview/numentities.php b/views/default/admin/statistics/overview/numentities.php new file mode 100644 index 000000000..af4ae2773 --- /dev/null +++ b/views/default/admin/statistics/overview/numentities.php @@ -0,0 +1,40 @@ +<?php +// Get entity statistics +$entity_stats = get_entity_statistics(); +$even_odd = ""; +?> +<table class="elgg-table-alt"> +<?php +foreach ($entity_stats as $k => $entry) { + arsort($entry); + foreach ($entry as $a => $b) { + + //This function controls the alternating class + $even_odd = ( 'odd' != $even_odd ) ? 'odd' : 'even'; + + if ($a == "__base__") { + $a = elgg_echo("item:{$k}"); + if (empty($a)) + $a = $k; + } else { + if (empty($a)) { + $a = elgg_echo("item:{$k}"); + } else { + $a = elgg_echo("item:{$k}:{$a}"); + } + + if (empty($a)) { + $a = "$k $a"; + } + } + + echo <<< END + <tr class="{$even_odd}"> + <td>{$a}:</td> + <td>{$b}</td> + </tr> +END; + } + } +?> +</table> diff --git a/views/default/admin/statistics/server.php b/views/default/admin/statistics/server.php new file mode 100644 index 000000000..9d21addc1 --- /dev/null +++ b/views/default/admin/statistics/server.php @@ -0,0 +1,8 @@ +<?php +/** + * Server information + */ + +echo elgg_view_module('inline', elgg_echo('admin:server:label:web_server'), elgg_view('admin/statistics/server/web_server')); + +echo elgg_view_module('inline', elgg_echo('admin:server:label:php'), elgg_view('admin/statistics/server/php')); diff --git a/views/default/admin/statistics/server/php.php b/views/default/admin/statistics/server/php.php new file mode 100644 index 000000000..7c6a51383 --- /dev/null +++ b/views/default/admin/statistics/server/php.php @@ -0,0 +1,50 @@ +<?php +/** + * Server PHP info + */ + +$php_log = ini_get('error_log'); +if (!$php_log) { + $php_log = elgg_echo('admin:server:error_log'); +} + +$post_max_size = elgg_get_ini_setting_in_bytes('post_max_size'); +$upload_max_filesize = elgg_get_ini_setting_in_bytes('upload_max_filesize'); + +$post_max_size_warning = ''; +if ($upload_max_filesize > $post_max_size) { + // @todo show a link to something like http://nigel.mcnie.name/blog/uploadmaxfilesizepostmaxsize-experimentation ? + $post_max_size_warning = elgg_echo('admin:server:warning:post_max_too_small'); +} + +?> +<table class="elgg-table-alt"> + <tr class="odd"> + <td><b><?php echo elgg_echo('admin:server:label:php_version'); ?> :</b></td> + <td><?php echo phpversion(); ?></td> + </tr> + <tr class="even"> + <td><b><?php echo elgg_echo('admin:server:label:php_ini'); ?> :</b></td> + <td><?php echo php_ini_loaded_file(); ?></td> + </tr> + <tr class="odd"> + <td><b><?php echo elgg_echo('admin:server:label:php_log'); ?> :</b></td> + <td><?php echo $php_log; ?></td> + </tr> + <tr class="even"> + <td><b><?php echo elgg_echo('admin:server:label:mem_avail'); ?> :</b></td> + <td><?php echo number_format(elgg_get_ini_setting_in_bytes('memory_limit')); ?></td> + </tr> + <tr class="odd"> + <td><b><?php echo elgg_echo('admin:server:label:mem_used'); ?> :</b></td> + <td><?php echo number_format(memory_get_peak_usage()); ?></td> + </tr> + <tr class="even"> + <td><b><?php echo elgg_echo('admin:server:label:post_max_size'); ?> :</b></td> + <td><?php echo number_format($post_max_size); ?></td> + </tr> + <tr class="odd"> + <td><b><?php echo elgg_echo('admin:server:label:upload_max_filesize'); ?> :</b></td> + <td><?php echo number_format($upload_max_filesize) . ' ' . $post_max_size_warning; ?></td> + </tr> +</table> diff --git a/views/default/admin/statistics/server/web_server.php b/views/default/admin/statistics/server/web_server.php new file mode 100644 index 000000000..904a54f4b --- /dev/null +++ b/views/default/admin/statistics/server/web_server.php @@ -0,0 +1,16 @@ +<?php +/** + * Web server info + */ + +?> +<table class="elgg-table-alt"> + <tr class="odd"> + <td><b><?php echo elgg_echo('admin:server:label:server'); ?> :</b></td> + <td><?php echo $_SERVER['SERVER_SOFTWARE']; ?></td> + </tr> + <tr class="even"> + <td><b><?php echo elgg_echo('admin:server:label:log_location'); ?> :</b></td> + <td><?php echo getenv('APACHE_LOG_DIR'); ?></td> + </tr> +</table> diff --git a/views/default/admin/users/add.php b/views/default/admin/users/add.php new file mode 100644 index 000000000..6d22b9c29 --- /dev/null +++ b/views/default/admin/users/add.php @@ -0,0 +1,9 @@ +<?php +/** + * Display an add user form. + */ + +$title = elgg_echo('adduser'); +$body = elgg_view_form('useradd', array(), array('show_admin' => true)); + +echo elgg_view_module('inline', $title, $body);
\ No newline at end of file diff --git a/views/default/admin/users/admins.php b/views/default/admin/users/admins.php new file mode 100644 index 000000000..9b175d437 --- /dev/null +++ b/views/default/admin/users/admins.php @@ -0,0 +1,12 @@ +<?php +$admins = elgg_list_entities(array(), 'elgg_get_admins'); + +?> +<div class="elgg-module elgg-module-inline"> + <div class="elgg-head"> + <h3><?php echo elgg_echo('admin:statistics:label:admins'); ?></h3> + </div> + <div class="elgg-body"> + <?php echo $admins; ?> + </div> +</div> diff --git a/views/default/admin/users/newest.php b/views/default/admin/users/newest.php new file mode 100644 index 000000000..91a6fa338 --- /dev/null +++ b/views/default/admin/users/newest.php @@ -0,0 +1,18 @@ +<?php +// newest users +$users = elgg_list_entities(array( + 'type' => 'user', + 'subtype'=> null, + 'full_view' => FALSE +)); + +?> + +<div class="elgg-module elgg-module-inline"> + <div class="elgg-head"> + <h3><?php echo elgg_echo('admin:users:newest'); ?></h3> + </div> + <div class="elgg-body"> + <?php echo $users; ?> + </div> +</div> diff --git a/views/default/admin/users/online.php b/views/default/admin/users/online.php new file mode 100644 index 000000000..dbda06066 --- /dev/null +++ b/views/default/admin/users/online.php @@ -0,0 +1,13 @@ +<?php + +$users_online = get_online_users(); + +?> +<div class="elgg-module elgg-module-inline"> + <div class="elgg-head"> + <h3><?php echo elgg_echo('admin:statistics:label:onlineusers'); ?></h3> + </div> + <div class="elgg-body"> + <?php echo $users_online; ?> + </div> +</div> diff --git a/views/default/annotation/default.php b/views/default/annotation/default.php new file mode 100644 index 000000000..5d29a53e2 --- /dev/null +++ b/views/default/annotation/default.php @@ -0,0 +1,40 @@ +<?php +/** + * Elgg default annotation view + * + * @note To add or remove from the annotation menu, register handlers for the menu:annotation hook. + * + * @uses $vars['annotation'] + */ + +$annotation = $vars['annotation']; + +$owner = get_entity($annotation->owner_guid); +if (!$owner) { + return true; +} +$icon = elgg_view_entity_icon($owner, 'tiny'); +$owner_link = "<a href=\"{$owner->getURL()}\">$owner->name</a>"; + +$menu = elgg_view_menu('annotation', array( + 'annotation' => $annotation, + 'sort_by' => 'priority', + 'class' => 'elgg-menu-hz float-alt', +)); + +$text = elgg_view("output/longtext", array("value" => $annotation->value)); + +$friendlytime = elgg_view_friendly_time($annotation->time_created); + +$body = <<<HTML +<div class="mbn"> + $menu + $owner_link + <span class="elgg-subtext"> + $friendlytime + </span> + $text +</div> +HTML; + +echo elgg_view_image_block($icon, $body); diff --git a/views/default/annotation/generic_comment.php b/views/default/annotation/generic_comment.php index d15ae2325..22a8d9211 100644 --- a/views/default/annotation/generic_comment.php +++ b/views/default/annotation/generic_comment.php @@ -2,15 +2,15 @@ /** * Elgg generic comment view * - * @uses $vars['annotation'] ElggAnnotation object - * @uses $vars['full'] Display fill view or brief view + * @uses $vars['annotation'] ElggAnnotation object + * @uses $vars['full_view'] Display fill view or brief view */ if (!isset($vars['annotation'])) { return true; } -$full_view = elgg_extract('full', $vars, true); +$full_view = elgg_extract('full_view', $vars, true); $comment = $vars['annotation']; @@ -23,34 +23,29 @@ if (!$entity || !$commenter) { $friendlytime = elgg_view_friendly_time($comment->time_created); $commenter_icon = elgg_view_entity_icon($commenter, 'tiny'); -$commenter_link = "<a href=\"{$commenter->getURL()}\" class=\"elgg-river-subject\">$commenter->name</a>"; +$commenter_link = "<a href=\"{$commenter->getURL()}\">$commenter->name</a>"; $entity_title = $entity->title ? $entity->title : elgg_echo('untitled'); $entity_link = "<a href=\"{$entity->getURL()}\">$entity_title</a>"; if ($full_view) { - - $delete_button = ''; - if ($comment->canEdit()) { - $url = "action/comments/delete?annotation_id=$comment->id"; - $delete_button = elgg_view("output/confirmlink", array( - 'href' => $url, - 'class' => 'right', - 'text' => elgg_view_icon('delete'), - 'confirm' => elgg_echo('deleteconfirm'), - 'text_encode' => false, - )); - } + $menu = elgg_view_menu('annotation', array( + 'annotation' => $comment, + 'sort_by' => 'priority', + 'class' => 'elgg-menu-hz float-alt', + )); $comment_text = elgg_view("output/longtext", array("value" => $comment->value)); $body = <<<HTML -$delete_button -$commenter_link -$comment_text -<span class="elgg-subtext"> - $friendlytime -</span> +<div class="mbn"> + $menu + $commenter_link + <span class="elgg-subtext"> + $friendlytime + </span> + $comment_text +</div> HTML; echo elgg_view_image_block($commenter_icon, $body); @@ -60,13 +55,15 @@ HTML; //@todo need link to actual comment! - $on = elgg_echo('on'); + $commented_on = elgg_echo('generic_comment:on', array($commenter_link, $entity_link)); + + $excerpt = elgg_get_excerpt($comment->value, 80); $body = <<<HTML <span class="elgg-subtext"> - $commenter_link $on $entity_link ($friendlytime) + $commented_on ($friendlytime): $excerpt </span> HTML; echo elgg_view_image_block($commenter_icon, $body); -}
\ No newline at end of file +} diff --git a/views/default/api/output.php b/views/default/api/output.php new file mode 100644 index 000000000..a7041c0f4 --- /dev/null +++ b/views/default/api/output.php @@ -0,0 +1,42 @@ +<?php +/** + * Elgg API default output + * This outputs the api in a human readable way. + * + * @package Elgg + * @subpackage Core + * + */ + +$result = $vars['result']; +$export = $result->export(); + +?> +<div id="api_result"> + <table width="100%"> + <tr><td width="100" valign="top"><b>Status:</b></td> <td> + <?php + if ($result instanceof SuccessResult) + echo "OK"; + else + echo "**** ERROR ({$export->status}) ****"; + ?> + </td></tr> + + <?php if ($export->message!="") { ?> + <tr><td width="100" valign="top"><b>Message:</b></td> <td><?php echo $export->message; ?></td></tr> + <?php } ?> + <?php if ($export->result) { ?> + <tr><td width="100" valign="top"><b>Result:</b></td> <td><pre><?php print_r($export->result); ?></pre></td></tr> + <?php } ?> + + + <?php if ($export->pam) { ?> + <tr><td width="100" valign="top"><b>PAM:</b></td> <td><pre><?php print_r($export->pam); ?></pre></td></tr> + <?php } ?> + + <?php if ($export->runtime_errors) { ?> + <tr><td width="100" valign="top"><b>Runtime:</b></td> <td><pre><?php print_r($export->runtime_errors); ?></pre></td></tr> + <?php } ?> + </table> +</div>
\ No newline at end of file diff --git a/views/default/blog/composer.php b/views/default/blog/composer.php deleted file mode 100644 index 135e70015..000000000 --- a/views/default/blog/composer.php +++ /dev/null @@ -1,10 +0,0 @@ -<?php -elgg_load_library('elgg:blog'); -$body_vars = blog_prepare_form_vars(); - -//hack! Elgg engine should take care of this, or blog/save form should be coded better -if (elgg_is_xhr() && isset($vars['container_guid'])) { - elgg_set_page_owner_guid($vars['container_guid']); -} - -echo elgg_view_form('blog/save', array(), array_merge($body_vars, $vars));
\ No newline at end of file diff --git a/views/default/bookmarks/composer.php b/views/default/bookmarks/composer.php deleted file mode 100644 index 52dfa69ca..000000000 --- a/views/default/bookmarks/composer.php +++ /dev/null @@ -1,3 +0,0 @@ -<?php -elgg_load_library('elgg:bookmarks'); -echo elgg_view_form('bookmarks/save', array(), $vars);
\ No newline at end of file diff --git a/views/default/cool_theme/css.php b/views/default/cool_theme/css.php deleted file mode 100644 index f0757aa00..000000000 --- a/views/default/cool_theme/css.php +++ /dev/null @@ -1,11 +0,0 @@ -<?php -/** - * Fixes/tweaks - */ - -?> -/* <style> -/**/ -.elgg-icon{vertical-align:middle;} dl,dt,dd{margin:0;padding:0;}.elgg-profile{display:block;}.elgg-profile > dt{float:left;width:120px;font-weight:700;color:#999;padding:10px 0;}.elgg-profile > dd{padding:10px 0 10px 120px;}.elgg-profile > dd ~ dd{border-top:1px solid #E9E9E9;}.elgg-profile > dd + dd{padding-left:0;margin-left:120px;} img{max-width:100%;}#groups-tools > .elgg-module{width:229px;}#facebook-topbar-logo{margin-top:-4px;font-size:20px;color:#FFF;text-shadow:0 0 1px #AAA;width:100px;text-align:center;}#facebook-header-logo a{color:#FFF;text-decoration:none;font-size:2.5em;}.elgg-form-small input,.elgg-form-small textarea{font-size:11px;}.elgg-image-block-small > .elgg-image{margin-right:5px;}.ui-tabs-hide{display:none;}.elgg-composer{border-top:1px solid #CCC;padding-top:6px;margin-top:7px;}.elgg-composer > h4{height:22px;display:inline-block;vertical-align:baseline;color:gray;}.elgg-composer > .ui-tabs-panel{margin-top:5px;border:1px solid #B4BBCD;padding:10px;}.messageboard-input{margin-bottom:5px;height:60px;}.elgg-attachment-description{margin-top:5px;}#thewire-form-composer #thewire-textarea{margin-top:0;}#facebook-header-login{bottom:25px;position:absolute;right:0;}#facebook-header-login label{color:#FFF;display:block;font-weight:400;padding:2px 2px 4px;}#facebook-header-login .elgg-foot > label{bottom:-16px;color:#98A9CA;cursor:pointer;left:0;position:absolute;}#facebook-header-login div{display:inline-block;margin-bottom:3px;padding-right:10px;}#facebook-header-login .elgg-input-text,#facebook-header-login .elgg-input-password{color:#000;font-size:11px;width:150px;border-color:#1D2A5B;margin:0;padding:3px 3px 4px;}#facebook-header-login .elgg-menu{position:absolute;margin-left:-160px;}#facebook-header-login .elgg-menu > li{display:inline-block;margin-right:10px;}#facebook-header-login .elgg-menu > li > a{color:#98A9CA;display:inline;}#facebook-header-login .elgg-menu > li > a:hover{text-decoration:underline;}#facebook-header-login .elgg-button-submit{position:relative;top:10px;} input[type=checkbox]{vertical-align:bottom;}.label-edit-head{ max-width: 490px;height: 100%;background-color: #eeeeee;background-repeat: repeat-x;background-image: -moz-linear-gradient(top, #f5f5f5 0%, #eeeeee 100%);background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#f5f5f5), color-stop(100%,#eeeeee));background-image: -webkit-linear-gradient(top, #f5f5f5 0%,#eeeeee 100%);background-image: -ms-linear-gradient(top, #f5f5f5 0%,#eeeeee 100%);background-image: -o-linear-gradient(top, #f5f5f5 0%,#eeeeee 100%);filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#f5f5f5', endColorstr='#eeeeee',GradientType=0 );background-image: linear-gradient(top, #f5f5f5 0%,#eeeeee 100%);border: 1px solid #e5e5e5;-webkit-border-radius: 4px;-moz-border-radius: 4px;border-radius: 4px;margin-bottom: 5px;padding: 5px 8px;} -.ui-autocomplete{background-color: #FFF;border: 1px solid #555;max-width:490px;} -.elgg-autocomplete-item{border-top: 1px solid #E9E9E9;}
\ No newline at end of file diff --git a/views/default/core/avatar/crop.php b/views/default/core/avatar/crop.php new file mode 100644 index 000000000..1c59842c8 --- /dev/null +++ b/views/default/core/avatar/crop.php @@ -0,0 +1,16 @@ +<?php +/** + * Avatar cropping view + * + * @uses vars['entity'] + */ + +?> +<div id="avatar-croppingtool" class="mtl ptm"> + <label><?php echo elgg_echo('avatar:crop:title'); ?></label> + <br /> + <p> + <?php echo elgg_echo("avatar:create:instructions"); ?> + </p> + <?php echo elgg_view_form('avatar/crop', array(), $vars); ?> +</div> diff --git a/views/default/core/avatar/upload.php b/views/default/core/avatar/upload.php new file mode 100644 index 000000000..6f9124192 --- /dev/null +++ b/views/default/core/avatar/upload.php @@ -0,0 +1,51 @@ +<?php +/** + * Avatar upload view + * + * @uses $vars['entity'] + */ + +$user_avatar = elgg_view('output/img', array( + 'src' => $vars['entity']->getIconUrl('medium'), + 'alt' => elgg_echo('avatar'), +)); + +$current_label = elgg_echo('avatar:current'); + +$remove_button = ''; +if ($vars['entity']->icontime) { + $remove_button = elgg_view('output/url', array( + 'text' => elgg_echo('remove'), + 'title' => elgg_echo('avatar:remove'), + 'href' => 'action/avatar/remove?guid=' . elgg_get_page_owner_guid(), + 'is_action' => true, + 'class' => 'elgg-button elgg-button-cancel mll', + )); +} + +$form_params = array('enctype' => 'multipart/form-data'); +$upload_form = elgg_view_form('avatar/upload', $form_params, $vars); + +?> + +<p class="mtm"> + <?php echo elgg_echo('avatar:upload:instructions'); ?> +</p> + +<?php + +$image = <<<HTML +<div id="current-user-avatar" class="mrl prl"> + <label>$current_label</label><br /> + $user_avatar +</div> +$remove_button +HTML; + +$body = <<<HTML +<div id="avatar-upload"> + $upload_form +</div> +HTML; + +echo elgg_view_image_block($image, $upload_form); diff --git a/views/default/core/friends/collection.php b/views/default/core/friends/collection.php new file mode 100644 index 000000000..1a330af01 --- /dev/null +++ b/views/default/core/friends/collection.php @@ -0,0 +1,64 @@ +<?php +/** + * View a friends collection + * + * @package Elgg + * @subpackage Core + * + * @uses $vars['collection'] The individual friends collection + */ + +$coll = $vars['collection']; + +if (is_array($vars['collection']->members)) { + $count = sizeof($vars['collection']->members); +} else { + $count = 0; +} + +echo "<li><h2>"; + +//as collections are private, check that the logged in user is the owner +if ($coll->owner_guid == elgg_get_logged_in_user_guid()) { + echo "<div class=\"friends_collections_controls\">"; + echo elgg_view('output/confirmlink', array( + 'href' => 'action/friends/collections/delete?collection=' . $coll->id, + 'class' => 'delete_collection', + 'text' => elgg_view_icon('delete'), + 'encode_text' => false, + )); + echo "</div>"; +} +echo $coll->name; +echo " (<span id=\"friends_membership_count{$vars['friendspicker']}\">{$count}</span>) </h2>"; + +// individual collection panels +$friends = $vars['collection']->entities; +if ($friends) { + $content = elgg_view('core/friends/collectiontabs', array( + 'owner' => elgg_get_logged_in_user_entity(), + 'collection' => $vars['collection'], + 'friendspicker' => $vars['friendspicker'], + )); + + echo elgg_view('input/friendspicker', array( + 'entities' => $friends, + 'value' => $vars['collection']->members, + 'content' => $content, + 'replacement' => '', + 'friendspicker' => $vars['friendspicker'], + )); +?> +<?php //@todo JS 1.8: no ?> + <script type="text/javascript"> + $(function () { + + $('#friends-picker_placeholder<?php echo $vars['friendspicker']; ?>').load(elgg.config.wwwroot + 'pages/friends/collections/pickercallback.php?username=<?php echo elgg_get_logged_in_user_entity()->username; ?>&type=list&collection=<?php echo $vars['collection']->id; ?>'); + + }); + </script> + <?php +} + +// close friends-picker div and the accordian list item +echo "</li>"; diff --git a/views/default/core/friends/collections.php b/views/default/core/friends/collections.php new file mode 100644 index 000000000..c6ee082c8 --- /dev/null +++ b/views/default/core/friends/collections.php @@ -0,0 +1,39 @@ +<?php +/** + * Elgg friends collections + * Lists a user's friends collections + * + * @package Elgg + * @subpackage Core + * + * @uses $vars['collections'] The array of friends collections + */ + +if (is_array($vars['collections']) && sizeof($vars['collections'])) { + echo "<ul id=\"friends_collections_accordian\">"; + + $friendspicker = 0; + foreach ($vars['collections'] as $collection) { + $friendspicker++; + echo elgg_view('core/friends/collection', array( + 'collection' => $collection, + 'friendspicker' => $friendspicker, + )); + } + + echo "</ul>"; + +} else { + echo elgg_echo("friends:nocollections"); +} + +?> +<?php //@todo JS 1.8: no ?> +<script> +$(function(){ + $('#friends_collections_accordian h2').click(function () { + $(this.parentNode).children("[class=friends-picker-main-wrapper]").slideToggle("fast"); + //return false; + }); +}); +</script> diff --git a/views/default/core/friends/collectiontabs.php b/views/default/core/friends/collectiontabs.php new file mode 100644 index 000000000..bf12e0edb --- /dev/null +++ b/views/default/core/friends/collectiontabs.php @@ -0,0 +1,62 @@ +<?php +/** + * Elgg friends collections + * Lists a user's friends collections + * + * @package Elgg + * @subpackage Core + * + * @uses $vars['collections'] The array of friends collections + */ + +$friendspicker = $vars['friendspicker']; + +$collectionid = $vars['collection']->id; +$ownerid = $vars['owner']->getGUID(); + +?> + +<ul class="elgg-tabs"> + <li class="elgg-state-selected"> + <a href="#" class="collectionmembers<?php echo $friendspicker; ?>"> + <?php echo elgg_echo('friends:collections:members'); ?> + </a> + </li> + <li> + <a href="#" class="editmembers<?php echo $friendspicker; ?>"> + <?php echo elgg_echo('friends:collections:edit'); ?> + </a> + </li> +</ul> + +<?php //@todo JS 1.8: no ?> +<script type="text/javascript"> +$(function () { + + $('a.collectionmembers<?php echo $friendspicker; ?>').click(function () { + // load collection members pane + $('#friends-picker_placeholder<?php echo $friendspicker; ?>').load('<?php echo elgg_get_site_url(); ?>pages/friends/collections/pickercallback.php?username=<?php echo elgg_get_logged_in_user_entity()->username; ?>&type=list&collection=<?php echo $collectionid; ?>&friendspicker=<?php echo $friendspicker; ?>'); + + // remove selected state from previous tab + $(this).parent().parent().find("li.elgg-state-selected").removeClass("elgg-state-selected"); + // add selected class to current tab + $(this).parent().addClass("elgg-state-selected"); + + return false; + }); + + $('a.editmembers<?php echo $friendspicker; ?>').click(function () { + // load friends picker pane + $('#friends-picker_placeholder<?php echo $friendspicker; ?>').load('<?php echo elgg_get_site_url(); ?>pages/friends/collections/pickercallback.php?username=<?php echo elgg_get_logged_in_user_entity()->username; ?>&type=picker&collection=<?php echo $collectionid; ?>&friendspicker=<?php echo $friendspicker; ?>'); + + // remove selected state from previous tab + $(this).parent().parent().find("li.elgg-state-selected").removeClass("elgg-state-selected"); + // add selected class to current tab + $(this).parent().addClass("elgg-state-selected"); + + return false; + }); + + +}); +</script> diff --git a/views/default/core/friends/tablelist.php b/views/default/core/friends/tablelist.php new file mode 100644 index 000000000..339b9ab1b --- /dev/null +++ b/views/default/core/friends/tablelist.php @@ -0,0 +1,50 @@ +<?php +/** + * Elgg friends picker + * Lists the friends picker + * + * @package Elgg + * @subpackage Core + * + * @uses $vars['entities'] The array of ElggUser objects + */ + +if (is_array($vars['entities'])) { + +?> + +<table cellspacing="0" id="friendspicker-members-table"> + <tr> + <?php + $column = 0; + foreach($vars['entities'] as $entity) { + if (!($entity instanceof ElggEntity)) { + $entity = get_entity($entity); + } + + if ($entity instanceof ElggEntity) { + ?> + <td style="width:25px;"> + <div style="width: 25px;" class="mbl"> + <?php echo elgg_view_entity_icon($entity, 'tiny'); ?> + </div> + </td> + <td style="width: 200px;" class="pas"> + <?php echo $entity->name; ?> + </td> + <?php + $column++; + if ($column == 3) { + echo "</tr><tr>"; + $column = 0; + } + } + } + +if ($column < 3 && $column != 0) echo "</tr>"; + echo "</table>"; +} + +if (isset($vars['content'])) { + echo $vars['content']; +}
\ No newline at end of file diff --git a/views/default/core/friends/tablelistcountupdate.php b/views/default/core/friends/tablelistcountupdate.php new file mode 100644 index 000000000..7a0da1caa --- /dev/null +++ b/views/default/core/friends/tablelistcountupdate.php @@ -0,0 +1,17 @@ +<?php +/** + * Elgg friends picker count updater + * Updates the friends count on a collection + * + * @package Elgg + * @subpackage Core + * + * @uses $vars['count'] The count + * @uses $vars['friendspicker'] The friendspicker counter number + */ + +?> +<?php //@todo JS 1.8: no ?> +<script language="text/javascript"> + $("#friends_membership_count<?php echo $vars['friendspicker']; ?>").html("<?php echo $vars['count']; ?>"); +</script>
\ No newline at end of file diff --git a/views/default/core/river/filter.php b/views/default/core/river/filter.php new file mode 100644 index 000000000..9b7fadaa8 --- /dev/null +++ b/views/default/core/river/filter.php @@ -0,0 +1,38 @@ +<?php +/** + * Content filter for river + * + * @uses $vars[] + */ + +// create selection array +$options = array(); +$options['type=all'] = elgg_echo('river:select', array(elgg_echo('all'))); +$registered_entities = elgg_get_config('registered_entities'); + +if (!empty($registered_entities)) { + foreach ($registered_entities as $type => $subtypes) { + // subtype will always be an array. + if (!count($subtypes)) { + $label = elgg_echo('river:select', array(elgg_echo("item:$type"))); + $options["type=$type"] = $label; + } else { + foreach ($subtypes as $subtype) { + $label = elgg_echo('river:select', array(elgg_echo("item:$type:$subtype"))); + $options["type=$type&subtype=$subtype"] = $label; + } + } + } +} + +$params = array( + 'id' => 'elgg-river-selector', + 'options_values' => $options, +); +$selector = $vars['selector']; +if ($selector) { + $params['value'] = $selector; +} +echo elgg_view('input/dropdown', $params); + +elgg_load_js('elgg.ui.river'); diff --git a/views/default/core/settings/account/email.php b/views/default/core/settings/account/email.php index bb809958d..4bcdbb100 100644 --- a/views/default/core/settings/account/email.php +++ b/views/default/core/settings/account/email.php @@ -10,7 +10,7 @@ $user = elgg_get_page_owner_entity(); if ($user) { $title = elgg_echo('email:settings'); - $content = elgg_echo('email:address:label') . ' :<br /> '; + $content = elgg_echo('email:address:label') . ': '; $content .= elgg_view('input/email', array( 'name' => 'email', 'value' => $user->email, diff --git a/views/default/core/settings/account/name.php b/views/default/core/settings/account/name.php index af1b9a1a7..e356146a3 100644 --- a/views/default/core/settings/account/name.php +++ b/views/default/core/settings/account/name.php @@ -9,7 +9,7 @@ $user = elgg_get_page_owner_entity(); if ($user) { $title = elgg_echo('user:name:label'); - $content = elgg_echo('name') . ' :<br />'; + $content = elgg_echo('name') . ': '; $content .= elgg_view('input/text', array( 'name' => 'name', 'value' => $user->name, diff --git a/views/default/core/settings/account/password.php b/views/default/core/settings/account/password.php index f17f605c1..4857034b2 100644 --- a/views/default/core/settings/account/password.php +++ b/views/default/core/settings/account/password.php @@ -14,17 +14,17 @@ if ($user) { // only make the admin user enter current password for changing his own password. $admin = ''; if (!elgg_is_admin_logged_in() || elgg_is_admin_logged_in() && $user->guid == elgg_get_logged_in_user_guid()) { - $admin .= elgg_echo('user:current_password:label') . ' :<br />'; - $admin .= elgg_view('input/password', array('name' => 'current_password', 'placeholder' => '••••••')); + $admin .= elgg_echo('user:current_password:label') . ': '; + $admin .= elgg_view('input/password', array('name' => 'current_password')); $admin = "<p>$admin</p>"; } - $password = elgg_echo('user:password:label') . ' :<br />'; - $password .= elgg_view('input/password', array('name' => 'password', 'placeholder' => '••••••')); + $password = elgg_echo('user:password:label') . ': '; + $password .= elgg_view('input/password', array('name' => 'password')); $password = "<p>$password</p>"; - $password2 = elgg_echo('user:password2:label') . ' :<br />'; - $password2 .= elgg_view('input/password', array('name' => 'password2', 'placeholder' => '••••••')); + $password2 = elgg_echo('user:password2:label') . ': '; + $password2 .= elgg_view('input/password', array('name' => 'password2')); $password2 = "<p>$password2</p>"; $content = $admin . $password . $password2; diff --git a/views/default/core/settings/statistics/numentities.php b/views/default/core/settings/statistics/numentities.php index ce1705a2e..3782fd8bc 100644 --- a/views/default/core/settings/statistics/numentities.php +++ b/views/default/core/settings/statistics/numentities.php @@ -7,7 +7,7 @@ */ // Get entity statistics -$entity_stats = get_entity_statistics(elgg_get_logged_in_user_guid()); +$entity_stats = get_entity_statistics(elgg_get_page_owner_guid()); if ($entity_stats) { $rows = ''; diff --git a/views/default/core/settings/statistics/online.php b/views/default/core/settings/statistics/online.php index ce7ff35fb..1385ff60f 100644 --- a/views/default/core/settings/statistics/online.php +++ b/views/default/core/settings/statistics/online.php @@ -6,14 +6,7 @@ * @subpackage Core */ -$user = elgg_get_logged_in_user_entity(); - -$logged_in = 0; -$log = get_system_log($user->guid, "login", "", 'user', '', 1); - -if ($log) { - $logged_in = $log[0]->time_created; -} +$user = elgg_get_page_owner_entity(); $label_name = elgg_echo('usersettings:statistics:label:name'); $label_email = elgg_echo('usersettings:statistics:label:email'); @@ -21,7 +14,7 @@ $label_member_since = elgg_echo('usersettings:statistics:label:membersince'); $label_last_login = elgg_echo('usersettings:statistics:label:lastlogin'); $time_created = date("r", $user->time_created); -$last_login = date("r", $logged_in); +$last_login = date("r", $user->last_login); $title = elgg_echo('usersettings:statistics:yourdetails'); diff --git a/views/default/core/walled_garden/login.php b/views/default/core/walled_garden/login.php index 34126e411..42b79607d 100644 --- a/views/default/core/walled_garden/login.php +++ b/views/default/core/walled_garden/login.php @@ -4,13 +4,9 @@ */ $title = elgg_get_site_entity()->name; - -/** $welcome = elgg_echo('walled_garden:welcome'); - */ -$welcome .= $title; +$welcome .= ': <br/>' . $title; - $menu = elgg_view_menu('walled_garden', array( 'sort_by' => 'priority', 'class' => 'elgg-menu-general elgg-menu-hz', @@ -18,21 +14,18 @@ $menu = elgg_view_menu('walled_garden', array( $login_box = elgg_view('core/account/login_box', array('module' => 'walledgarden-login')); -$content = <<<HTML - +echo <<<HTML <div class="elgg-col elgg-col-1of2"> <div class="elgg-inner"> - <h1 class="elgg-heading-walledgarden">$welcome</h1><br /> - A message you can edit in cool_theme/views/default/core/walled_garden/login.php :-).<br /> + <h1 class="elgg-heading-walledgarden"> + $welcome + </h1> + $menu </div> </div> <div class="elgg-col elgg-col-1of2"> - <div class="elgg-inner">$login_box</div> + <div class="elgg-inner"> + $login_box + </div> </div> HTML; - -echo elgg_view_module('walledgarden', '', $content, array( - 'class' => 'elgg-walledgarden-double', - 'header' => ' ', - 'footer' => ' ', -));
\ No newline at end of file diff --git a/views/default/core/walled_garden/lost_password.php b/views/default/core/walled_garden/lost_password.php new file mode 100644 index 000000000..82f8caf50 --- /dev/null +++ b/views/default/core/walled_garden/lost_password.php @@ -0,0 +1,13 @@ +<?php +/** + * Walled garden lost password + */ + +$title = elgg_echo('user:password:lost'); +$body = elgg_view_form('user/requestnewpassword'); +echo <<<HTML +<div class="elgg-inner"> + <h3>$title</h3> + $body +</div> +HTML; diff --git a/views/default/core/walled_garden/register.php b/views/default/core/walled_garden/register.php new file mode 100644 index 000000000..1ce2f8716 --- /dev/null +++ b/views/default/core/walled_garden/register.php @@ -0,0 +1,17 @@ +<?php +/** + * Walled garden registration + */ + +$title = elgg_echo('register'); +$body = elgg_view_form('register', array(), array( + 'friend_guid' => (int) get_input('friend_guid', 0), + 'invitecode' => get_input('invitecode'), +)); + +echo <<<__HTML +<div class="elgg-inner"> + <h2>$title</h2> + $body +</div> +__HTML; diff --git a/views/default/css.php b/views/default/css.php new file mode 100644 index 000000000..e67c79c36 --- /dev/null +++ b/views/default/css.php @@ -0,0 +1,7 @@ +<?php +/** + * + * This is a deprecated CSS view used in Elgg 1.0-1.7. + * Please use the view 'css/elgg' now. + * + */ diff --git a/views/default/css/admin.php b/views/default/css/admin.php new file mode 100644 index 000000000..c435621b2 --- /dev/null +++ b/views/default/css/admin.php @@ -0,0 +1,1677 @@ +<?php +/** + * Elgg Admin CSS + * + * This is a distinct theme from the theme of the site. There are dependencies + * on the HTML created by the views in Elgg core. + * + * @package Elgg.Core + * @subpackage UI + */ + +?> + +/* *************************************** + RESET CSS +*************************************** */ +html, body, div, span, applet, object, iframe, +h1, h2, h3, h4, h5, h6, p, blockquote, pre, +a, abbr, acronym, address, big, cite, code, +del, dfn, em, font, img, ins, kbd, q, s, samp, +small, strike, strong, sub, sup, tt, var, +dl, dt, dd, ol, ul, li, +fieldset, form, label, legend, +table, caption, tbody, tfoot, thead, tr, th, td { + margin: 0; + padding: 0; + border: 0; + font-weight: inherit; + font-style: inherit; + font-size: 100%; + font-family: inherit; + vertical-align: baseline; +} +<?php // force vertical scroll bar ?> +html, body { + height: 100%; + margin-bottom: 1px; +} +img { + border-width: 0; + border-color: transparent; +} +ol, ul { + list-style: none; +} +em, i { + font-style: italic; +} +ins { + text-decoration: none; +} +del { + text-decoration:line-through; +} +strong, b { + font-weight: bold; +} +table { + border-collapse: collapse; + border-spacing: 0; +} +caption, th, td { + text-align: left; + font-weight: normal; + vertical-align: top; +} +blockquote:before, blockquote:after, +q:before, q:after { + content: ""; +} +blockquote, q { + quotes: "" ""; +} + +/* *************************************** + BASICS +*************************************** */ +body { + background-color: #eee; + font-size: 80%; + line-height: 1.4em; + font-family: "Lucida Grande",Arial,Tahoma,Verdana,sans-serif; +} +h1, h2, h3, h4, h5, h6 { + font-weight: bold; + line-height: auto; + color: #666; +} +h1 { font-size: 1.8em; } +h2 { font-size: 1.5em; line-height: 1.1em; } +h3 { font-size: 1.2em; } +h4 { font-size: 1.0em; } +h5 { font-size: 0.9em; } +h6 { font-size: 0.8em; } + +a { + color: #333; + text-decoration: none; +} +a:hover { + color: black; + text-decoration: underline; +} +pre, code { + background-color: #EEE; + border: 1px solid #DDD; + color: #444; + font-family: Monaco, "Courier New", Courier, monospace; + font-size: 13px; + overflow: auto; + margin: 15px 0; + padding: 5px; +} +blockquote { + background: #EBF5FF; +} +p { + margin-bottom: 15px; +} + +.clearfloat { + clear: both; +} + +/* Clearfix! */ +.clearfix:after, +.elgg-grid:after, +.elgg-layout:after, +.elgg-inner:after, +.elgg-page-header:after, +.elgg-page-footer:after, +.elgg-head:after, +.elgg-foot:after, +.elgg-col:after, +.elgg-image-block:after { + content: "."; + display: block; + height: 0; + clear: both; + visibility: hidden; +} + +.elgg-body { + width: auto; + word-wrap: break-word; + overflow: hidden; +} +.elgg-body:after { + display: block; + visibility: hidden; + height: 0 !important; + line-height: 0; + overflow: hidden; + font-size: xx-large; + content: " x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x "; +} + +/* *************************************** + PAGE WRAPPER +*************************************** */ +.elgg-page > .elgg-inner { + margin: 0 auto; + padding: 20px 40px 0; + min-width: 800px; + max-width: 1600px; +} + +/* *************************************** + HEADER +*************************************** */ +.elgg-page-header { + background-color: #111; + border: 1px solid #999; + padding: 20px 20px; +} +.elgg-heading-site { + font-size: 1.8em; + float: left; +} +.elgg-heading-site a { + color: #ffffff; + text-decoration: none; +} +.elgg-heading-site a:hover { + color: white; + text-decoration: none; +} +.elgg-menu-user { + float: right; + margin-top: 5px; +} +.elgg-menu-user, .elgg-menu-user a { + color: #999999; +} +.elgg-menu-user a { + text-decoration: underline; +} +.elgg-menu-user a:hover { + color: white; +} +.elgg-menu-user li { + display: inline; +} +.elgg-menu-user li:after { + content: "|"; + display: inline-block; + font-weight: normal; + margin-left: 8px; + margin-right: 4px; +} +.elgg-menu-user li:last-child:after { + content: ""; +} + +/* *************************************** + MESSAGES +*************************************** */ +.elgg-page-messages { + padding: 20px 0 0; + width: 500px; + margin-bottom: -10px; +} +.elgg-system-messages p { + margin: 0; +} +.elgg-message { + padding: 10px; + margin-bottom: 10px; + border: 2px solid #ddd; + cursor: pointer; +} +.elgg-message.elgg-state-error { + background: #fbe3e4; + color: #8a1f11; + border-color: #fbc2c4; + font-weight: bold; +} +.elgg-message.elgg-state-success { + background: #e6efc2; + color: #264409; + border-color: #c6d880; +} + +.elgg-admin-notices { + padding-bottom: 15px; +} +.elgg-admin-notices p { + background-color: #BDE5F8; + color: black; + border: 1px solid blue; + font-weight: bold; + padding: 3px 0px 3px 10px; + + -webkit-box-shadow: 0 2px 5px rgba(0, 0, 0, 0.45); + -moz-box-shadow: 0 2px 5px rgba(0, 0, 0, 0.45); + box-shadow: 0 2px 5px rgba(0, 0, 0, 0.45); + + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; +} +.elgg-admin-notices a.elgg-admin-notice { + float: right; + text-decoration: none; +} + +.elgg-admin-notices a { + text-decoration: underline; +} + +/* *************************************** + BODY +*************************************** */ +.elgg-page-body { + padding: 20px 0; +} +.elgg-main { + background-color: #fff; + border: 1px solid #ccc; + padding: 20px; + position: relative; + min-height: 400px; +} +.elgg-sidebar { + width: 210px; + float: right; + margin-left: 30px; +} +.elgg-main > .elgg-head { + margin-bottom: 10px; +} +.elgg-main h2 { + color: #333333; +} + +/* *************************************** + FOOTER +*************************************** */ +.elgg-page-footer { + background-color: #111; + border: 1px solid #999; + padding: 10px 20px; + margin-bottom: 10px; +} +.elgg-page-footer a { + color: #ddd; + font-weight: bold; + text-decoration: none; +} +.elgg-page-footer a:hover { + text-decoration: underline; +} + +/* *************************************** + MODULES +*************************************** */ +.elgg-module { + overflow: hidden; +} +.elgg-module-main { + background-color: #fff; + border: 1px solid #ccc; + padding: 10px; +} +.elgg-module-main > .elgg-head { + margin-bottom: 5px; +} +.elgg-module-info > .elgg-head { + margin-bottom: 10px; +} +.elgg-module-inline { + margin: 20px 0; +} +.elgg-module-inline > .elgg-head { + background-color: #999; + color: white; + padding: 5px; + margin-bottom: 10px; + + -webkit-border-radius: 3px; + -moz-border-radius: 3px; + border-radius: 3px; +} +.elgg-module-inline > .elgg-head h3 { + color: white; +} + +/* *************************************** + TABLE +*************************************** */ +.elgg-table { + width: 100%; + border-top: 1px solid #ccc; +} +.elgg-table td, .elgg-table th { + background: white; + border: 1px solid #ccc; + padding: 4px 8px; + vertical-align: middle; +} +.elgg-table th { + background-color: #ddd; +} +.elgg-table .alt td { + background: #eee; +} +.elgg-table input[type=checkbox] { + margin-top: 3px; +} + +.elgg-table-alt { + width: 100%; + border-top: 1px solid #ccc; +} +.elgg-table-alt th { + background-color: #eee; + font-weight: bold; +} +.elgg-table-alt td, th { + padding: 2px 4px; + border-bottom: 1px solid #ccc; +} +.elgg-table-alt td:first-child { + width: 200px; +} +.elgg-table-alt tr:hover { + background: #E4E4E4; +} + +/* *************************************** + LISTS AND IMAGE BLOCK +*************************************** */ +.elgg-image-block { + padding: 3px 0; +} +.elgg-image-block .elgg-image { + float: left; + margin-right: 5px; +} +.elgg-image-block .elgg-image-alt { + float: right; + margin-left: 5px; +} +.elgg-item { + margin: 3px; +} +.elgg-list-simple li { + margin-bottom: 5px; +} +.elgg-list-distinct { + border-top: 1px dotted #CCCCCC; + margin: 5px 0; + clear: both; +} +.elgg-list-distinct > li { + border-bottom: 1px dotted #CCCCCC; +} + +/* *************************************** + FORMS AND INPUT +*************************************** */ +label { + font-weight: bold; + color: #333333; + font-size: 110%; +} +fieldset > div { + margin-bottom: 15px; +} +fieldset > div:last-child { + margin-bottom: 0; +} +input { + font: 120% Arial, Helvetica, sans-serif; + padding: 5px; + border: 1px solid #ccc; + color: #666; + + -webkit-border-radius: 5px; + -moz-border-radius: 5px; + border-radius: 5px; + margin: 0; +} + +/* default elgg core input field classes */ +.elgg-input-text, +.elgg-input-tags, +.elgg-input-url, +.elgg-input-plaintext, +.elgg-input-longtext { + width: 98%; +} +textarea { + height: 100px; +} +.elgg-input-thin { + width: 400px; +} +.elgg-input-natural { + width: auto; +} + +.elgg-button { + font-size: 14px; + font-weight: bold; + text-decoration: none; + + -webkit-border-radius: 5px; + -moz-border-radius: 5px; + border-radius: 5px; + + width: auto; + padding: 2px 4px; + cursor: pointer; +} +a.elgg-button { + padding: 3px 6px; +} + +.elgg-button + .elgg-button { + margin-left: 5px; +} + +.elgg-button-submit, +.elgg-button-action { + color: white; + border: 1px solid #333; + background-color: #333; + text-shadow: 1px 1px 0px black; +} +.elgg-button-submit:hover, +.elgg-button-action:hover { + color: white; + background-color: #000; + text-decoration: none; +} +.elgg-button-submit.elgg-state-disabled, +.elgg-button-action.elgg-state-disabled { + color: #999; + cursor: default; +} + +.elgg-button-cancel { + color: #333; + background-color: #999; + border: 1px solid #999; +} +.elgg-button-cancel:hover { + color: #222; + background-color: #666; + text-decoration: none; +} + +.elgg-form-useradd input[type=text], +.elgg-form-useradd input[type=password] { + width: 300px; +} + +.elgg-form-settings { + max-width: 800px; +} + +/* ************************************** + DATE PICKER +*************************************** */ +.ui-datepicker { + margin-top: 3px; + padding: 3px 3px 0; + border: 1px solid #ccc; + background-color: white; +} +.ui-datepicker-header { + padding: 2px 0; + border: 1px solid #ccc; + background-color: #eee; + border-radius: 5px; + -moz-border-radius: 5px; + -webkit-border-radius: 5px; +} +.ui-datepicker-prev, .ui-datepicker-next { + position: absolute; + top: 9px; + cursor: pointer; +} +.ui-datepicker-prev { + left: 6px; +} +.ui-datepicker-next { + right: 6px; +} +.ui-datepicker-title { + line-height: 1.8em; + margin: 0 30px; + text-align: center; + font-weight: bold; +} +.ui-datepicker-calendar { + margin-bottom: 2px; +} +.ui-datepicker th { + border: none; + font-weight: bold; + padding: 5px 6px; + text-align: center; +} +.ui-datepicker td { + padding: 1px; +} +.ui-datepicker td span, .ui-datepicker td a { + display: block; + padding: 2px; + line-height: 1.2em; + text-align: right; + text-decoration: none; +} +.ui-datepicker-calendar .ui-state-default { + border: 1px solid #ccc; + color: #555; + background: #fafafa; +} +.ui-datepicker-calendar .ui-state-hover { + border: 1px solid #aaa; + color: #333; + background: #ccc; +} +.ui-datepicker-calendar .ui-state-active, +.ui-datepicker-calendar .ui-state-active.ui-state-hover { + font-weight: bold; + border: 1px solid #999; + color: #333; + background: #ddd; +} + +/* *************************************** + AUTOCOMPLETE +*************************************** */ +<?php //autocomplete will expand to fullscreen without max-width ?> +.ui-autocomplete { + position: absolute; + cursor: default; +} +.elgg-autocomplete-item .elgg-body { + max-width: 600px; +} +.ui-autocomplete { + background-color: white; + border: 1px solid #ccc; + overflow: hidden; + + -webkit-border-radius: 5px; + -moz-border-radius: 5px; + border-radius: 5px; +} +.ui-autocomplete .ui-menu-item { + padding: 0px 4px; + + -webkit-border-radius: 5px; + -moz-border-radius: 5px; + border-radius: 5px; +} +.ui-autocomplete .ui-menu-item:hover { + background-color: #eee; +} +.ui-autocomplete a:hover { + text-decoration: none; + color: #4690D6; +} +.ui-autocomplete a.ui-state-hover { + background-color: #eee; + display: block; +} + +/* *************************************** + USER PICKER +*************************************** */ +.elgg-user-picker-list li:first-child { + border-top: 1px dotted #ccc; + margin-top: 5px; +} +.elgg-user-picker-list > li { + border-bottom: 1px dotted #ccc; +} + +/* *************************************** + FRIENDS PICKER +*************************************** */ +.friends-picker-main-wrapper { + margin-bottom: 15px; +} +.friends-picker-container h3 { + font-size:4em !important; + text-align: left; + margin:10px 0 20px !important; + color:#999 !important; + background: none !important; + padding:0 !important; +} +.friends-picker .friends-picker-container .panel ul { + text-align: left; + margin: 0; + padding:0; +} +.friends-picker-wrapper { + margin: 0; + padding:0; + position: relative; + width: 730px; +} +.friends-picker { + position: relative; + overflow: hidden; + margin: 0; + padding:0; + width: 730px; + height: auto; + background-color: #dedede; + + -webkit-border-radius: 8px; + -moz-border-radius: 8px; + border-radius: 8px; +} +.friendspicker-savebuttons { + background: white; + + -webkit-border-radius: 8px; + -moz-border-radius: 8px; + border-radius: 8px; + + margin:0 10px 10px; +} +.friends-picker .friends-picker-container { /* long container used to house end-to-end panels. Width is calculated in JS */ + position: relative; + left: 0; + top: 0; + width: 100%; + list-style-type: none; +} +.friends-picker .friends-picker-container .panel { + float:left; + height: 100%; + position: relative; + width: 730px; + margin: 0; + padding:0; +} +.friends-picker .friends-picker-container .panel .wrapper { + margin: 0; + padding:4px 10px 10px 10px; + min-height: 230px; +} +.friends-picker-navigation { + margin: 0 0 10px; + padding:0 0 10px; + border-bottom:1px solid #ccc; +} +.friends-picker-navigation ul { + list-style: none; + padding-left: 0; +} +.friends-picker-navigation ul li { + float: left; + margin:0; + background:white; +} +.friends-picker-navigation a { + font-weight: bold; + text-align: center; + background: white; + color: #999; + text-decoration: none; + display: block; + padding: 0; + width:20px; + + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; +} +.tabHasContent { + background: white; + color:#333 !important; +} +.friends-picker-navigation li a:hover { + background: #333; + color:white !important; +} +.friends-picker-navigation li a.current { + background: #4690D6; + color:white !important; +} +.friends-picker-navigation-l, .friends-picker-navigation-r { + position: absolute; + top: 46px; + text-indent: -9000em; +} +.friends-picker-navigation-l a, .friends-picker-navigation-r a { + display: block; + height: 40px; + width: 40px; +} +.friends-picker-navigation-l { + right: 48px; + z-index:1; +} +.friends-picker-navigation-r { + right: 0; + z-index:1; +} +.friends-picker-navigation-l { + background: url("<?php echo elgg_get_site_url(); ?>_graphics/friendspicker.png") no-repeat left top; +} +.friends-picker-navigation-r { + background: url("<?php echo elgg_get_site_url(); ?>_graphics/friendspicker.png") no-repeat -60px top; +} +.friends-picker-navigation-l:hover { + background: url("<?php echo elgg_get_site_url(); ?>_graphics/friendspicker.png") no-repeat left -44px; +} +.friends-picker-navigation-r:hover { + background: url("<?php echo elgg_get_site_url(); ?>_graphics/friendspicker.png") no-repeat -60px -44px; +} +.friendspicker-savebuttons .elgg-button-submit, +.friendspicker-savebuttons .elgg-button-cancel { + margin:5px 20px 5px 5px; +} +.friendspicker-members-table { + background: #dedede; + + -webkit-border-radius: 8px; + -moz-border-radius: 8px; + border-radius: 8px; + + margin:10px 0 0; + padding:10px 10px 0; +} + +/* *************************************** + PAGINATION +*************************************** */ +.elgg-pagination { + margin: 10px 0; + display: block; + text-align: center; +} +.elgg-pagination li { + display: inline; + margin: 0 6px 0 0; + text-align: center; +} +.elgg-pagination a, .elgg-pagination span { + padding: 2px 6px; + color: #333; + border: 1px solid #333; + font-size: 12px; + text-decoration: none; +} +.elgg-pagination a:hover { + background: #333; + color: white; + text-decoration: none; +} +.elgg-pagination .elgg-state-disabled span { + color: #CCC; + border-color: #CCC; +} +.elgg-pagination .elgg-state-selected span { + color: #000; + border-color: #ccc; +} + +/* *************************************** + TABS +*************************************** */ +.elgg-tabs { + margin-bottom: 5px; + border-bottom: 1px solid #ccc; + display: table; + width: 100%; +} +.elgg-tabs li { + float: left; + border: 1px solid #ccc; + border-bottom-width: 0; + background: #eee; + margin: 0 0 0 10px; +} +.elgg-tabs a { + text-decoration: none; + display: block; + padding: 3px 10px 0 10px; + text-align: center; + height: 21px; + color: #999; +} +.elgg-tabs a:hover { + background: #dedede; + color:#333; +} +.elgg-tabs .elgg-state-selected { + border-color: #ccc; + background: white; +} +.elgg-tabs .elgg-state-selected a { + position: relative; + top: 2px; + background: white; +} + +/* *************************************** + SIDEBAR MENU +*************************************** */ +.elgg-admin-sidebar-menu a { + border: 1px solid red; + display: block; + padding: 5px; + color: #333; + cursor: pointer; + text-decoration: none; + margin-bottom: 2px; + border: 1px solid #CCC; + + -webkit-border-radius: 5px; + -moz-border-radius: 5px; + border-radius: 5px; +} +.elgg-admin-sidebar-menu a:hover { + text-decoration: none; + background: black; + color: white; + border: 1px solid black; +} +.elgg-admin-sidebar-menu li.elgg-state-selected > a { + background-color: #BBB; +} +.elgg-admin-sidebar-menu .elgg-menu-closed:before { + content: "\25B8"; + padding-right: 4px; +} +.elgg-admin-sidebar-menu .elgg-menu-opened:before { + content: "\25BE"; + padding-right: 4px; +} +.elgg-admin-sidebar-menu .elgg-child-menu { + display: none; + padding-left: 30px; +} +.elgg-admin-sidebar-menu li.elgg-state-selected > ul { + display: block; +} +.elgg-admin-sidebar-menu h2 { + padding-bottom: 5px; +} +.elgg-admin-sidebar-menu ul.elgg-menu-page { + padding-bottom: 15px; +} + +/* *************************************** + TITLE MENU +*************************************** */ +.elgg-menu-title { + float: right; +} +.elgg-menu-title > li { + display: inline-block; + margin-left: 4px; +} + +/* *************************************** + FOOTER MENU +*************************************** */ +.elgg-menu-footer { + color: gray; +} +.elgg-menu-footer li { + float: left; +} +.elgg-menu-footer li:after { + content: "\007C"; + display: inline-block; + padding: 0 4px 0 4px; + font-weight: normal; +} +.elgg-menu-footer li:last-child:after { + content: ""; +} + +/* *************************************** + GENERAL MENU +*************************************** */ +.elgg-menu-general > li, +.elgg-menu-general > li > a { + display: inline-block; + color: #999; +} + +.elgg-menu-general > li:after { + content: "\007C"; + padding: 0 4px; +} + +/* *************************************** + HOVER MENU +*************************************** */ +.elgg-menu-hover { + display: none; + position: absolute; + z-index: 10000; + + width: 165px; + border: solid 1px #E5E5E5; + border-color: #E5E5E5 #999 #999 #E5E5E5; + background-color: #FFF; + + -webkit-box-shadow: 2px 2px 6px rgba(0, 0, 0, 0.50); + -moz-box-shadow: 2px 2px 6px rgba(0, 0, 0, 0.50); + box-shadow: 2px 2px 6px rgba(0, 0, 0, 0.50); +} +.elgg-menu-hover > li { + border-bottom: 1px solid #ddd; +} +.elgg-menu-hover > li:last-child { + border-bottom: none; +} +.elgg-menu-hover .elgg-heading-basic { + display: block; +} +.elgg-menu-hover a { + display: block; + padding: 2px 8px; + font-size: 92%; +} +.elgg-menu-hover a:hover { + background: #ccc; + text-decoration: none; +} +.elgg-menu-hover-admin a { + color: red; +} +.elgg-menu-hover-admin a:hover { + color: white; + background-color: red; +} + +/* *************************************** + ENTITY MENU +*************************************** */ +<?php // height depends on line height/font size ?> +.elgg-menu-entity, .elgg-menu-annotation { + float: right; + margin-left: 15px; + font-size: 90%; + color: #666; + line-height: 16px; + height: 16px; +} +.elgg-menu-entity > li, .elgg-menu-annotation > li { + margin-left: 15px; +} +.elgg-menu-entity > li > a, .elgg-menu-annotation > li > a { + color: #aaa; +} +<?php // need to override .elgg-menu-hz ?> +.elgg-menu-entity > li > a, .elgg-menu-annotation > li > a { + display: block; +} +.elgg-menu-entity > li > span, .elgg-menu-annotation > li > span { + vertical-align: baseline; +} + +/* *************************************** + WIDGET MENU +*************************************** */ +.elgg-menu-widget > li { + position: absolute; + top: 4px; + display: inline-block; + width: 18px; + height: 18px; + padding: 2px 2px 0 0; +} +.elgg-menu-widget > .elgg-menu-item-collapse { + left: 5px; +} +.elgg-menu-widget > .elgg-menu-item-delete { + right: 5px; +} +.elgg-menu-widget > .elgg-menu-item-settings { + right: 25px; +} + +/* *************************************** + MORE MENUS +*************************************** */ +/* Horizontal menus w/ separator support */ +.elgg-menu-hz > li, +.elgg-menu-hz > li:after, +.elgg-menu-hz > li > a { + display: inline-block; + vertical-align: middle; +} +/* Allow inline image blocks in horizontal menus */ +.elgg-menu-hz .elgg-body:after { + content: '.'; +} +.elgg-menu > li:last-child::after { + display: none; +} +.elgg-menu-admin-footer a { + color: #eee; +} +.elgg-menu-admin-footer > li { + padding-right: 25px; +} +.elgg-menu-longtext { + float: right; +} +.elgg-menu-metadata { + list-style-type: none; + float: right; + margin-left: 15px; + font-size: 90%; +} +.elgg-menu-metadata > li { + float: left; + margin-left: 15px; +} +.elgg-menu-metadata, .elgg-menu-metadata a { + color: #aaa; +} + +/* *************************************** + WIDGETS +*************************************** */ +.elgg-widgets { + float: right; + min-height: 30px; +} +.elgg-widget-add-control { + text-align: right; + margin: 5px 5px 15px; +} +.elgg-widgets-add-panel { + padding: 10px; + margin: 0 5px 15px; + background: #eee; + border: 1px solid #ccc; +} +.elgg-widgets-add-panel ul { + padding: 0; + margin: 0; +} +.elgg-widgets-add-panel li { + float: left; + margin: 2px 10px; + list-style: none; + width: 200px; + padding: 4px; + background-color: #eee; + border: 1px solid #ccc; + font-weight: bold; +} +.elgg-widgets-add-panel li a { + display: block; +} +.elgg-widget-single.elgg-state-available { + color: #333; + cursor: pointer; +} +.elgg-widget-single.elgg-state-available:hover { + border-color: #aaa; +} +.elgg-widget-single.elgg-state-unavailable { + color: #888; +} + +.elgg-module-widget { + background-color: #dedede; + padding: 1px; + margin: 0 5px 15px; + position: relative; +} +.elgg-module-widget:hover { + background-color: #ccc; +} +.elgg-module-widget > .elgg-head { + background-color: #f5f5f5; + height: 26px; + overflow: hidden; +} +.elgg-module-widget.elgg-state-draggable .elgg-widget-handle { + cursor: move; +} +.elgg-module-widget > .elgg-head h3 { + float: left; + padding: 4px 45px 0 20px; + color: #333; +} + +.elgg-widget-collapse-button { + color: #c5c5c5; + text-decoration: none; +} +a.elgg-widget-collapse-button:hover, +a.elgg-widget-collapsed:hover { + color: #9d9d9d; + text-decoration: none; +} +a.elgg-widget-collapse-button:before { + content: "\25BC"; +} +a.elgg-widget-collapsed:before { + content: "\25BA"; +} +.elgg-module-widget > .elgg-body { + border-top: 1px solid #dedede; + background-color: white; + width: 100%; + overflow: hidden; +} +.elgg-widget-edit { + display: none; + width: 96%; + padding: 2%; + border-bottom: 1px solid #dedede; +} +.elgg-widget-content { + padding: 10px; +} +.elgg-widget-placeholder { + border: 2px dashed #dedede; + margin-bottom: 15px; +} + +/* *************************************** + GRID +*************************************** */ +.elgg-grid {} +.elgg-col { + float: left; +} +.elgg-col-1of1 { + float: none; +} +.elgg-col-1of2 { + width: 50%; +} +.elgg-col-1of3 { + width: 33.33%; +} +.elgg-col-2of3 { + width: 66.66%; +} +.elgg-col-1of4 { + width: 25%; +} +.elgg-col-3of4 { + width: 75%; +} +.elgg-col-1of5 { + width: 20%; +} +.elgg-col-2of5 { + width: 40%; +} +.elgg-col-3of5 { + width: 60%; +} +.elgg-col-4of5 { + width: 80%; +} +.elgg-col-1of6 { + width: 16.66%; +} +.elgg-col-5of6 { + width: 83.33%; +} + +/* *************************************** + ICONS +*************************************** */ +.elgg-icon { + background: transparent url(<?php echo elgg_get_site_url(); ?>_graphics/admin_sprites.png) no-repeat left; + width: 16px; + height: 16px; + display: inline-block; + margin: 0 2px; + vertical-align: text-bottom; +} +.elgg-module .elgg-head .elgg-icon { + vertical-align: baseline; +} +.elgg-icon-delete:hover, +.elgg-icon-delete-alt:hover { + background-position: 0 -0px; +} +.elgg-icon-delete, +.elgg-icon-delete-alt { + background-position: 0 -18px; +} +.elgg-icon-drag-arrow:hover { + background-position: 0 -36px; +} +.elgg-icon-drag-arrow { + background-position: 0 -54px; +} +.elgg-icon-hover-menu:hover { + background-position: 0 -72px; +} +.elgg-icon-hover-menu { + background-position: 0 -90px; +} +.elgg-icon-settings-alt:hover { + background-position: 0 -108px; +} +.elgg-icon-settings-alt { + background-position: 0 -126px; +} + +.elgg-ajax-loader { + background: white url(<?php echo elgg_get_site_url(); ?>_graphics/ajax_loader_bw.gif) no-repeat center center; + min-height: 33px; + min-width: 33px; +} + +/* *************************************** + AVATAR ICONS +*************************************** */ +.elgg-avatar { + position: relative; + display: inline-block; +} +.elgg-avatar > a > img { + display: block; +} +.elgg-avatar-tiny > a > img { + width: 25px; + height: 25px; + + /* remove the border-radius if you don't want rounded avatars in supported browsers */ + -webkit-border-radius: 3px; + -moz-border-radius: 3px; + border-radius: 3px; + + -moz-background-clip: border; + background-clip: border; + + -webkit-background-size: 25px; + -khtml-background-size: 25px; + -moz-background-size: 25px; + -o-background-size: 25px; + background-size: 25px; +} +.elgg-avatar-small > a > img { + width: 40px; + height: 40px; + + /* remove the border-radius if you don't want rounded avatars in supported browsers */ + -webkit-border-radius: 5px; + -moz-border-radius: 5px; + border-radius: 5px; + + -moz-background-clip: border; + background-clip: border; + + -webkit-background-size: 40px; + -khtml-background-size: 40px; + -moz-background-size: 40px; + -o-background-size: 40px; + background-size: 40px; +} +.elgg-avatar-medium > a > img { + width: 100px; + height: 100px; +} +.elgg-avatar-large > a > img { + width: 200px; + height: 200px; +} +.elgg-avatar > .elgg-icon-hover-menu { + display: none; + position: absolute; + right: 0; + bottom: 0; + margin: 0; + cursor: pointer; +} +.elgg-avatar { + position: relative; +} +.elgg-avatar > a > img { + display: block; +} +.elgg-avatar-tiny > a > img { + width: 25px; + height: 25px; + + /* remove the border-radius if you don't want rounded avatars in supported browsers */ + -webkit-border-radius: 3px; + -moz-border-radius: 3px; + border-radius: 3px; + + -moz-background-clip: border; + background-clip: border; + + -webkit-background-size: 25px; + -khtml-background-size: 25px; + -moz-background-size: 25px; + -o-background-size: 25px; + background-size: 25px; +} +.elgg-avatar-small > a > img { + width: 40px; + height: 40px; + + /* remove the border-radius if you don't want rounded avatars in supported browsers */ + -webkit-border-radius: 5px; + -moz-border-radius: 5px; + border-radius: 5px; + + -moz-background-clip: border; + background-clip: border; + + -webkit-background-size: 40px; + -khtml-background-size: 40px; + -moz-background-size: 40px; + -o-background-size: 40px; + background-size: 40px; +} +.elgg-avatar-medium > a > img { + width: 100px; + height: 100px; +} +.elgg-avatar-large > a > img { + width: 200px; + height: 200px; +} + +/* *************************************** + PLUGINS +**************************************** */ +.elgg-plugin { + border: 1px solid #999; + margin: 0 0 5px; + padding: 0 7px 4px 10px; + + -webkit-border-radius: 5px; + -moz-border-radius: 5px; + border-radius: 5px; +} +.elgg-plugin.elgg-state-draggable > .elgg-image-block .elgg-head { + cursor: move; +} +.elgg-plugin p { + margin: 0; +} +.elgg-plugin h3 { + color: black; + padding-bottom: 10px; +} +.elgg-plugin-settings { + font-weight: normal; + font-size: 0.9em; +} +.elgg-plugin-screenshot { + display: inline; +} +.elgg-plugin-screenshot img { + border: 1px solid #999; +} +.elgg-plugin-screenshot-lightbox { + display: block; + position: absolute; + width: 99%; + text-align: center; + background-color: white; + border: 1px solid #999; + + -webkit-border-radius: 8px; + -moz-border-radius: 8px; + border-radius: 8px; +} +.elgg-plugin-screenshot-lightbox h2 { + color: black; +} +.elgg-plugin.elgg-state-active { + background: white; +} +.elgg-plugin.elgg-state-inactive { + background: #dedede; +} +.elgg-plugin .elgg-state-error { + background: #fbe3e4; + color: #8a1f11; + border-color: #fbc2c4; + font-weight: bold; +} +.elgg-plugin .elgg-state-warning { + background: #fbedb5; + color: #000000; + border-color: #fbe58b; + font-weight: bold; +} +.elgg-plugin-more { + background-color: #eee; + + -webkit-border-radius: 8px; + -moz-border-radius: 8px; + border-radius: 8px; + + padding: 5px 10px; + margin: 4px 0; +} +ul.elgg-plugin-categories, ul.elgg-plugin-categories > li, +ul.elgg-plugin-resources, ul.elgg-plugin-resources > li { + display: inline; +} +.elgg-plugin-category-bundled { + border-width: 2px; + border-color: #0054A7; +} + +/**************************************** + MARKDOWN +****************************************/ +.elgg-markdown { + margin: 15px; +} +.elgg-markdown h1, +.elgg-markdown h2, +.elgg-markdown h3, +.elgg-markdown h4, +.elgg-markdown h5, +.elgg-markdown h6 { + margin: 1em 0 1em -15px; + color: #333; +} +.elgg-markdown ol { + list-style: decimal; + padding-left: 2em; +} +.elgg-markdown ul { + list-style: disc; + padding-left: 2em; +} +.elgg-markdown p { + margin: 15px 0; +} + +/* *************************************** + MISC +*************************************** */ +.elgg-content-thin { + max-width: 600px; +} + +.elgg-subtext { + color: #666; + font-size: 85%; + line-height: 1.2em; + font-style: italic; + margin-bottom: 5px; +} + +.elgg-text-help { + display: block; + font-size: 85%; + font-style: italic; +} + +.elgg-longtext-control { + margin-left: 14px; + font-size: 80%; + cursor: pointer; +} + +table.mceLayout { + width:100% !important; +} + +.elgg-output dt { + font-weight: bold; +} +.elgg-output dd { + margin: 0 0 1em 2em; +} + +/* *************************************** + SITE SECRET +*************************************** */ +.elgg-form-admin-site-regenerate-secret table { + width: 60%; + margin: 1em auto; +} +td.elgg-strength-strong, +td.elgg-strength-strong h4 { + background: #DFF0D8; color: #468847; +} +td.elgg-strength-moderate, +td.elgg-strength-moderate h4 { + background: #FCF8E3; color: #C09853; +} +td.elgg-strength-weak, +td.elgg-strength-weak h4 { + background: #F2DEDE; color: #B94A48; +} + +/* *************************************** + HELPERS +*************************************** */ +.hidden { + display: none; +} +.centered { + margin: 0 auto; +} +.center { + text-align: center; +} +.float { + float: left; +} +.float-alt { + float: right; +} +.elgg-toggle { + cursor: pointer; +} +.elgg-discover .elgg-discoverable { + display: none; +} +.elgg-discover:hover .elgg-discoverable { + display: block; +} +.elgg-transition:hover { + opacity: .7; +} + +/* *************************************** + BORDERS AND SEPARATORS +*************************************** */ +.elgg-border-plain { + border: 1px solid #eeeeee; +} +.elgg-border-transition { + border: 1px solid #eeeeee; +} +.elgg-divide-top { + border-top: 1px solid #CCCCCC; +} +.elgg-divide-bottom { + border-bottom: 1px solid #CCCCCC; +} +.elgg-divide-left { + border-left: 1px solid #CCCCCC; +} +.elgg-divide-right { + border-right: 1px solid #CCCCCC; +} + +/* *************************************** + SPACING (from OOCSS) +*************************************** */ +.pan{padding:0} +.pas{padding:5px} +.pam{padding:10px} +.pal{padding:20px} +.ptn{padding-top:0} +.pts{padding-top:5px} +.ptm{padding-top:10px} +.ptl{padding-top:20px} +.prn{padding-right:0} +.prs{padding-right:5px} +.prm{padding-right:10px} +.prl{padding-right:20px} +.pbn{padding-bottom:0} +.pbs{padding-bottom:5px} +.pbm{padding-bottom:10px} +.pbl{padding-bottom:20px} +.pln{padding-left:0} +.pls{padding-left:5px} +.plm{padding-left:10px} +.pll{padding-left:20px} +.phn{padding-left:0;padding-right:0} +.phs{padding-left:5px;padding-right:5px} +.phm{padding-left:10px;padding-right:10px} +.phl{padding-left:20px;padding-right:20px} +.pvn{padding-top:0;padding-bottom:0} +.pvs{padding-top:5px;padding-bottom:5px} +.pvm{padding-top:10px;padding-bottom:10px} +.pvl{padding-top:20px;padding-bottom:20px} +.man{margin:0} +.mas{margin:5px} +.mam{margin:10px} +.mal{margin:20px} +.mtn{margin-top:0} +.mts{margin-top:5px} +.mtm{margin-top:10px} +.mtl{margin-top:20px} +.mrn{margin-right:0} +.mrs{margin-right:5px} +.mrm{margin-right:10px} +.mrl{margin-right:20px} +.mbn{margin-bottom:0} +.mbs{margin-bottom:5px} +.mbm{margin-bottom:10px} +.mbl{margin-bottom:20px} +.mln{margin-left:0} +.mls{margin-left:5px} +.mlm{margin-left:10px} +.mll{margin-left:20px} +.mhn{margin-left:0;margin-right:0} +.mhs{margin-left:5px;margin-right:5px} +.mhm{margin-left:10px;margin-right:10px} +.mhl{margin-left:20px;margin-right:20px} +.mvn{margin-top:0;margin-bottom:0} +.mvs{margin-top:5px;margin-bottom:5px} +.mvm{margin-top:10px;margin-bottom:10px} +.mvl{margin-top:20px;margin-bottom:20px} diff --git a/views/default/css/elements/OOCSS_LICENSE b/views/default/css/elements/OOCSS_LICENSE new file mode 100644 index 000000000..c09c45873 --- /dev/null +++ b/views/default/css/elements/OOCSS_LICENSE @@ -0,0 +1,30 @@ +Software License Agreement (BSD License) + +Copyright (c) 2009, Nicole Sullivan. +All rights reserved. + +Redistribution and use of this software in source and binary forms, with or without modification, are +permitted provided that the following conditions are met: + +* Redistributions of source code must retain the above + copyright notice, this list of conditions and the + following disclaimer. + +* Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the + following disclaimer in the documentation and/or other + materials provided with the distribution. + +* Neither the name of Nicole Sullivan nor the names of its + contributors may be used to endorse or promote products + derived from this software without specific prior + written permission of Nicole Sullivan. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED +WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A +PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR +ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR +TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
\ No newline at end of file diff --git a/views/default/css/elements/buttons.php b/views/default/css/elements/buttons.php index 81f26950e..e9c99cf96 100644 --- a/views/default/css/elements/buttons.php +++ b/views/default/css/elements/buttons.php @@ -6,8 +6,151 @@ * @subpackage UI */ ?> -/* <style> /* ************************** BUTTONS ************************** */ -.elgg-button + .elgg-button {margin-left: 4px;}.elgg-button{display: inline-block;*display: inline;*zoom: 1;padding: 4px 10px 4px;margin-bottom: 0;font-size: 13px;line-height: 18px;color: #333333;text-align: center;vertical-align: middle;background-color: #f5f5f5;background-image: -moz-linear-gradient(top, #ffffff, #e6e6e6);background-image: -ms-linear-gradient(top, #ffffff, #e6e6e6);background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ffffff), to(#e6e6e6));background-image: -webkit-linear-gradient(top, #ffffff, #e6e6e6);background-image: -o-linear-gradient(top, #ffffff, #e6e6e6);background-image: linear-gradient(top, #ffffff, #e6e6e6);background-repeat: repeat-x;filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff', endColorstr='#e6e6e6', GradientType=0);border-color: #e6e6e6 #e6e6e6 #bfbfbf;border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);filter: progid:dximagetransform.microsoft.gradient(enabled=false);border: 1px solid #cccccc;border-bottom-color: #b3b3b3;-webkit-border-radius: 4px;-moz-border-radius: 4px;border-radius: 4px;-webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);-moz-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);cursor: pointer;*margin-left: .3em;width:auto}.elgg-button:hover {color: #333333;text-decoration: none;background-color: #e6e6e6;background-position: 0 -15px;-webkit-transition: background-position 0.1s linear;-moz-transition: background-position 0.1s linear;-ms-transition: background-position 0.1s linear;-o-transition: background-position 0.1s linear;transition: background-position 0.1s linear;}.elgg-button:active{background:#ddd;border-bottom-color:#999;box-shadow:none;-webkit-box-shadow:none;-moz-box-shadow:none;}.elgg-button.elgg-state-disabled{background:#F2F2F2;color:#B8B8B8;cursor:default;box-shadow:none;-webkit-box-shadow:none;-moz-box-shadow:none;border-color:#C8C8C8;}.elgg-button-submit{ background-color: #0074cc;background-image: -moz-linear-gradient(top, #0088cc, #0055cc);background-image: -ms-linear-gradient(top, #0088cc, #0055cc);background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#0088cc), to(#0055cc));background-image: -webkit-linear-gradient(top, #0088cc, #0055cc);background-image: -o-linear-gradient(top, #0088cc, #0055cc);background-image: linear-gradient(top, #0088cc, #0055cc);background-repeat: repeat-x;filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#0088cc', endColorstr='#0055cc', GradientType=0);border-color: #0055cc #0055cc #003580;border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);filter: progid:dximagetransform.microsoft.gradient(enabled=false);}.elgg-button-submit:active{background-color: #0055cc;}.elgg-button-submit:hover{background-color: #0055cc;}.elgg-button-submit.elgg-state-disabled{background:#ADBAD4;border-color:#94A2BF;}.elgg-button-delete{color: white;background-color: #da4f49;background-image: -moz-linear-gradient(top, #ee5f5b, #bd362f);background-image: -ms-linear-gradient(top, #ee5f5b, #bd362f);background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ee5f5b), to(#bd362f));background-image: -webkit-linear-gradient(top, #ee5f5b, #bd362f);background-image: -o-linear-gradient(top, #ee5f5b, #bd362f);background-image: linear-gradient(top, #ee5f5b, #bd362f);background-repeat: repeat-x;filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ee5f5b', endColorstr='#bd362f', GradientType=0);border-color: #bd362f #bd362f #802420;border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);filter: progid:dximagetransform.microsoft.gradient(enabled=false);}.elgg-button-delete:hover {background-color: #bd362f;}.elgg-button-delete:active {background-color: #942a25 \9;}.elgg-button-delete.elgg-state-disabled{background:#999;border-color:#888;}.elgg-button-special{ background-color: #5bb75b;background-image: -moz-linear-gradient(top, #62c462, #51a351);background-image: -ms-linear-gradient(top, #62c462, #51a351);background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#62c462), to(#51a351));background-image: -webkit-linear-gradient(top, #62c462, #51a351);background-image: -o-linear-gradient(top, #62c462, #51a351);background-image: linear-gradient(top, #62c462, #51a351);background-repeat: repeat-x;filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#62c462', endColorstr='#51a351', GradientType=0);border-color: #51a351 #51a351 #387038;border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);filter: progid:dximagetransform.microsoft.gradient(enabled=false);}.elgg-button-special:hover,.elgg-button-special:active,{background-color: #51a351;}.elgg-button-special:active,{background-color: #408140 \9;}.elgg-button-special.elgg-state-disabled{background:#B4D3A7;border-color:#9DB791;}.elgg-button-dropdown{color:#FFF;border:1px solid #71B9F7;}.elgg-button-dropdown:after{content:" \25BC ";font-size:smaller;}.elgg-button-dropdown:hover{background-color:#71B9F7;}.elgg-button-dropdown.elgg-state-active{background:#ccc;color:#333;border:1px solid #ccc;}.elgg-button-large{font-size:13px;line-height:19px;}.elgg-button-submit, .elgg-button-submit:hover, .elgg-button-delete, .elgg-button-delete:hover, .elgg-button-special, .elgg-button-special:hover {text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);color: white;}
\ No newline at end of file + +/* Base */ +.elgg-button { + font-size: 14px; + font-weight: bold; + + -webkit-border-radius: 5px; + -moz-border-radius: 5px; + border-radius: 5px; + + width: auto; + padding: 2px 4px; + cursor: pointer; + outline: none; + + -webkit-box-shadow: 0px 1px 0px rgba(0, 0, 0, 0.40); + -moz-box-shadow: 0px 1px 0px rgba(0, 0, 0, 0.40); + box-shadow: 0px 1px 0px rgba(0, 0, 0, 0.40); +} +a.elgg-button { + padding: 3px 6px; +} + +/* Submit: This button should convey, "you're about to take some definitive action" */ +.elgg-button-submit { + color: white; + text-shadow: 1px 1px 0px black; + text-decoration: none; + border: 1px solid #4690d6; + background: #4690d6 url(<?php echo elgg_get_site_url(); ?>_graphics/button_graduation.png) repeat-x left 10px; +} + +.elgg-button-submit:hover { + border-color: #0054a7; + text-decoration: none; + color: white; + background: #0054a7 url(<?php echo elgg_get_site_url(); ?>_graphics/button_graduation.png) repeat-x left 10px; +} + +.elgg-button-submit.elgg-state-disabled { + background: #999; + border-color: #999; + cursor: default; +} + +/* Cancel: This button should convey a negative but easily reversible action (e.g., turning off a plugin) */ +.elgg-button-cancel { + color: #333; + background: #ddd url(<?php echo elgg_get_site_url(); ?>_graphics/button_graduation.png) repeat-x left 10px; + border: 1px solid #999; +} +.elgg-button-cancel:hover { + color: #444; + background-color: #999; + background-position: left 10px; + text-decoration: none; +} + +/* Action: This button should convey a normal, inconsequential action, such as clicking a link */ +.elgg-button-action { + background: #ccc url(<?php echo elgg_get_site_url(); ?>_graphics/button_background.gif) repeat-x 0 0; + border:1px solid #999; + color: #333; + padding: 2px 15px; + text-align: center; + font-weight: bold; + text-decoration: none; + text-shadow: 0 1px 0 white; + cursor: pointer; + + -webkit-border-radius: 5px; + -moz-border-radius: 5px; + border-radius: 5px; + + -webkit-box-shadow: none; + -moz-box-shadow: none; + box-shadow: none; +} + +.elgg-button-action:hover, +.elgg-button-action:focus { + background: #ccc url(<?php echo elgg_get_site_url(); ?>_graphics/button_background.gif) repeat-x 0 -15px; + color: #111; + text-decoration: none; + border: 1px solid #999; +} + +/* Delete: This button should convey "be careful before you click me" */ +.elgg-button-delete { + color: #bbb; + text-decoration: none; + border: 1px solid #333; + background: #555 url(<?php echo elgg_get_site_url(); ?>_graphics/button_graduation.png) repeat-x left 10px; + text-shadow: 1px 1px 0px black; +} +.elgg-button-delete:hover { + color: #999; + background-color: #333; + background-position: left 10px; + text-decoration: none; +} + +.elgg-button-dropdown { + padding:3px 6px; + text-decoration:none; + display:block; + font-weight:bold; + position:relative; + margin-left:0; + color: white; + border:1px solid #71B9F7; + + -webkit-border-radius:4px; + -moz-border-radius:4px; + border-radius:4px; + + -webkit-box-shadow: 0 0 0; + -moz-box-shadow: 0 0 0; + box-shadow: 0 0 0; + + /*background-image:url(<?php echo elgg_get_site_url(); ?>_graphics/elgg_sprites.png); + background-position:-150px -51px; + background-repeat:no-repeat;*/ +} + +.elgg-button-dropdown:after { + content: " \25BC "; + font-size:smaller; +} + +.elgg-button-dropdown:hover { + background-color:#71B9F7; + text-decoration:none; +} + +.elgg-button-dropdown.elgg-state-active { + background: #ccc; + outline: none; + color: #333; + border:1px solid #ccc; + + -webkit-border-radius:4px 4px 0 0; + -moz-border-radius:4px 4px 0 0; + border-radius:4px 4px 0 0; +} diff --git a/views/default/css/elements/chrome.php b/views/default/css/elements/chrome.php deleted file mode 100644 index be2ea4fc8..000000000 --- a/views/default/css/elements/chrome.php +++ /dev/null @@ -1,15 +0,0 @@ -<?php -/** - * Visual styling - * - * @package Elgg.Core - * @subpackage UI - */ -?> -/* <style> -/**/ -.elgg-quiet {color: #666;}.elgg-loud {color: #0054A7;} -/* *************************************** - BORDERS AND SEPARATORS -*************************************** */ -.elgg-border-plain {border: 1px solid #eeeeee;}.elgg-divide-top {border-top: 1px solid #CCCCCC;}.elgg-divide-bottom {border-bottom: 1px solid #CCCCCC;}.elgg-divide-left {border-left: 1px solid #CCCCCC;}.elgg-divide-right {border-right: 1px solid #CCCCCC;}
\ No newline at end of file diff --git a/views/default/css/elements/components.php b/views/default/css/elements/components.php index 5669d3c71..7fe535d57 100644 --- a/views/default/css/elements/components.php +++ b/views/default/css/elements/components.php @@ -7,52 +7,280 @@ * @package Elgg.Core * @subpackage UI */ -/** - * elgg-body fills the space available to it. - * It uses hidden text to expand itself. The combination of auto width, overflow - * hidden, and the hidden text creates this effect. - * - * This allows us to float fixed width divs to either side of an .elgg-body div - * without having to specify the body div's width. - * - * @todo check what happens with long <pre> tags or large images - * @todo Move this to its own file -- it is very complicated and should not have to be overridden. - */ ?> -/* <style> + /* *************************************** Image Block *************************************** */ -.elgg-image-block .elgg-image {float: left;margin-right: 10px;}.elgg-image-block .elgg-image-alt {float: right;margin-left: 5px;} +.elgg-image-block { + padding: 3px 0; +} +.elgg-image-block .elgg-image { + float: left; + margin-right: 5px; +} +.elgg-image-block .elgg-image-alt { + float: right; + margin-left: 5px; +} + /* *************************************** List *************************************** */ -.elgg-list{clear:both;}.elgg-list > li{border-bottom:1px solid #E9E9E9;padding:5px 0;}.elgg-list > li:last-child{border-bottom:0;}.elgg-list-item .elgg-subtext{margin-bottom:5px;}.elgg-list-content{margin:10px 5px;} +.elgg-list { + border-top: 1px dotted #CCCCCC; + margin: 5px 0; + clear: both; +} +.elgg-list > li { + border-bottom: 1px dotted #CCCCCC; +} + +.elgg-item .elgg-subtext { + margin-bottom: 5px; +} +.elgg-item .elgg-content { + margin: 10px 5px; +} + /* *************************************** Gallery *************************************** */ -.elgg-gallery {border: none;margin-right: auto;margin-left: auto;}.elgg-gallery td {padding: 5px;}.elgg-gallery-fluid li {float: left;} +.elgg-gallery { + border: none; + margin-right: auto; + margin-left: auto; +} +.elgg-gallery td { + padding: 5px; +} +.elgg-gallery-fluid > li { + float: left; +} +.elgg-gallery-users > li { + margin: 0 2px; +} + /* *************************************** Tables *************************************** */ -.elgg-table td,.elgg-table th{border:1px solid #ccc;padding:4px 8px;}.elgg-table th{background-color:#ddd;}.elgg-table tr:nth-child(odd),.elgg-table tr.odd{background-color:#fff;}.elgg-table tr:nth-child(even),.elgg-table tr.even{background-color:#f0f0f0;}.elgg-table-alt td{border-bottom:1px solid #ccc;padding:2px 4px;}.elgg-table-alt td:first-child{width:200px;}.elgg-table-alt tr:hover{background:#E4E4E4;}.elgg-table,.elgg-table-alt{width:100%;border-top:1px solid #ccc;} +.elgg-table { + width: 100%; + border-top: 1px solid #ccc; +} +.elgg-table td, .elgg-table th { + padding: 4px 8px; + border: 1px solid #ccc; +} +.elgg-table th { + background-color: #ddd; +} +.elgg-table tr:nth-child(odd), .elgg-table tr.odd { + background-color: #fff; +} +.elgg-table tr:nth-child(even), .elgg-table tr.even { + background-color: #f0f0f0; +} +.elgg-table-alt { + width: 100%; + border-top: 1px solid #ccc; +} +.elgg-table-alt th { + background-color: #eee; + font-weight: bold; +} +.elgg-table-alt td, .elgg-table-alt th { + padding: 2px 4px 2px 4px; + border-bottom: 1px solid #ccc; +} +.elgg-table-alt td:first-child { + width: 200px; +} +.elgg-table-alt tr:hover { + background: #E4E4E4; +} + /* *************************************** Owner Block *************************************** */ -.elgg-owner-block {margin-bottom: 20px;} +.elgg-owner-block { + margin-bottom: 20px; +} + /* *************************************** Messages *************************************** */ -.elgg-message{color:#FFF;font-weight:700;display:block;cursor:pointer;opacity:0.9;-webkit-box-shadow:0 2px 5px rgba(0,0,0,0.45);-moz-box-shadow:0 2px 5px rgba(0,0,0,0.45);box-shadow:0 2px 5px rgba(0,0,0,0.45);-webkit-border-radius:8px;-moz-border-radius:8px;border-radius:8px;padding:3px 10px;}.elgg-state-success{background-color:#000;}.elgg-state-error{background-color:red;}.elgg-state-notice{background-color:#4690D6;} +.elgg-message { + color: white; + font-weight: bold; + display: block; + padding: 3px 10px; + cursor: pointer; + opacity: 0.9; + + -webkit-box-shadow: 0 2px 5px rgba(0, 0, 0, 0.45); + -moz-box-shadow: 0 2px 5px rgba(0, 0, 0, 0.45); + box-shadow: 0 2px 5px rgba(0, 0, 0, 0.45); + + -webkit-border-radius: 8px; + -moz-border-radius: 8px; + border-radius: 8px; +} +.elgg-state-success { + background-color: black; +} +.elgg-state-error { + background-color: red; +} +.elgg-state-notice { + background-color: #4690D6; +} + /* *************************************** River *************************************** */ -.elgg-river > li{border-bottom:1px solid #E9E9E9;padding:10px 35px 10px 0;}.elgg-river-item{padding:7px 0;}.elgg-river-timestamp{color:#888;margin-top:3px;display:inline-block;}.elgg-river-summary{font-weight:400;font-size:11px;color:gray;}.elgg-river-subject,.elgg-river-target{font-weight:700;}.elgg-river-message,.elgg-river-attachments{background-color:#f2f2f2;margin-top:5px;margin-bottom:5px;min-height:10px;border:1px solid rgba(0,0,0,0.05);-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.05);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.05);box-shadow:inset 0 1px 1px rgba(0,0,0,0.05);padding:10px;}.elgg-river-responses{position:relative;padding-top:5px;}.elgg-river-responses:before{width:0;height:0;font-size:0;line-height:0;display:block;clear:both;content:" ";border-left:5px solid transparent;border-right:5px solid transparent;border-bottom:5px solid #E9E9E9;position:absolute;top:0;left:15px;}.elgg-river-responses > div,.elgg-river-responses > form,.elgg-river-responses > ul > li {background-color: #E9E9E9;border-bottom: 1px solid #E9E9E9;margin-bottom: 2px;padding: 4px;} +.elgg-list-river { + border-top: 1px solid #CCC; +} +.elgg-list-river > li { + border-bottom: 1px solid #CCC; +} +.elgg-river-item { + padding: 7px 0; +} +.elgg-river-item .elgg-pict { + margin-right: 20px; +} +.elgg-river-timestamp { + color: #666; + font-size: 85%; + font-style: italic; + line-height: 1.2em; +} + +.elgg-river-attachments, +.elgg-river-message, +.elgg-river-content { + border-left: 1px solid #CCC; + font-size: 85%; + line-height: 1.5em; + margin: 8px 0 5px 0; + padding-left: 5px; +} +.elgg-river-attachments .elgg-avatar, +.elgg-river-attachments .elgg-icon { + float: left; +} +.elgg-river-layout .elgg-input-dropdown { + float: right; + margin: 10px 0; +} + +.elgg-river-comments-tab { + display: block; + background-color: #EEE; + color: #4690D6; + margin-top: 5px; + width: auto; + float: right; + font-size: 85%; + padding: 1px 7px; + + -webkit-border-radius: 5px 5px 0 0; + -moz-border-radius: 5px 5px 0 0; + border-radius: 5px 5px 0 0; +} + +<?php //@todo components.php ?> +.elgg-river-comments { + margin: 0; + border-top: none; +} +.elgg-river-comments li:first-child { + -webkit-border-radius: 5px 0 0; + -moz-border-radius: 5px 0 0; + border-radius: 5px 0 0; +} +.elgg-river-comments li:last-child { + -webkit-border-radius: 0 0 5px 5px; + -moz-border-radius-bottomleft: 0 0 5px 5px; + border-radius-bottomleft: 0 0 5px 5px; +} +.elgg-river-comments li { + background-color: #EEE; + border-bottom: none; + padding: 4px; + margin-bottom: 2px; +} +.elgg-river-comments .elgg-media { + padding: 0; +} +.elgg-river-more { + background-color: #EEE; + + -webkit-border-radius: 5px; + -moz-border-radius: 5px; + border-radius: 5px; + + padding: 2px 4px; + font-size: 85%; + margin-bottom: 2px; +} + <?php //@todo location-dependent styles ?> -.elgg-river-layout .elgg-input-dropdown {float: right;margin: 10px 0;}.elgg-river-comments {margin: 0;border-top: none;}.elgg-river-more {background-color: #EEE;-webkit-border-radius: 5px;-moz-border-radius: 5px;border-radius: 5px;padding: 2px 4px;font-size: 85%;margin-bottom: 2px;} +.elgg-river-item form { + background-color: #EEE; + padding: 4px; + + -moz-border-radius: 5px; + -webkit-border-radius: 5px; + border-radius: 5px; + + height: 30px; +} +.elgg-river-item input[type=text] { + width: 80%; +} +.elgg-river-item input[type=submit] { + margin: 0 0 0 10px; +} + + +/* ************************************** + Comments (from elgg_view_comments) +************************************** */ +.elgg-comments { + margin-top: 25px; +} +.elgg-comments > form { + margin-top: 15px; +} + +/* *************************************** + Image-related +*************************************** */ +.elgg-photo { + border: 1px solid #ccc; + padding: 3px; + background-color: white; +} + /* *************************************** Tags *************************************** */ -.elgg-tags {display: inline;font-size: 85%;}.elgg-tags li {display: inline;margin-right: 5px;}.elgg-tags li:after {content: ",";}.elgg-tags li:last-child:after {content: "";}.elgg-tagcloud {text-align: justify;} -/* MISCELLANEOUS */ -.elgg-photo {border: 1px solid #ccc;padding: 3px;background-color: white;}.elgg-comments {margin-top: 25px;}.elgg-comments > form {margin-top: 15px;}
\ No newline at end of file +.elgg-tags { + font-size: 85%; +} +.elgg-tags > li { + float:left; + margin-right: 5px; +} +.elgg-tags li.elgg-tag:after { + content: ","; +} +.elgg-tags li.elgg-tag:last-child:after { + content: ""; +} +.elgg-tagcloud { + text-align: justify; +} diff --git a/views/default/css/elements/core.php b/views/default/css/elements/core.php new file mode 100644 index 000000000..74f21ee59 --- /dev/null +++ b/views/default/css/elements/core.php @@ -0,0 +1,117 @@ +<?php +/** + * Core CSS + * + * This file holds all the complicated/hacky stuff that you really + * shouldn't touch or override unless you're sure you know what you're doing. + * + * Provides classes that implement cross-browser support for the following features: + * * clearfix + * * fluid-width content area that doesn't wrap around floats + * * menu's with separators + * * inline-block + * * horizontal menus + * * fluid gallery without using tables + */ +?> + +/* Clearfix */ +.clearfix:after, +.elgg-grid:after, +.elgg-layout:after, +.elgg-inner:after, +.elgg-page-header:after, +.elgg-page-footer:after, +.elgg-head:after, +.elgg-foot:after, +.elgg-col:after, +.elgg-image-block:after { + content: "."; + display: block; + height: 0; + clear: both; + visibility: hidden; +} + +/* Fluid width container that does not wrap floats */ +.elgg-body, +.elgg-col-last { + display: block; + width: auto; + word-wrap: break-word; + overflow: hidden; + + /* IE 6, 7 */ + zoom:1; + *overflow:visible; +} + +<?php +/** + * elgg-body fills the space available to it. + * It uses hidden text to expand itself. The combination of auto width, overflow + * hidden, and the hidden text creates this effect. + * + * This allows us to float fixed width divs to either side of an .elgg-body div + * without having to specify the body div's width. + * + * @todo check what happens with long <pre> tags or large images + * @todo Move this to its own file -- it is very complicated and should not have to be overridden. + */ + +//@todo isn't this only needed if we use display:table-cell? +?> +.elgg-body:after, +.elgg-col-last:after { + display: block; + visibility: hidden; + height: 0 !important; + line-height: 0; + overflow: hidden; + + /* Stretch to fill up available space */ + font-size: xx-large; + content: " x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x "; +} + +/* *************************************** + * MENUS + * + * To add separators to a menu: + * .elgg-menu-$menu > li:after {content: '|'; background: ...;} + *************************************** */ +/* Enabled nesting of dropdown/flyout menus */ +.elgg-menu > li { position: relative; } + +.elgg-menu > li:last-child::after { + display: none; +} + +/* Maximize click target */ +.elgg-menu > li > a { display: block } + +/* Horizontal menus w/ separator support */ +.elgg-menu-hz > li, +.elgg-menu-hz > li:after, +.elgg-menu-hz > li > a, +.elgg-menu-hz > li > span { + vertical-align: middle; +} + +/* Allow inline image blocks in horizontal menus */ +.elgg-menu-hz .elgg-body:after { content: '.'; } + +<?php //@todo This isn't going to work as-is. Needs testing ?> +/* Inline block */ +.elgg-gallery > li, +.elgg-button, +.elgg-icon, +.elgg-menu-hz > li, +.elgg-menu-hz > li:after, +.elgg-menu-hz > li > a, +.elgg-menu-hz > li > span { + /* Google says do this, but why? */ + position: relative; + + display: inline-block; +} diff --git a/views/default/css/elements/forms.php b/views/default/css/elements/forms.php index 8b3967a94..068cc8fd6 100644 --- a/views/default/css/elements/forms.php +++ b/views/default/css/elements/forms.php @@ -6,16 +6,370 @@ * @subpackage UI */ ?> -/* <style> + /* *************************************** Form Elements *************************************** */ -fieldset>div{margin-bottom:15px}fieldset>div:last-child{margin-bottom:0}label{font-weight:bold;}input,textarea{max-width: 490px;font-family:"Lucida Grande",Tahoma,Verdana,Arial,sans-serif;border:1px solid #cacaca;padding:.5em;width:100%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box; -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);-moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);-webkit-transition: border linear 0.2s, box-shadow linear 0.2s;-moz-transition: border linear 0.2s, box-shadow linear 0.2s;-ms-transition: border linear 0.2s, box-shadow linear 0.2s;-o-transition: border linear 0.2s, box-shadow linear 0.2s;transition: border linear 0.2s, box-shadow linear 0.2s;}input:focus,textarea:focus {border-color: rgba(82,168,236,.8);-webkit-box-shadow: inset 0 1px 3px rgba(0,0,0,.1), 0 0 8px rgba(82,168,236,.6);-moz-box-shadow: inset 0 1px 3px rgba(0,0,0,.1), 0 0 8px rgba(82,168,236,.6);box-shadow: inset 0 1px 3px rgba(0,0,0,.1), 0 0 8px rgba(82,168,236,.6);outline: 0;}textarea{height:200px}.elgg-longtext-control{float:right;margin-left:14px;font-size:80%;cursor:pointer}.elgg-input-access{margin:5px 0 0 0}input[type="checkbox"],input[type="radio"]{margin:0 3px 0 0;padding:0;border:0;width:auto}.elgg-input-checkboxes.elgg-horizontal li,.elgg-input-radio.elgg-horizontal li{display:inline;padding-right:10px}.ui-datepicker{background:white;border-bottom:2px solid #293e6c}.ui-datepicker-header{text-align:center;background:#6d84b7;color:white;font-weight:bold;padding:3px 3px 4px;vertical-align:center;border:1px solid #3a589b;border-width:0 1px}.ui-datepicker-next,.ui-datepicker-prev{text-decoration:none;color:white;width:14.2857%}.ui-datepicker-next{padding-right:3px;float:right}.ui-datepicker-prev{padding-left:3px;float:left}.ui-datepicker-calendar{width:100%;border-collapse:separate;border:1px solid #777;border-width:0 1px}.ui-datepicker-calendar th{background:#f2f2f2;border-bottom:1px solid #BBB;font-size:9px;font-weight:bold;padding:3px 2px;text-align:center}.ui-datepicker-calendar td{padding:0}.ui-datepicker-calendar a{display:block;margin:1px;padding:4px;border:1px solid white;color:#666;cursor:pointer;text-align:center;text-decoration:none}.ui-datepicker-calendar .ui-datepicker-current-day>a{font-weight:bold;background:#DDD}.ui-datepicker-calendar .ui-state-hover{color:#3b5998;border-color:#bec8dd;background-color:#dfe4ee} +fieldset > div { + margin-bottom: 15px; +} +fieldset > div:last-child { + margin-bottom: 0; +} +.elgg-form-alt > fieldset > .elgg-foot { + border-top: 1px solid #CCC; + padding: 10px 0; +} + +label { + font-weight: bold; + color: #333; + font-size: 110%; +} + +input, textarea { + border: 1px solid #ccc; + color: #666; + font: 120% Arial, Helvetica, sans-serif; + padding: 5px; + width: 100%; + -webkit-border-radius: 5px; + -moz-border-radius: 5px; + border-radius: 5px; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; +} + +input[type=text]:focus, textarea:focus { + border: solid 1px #4690d6; + background: #e4ecf5; + color:#333; +} + +textarea { + height: 200px; +} + + +.elgg-longtext-control { + float: right; + margin-left: 14px; + font-size: 80%; + cursor: pointer; +} + + +.elgg-input-access { + margin:5px 0 0 0; +} + +input[type="checkbox"], +input[type="radio"] { + margin:0 3px 0 0; + padding:0; + border:none; + border-radius:0; + width:auto; +} +.elgg-input-checkboxes.elgg-horizontal li, +.elgg-input-radios.elgg-horizontal li { + display: inline; + padding-right: 10px; +} + +.elgg-form-login, .elgg-form-account { + max-width: 450px; +} + /* *************************************** FRIENDS PICKER *************************************** */ -.friends-picker-container h3{font-size:4em!important;text-align:left;margin:10px 0 20px!important;color:#999!important;background:none!important;padding:0!important}.friends-picker .friends-picker-container .panel ul{text-align:left;margin:0;padding:0}.friends-picker-wrapper{margin:0;padding:0;position:relative;width:100%}.friends-picker{position:relative;overflow:hidden;margin:0;padding:0;width:730px;height:auto;background-color:#dedede;-webkit-border-radius:8px;-moz-border-radius:8px;border-radius:8px}.friendspicker-savebuttons{background:white;-webkit-border-radius:8px;-moz-border-radius:8px;border-radius:8px;margin:0 10px 10px}.friends-picker .friends-picker-container{position:relative;left:0;top:0;width:100%;list-style-type:none}.friends-picker .friends-picker-container .panel{float:left;height:100%;position:relative;width:730px;margin:0;padding:0}.friends-picker .friends-picker-container .panel .wrapper{margin:0;padding:4px 10px 10px 10px;min-height:230px}.friends-picker-navigation{margin:0 0 10px;padding:0 0 10px;border-bottom:1px solid #ccc}.friends-picker-navigation ul{list-style:none;padding-left:0}.friends-picker-navigation ul li{float:left;margin:0;background:white}.friends-picker-navigation a{font-weight:bold;text-align:center;background:white;color:#999;text-decoration:none;display:block;padding:0;width:20px;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.tabHasContent{background:white;color:#333!important}.friends-picker-navigation li a:hover{background:#333;color:white!important}.friends-picker-navigation li a.current{background:#4690d6;color:white!important}.friends-picker-navigation-l,.friends-picker-navigation-r{position:absolute;top:46px;text-indent:-9000em}.friends-picker-navigation-l a,.friends-picker-navigation-r a{display:block;height:40px;width:40px}.friends-picker-navigation-l{right:48px;z-index:1}.friends-picker-navigation-r{right:0;z-index:1}.friends-picker-navigation-l{background:url("<?php echo elgg_get_site_url(); ?>_graphics/friendspicker.png") no-repeat left top}.friends-picker-navigation-r{background:url("<?php echo elgg_get_site_url(); ?>_graphics/friendspicker.png") no-repeat -60px top}.friends-picker-navigation-l:hover{background:url("<?php echo elgg_get_site_url(); ?>_graphics/friendspicker.png") no-repeat left -44px}.friends-picker-navigation-r:hover{background:url("<?php echo elgg_get_site_url(); ?>_graphics/friendspicker.png") no-repeat -60px -44px}.friendspicker-savebuttons .elgg-button-submit,.friendspicker-savebuttons .elgg-button-cancel{margin:5px 20px 5px 5px}.friendspicker-members-table {background: #dedede;-webkit-border-radius: 8px;-moz-border-radius: 8px;border-radius: 8px;margin:10px 0 0;padding:10px 10px 0;} +.friends-picker-main-wrapper { + margin-bottom: 15px; +} +.friends-picker-container h3 { + font-size:4em !important; + text-align: left; + margin:10px 0 20px !important; + color:#999 !important; + background: none !important; + padding:0 !important; +} +.friends-picker .friends-picker-container .panel ul { + text-align: left; + margin: 0; + padding:0; +} +.friends-picker-wrapper { + margin: 0; + padding:0; + position: relative; + width: 730px; +} +.friends-picker { + position: relative; + overflow: hidden; + margin: 0; + padding:0; + width: 730px; + height: auto; + background-color: #dedede; + + -webkit-border-radius: 8px; + -moz-border-radius: 8px; + border-radius: 8px; +} +.friendspicker-savebuttons { + background: white; + + -webkit-border-radius: 8px; + -moz-border-radius: 8px; + border-radius: 8px; + + margin:0 10px 10px; +} +.friends-picker .friends-picker-container { /* long container used to house end-to-end panels. Width is calculated in JS */ + position: relative; + left: 0; + top: 0; + width: 100%; + list-style-type: none; +} +.friends-picker .friends-picker-container .panel { + float:left; + height: 100%; + position: relative; + width: 730px; + margin: 0; + padding:0; +} +.friends-picker .friends-picker-container .panel .wrapper { + margin: 0; + padding:4px 10px 10px 10px; + min-height: 230px; +} +.friends-picker-navigation { + margin: 0 0 10px; + padding:0 0 10px; + border-bottom:1px solid #ccc; +} +.friends-picker-navigation ul { + list-style: none; + padding-left: 0; +} +.friends-picker-navigation ul li { + float: left; + margin:0; + background:white; +} +.friends-picker-navigation a { + font-weight: bold; + text-align: center; + background: white; + color: #999; + text-decoration: none; + display: block; + padding: 0; + width:20px; + + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; +} +.tabHasContent { + background: white; + color:#333 !important; +} +.friends-picker-navigation li a:hover { + background: #333; + color:white !important; +} +.friends-picker-navigation li a.current { + background: #4690D6; + color:white !important; +} +.friends-picker-navigation-l, .friends-picker-navigation-r { + position: absolute; + top: 46px; + text-indent: -9000em; +} +.friends-picker-navigation-l a, .friends-picker-navigation-r a { + display: block; + height: 40px; + width: 40px; +} +.friends-picker-navigation-l { + right: 48px; + z-index:1; +} +.friends-picker-navigation-r { + right: 0; + z-index:1; +} +.friends-picker-navigation-l { + background: url("<?php echo elgg_get_site_url(); ?>_graphics/friendspicker.png") no-repeat left top; +} +.friends-picker-navigation-r { + background: url("<?php echo elgg_get_site_url(); ?>_graphics/friendspicker.png") no-repeat -60px top; +} +.friends-picker-navigation-l:hover { + background: url("<?php echo elgg_get_site_url(); ?>_graphics/friendspicker.png") no-repeat left -44px; +} +.friends-picker-navigation-r:hover { + background: url("<?php echo elgg_get_site_url(); ?>_graphics/friendspicker.png") no-repeat -60px -44px; +} +.friendspicker-savebuttons .elgg-button-submit, +.friendspicker-savebuttons .elgg-button-cancel { + margin:5px 20px 5px 5px; +} +.friendspicker-members-table { + background: #dedede; + + -webkit-border-radius: 8px; + -moz-border-radius: 8px; + border-radius: 8px; + + margin:10px 0 0; + padding:10px 10px 0; +} + +/* *************************************** + AUTOCOMPLETE +*************************************** */ +<?php //autocomplete will expand to fullscreen without max-width ?> +.ui-autocomplete { + position: absolute; + cursor: default; +} +.elgg-autocomplete-item .elgg-body { + max-width: 600px; +} +.ui-autocomplete { + background-color: white; + border: 1px solid #ccc; + overflow: hidden; + + -webkit-border-radius: 5px; + -moz-border-radius: 5px; + border-radius: 5px; +} +.ui-autocomplete .ui-menu-item { + padding: 0px 4px; + + -webkit-border-radius: 5px; + -moz-border-radius: 5px; + border-radius: 5px; +} +.ui-autocomplete .ui-menu-item:hover { + background-color: #eee; +} +.ui-autocomplete a:hover { + text-decoration: none; + color: #4690D6; +} +.ui-autocomplete a.ui-state-hover { + background-color: #eee; + display: block; +} + /* *************************************** USER PICKER *************************************** */ -.user-picker .user-picker-entry {clear:both;height:25px;padding:5px;margin-top:5px;border-bottom:1px solid #cccccc;}.user-picker-entry .elgg-button-delete {margin-right:10px;}
\ No newline at end of file +.elgg-user-picker-list li:first-child { + border-top: 1px dotted #ccc; + margin-top: 5px; +} +.elgg-user-picker-list > li { + border-bottom: 1px dotted #ccc; +} + +/* *************************************** + DATE PICKER +**************************************** */ +.ui-datepicker { + display: none; + + margin-top: 3px; + width: 208px; + background-color: white; + border: 1px solid #0054A7; + -webkit-border-radius: 6px; + -moz-border-radius: 6px; + border-radius: 6px; + overflow: hidden; + + -webkit-box-shadow: 4px 4px 4px rgba(0, 0, 0, 0.5); + -moz-box-shadow: 4px 4px 4px rgba(0, 0, 0, 0.5); + box-shadow: 4px 4px 4px rgba(0, 0, 0, 0.5); +} +.ui-datepicker-inline { + -webkit-box-shadow: none; + -moz-box-shadow: none; + box-shadow: none; +} + +.ui-datepicker-header { + position: relative; + background: #4690D6; + color: white; + padding: 2px 0; + border-bottom: 1px solid #0054A7; +} +.ui-datepicker-header a { + color: white; +} +.ui-datepicker-prev, .ui-datepicker-next { + position: absolute; + top: 5px; + cursor: pointer; +} +.ui-datepicker-prev { + left: 6px; +} +.ui-datepicker-next { + right: 6px; +} +.ui-datepicker-title { + line-height: 1.8em; + margin: 0 30px; + text-align: center; + font-weight: bold; +} +.ui-datepicker-calendar { + margin: 4px; +} +.ui-datepicker th { + color: #0054A7; + border: none; + font-weight: bold; + padding: 5px 6px; + text-align: center; +} +.ui-datepicker td { + padding: 1px; +} +.ui-datepicker td span, .ui-datepicker td a { + display: block; + padding: 2px; + line-height: 1.2em; + text-align: right; + text-decoration: none; +} +.ui-datepicker-calendar .ui-state-default { + border: 1px solid #ccc; + color: #4690D6;; + background: #fafafa; +} +.ui-datepicker-calendar .ui-state-hover { + border: 1px solid #aaa; + color: #0054A7; + background: #eee; +} +.ui-datepicker-calendar .ui-state-active, +.ui-datepicker-calendar .ui-state-active.ui-state-hover { + font-weight: bold; + border: 1px solid #0054A7; + color: #0054A7; + background: #E4ECF5; +} diff --git a/views/default/css/elements/grid.php b/views/default/css/elements/grid.php new file mode 100644 index 000000000..fdbaf4aca --- /dev/null +++ b/views/default/css/elements/grid.php @@ -0,0 +1,54 @@ +<?php +/** + * CSS grid + * + * @package Elgg.Core + * @subpackage UI + * + * To work around subpixel rounding discrepancies, apply .elgg-col-last to + * the last column (@todo we need broswer-specific test cases for this). + */ +?> + +/* *************************************** + GRID +*************************************** */ +.elgg-col { + float: left; +} +.elgg-col-1of1 { + float: none; +} +.elgg-col-1of2 { + width: 50%; +} +.elgg-col-1of3 { + width: 33.33%; +} +.elgg-col-2of3 { + width: 66.66%; +} +.elgg-col-1of4 { + width: 25%; +} +.elgg-col-3of4 { + width: 75%; +} +.elgg-col-1of5 { + width: 20%; +} +.elgg-col-2of5 { + width: 40%; +} +.elgg-col-3of5 { + width: 60%; +} +.elgg-col-4of5 { + width: 80%; +} +.elgg-col-1of6 { + width: 16.66%; +} +.elgg-col-5of6 { + width: 83.33%; +} diff --git a/views/default/css/elements/helpers.php b/views/default/css/elements/helpers.php new file mode 100644 index 000000000..e9a9e0a30 --- /dev/null +++ b/views/default/css/elements/helpers.php @@ -0,0 +1,144 @@ +<?php +/** + * Helpers CSS + * + * Contains generic elements that can be used throughout the site. + * + * @package Elgg.Core + * @subpackage UI + */ +?> + +.clearfloat { + clear: both; +} + +.hidden { + display: none; +} + +.centered { + margin: 0 auto; +} + +.center { + text-align: center; +} + +.float { + float: left; +} + +.float-alt { + float: right; +} + +.link { + cursor: pointer; +} + +.elgg-discover .elgg-discoverable { + display: none; +} + +.elgg-discover:hover .elgg-discoverable { + display: block; +} + +.elgg-transition:hover { + opacity: .7; +} + +/* *************************************** + BORDERS AND SEPARATORS +*************************************** */ +.elgg-border-plain { + border: 1px solid #eeeeee; +} +.elgg-border-transition { + border: 1px solid #eeeeee; +} +.elgg-divide-top { + border-top: 1px solid #CCCCCC; +} +.elgg-divide-bottom { + border-bottom: 1px solid #CCCCCC; +} +.elgg-divide-left { + border-left: 1px solid #CCCCCC; +} +.elgg-divide-right { + border-right: 1px solid #CCCCCC; +} + +/* *************************************** + Spacing (from OOCSS) +*************************************** */ +<?php +/** + * Spacing classes + * Should be used to modify the default spacing between objects (not between nodes of the same object) + * Please use judiciously. You want to be using defaults most of the time, these are exceptions! + * <type><location><size> + * <type>: m = margin, p = padding + * <location>: a = all, t = top, r = right, b = bottom, l = left, h = horizontal, v = vertical + * <size>: n = none, s = small, m = medium, l = large + */ + +$none = '0'; +$small = '5px'; +$medium = '10px'; +$large = '20px'; + +echo <<<CSS +/* Padding */ +.pan{padding:$none} +.prn, .phn{padding-right:$none} +.pln, .phn{padding-left:$none} +.ptn, .pvn{padding-top:$none} +.pbn, .pvn{padding-bottom:$none} + +.pas{padding:$small} +.prs, .phs{padding-right:$small} +.pls, .phs{padding-left:$small} +.pts, .pvs{padding-top:$small} +.pbs, .pvs{padding-bottom:$small} + +.pam{padding:$medium} +.prm, .phm{padding-right:$medium} +.plm, .phm{padding-left:$medium} +.ptm, .pvm{padding-top:$medium} +.pbm, .pvm{padding-bottom:$medium} + +.pal{padding:$large} +.prl, .phl{padding-right:$large} +.pll, .phl{padding-left:$large} +.ptl, .pvl{padding-top:$large} +.pbl, .pvl{padding-bottom:$large} + +/* Margin */ +.man{margin:$none} +.mrn, .mhn{margin-right:$none} +.mln, .mhn{margin-left:$none} +.mtn, .mvn{margin-top:$none} +.mbn, .mvn{margin-bottom:$none} + +.mas{margin:$small} +.mrs, .mhs{margin-right:$small} +.mls, .mhs{margin-left:$small} +.mts, .mvs{margin-top:$small} +.mbs, .mvs{margin-bottom:$small} + +.mam{margin:$medium} +.mrm, .mhm{margin-right:$medium} +.mlm, .mhm{margin-left:$medium} +.mtm, .mvm{margin-top:$medium} +.mbm, .mvm{margin-bottom:$medium} + +.mal{margin:$large} +.mrl, .mhl{margin-right:$large} +.mll, .mhl{margin-left:$large} +.mtl, .mvl{margin-top:$large} +.mbl, .mvl{margin-bottom:$large} +CSS; +?>
\ No newline at end of file diff --git a/views/default/css/elements/icons.php b/views/default/css/elements/icons.php index bbf48696c..9b12e0a57 100644 --- a/views/default/css/elements/icons.php +++ b/views/default/css/elements/icons.php @@ -7,12 +7,342 @@ */ ?> -/* <style> + /* *************************************** ICONS *************************************** */ -.elgg-icon {background: transparent url(<?php echo elgg_get_site_url(); ?>mod/WISB/_graphics/elgg_sprites.png) no-repeat left;width: 16px;height: 16px;margin: 0 2px;}.elgg-icon-arrow-left{background-position:0 0;}.elgg-icon-arrow-right{background-position:0 -18px;}.elgg-icon-arrow-two-head{background-position:0 -36px;}.elgg-icon-attention{background-position:0 -54px;}.elgg-icon-userwall{background-position:0 -72px;}.elgg-icon-calendar{background-position:0 -90px;}.elgg-icon-cell-phone{background-position:0 -108px;}.elgg-icon-checkmark:hover{background-position:0 -126px;}.elgg-icon-checkmark{background-position:0 -144px;}.elgg-icon-clip:hover{background-position:0 -162px;}.elgg-icon-clip{background-position:0 -180px;}.elgg-icon-cursor-drag-arrow{background-position:0 -198px;}.elgg-icon-delete-alt:hover{background-position:0 -216px;}.elgg-icon-delete-alt{background-position:0 -234px;}.elgg-icon-delete:hover{background-position:0 -252px;}.elgg-icon-delete{background-position:0 -270px;}.elgg-icon-download:hover{background-position:0 -288px;}.elgg-icon-download{background-position:0 -306px;}.elgg-icon-eye{background-position:0 -324px;}.elgg-icon-chat{background-position:0 -342px;}.elgg-icon-grid:hover{background-position:0 -360px;}.elgg-icon-grid{background-position:0 -378px;}.elgg-icon-home:hover{background-position:0 -396px;}.elgg-icon-home{background-position:0 -414px;}.elgg-icon-hover-menu:hover{background-position:0 -432px;}.elgg-icon-hover-menu{background-position:0 -450px;}.elgg-icon-info{background-position:0 -468px;}.elgg-icon-addfriend{background-position:0 -486px;}.elgg-icon-link:hover{background-position:0 -504px;}.elgg-icon-link{background-position:0 -522px;}.elgg-icon-list{background-position:0 -540px;}.elgg-icon-lock-closed{background-position:0 -558px;}.elgg-icon-lock-open{background-position:0 -576px;}.elgg-icon-mail-alt:hover{background-position:0 -594px;}.elgg-icon-mail-alt{background-position:0 -612px;}.elgg-icon-messages{background-position:0 -648px;}.elgg-icon-photo{background-position:0 -666px;}.elgg-icon-print-alt{background-position:0 -684px;}.elgg-icon-print{background-position:0 -702px;}.elgg-icon-push-pin{background-position:0 -720px;}.elgg-icon-newsfeed{background-position:0 -738px;}.elgg-icon-redo{background-position:0 -756px;}.elgg-icon-refresh:hover{background-position:0 -774px;}.elgg-icon-refresh{background-position:0 -792px;}.elgg-icon-round-arrow-left{background-position:0 -810px;}.elgg-icon-round-arrow-right{background-position:0 -828px;}.elgg-icon-round-checkmark{background-position:0 -846px;}.elgg-icon-round-minus{background-position:0 -864px;}.elgg-icon-round-plus{background-position:0 -882px;}.elgg-icon-rss{background-position:0 -900px;}.elgg-icon-search-focus{background-position:0 -918px;}.elgg-icon-search{background-position:0 -936px;}.elgg-icon-settings-alt:hover{background-position:0 -954px;}.elgg-icon-settings-alt{background-position:0 -972px;}.elgg-icon-settings{background-position:0 -990px;}.elgg-icon-share{background-position:0 -1008px;}.elgg-icon-addgroup{background-position:0 -1026px;}.elgg-icon-shop-cart:hover{background-position:0 -1044px;}.elgg-icon-shop-cart{background-position:0 -1062px;}.elgg-icon-speech-bubble-alt:hover{background-position:0 -1080px;}.elgg-icon-speech-bubble-alt{background-position:0 -1098px;}.elgg-icon-speech-bubble:hover{background-position:0 -1116px;}.elgg-icon-speech-bubble{background-position:0 -1134px;}.elgg-icon-star-alt{background-position:0 -1152px;}.elgg-icon-star-empty:hover{background-position:0 -1170px;}.elgg-icon-star-empty{background-position:0 -1188px;}.elgg-icon-star:hover{background-position:0 -1206px;}.elgg-icon-star{background-position:0 -1224px;}.elgg-icon-tag:hover{background-position:0 -1242px;}.elgg-icon-tag{background-position:0 -1260px;}.elgg-icon-thumbs-down-alt:hover{background-position:0 -1278px;}.elgg-icon-thumbs-down:hover,.elgg-icon-thumbs-down-alt{background-position:0 -1296px;}.elgg-icon-thumbs-down{background-position:0 -1314px;}.elgg-icon-thumbs-up-alt:hover{background-position:0 -1332px;}.elgg-icon-thumbs-up:hover,.elgg-icon-thumbs-up-alt{background-position:0 -1350px;}.elgg-icon-thumbs-up{background-position:0 -1368px;}.elgg-icon-trash{background-position:0 -1386px;}.elgg-icon-twitter{background-position:0 -1404px;}.elgg-icon-undo{background-position:0 -1422px;}.elgg-icon-user:hover{background-position:0 -1440px;}.elgg-icon-user{background-position:0 -1458px;}.elgg-icon-users{background-position:0 -1476px;}.elgg-icon-friends{background-position:0 -1494px;}.elgg-icon-video{background-position:0 -1512px;}.elgg-avatar > .elgg-icon-hover-menu{display:none;position:absolute;right:0;bottom:0;cursor:pointer;margin:0;}.elgg-icon-mail:hover,.elgg-icon-mail{background-position:0 -630px;}.elgg-ajax-loader {background: white url(<?php echo elgg_get_site_url(); ?>mod/WISB/_graphics/ajax_loader_bw.gif) no-repeat center center;min-height: 33px;min-width: 33px;} + +.elgg-icon { + background: transparent url(<?php echo elgg_get_site_url(); ?>_graphics/elgg_sprites.png) no-repeat left; + width: 16px; + height: 16px; + margin: 0 2px; +} +.elgg-icon-arrow-left { + background-position: 0 -0px; +} +.elgg-icon-arrow-right { + background-position: 0 -18px; +} +.elgg-icon-arrow-two-head { + background-position: 0 -36px; +} +.elgg-icon-attention:hover { + background-position: 0 -54px; +} +.elgg-icon-attention { + background-position: 0 -72px; +} +.elgg-icon-calendar { + background-position: 0 -90px; +} +.elgg-icon-cell-phone { + background-position: 0 -108px; +} +.elgg-icon-checkmark:hover { + background-position: 0 -126px; +} +.elgg-icon-checkmark { + background-position: 0 -144px; +} +.elgg-icon-clip:hover { + background-position: 0 -162px; +} +.elgg-icon-clip { + background-position: 0 -180px; +} +.elgg-icon-cursor-drag-arrow { + background-position: 0 -198px; +} +.elgg-icon-delete-alt:hover { + background-position: 0 -216px; +} +.elgg-icon-delete-alt { + background-position: 0 -234px; +} +.elgg-icon-delete:hover { + background-position: 0 -252px; +} +.elgg-icon-delete { + background-position: 0 -270px; +} +.elgg-icon-download:hover { + background-position: 0 -288px; +} +.elgg-icon-download { + background-position: 0 -306px; +} +.elgg-icon-eye { + background-position: 0 -324px; +} +.elgg-icon-facebook { + background-position: 0 -342px; +} +.elgg-icon-grid:hover { + background-position: 0 -360px; +} +.elgg-icon-grid { + background-position: 0 -378px; +} +.elgg-icon-home:hover { + background-position: 0 -396px; +} +.elgg-icon-home { + background-position: 0 -414px; +} +.elgg-icon-hover-menu:hover { + background-position: 0 -432px; +} +.elgg-icon-hover-menu { + background-position: 0 -450px; +} +.elgg-icon-info:hover { + background-position: 0 -468px; +} +.elgg-icon-info { + background-position: 0 -486px; +} +.elgg-icon-link:hover { + background-position: 0 -504px; +} +.elgg-icon-link { + background-position: 0 -522px; +} +.elgg-icon-list { + background-position: 0 -540px; +} +.elgg-icon-lock-closed { + background-position: 0 -558px; +} +.elgg-icon-lock-open { + background-position: 0 -576px; +} +.elgg-icon-mail-alt:hover { + background-position: 0 -594px; +} +.elgg-icon-mail-alt { + background-position: 0 -612px; +} +.elgg-icon-mail:hover { + background-position: 0 -630px; +} +.elgg-icon-mail { + background-position: 0 -648px; +} +.elgg-icon-photo { + background-position: 0 -666px; +} +.elgg-icon-print-alt { + background-position: 0 -684px; +} +.elgg-icon-print { + background-position: 0 -702px; +} +.elgg-icon-push-pin-alt { + background-position: 0 -720px; +} +.elgg-icon-push-pin { + background-position: 0 -738px; +} +.elgg-icon-redo { + background-position: 0 -756px; +} +.elgg-icon-refresh:hover { + background-position: 0 -774px; +} +.elgg-icon-refresh { + background-position: 0 -792px; +} +.elgg-icon-round-arrow-left { + background-position: 0 -810px; +} +.elgg-icon-round-arrow-right { + background-position: 0 -828px; +} +.elgg-icon-round-checkmark { + background-position: 0 -846px; +} +.elgg-icon-round-minus { + background-position: 0 -864px; +} +.elgg-icon-round-plus { + background-position: 0 -882px; +} +.elgg-icon-rss { + background-position: 0 -900px; +} +.elgg-icon-search-focus { + background-position: 0 -918px; +} +.elgg-icon-search { + background-position: 0 -936px; +} +.elgg-icon-settings-alt:hover { + background-position: 0 -954px; +} +.elgg-icon-settings-alt { + background-position: 0 -972px; +} +.elgg-icon-settings { + background-position: 0 -990px; +} +.elgg-icon-share:hover { + background-position: 0 -1008px; +} +.elgg-icon-share { + background-position: 0 -1026px; +} +.elgg-icon-shop-cart:hover { + background-position: 0 -1044px; +} +.elgg-icon-shop-cart { + background-position: 0 -1062px; +} +.elgg-icon-speech-bubble-alt:hover { + background-position: 0 -1080px; +} +.elgg-icon-speech-bubble-alt { + background-position: 0 -1098px; +} +.elgg-icon-speech-bubble:hover { + background-position: 0 -1116px; +} +.elgg-icon-speech-bubble { + background-position: 0 -1134px; +} +.elgg-icon-star-alt { + background-position: 0 -1152px; +} +.elgg-icon-star-empty:hover { + background-position: 0 -1170px; +} +.elgg-icon-star-empty { + background-position: 0 -1188px; +} +.elgg-icon-star:hover { + background-position: 0 -1206px; +} +.elgg-icon-star { + background-position: 0 -1224px; +} +.elgg-icon-tag:hover { + background-position: 0 -1242px; +} +.elgg-icon-tag { + background-position: 0 -1260px; +} +.elgg-icon-thumbs-down-alt:hover { + background-position: 0 -1278px; +} +.elgg-icon-thumbs-down:hover, +.elgg-icon-thumbs-down-alt { + background-position: 0 -1296px; +} +.elgg-icon-thumbs-down { + background-position: 0 -1314px; +} +.elgg-icon-thumbs-up-alt:hover { + background-position: 0 -1332px; +} +.elgg-icon-thumbs-up:hover, +.elgg-icon-thumbs-up-alt { + background-position: 0 -1350px; +} +.elgg-icon-thumbs-up { + background-position: 0 -1368px; +} +.elgg-icon-trash { + background-position: 0 -1386px; +} +.elgg-icon-twitter { + background-position: 0 -1404px; +} +.elgg-icon-undo { + background-position: 0 -1422px; +} +.elgg-icon-user:hover { + background-position: 0 -1440px; +} +.elgg-icon-user { + background-position: 0 -1458px; +} +.elgg-icon-users:hover { + background-position: 0 -1476px; +} +.elgg-icon-users { + background-position: 0 -1494px; +} +.elgg-icon-video { + background-position: 0 -1512px; +} + + +.elgg-avatar > .elgg-icon-hover-menu { + display: none; + position: absolute; + right: 0; + bottom: 0; + margin: 0; + cursor: pointer; +} + +.elgg-ajax-loader { + background: white url(<?php echo elgg_get_site_url(); ?>_graphics/ajax_loader_bw.gif) no-repeat center center; + min-height: 31px; + min-width: 31px; +} + /* *************************************** AVATAR ICONS *************************************** */ -.elgg-avatar{position:relative;display:inline-block;}.elgg-avatar-tiny > a > img{width:25px;height:25px;}.elgg-avatar-small > a > img{width:40px;height:40px;}.elgg-avatar-medium > a > img{width:100px;height:100px;}.elgg-avatar-large > a > img{width:200px;height:180px;}
\ No newline at end of file +.elgg-avatar { + position: relative; + display: inline-block; +} +.elgg-avatar > a > img { + display: block; +} +.elgg-avatar-tiny > a > img { + width: 25px; + height: 25px; + + /* remove the border-radius if you don't want rounded avatars in supported browsers */ + -webkit-border-radius: 3px; + -moz-border-radius: 3px; + border-radius: 3px; + + -moz-background-clip: border; + background-clip: border; + + -webkit-background-size: 25px; + -khtml-background-size: 25px; + -moz-background-size: 25px; + -o-background-size: 25px; + background-size: 25px; +} +.elgg-avatar-small > a > img { + width: 40px; + height: 40px; + + /* remove the border-radius if you don't want rounded avatars in supported browsers */ + -webkit-border-radius: 5px; + -moz-border-radius: 5px; + border-radius: 5px; + + -moz-background-clip: border; + background-clip: border; + + -webkit-background-size: 40px; + -khtml-background-size: 40px; + -moz-background-size: 40px; + -o-background-size: 40px; + background-size: 40px; +} +.elgg-avatar-medium > a > img { + width: 100px; + height: 100px; +} +.elgg-avatar-large > a > img { + width: 200px; + height: 200px; +} diff --git a/views/default/css/elements/layout.php b/views/default/css/elements/layout.php index cb9e8caa3..9d92752b4 100644 --- a/views/default/css/elements/layout.php +++ b/views/default/css/elements/layout.php @@ -4,23 +4,118 @@ * * Contains CSS for the page shell and page layout * - * Default layout: 981px wide, centered. Used in default page shell + * Default layout: 990px wide, centered. Used in default page shell * + * @package Elgg.Core + * @subpackage UI */ ?> -/* <style> + /* *************************************** PAGE LAYOUT *************************************** */ /***** DEFAULT LAYOUT ******/ -.elgg-page-default .elgg-page-header > .elgg-inner {width: 981px;margin: 0 auto;height: 90px;}.elgg-page-default .elgg-page-body > .elgg-inner {width: 981px;margin: 0 auto;}.elgg-page-footer {width: 981px;margin: 0 auto;}.elgg-page-default .elgg-page-footer > .elgg-inner {margin-left: 181px;padding: 8px;}.elgg-page-footer > .elgg-inner:after {display:block;content: '.';clear:both;visibility:hidden;height:0;} +<?php // the width is on the page rather than topbar to handle small viewports ?> +.elgg-page-default { + min-width: 998px; +} +.elgg-page-default .elgg-page-header > .elgg-inner { + width: 990px; + margin: 0 auto; + height: 90px; +} +.elgg-page-default .elgg-page-body > .elgg-inner { + width: 990px; + margin: 0 auto; +} +.elgg-page-default .elgg-page-footer > .elgg-inner { + width: 990px; + margin: 0 auto; + padding: 5px 0; + border-top: 1px solid #DEDEDE; +} + /***** TOPBAR ******/ -.elgg-page-topbar {position: fixed;right: 0;left: 0;z-index: 1030;margin-bottom: 0;padding-left: 20px;padding-right: 20px;background-color: #2c2c2c;background-image: -moz-linear-gradient(top, #333333, #222222);background-image: -ms-linear-gradient(top, #333333, #222222);background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#333333), to(#222222));background-image: -webkit-linear-gradient(top, #333333, #222222);background-image: -o-linear-gradient(top, #333333, #222222);background-image: linear-gradient(top, #333333, #222222);background-repeat: repeat-x;filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#333333', endColorstr='#222222', GradientType=0);-webkit-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.25), inset 0 -1px 0 rgba(0, 0, 0, 0.1);-moz-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.25), inset 0 -1px 0 rgba(0, 0, 0, 0.1);box-shadow: 0 1px 3px rgba(0, 0, 0, 0.25), inset 0 -1px 0 rgba(0, 0, 0, 0.1);}.elgg-page-topbar > .elgg-inner {padding-top: 6px;width: 981px;margin: 0 auto;position: relative;}.elgg-page-topbar ~ .elgg-page-body {padding-top: 38px;} +.elgg-page-topbar { + background: #333333 url(<?php echo elgg_get_site_url(); ?>_graphics/toptoolbar_background.gif) repeat-x top left; + border-bottom: 1px solid #000000; + position: relative; + height: 24px; + z-index: 9000; +} +.elgg-page-topbar > .elgg-inner { + padding: 0 10px; +} + /***** PAGE MESSAGES ******/ -.elgg-system-messages {position: fixed;top: 24px;right: 20px;max-width: 500px;z-index: 1000;}.elgg-system-messages li {margin-top: 10px;}.elgg-system-messages li p {margin: 0;} +.elgg-system-messages { + position: fixed; + top: 24px; + right: 20px; + max-width: 500px; + z-index: 2000; +} +.elgg-system-messages li { + margin-top: 10px; +} +.elgg-system-messages li p { + margin: 0; +} + /***** PAGE HEADER ******/ -.elgg-page-header {position: relative;background: #3D3D3D;}.elgg-page-header > .elgg-inner {position: relative;} +.elgg-page-header { + position: relative; + background: #4690D6 url(<?php echo elgg_get_site_url(); ?>_graphics/header_shadow.png) repeat-x bottom left; +} +.elgg-page-header > .elgg-inner { + position: relative; +} + /***** PAGE BODY LAYOUT ******/ -.elgg-layout {min-height: 360px;}.elgg-layout-one-column {padding: 10px 0;}.elgg-sidebar {position: relative;padding: 20px 0;float: left;width: 181px;min-height: 360px;}.elgg-sidebar-alt {position: relative;float: right;width: 244px;margin-left: 20px;min-height: 360px;}.elgg-main {position: relative;min-height: 360px;}.elgg-layout-two-sidebar > .elgg-body,.elgg-layout-one-sidebar > .elgg-body {border: 1px solid #B3B3B3;border-top: 0;padding: 15px 20px;}.elgg-layout > .elgg-body > .elgg-head {padding-bottom: 3px;margin-bottom: 10px;} +.elgg-layout { + min-height: 360px; +} +.elgg-layout-one-sidebar { + background: transparent url(<?php echo elgg_get_site_url(); ?>_graphics/sidebar_background.gif) repeat-y right top; +} +.elgg-layout-two-sidebar { + background: transparent url(<?php echo elgg_get_site_url(); ?>_graphics/two_sidebar_background.gif) repeat-y right top; +} +.elgg-layout-error { + margin-top: 20px; +} +.elgg-sidebar { + position: relative; + padding: 20px 10px; + float: right; + width: 210px; + margin: 0 0 0 10px; +} +.elgg-sidebar-alt { + position: relative; + padding: 20px 10px; + float: left; + width: 160px; + margin: 0 10px 0 0; +} +.elgg-main { + position: relative; + min-height: 360px; + padding: 10px; +} +.elgg-main > .elgg-head { + padding-bottom: 3px; + border-bottom: 1px solid #CCCCCC; + margin-bottom: 10px; +} + /***** PAGE FOOTER ******/ -.elgg-page-footer {position: relative;color: #999;}.elgg-page-footer a:hover {color: #666;}
\ No newline at end of file +.elgg-page-footer { + position: relative; +} +.elgg-page-footer { + color: #999; +} +.elgg-page-footer a:hover { + color: #666; +} diff --git a/views/default/css/elements/misc.php b/views/default/css/elements/misc.php new file mode 100644 index 000000000..d9622d34a --- /dev/null +++ b/views/default/css/elements/misc.php @@ -0,0 +1,62 @@ +/* *************************************** + MISC +*************************************** */ +#login-dropdown { + position: absolute; + top:10px; + right:0; + z-index: 100; +} + +/* *************************************** + AVATAR UPLOADING & CROPPING +*************************************** */ + +#current-user-avatar { + border-right:1px solid #ccc; +} +#avatar-croppingtool { + border-top: 1px solid #ccc; +} +#user-avatar-cropper { + float: left; +} +#user-avatar-preview { + float: left; + position: relative; + overflow: hidden; + width: 100px; + height: 100px; +} + +/* *************************************** + FRIENDS COLLECTIONS +*************************************** */ + +#friends_collections_accordian li { + color: #666; +} +#friends_collections_accordian li h2 { + -webkit-border-radius: 8px; + -moz-border-radius: 8px; + border-radius: 8px; + + background: none repeat scroll 0 0 #4690D6; + color: white; + cursor: pointer; + font-size: 1.2em; + margin: 10px 0; + padding: 4px 2px 4px 6px; +} +#friends_collections_accordian li h2:hover { + background-color: #333; +} +#friends_collections_accordian .friends_collections_controls { + float: right; + font-size: 70%; +} +#friends_collections_accordian .friends-picker-main-wrapper { + background: none repeat scroll 0 0 white; + display: none; + padding: 0; +} diff --git a/views/default/css/elements/modules.php b/views/default/css/elements/modules.php index 6182083b9..a37ae094b 100644 --- a/views/default/css/elements/modules.php +++ b/views/default/css/elements/modules.php @@ -1,12 +1,194 @@ -/* <style> /* *************************************** Modules *************************************** */ +.elgg-module { + overflow: hidden; + margin-bottom: 20px; +} + +/* Aside */ +.elgg-module-aside .elgg-head { + border-bottom: 1px solid #CCC; + + margin-bottom: 5px; + padding-bottom: 5px; +} + /* Info */ -.elgg-module-info > .elgg-head {max-width: 490px;height: 100%;background-color: #eeeeee;background-repeat: repeat-x;background-image: -moz-linear-gradient(top, #f5f5f5 0%, #eeeeee 100%);background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#f5f5f5), color-stop(100%,#eeeeee));background-image: -webkit-linear-gradient(top, #f5f5f5 0%,#eeeeee 100%);background-image: -ms-linear-gradient(top, #f5f5f5 0%,#eeeeee 100%);background-image: -o-linear-gradient(top, #f5f5f5 0%,#eeeeee 100%);filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#f5f5f5', endColorstr='#eeeeee',GradientType=0 );background-image: linear-gradient(top, #f5f5f5 0%,#eeeeee 100%);border: 1px solid #e5e5e5;-webkit-border-radius: 4px;-moz-border-radius: 4px;border-radius: 4px;margin-bottom: 5px;padding: 5px 8px;}.elgg-module-aside {margin-bottom: 15px;}.elgg-module-aside > .elgg-head {background-color: #F2F2F2;border-bottom: none;border-top: solid 1px #E2E2E2;padding: 4px 5px 5px;margin-bottom: 5px;}.elgg-module-aside > .elgg-head > h3 {font-size: 1em;}.elgg-module-aside > .elgg-body {padding: 0 5px;}.elgg-module-popup {background-color: white;z-index: 9999;margin-bottom: 0;box-shadow: 0 0 0 5px rgba(82, 82, 82, 0.7);border-radius: 3px;}.elgg-module-popup > .elgg-head, .elgg-module-popup > a > .elgg-head {background: #E9E9E9;border: 1px solid #555;border-bottom: none;font-size: 10px;font-weight: bold;margin: 0;padding: 5px 10px;}.elgg-module-popup > .elgg-head > h3{color: white;}.elgg-module-popup > .elgg-body {background: white;border: 1px solid #555;border-top: 0;padding: 10px;}.elgg-module-popup > .elgg-foot {margin-top: -1px;border: 1px solid #3B5998;border-top-color: #CCC;background: #F2F2F2;padding: 8px 10px;text-align:right;}.elgg-module-dropdown {background-color: white;border: 1px solid #333;border-bottom: 2px solid #293E6A;z-index:100;}.elgg-module-dropdown > .elgg-body {padding: 8px;}.elgg-module-dropdown > .elgg-head {margin: 7px 8px 0;border-bottom: 1px solid #AAA;padding-bottom: .5em;}.elgg-module-dropdown > .elgg-foot {text-align: center;}.elgg-module-featured {background-color: #F2F2F2;border: 1px solid #CCC;padding: 10px;margin-bottom: 20px;}.elgg-module-featured > .elgg-head {margin-bottom: 10px;} +.elgg-module-info > .elgg-head { + background: #e4e4e4; + padding: 5px; + margin-bottom: 10px; + + -webkit-border-radius: 3px; + -moz-border-radius: 3px; + border-radius: 3px; +} +.elgg-module-info > .elgg-head * { + color: #333; +} + +/* Popup */ +.elgg-module-popup { + background-color: white; + border: 1px solid #ccc; + + z-index: 9999; + margin-bottom: 0; + padding: 5px; + -webkit-border-radius: 6px; + -moz-border-radius: 6px; + border-radius: 6px; + + -webkit-box-shadow: 4px 4px 4px rgba(0, 0, 0, 0.5); + -moz-box-shadow: 4px 4px 4px rgba(0, 0, 0, 0.5); + box-shadow: 4px 4px 4px rgba(0, 0, 0, 0.5); +} +.elgg-module-popup > .elgg-head { + margin-bottom: 5px; +} +.elgg-module-popup > .elgg-head * { + color: #0054A7; +} + +/* Dropdown */ +.elgg-module-dropdown { + background-color:white; + border:5px solid #CCC; + + -webkit-border-radius: 5px 0 5px 5px; + -moz-border-radius: 5px 0 5px 5px; + border-radius: 5px 0 5px 5px; + + display:none; + + width: 210px; + padding: 12px; + margin-right: 0px; + z-index:100; + + -webkit-box-shadow: 0 3px 3px rgba(0, 0, 0, 0.45); + -moz-box-shadow: 0 3px 3px rgba(0, 0, 0, 0.45); + box-shadow: 0 3px 3px rgba(0, 0, 0, 0.45); + + position:absolute; + right: 0px; + top: 100%; +} + +/* Featured */ +.elgg-module-featured { + border: 1px solid #4690D6; + + -webkit-border-radius: 6px; + -moz-border-radius: 6px; + border-radius: 6px; +} +.elgg-module-featured > .elgg-head { + padding: 5px; + background-color: #4690D6; +} +.elgg-module-featured > .elgg-head * { + color: white; +} +.elgg-module-featured > .elgg-body { + padding: 10px; +} + /* *************************************** Widgets *************************************** */ -.elgg-widgets {float: right;min-height: 30px;}.elgg-widget-add-control {text-align: right;margin: 5px 5px 15px;}.elgg-widgets-add-panel {padding: 10px;margin: 0 5px 15px;background: #dedede;border: 2px solid #ccc;} +.elgg-widgets { + float: right; + min-height: 30px; +} +.elgg-widget-add-control { + text-align: right; + margin: 5px 5px 15px; +} +.elgg-widgets-add-panel { + padding: 10px; + margin: 0 5px 15px; + background: #dedede; + border: 2px solid #ccc; +} <?php //@todo location-dependent style: make an extension of elgg-gallery ?> -.elgg-widgets-add-panel li {float: left;margin: 2px 10px;width: 200px;padding: 4px;background-color: #ccc;border: 2px solid #b0b0b0;font-weight: bold;}.elgg-widgets-add-panel li a {display: block;}.elgg-widgets-add-panel .elgg-state-available {color: #333;cursor: pointer;}.elgg-widgets-add-panel .elgg-state-available:hover {background-color: #bcbcbc;}.elgg-widgets-add-panel .elgg-state-unavailable {color: #888;}.elgg-module-widget {background-color: #dedede;padding: 2px;margin: 0 5px 15px;position: relative;}.elgg-module-widget:hover {background-color: #ccc;}.elgg-module-widget > .elgg-head {background-color: #dedede;height: 30px;line-height: 30px;overflow: hidden;}.elgg-module-widget > .elgg-head h3 {float: left;padding: 0 45px 0 20px;color: #333;}.elgg-module-widget.elgg-state-draggable > .elgg-head {cursor: move;}.elgg-module-widget > .elgg-head a {position: absolute;top: 5px;display: inline-block;width: 18px;height: 18px;padding: 2px 2px 0 0;border: 1px solid transparent;}a.elgg-widget-collapse-button {left: 5px;background:transparent url(<?php echo elgg_get_site_url(); ?>_graphics/elgg_sprites.png) no-repeat 0px -385px;}a.elgg-widget-collapsed {background-position: 0px -365px;}a.elgg-widget-delete-button {right: 5px;}a.elgg-widget-edit-button {right: 25px;}a.elgg-widget-edit-button:hover, a.elgg-widget-delete-button:hover {border: 1px solid #ccc;}.elgg-module-widget > .elgg-body {background-color: white;width: 100%;overflow: hidden;}.elgg-widget-edit {display: none;width: 96%;padding: 2%;border-bottom: 2px solid #dedede;}.elgg-widget-content {padding: 10px;}.elgg-widget-placeholder {border: 2px dashed #dedede;margin-bottom: 15px;}
\ No newline at end of file +.elgg-widgets-add-panel li { + float: left; + margin: 2px 10px; + width: 200px; + padding: 4px; + background-color: #ccc; + border: 2px solid #b0b0b0; + font-weight: bold; +} +.elgg-widgets-add-panel li a { + display: block; +} +.elgg-widgets-add-panel .elgg-state-available { + color: #333; + cursor: pointer; +} +.elgg-widgets-add-panel .elgg-state-available:hover { + background-color: #bcbcbc; +} +.elgg-widgets-add-panel .elgg-state-unavailable { + color: #888; +} + +.elgg-module-widget { + background-color: #dedede; + padding: 2px; + margin: 0 5px 15px; + position: relative; +} +.elgg-module-widget:hover { + background-color: #ccc; +} +.elgg-module-widget > .elgg-head { + background-color: #eeeeee; + height: 26px; + overflow: hidden; +} +.elgg-module-widget > .elgg-head h3 { + float: left; + padding: 4px 45px 0 20px; + color: #666; +} +.elgg-module-widget.elgg-state-draggable .elgg-widget-handle { + cursor: move; +} +a.elgg-widget-collapse-button { + color: #c5c5c5; +} +a.elgg-widget-collapse-button:hover, +a.elgg-widget-collapsed:hover { + color: #9d9d9d; + text-decoration: none; +} +a.elgg-widget-collapse-button:before { + content: "\25BC"; +} +a.elgg-widget-collapsed:before { + content: "\25BA"; +} +.elgg-module-widget > .elgg-body { + background-color: white; + width: 100%; + overflow: hidden; + border-top: 2px solid #dedede; +} +.elgg-widget-edit { + display: none; + width: 96%; + padding: 2%; + border-bottom: 2px solid #dedede; + background-color: #f9f9f9; +} +.elgg-widget-content { + padding: 10px; +} +.elgg-widget-placeholder { + border: 2px dashed #dedede; + margin-bottom: 15px; +} diff --git a/views/default/css/elements/navigation.php b/views/default/css/elements/navigation.php index 0bd90c02a..6b29e4c19 100644 --- a/views/default/css/elements/navigation.php +++ b/views/default/css/elements/navigation.php @@ -6,80 +6,555 @@ * @subpackage UI */ ?> -/* <style> + /* *************************************** PAGINATION *************************************** */ -.elgg-menu > li > a:hover,.elgg-menu > li > a{text-decoration:none;}.elgg-menu-owner-block li > a > .elgg-icon,.elgg-menu-extras li > a > .elgg-icon,.elgg-menu-page li > a > .elgg-icon,.elgg-menu-composer li > a > .elgg-icon{margin-left:-20px;margin-right:4px;}.elgg-pagination{display:block;border:1px solid #CCC;background:#F7F7F7;text-align:center;border-width:1px 0;}.elgg-pagination > li{display:inline-block;}.elgg-pagination > li > a,.elgg-pagination > li > span{font-size:13px;font-weight:700;text-align:center;display:block;margin:3px 11px 0 0;padding:3px 4px 4px;}.elgg-pagination > li > a:hover{background:#3B5998;color:#FFF;text-decoration:none;}.elgg-pagination > .elgg-state-selected > span{border-bottom:2px solid #3B3B3B;} +.elgg-pagination { + margin: 10px 0; + display: block; + text-align: center; +} +.elgg-pagination li { + display: inline-block; + margin: 0 6px 0 0; + text-align: center; +} +.elgg-pagination a, .elgg-pagination span { + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; + + display: block; + padding: 2px 6px; + color: #4690d6; + border: 1px solid #4690d6; + font-size: 12px; +} +.elgg-pagination a:hover { + background: #4690d6; + color: white; + text-decoration: none; +} +.elgg-pagination .elgg-state-disabled span { + color: #CCCCCC; + border-color: #CCCCCC; +} +.elgg-pagination .elgg-state-selected span { + color: #555555; + border-color: #555555; +} + /* *************************************** TABS *************************************** */ -.elgg-tabs{border-bottom:1px solid #D8DFEA;display:block;width:100%;padding-left:15px;}.elgg-tabs > li{display:inline-block;background:#D8DFEA;border:1px solid #D8DFEA;border-bottom:0;margin:2px 2px -1px 0;}.elgg-tabs > :hover{background:#627AAD;border:1px solid #627AAD;border-bottom:0;}.elgg-tabs > li > a{font-size:13px;font-weight:700;text-align:center;display:block;padding:3px 11px 4px;}.elgg-tabs > :hover > a{color:#FFF;text-decoration:none;}.elgg-tabs > .elgg-state-selected{border:1px solid #D8DFEA;border-bottom:0;margin-top:0;}.elgg-tabs > .elgg-state-selected > a,.elgg-tabs > .elgg-state-selected:hover > a{background:#FFF;color:#333;padding:5px 10px 4px;} +.elgg-tabs { + margin-bottom: 5px; + border-bottom: 2px solid #cccccc; + display: table; + width: 100%; +} +.elgg-tabs li { + float: left; + border: 2px solid #ccc; + border-bottom: 0; + background: #eee; + margin: 0 0 0 10px; + + -webkit-border-radius: 5px 5px 0 0; + -moz-border-radius: 5px 5px 0 0; + border-radius: 5px 5px 0 0; +} +.elgg-tabs a { + text-decoration: none; + display: block; + padding: 3px 10px 0 10px; + text-align: center; + height: 21px; + color: #999; +} +.elgg-tabs a:hover { + background: #dedede; + color: #4690D6; +} +.elgg-tabs .elgg-state-selected { + border-color: #ccc; + background: white; +} +.elgg-tabs .elgg-state-selected a { + position: relative; + top: 2px; + background: white; +} + /* *************************************** BREADCRUMBS *************************************** */ -.elgg-breadcrumbs{font-size:80%;font-weight:700;line-height:1.2em;color:#bababa;}.elgg-breadcrumbs > li{display:inline-block;}.elgg-breadcrumbs > li:after{content:"\003E";font-weight:400;padding:0 4px;}.elgg-breadcrumbs > li > a{display:inline-block;color:#999;}.elgg-breadcrumbs > li > a:hover{color:#0054a7;text-decoration:underline;} +.elgg-breadcrumbs { + font-size: 80%; + font-weight: bold; + line-height: 1.2em; + color: #bababa; +} +.elgg-breadcrumbs > li { + display: inline-block; +} +.elgg-breadcrumbs > li:after { + content: "\003E"; + padding: 0 4px; + font-weight: normal; +} +.elgg-breadcrumbs > li > a { + display: inline-block; + color: #999; +} +.elgg-breadcrumbs > li > a:hover { + color: #0054a7; + text-decoration: underline; +} + +.elgg-main .elgg-breadcrumbs { + position: relative; + top: -6px; + left: 0; +} + /* *************************************** TOPBAR MENU *************************************** */ -.elgg-menu-topbar{float:left;}.elgg-menu-topbar > li{float:left;position:relative;}.elgg-menu-topbar > li > a{color:#FFF;display:block;font-weight:700;height:24px;}.elgg-menu-topbar-default > li > a{margin:0 1px;padding:8px 4px 0;}.elgg-menu-topbar-alt{float:right;margin-right:1px;}.elgg-menu-topbar-alt > li > a{padding:8px 7px 0;}.elgg-menu-topbar .elgg-menu-parent:after{content:" \25BC ";font-size:smaller;}.elgg-menu-topbar .elgg-child-menu{background:#FFF;border:1px solid #333;border-bottom:2px solid #3D3D3D;margin-right:-1px;margin-top:-1px;min-width:200px;position:absolute;right:0;top:100%;display:none;z-index:1;padding:4px 0;}.elgg-menu-topbar .elgg-child-menu.elgg-state-active{display:block;}.elgg-menu-topbar .elgg-child-menu > li > a{border-bottom:1px solid #FFF;border-top:1px solid #FFF;color:#333;display:block;font-weight:400;height:18px;line-height:18px;white-space:nowrap;padding:0 22px;}.elgg-menu-topbar .elgg-child-menu > li > a:hover{background:#5B5B5B;border-bottom:1px solid #3D3D3D;border-top:1px solid #3D3D3D;color:#FFF;text-decoration:none;}.elgg-menu-topbar > li > .elgg-menu-opened,.elgg-menu-topbar > li > .elgg-menu-opened:hover{background:#FFF;border:1px solid #333;border-bottom:0;color:#333;position:relative;z-index:2;margin:-1px -1px 0;}.elgg-menu-topbar-default > li > a:hover,.elgg-menu-topbar-alt > li > a:hover{background:#5B5B5B;} +.elgg-menu-topbar { + float: left; +} + +.elgg-menu-topbar > li { + float: left; +} + +.elgg-menu-topbar > li > a { + padding-top: 2px; + color: #eee; + margin: 1px 15px 0; +} + +.elgg-menu-topbar > li > a:hover { + color: #4690D6; + text-decoration: none; +} + +.elgg-menu-topbar-alt { + float: right; +} + +.elgg-menu-topbar .elgg-icon { + vertical-align: middle; + margin-top: -1px; +} + +.elgg-menu-topbar > li > a.elgg-topbar-logo { + margin-top: 0; + padding-left: 5px; + width: 38px; + height: 20px; +} + +.elgg-menu-topbar > li > a.elgg-topbar-avatar { + width: 18px; + height: 18px; +} + /* *************************************** SITE MENU *************************************** */ -.elgg-menu-site:after{content:'.';clear:both;display:block;height:0;line-height:0;}.elgg-menu-site{background:#ECEFF5;}.elgg-menu-site > li{float:left;}.elgg-menu-site > li > a{padding:8px 10px;}.elgg-menu-site > li > a:hover{background:#FFF;} +.elgg-menu-site { + z-index: 1; +} + +.elgg-menu-site > li > a { + font-weight: bold; + padding: 3px 13px 0px 13px; + height: 20px; +} + +.elgg-menu-site > li > a:hover { + text-decoration: none; +} + +.elgg-menu-site-default { + position: absolute; + bottom: 0; + left: 0; + height: 23px; +} + +.elgg-menu-site-default > li { + float: left; + margin-right: 1px; +} + +.elgg-menu-site-default > li > a { + color: white; +} + +.elgg-menu-site > li > ul { + display: none; + background-color: white; +} + +.elgg-menu-site > li:hover > ul { + display: block; +} + +.elgg-menu-site-default > .elgg-state-selected > a, +.elgg-menu-site-default > li:hover > a { + background: white; + color: #555; + + -webkit-box-shadow: 2px -1px 1px rgba(0, 0, 0, 0.25); + -moz-box-shadow: 2px -1px 1px rgba(0, 0, 0, 0.25); + box-shadow: 2px -1px 1px rgba(0, 0, 0, 0.25); + + -webkit-border-radius: 4px 4px 0 0; + -moz-border-radius: 4px 4px 0 0; + border-radius: 4px 4px 0 0; +} + +.elgg-menu-site-more { + position: relative; + left: -1px; + width: 100%; + min-width: 150px; + border: 1px solid #999; + border-top: 0; + + -webkit-border-radius: 0 0 4px 4px; + -moz-border-radius: 0 0 4px 4px; + border-radius: 0 0 4px 4px; + + -webkit-box-shadow: 1px 1px 1px rgba(0, 0, 0, 0.25); + -moz-box-shadow: 1px 1px 1px rgba(0, 0, 0, 0.25); + box-shadow: 1px 1px 1px rgba(0, 0, 0, 0.25); +} + +.elgg-menu-site-more > li > a { + background-color: white; + color: #555; + + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; + + -webkit-box-shadow: none; + -moz-box-shadow: none; + box-shadow: none; +} + +.elgg-menu-site-more > li > a:hover { + background: #4690D6; + color: white; +} + +.elgg-menu-site-more > li:last-child > a, +.elgg-menu-site-more > li:last-child > a:hover { + -webkit-border-radius: 0 0 4px 4px; + -moz-border-radius: 0 0 4px 4px; + border-radius: 0 0 4px 4px; +} + +.elgg-more > a:before { + content: "\25BC"; + font-size: smaller; + margin-right: 4px; +} + /* *************************************** TITLE *************************************** */ -.elgg-menu-title {float: right;}.elgg-menu-title > li {display: inline-block;margin-left: 4px;} +.elgg-menu-title { + float: right; +} + +.elgg-menu-title > li { + display: inline-block; + margin-left: 4px; +} + /* *************************************** FILTER MENU *************************************** */ -.elgg-menu-filter{display:table;;padding-left:10px;} -.elgg-menu-filter:after{content:'.';display: table;clear:both;visibility:hidden;height:0;line-height:0;} -.elgg-menu-filter > li{float: left;padding-top: 5px;padding-bottom: 5px;padding-right: 12px; -padding-left: 12px; -margin-right: 2px; -line-height: 14px;} -.elgg-menu-filter > .elgg-state-selected, .elgg-menu-filter > li > a{padding-top: 5px;padding-bottom: 5px;margin-top: 2px;margin-bottom: 2px;-webkit-border-radius: 5px;-moz-border-radius: 5px;border-radius: 5px;color:#08C;} -.elgg-menu-filter > .elgg-state-selected{color: white;background-color: #08C;} -.elgg-menu-filter .elgg-state-selected a{color: white;background-color: #08C;} +.elgg-menu-filter { + margin-bottom: 5px; + border-bottom: 2px solid #ccc; + display: table; + width: 100%; +} +.elgg-menu-filter > li { + float: left; + border: 2px solid #ccc; + border-bottom: 0; + background: #eee; + margin: 0 0 0 10px; + + -webkit-border-radius: 5px 5px 0 0; + -moz-border-radius: 5px 5px 0 0; + border-radius: 5px 5px 0 0; +} +.elgg-menu-filter > li:hover { + background: #dedede; +} +.elgg-menu-filter > li > a { + text-decoration: none; + display: block; + padding: 3px 10px 0; + text-align: center; + height: 21px; + color: #999; +} +.elgg-menu-filter > li > a:hover { + background: #dedede; + color: #4690D6; +} +.elgg-menu-filter > .elgg-state-selected { + border-color: #ccc; + background: white; +} +.elgg-menu-filter > .elgg-state-selected > a { + position: relative; + top: 2px; + background: white; +} + /* *************************************** PAGE MENU *************************************** */ -.elgg-menu-page{border-bottom:1px solid #EEE;margin-bottom:7px;padding-bottom:7px;}.elgg-menu-page li > a{display:block;color:#333;margin-bottom:1px;padding:3px 8px 3px 26px;}.elgg-menu-page li > a:hover{background-color:#EEE;}.elgg-menu-page li.elgg-state-selected > a{background-color:#E9E9E9;font-weight:700;}.elgg-menu-page .elgg-child-menu{display:none;margin-left:15px;}.elgg-menu-page .elgg-menu-closed:before,.elgg-menu-page .elgg-menu-opened:before{display:inline-block;padding-right:4px;}.elgg-menu-page .elgg-menu-closed:before{content:"\002B";}.elgg-menu-page .elgg-menu-opened:before{content:"\002D";} +.elgg-menu-page { + margin-bottom: 15px; +} + +.elgg-menu-page a { + display: block; + + -webkit-border-radius: 8px; + -moz-border-radius: 8px; + border-radius: 8px; + + background-color: white; + margin: 0 0 3px; + padding: 2px 4px 2px 8px; +} +.elgg-menu-page a:hover { + background-color: #0054A7; + color: white; + text-decoration: none; +} +.elgg-menu-page li.elgg-state-selected > a { + background-color: #4690D6; + color: white; +} +.elgg-menu-page .elgg-child-menu { + display: none; + margin-left: 15px; +} +.elgg-menu-page .elgg-menu-closed:before, .elgg-menu-opened:before { + display: inline-block; + padding-right: 4px; +} +.elgg-menu-page .elgg-menu-closed:before { + content: "\002B"; +} +.elgg-menu-page .elgg-menu-opened:before { + content: "\002D"; +} + /* *************************************** HOVER MENU *************************************** */ -.elgg-menu-hover{display:none;position:absolute;z-index:10000;width:165px;border:solid 1px;background-color:#FFF;-webkit-box-shadow:2px 2px 6px rgba(0,0,0,0.50);-moz-box-shadow:2px 2px 6px rgba(0,0,0,0.50);box-shadow:2px 2px 6px rgba(0,0,0,0.50);border-color:#E5E5E5 #999 #999 #E5E5E5;}.elgg-menu-hover > li{border-bottom:1px solid #ddd;}.elgg-menu-hover > li:last-child{border-bottom:none;}.elgg-menu-hover .elgg-heading-basic{display:block;}.elgg-menu-hover a{font-size:92%;padding:2px 8px;}.elgg-menu-hover a:hover{background:#ccc;}.elgg-menu-hover-admin a{color:red;}.elgg-menu-hover-admin a:hover{color:#FFF;background-color:red;} +.elgg-menu-hover { + display: none; + position: absolute; + z-index: 10000; + + overflow: hidden; + + min-width: 165px; + max-width: 250px; + border: solid 1px; + border-color: #E5E5E5 #999 #999 #E5E5E5; + background-color: #FFF; + + -webkit-box-shadow: 2px 2px 6px rgba(0, 0, 0, 0.50); + -moz-box-shadow: 2px 2px 6px rgba(0, 0, 0, 0.50); + box-shadow: 2px 2px 6px rgba(0, 0, 0, 0.50); +} +.elgg-menu-hover > li { + border-bottom: 1px solid #ddd; +} +.elgg-menu-hover > li:last-child { + border-bottom: none; +} +.elgg-menu-hover .elgg-heading-basic { + display: block; +} +.elgg-menu-hover a { + padding: 2px 8px; + font-size: 92%; +} +.elgg-menu-hover a:hover { + background: #ccc; + text-decoration: none; +} +.elgg-menu-hover-admin a { + color: red; +} +.elgg-menu-hover-admin a:hover { + color: white; + background-color: red; +} + /* *************************************** - FOOTER + SITE FOOTER *************************************** */ -.elgg-menu-footer > li,.elgg-menu-footer > li > a {color:#999;display: inline-block;}.elgg-menu-footer > li:after {content: " \00B7 ";padding: 0 4px;}.elgg-menu-footer-default {float:right;}.elgg-menu-footer-alt {float: left;} +.elgg-menu-footer > li, +.elgg-menu-footer > li > a { + display: inline-block; + color: #999; +} + +.elgg-menu-footer > li:after { + content: "\007C"; + padding: 0 4px; +} + +.elgg-menu-footer-default { + float: right; +} + +.elgg-menu-footer-alt { + float: left; +} + /* *************************************** - ENTITY + GENERAL MENU *************************************** */ -.elgg-menu-entity{float:right;margin-left:15px;font-size:90%;color:#aaa;}.elgg-menu-entity > li{display:inline-block;margin-left:15px;}.elgg-menu-entity > li > a{color:#aaa;} +.elgg-menu-general > li, +.elgg-menu-general > li > a { + display: inline-block; + color: #999; +} + +.elgg-menu-general > li:after { + content: "\007C"; + padding: 0 4px; +} + +/* *************************************** + ENTITY AND ANNOTATION +*************************************** */ +<?php // height depends on line height/font size ?> +.elgg-menu-entity, .elgg-menu-annotation { + float: right; + margin-left: 15px; + font-size: 90%; + color: #aaa; + line-height: 16px; + height: 16px; +} +.elgg-menu-entity > li, .elgg-menu-annotation > li { + margin-left: 15px; +} +.elgg-menu-entity > li > a, .elgg-menu-annotation > li > a { + color: #aaa; +} +<?php // need to override .elgg-menu-hz ?> +.elgg-menu-entity > li > a, .elgg-menu-annotation > li > a { + display: block; +} +.elgg-menu-entity > li > span, .elgg-menu-annotation > li > span { + vertical-align: baseline; +} + /* *************************************** OWNER BLOCK *************************************** */ -.elgg-menu-owner-block li > a{border-bottom:1px solid #D8DFEA;padding:3px 8px 3px 26px;}.elgg-menu-owner-block li > a:hover{background-color:#EEE;color:0;}.elgg-menu-owner-block .elgg-state-selected > a{background-color:#E9E9E9;}.elgg-menu-owner-block .elgg-menu > li > a{padding-left:44px;} +.elgg-menu-owner-block li a { + display: block; + + -webkit-border-radius: 8px; + -moz-border-radius: 8px; + border-radius: 8px; + + background-color: white; + margin: 3px 0 5px 0; + padding: 2px 4px 2px 8px; +} +.elgg-menu-owner-block li a:hover { + background-color: #0054A7; + color: white; + text-decoration: none; +} +.elgg-menu-owner-block li.elgg-state-selected > a { + background-color: #4690D6; + color: white; +} + /* *************************************** LONGTEXT *************************************** */ -.elgg-menu-longtext {float: right;} +.elgg-menu-longtext { + float: right; +} + /* *************************************** RIVER *************************************** */ -.elgg-menu-river{color:#888;display:inline-block;margin:3px 0 0 -3px;}.elgg-menu-river > li{display:inline;}.elgg-menu-river > li:before{content:" \00B7 ";display:inline-block;margin:0 3px;} .elgg-menu-river > li > a{color:#3D3D3D;display:inline;}.elgg-menu-river > li > a:hover{text-decoration:underline;} +.elgg-menu-river { + float: right; + margin-left: 15px; + font-size: 90%; + color: #aaa; + line-height: 16px; + height: 16px; +} +.elgg-menu-river > li { + display: inline-block; + margin-left: 5px; +} +.elgg-menu-river > li > a { + color: #aaa; + height: 16px; +} +<?php // need to override .elgg-menu-hz ?> +.elgg-menu-river > li > a { + display: block; +} +.elgg-menu-river > li > span { + vertical-align: baseline; +} + /* *************************************** SIDEBAR EXTRAS (rss, bookmark, etc) *************************************** */ -.elgg-menu-extras > li > a {padding: 3px 8px 3px 26px;}.elgg-menu-extras > li > a:hover {text-decoration:underline;} -/* *************************************** - COMPOSER -*************************************** */ -.elgg-menu-composer{display:inline-block;height:22px;}.elgg-menu-composer > li{font-weight:700;margin-left:10px;}.elgg-menu-composer > li > a{line-height:16px;padding-left:20px;}.elgg-menu-composer > li > a:hover{text-decoration:underline;}.elgg-menu-composer > li.ui-state-active > a{cursor:default;color:#000;text-decoration:none;}.elgg-menu-composer > .ui-state-active > a:before,.elgg-menu-composer > .ui-state-active > a:after{position:absolute;display:block;content:" ";height:0;width:0;left:0;border-style:solid;border-width:8px;}.elgg-menu-composer > .ui-state-active > a:before{top:11px;border-color:transparent transparent #B4BBCD;}.elgg-menu-composer > .ui-state-active > a:after{top:12px;border-color:transparent transparent #FFF;} +.elgg-menu-extras { + margin-bottom: 15px; +} + /* *************************************** - SCROLLBAR + WIDGET MENU *************************************** */ -::-webkit-scrollbar{width:10px;height:10px;}::-webkit-scrollbar-track-piece{background-color:#EEE;-webkit-border-radius:0;-webkit-border-bottom-right-radius:8px;-webkit-border-bottom-left-radius:8px;}::-webkit-scrollbar-thumb:vertical{height:50px;background-color:#999;-webkit-border-radius:8px;}::-webkit-scrollbar-thumb:horizontal{width:50px;background-color:#999;-webkit-border-radius:8px;}
\ No newline at end of file +.elgg-menu-widget > li { + position: absolute; + top: 4px; + display: inline-block; + width: 18px; + height: 18px; + padding: 2px 2px 0 0; +} + +.elgg-menu-widget > .elgg-menu-item-collapse { + left: 5px; +} +.elgg-menu-widget > .elgg-menu-item-delete { + right: 5px; +} +.elgg-menu-widget > .elgg-menu-item-settings { + right: 25px; +} diff --git a/views/default/css/elements/reset.php b/views/default/css/elements/reset.php new file mode 100644 index 000000000..44bf2fac9 --- /dev/null +++ b/views/default/css/elements/reset.php @@ -0,0 +1,79 @@ +<?php +/** + * CSS reset + * + * @package Elgg.Core + * @subpackage UI + */ +?> + +/* *************************************** + RESET CSS +*************************************** */ +html, body, div, span, applet, object, iframe, +h1, h2, h3, h4, h5, h6, p, blockquote, pre, +a, abbr, acronym, address, big, cite, code, +del, dfn, em, font, img, ins, kbd, q, s, samp, +small, strike, strong, sub, sup, tt, var, +dl, dt, dd, ol, ul, li, +fieldset, form, label, legend, +table, caption, tbody, tfoot, thead, tr, th, td { + margin: 0; + padding: 0; + border: 0; + outline: 0; + font-weight: inherit; + font-style: inherit; + font-size: 100%; + font-family: inherit; + vertical-align: baseline; +} +body { + background-color: white; +} +<?php // force vertical scroll bar ?> +html, body { + height: 100%; + margin-bottom: 1px; +} +img { + border-width:0; + border-color:transparent; +} +:focus { + outline: 0 none; +} +ol, ul { + list-style: none; +} +em, i { + font-style:italic; +} +ins { + text-decoration:none; +} +del { + text-decoration:line-through; +} +strong, b { + font-weight:bold; +} +table { + border-collapse: collapse; + border-spacing: 0; +} +caption, th, td { + text-align: left; + font-weight: normal; + vertical-align: top; +} +blockquote:before, blockquote:after, +q:before, q:after { + content: ""; +} +blockquote, q { + quotes: "" ""; +} +a { + text-decoration: none; +} diff --git a/views/default/css/elements/typography.php b/views/default/css/elements/typography.php index 459b33710..c044cb1cc 100644 --- a/views/default/css/elements/typography.php +++ b/views/default/css/elements/typography.php @@ -6,12 +6,157 @@ * @subpackage UI */ ?> -/* <style> + /* *************************************** Typography *************************************** */ -body{font-size:11px;font-family:"Lucida Grande", Tahoma, Verdana, Arial, sans-serif;color:#3D3D3D;}a{color:#3D3D3D;cursor:pointer;}pre,code{font-family:Monaco, "Courier New", Courier, monospace;font-size:12px;background:#EBF5FF;color:#000;overflow:auto;overflow-x:auto;white-space:pre-wrap;word-wrap:break-word;}blockquote{line-height:1.3em;background:#EBF5FF;border:none;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;margin:0 0 15px;padding:3px 15px;}h1,h2,h3,h4,h5,h6{font-weight:700;color:#3D3D3D;}h1{font-size:1.8em;}h2{font-size:1.5em;line-height:1.1em;padding-bottom:5px;}h3{font-size:1.2em;}h4{font-size:1em;}h5{font-size:.9em;}h6{font-size:.8em;}a:hover{text-decoration:underline;}p{margin-bottom:15px;}p:last-child{margin-bottom:0;}dt{font-weight:700;}dd{margin:0 0 1em 1em;}pre,code {padding: 0 3px 2px;font-family: Menlo, Monaco, "Courier New", monospace;font-size: 12px;color: #333333;-webkit-border-radius: 3px;-moz-border-radius: 3px;border-radius: 3px;}code{padding: 2px 4px;color: #d14;background-color: #f7f7f9;border: 1px solid #e1e1e8;}pre{display: block;padding: 8.5px;margin: 0 0 9px;font-size: 12.025px;line-height: 18px;background-color: #f5f5f5;border: 1px solid #ccc;border: 1px solid rgba(0, 0, 0, 0.15);-webkit-border-radius: 4px;-moz-border-radius: 4px;border-radius: 4px;white-space: pre;white-space: pre-wrap;word-break: break-all;word-wrap: break-word;}.elgg-monospace{font-family:Monaco, "Courier New", Courier, monospace;}.elgg-heading-site,.elgg-heading-site:hover{font-size:2em;line-height:1.4em;color:#FFF;text-shadow:0 0 1px #627AAD;text-decoration:none;}.elgg-heading-main{float:left;max-width:530px;margin-right:10px;}.elgg-heading-basic{color:#0054A7;font-size:1.2em;font-weight:700;}.elgg-subtext{color:#666;} +body { + font-size: 80%; + line-height: 1.4em; + font-family: "Lucida Grande", Arial, Tahoma, Verdana, sans-serif; +} + +a { + color: #4690D6; +} + +a:hover, +a.selected { <?php //@todo remove .selected ?> + color: #555555; + text-decoration: underline; +} + +p { + margin-bottom: 15px; +} + +p:last-child { + margin-bottom: 0; +} + +pre, code { + font-family: Monaco, "Courier New", Courier, monospace; + font-size: 12px; + + background:#EBF5FF; + color:#000000; + overflow:auto; + + overflow-x: auto; /* Use horizontal scroller if needed; for Firefox 2, not needed in Firefox 3 */ + + white-space: pre-wrap; + word-wrap: break-word; /* IE 5.5-7 */ + +} + +pre { + padding:3px 15px; + margin:0px 0 15px 0; + line-height:1.3em; +} + +code { + padding:2px 3px; +} + +.elgg-monospace { + font-family: Monaco, "Courier New", Courier, monospace; +} + +blockquote { + line-height: 1.3em; + padding:3px 15px; + margin:0px 0 15px 0; + background:#EBF5FF; + border:none; + + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; +} + +h1, h2, h3, h4, h5, h6 { + font-weight: bold; + color: #0054A7; +} + +h1 { font-size: 1.8em; } +h2 { font-size: 1.5em; line-height: 1.1em; padding-bottom:5px} +h3 { font-size: 1.2em; } +h4 { font-size: 1.0em; } +h5 { font-size: 0.9em; } +h6 { font-size: 0.8em; } + +.elgg-heading-site, .elgg-heading-site:hover { + font-size: 2em; + line-height: 1.4em; + color: white; + font-style: italic; + font-family: Georgia, times, serif; + text-shadow: 1px 2px 4px #333333; + text-decoration: none; +} + +.elgg-heading-main { + float: left; + max-width: 530px; + margin-right: 10px; +} +.elgg-heading-basic { + color: #0054A7; + font-size: 1.2em; + font-weight: bold; +} + +.elgg-subtext { + color: #666666; + font-size: 85%; + line-height: 1.2em; + font-style: italic; +} + +.elgg-text-help { + display: block; + font-size: 85%; + font-style: italic; +} + +.elgg-quiet { + color: #666; +} + +.elgg-loud { + color: #0054A7; +} + /* *************************************** USER INPUT DISPLAY RESET *************************************** */ -.elgg-output ul,ol{padding-left:1.5em;margin:0 1.5em 1.5em 0;}.elgg-output ul{list-style-type:disc;}.elgg-output ol{list-style-type:decimal;}.elgg-output table{border:1px solid #ccc;}.elgg-output table td{border:1px solid #ccc;padding:3px 5px;}.elgg-output img{max-width:100%;}
\ No newline at end of file +.elgg-output { + margin-top: 10px; +} + +.elgg-output dt { font-weight: bold } +.elgg-output dd { margin: 0 0 1em 1em } + +.elgg-output ul, .elgg-output ol { + margin: 0 1.5em 1.5em 0; + padding-left: 1.5em; +} +.elgg-output ul { + list-style-type: disc; +} +.elgg-output ol { + list-style-type: decimal; +} +.elgg-output table { + border: 1px solid #ccc; +} +.elgg-output table td { + border: 1px solid #ccc; + padding: 3px 5px; +} +.elgg-output img { + max-width: 100%; + height: auto; +} diff --git a/views/default/css/elgg.php b/views/default/css/elgg.php new file mode 100644 index 000000000..4960e6ade --- /dev/null +++ b/views/default/css/elgg.php @@ -0,0 +1,68 @@ +<?php +/** + * Elgg primary CSS view + * + * @package Elgg.Core + * @subpackage UI + */ + +/* + * Colors: + * #4690D6 - elgg light blue + * #0054A7 - elgg dark blue + * #e4ecf5 - elgg very light blue + */ + +// check if there is a theme overriding the old css view and use it, if it exists +$old_css_view = elgg_get_view_location('css'); +if ($old_css_view != elgg_get_config('viewpath')) { + echo elgg_view('css', $vars); + return true; +} + + +/******************************************************************************* + +Base CSS + * CSS reset + * core + * helpers (moved to end to have a higher priority) + * grid + +*******************************************************************************/ +echo elgg_view('css/elements/reset', $vars); +echo elgg_view('css/elements/core', $vars); +echo elgg_view('css/elements/grid', $vars); + + +/******************************************************************************* + +Skin CSS + * typography - fonts, line spacing + * forms - forms, inputs + * buttons - action, cancel, delete, submit, dropdown, special + * navigation - menus, breadcrumbs, pagination + * icons - icons, sprites, graphics + * modules - modules, widgets + * layout_objects - lists, content blocks, notifications, avatars + * layout - page layout + * misc - to be removed/redone + +*******************************************************************************/ +echo elgg_view('css/elements/typography', $vars); +echo elgg_view('css/elements/forms', $vars); +echo elgg_view('css/elements/buttons', $vars); +echo elgg_view('css/elements/icons', $vars); +echo elgg_view('css/elements/navigation', $vars); +echo elgg_view('css/elements/modules', $vars); +echo elgg_view('css/elements/components', $vars); +echo elgg_view('css/elements/layout', $vars); +echo elgg_view('css/elements/misc', $vars); + + +// included last to have higher priority +echo elgg_view('css/elements/helpers', $vars); + + +// in case plugins are still extending the old 'css' view, display it +echo elgg_view('css', $vars); diff --git a/views/default/css/ie.php b/views/default/css/ie.php new file mode 100644 index 000000000..34ececa89 --- /dev/null +++ b/views/default/css/ie.php @@ -0,0 +1,16 @@ +/** + * CSS for IE8 and above + */ + +/* ie8 does not like shrink wrapping this div with inline-block */ +.elgg-avatar { + display: block; +} + +/* ie8 adds space to the top of .elgg-gallery which causes jumpiness if this is display: block; */ +.elgg-gallery .elgg-avatar > a > img { + display: inline-block; +} +.elgg-gallery .elgg-avatar > .elgg-icon-hover-menu { + bottom: 4px; +} diff --git a/views/default/css/ie6.php b/views/default/css/ie6.php new file mode 100644 index 000000000..cf49d33f2 --- /dev/null +++ b/views/default/css/ie6.php @@ -0,0 +1,12 @@ +/** + * CSS for IE6 + */ + +* {zoom: 1;} /* trigger hasLayout in IE */ + +/* main nav drop-down */ +#elgg-header {z-index:1;} + +/* @todo check this one */ +.elgg-button-delete a { background-position-y: 2px; } +.elgg-button-delete a:hover { background-position-y: -14px; }
\ No newline at end of file diff --git a/views/default/css/ie7.php b/views/default/css/ie7.php new file mode 100644 index 000000000..90274797d --- /dev/null +++ b/views/default/css/ie7.php @@ -0,0 +1,75 @@ +/** + * CSS for IE7 + */ + +/* trigger hasLayout in IE */ +* { + zoom: 1; +} + +/* site menu drop-down z-index fix for IE7 */ +.elgg-page-header { + z-index: 1; +} + +/* inline-block fixes */ +.elgg-gallery > li, +.elgg-button, +.elgg-icon, +.elgg-menu-hz > li, +.elgg-menu-hz > li:after, +.elgg-menu-hz > li > a, +.elgg-menu-hz > li > span, +.elgg-breadcrumbs > li, +.elgg-menu-footer > li > a, +.elgg-menu-footer li, +.elgg-menu-general > li > a, +.elgg-pagination li, +.elgg-menu-general li { + display: inline; +} + +/* IE7 does not support :after */ +.elgg-breadcrumbs > li > a { + display: inline; + padding-right: 4px; + margin-right: 4px; + border-right: 1px solid #bababa; +} +.elgg-menu-footer li, +.elgg-menu-user li, +.elgg-menu-general li { + padding-left: 4px; + padding-right: 4px; +} + +/* longtext menu would not display horizontally without this */ +.elgg-menu-longtext { + width: 100%; +} +.elgg-menu-longtext li { + width: 100px; + float: right; +} + +.elgg-avatar { + display: inline; +} + +.elgg-body-walledgarden .elgg-col-1of2 { + width: 255px; +} + +.elgg-module-walledgarden > .elgg-head, +.elgg-module-walledgarden > .elgg-foot { + width: 530px; +} + +input, textarea { + width: 98%; +} + +.elgg-tag a { + /* IE7 had a weird wrapping issue for tags */ + word-wrap: normal; +} diff --git a/views/default/css/lightbox.php b/views/default/css/lightbox.php new file mode 100644 index 000000000..7d5917cc3 --- /dev/null +++ b/views/default/css/lightbox.php @@ -0,0 +1,371 @@ +<?php +/** + * Fancybox lightbox CSS. + * + * Used as a view because we need to pass a full URL to AlphaImageLoader. + * + * @package Elgg.Core + * @subpackage UI + */ + +$jquery_path = elgg_get_site_url() . 'vendors/jquery/'; +?> + +/* + * FancyBox - jQuery Plugin + * Simple and fancy lightbox alternative + * + * Examples and documentation at: http://fancybox.net + * + * Copyright (c) 2008 - 2010 Janis Skarnelis + * That said, it is hardly a one-person project. Many people have submitted bugs, code, and offered their advice freely. Their support is greatly appreciated. + * + * Version: 1.3.4 (11/11/2010) + * Requires: jQuery v1.3+ + * + * Dual licensed under the MIT and GPL licenses: + * http://www.opensource.org/licenses/mit-license.php + * http://www.gnu.org/licenses/gpl.html + */ + +#fancybox-loading { + position: fixed; + top: 50%; + left: 50%; + width: 40px; + height: 40px; + margin-top: -20px; + margin-left: -20px; + cursor: pointer; + overflow: hidden; + z-index: 1104; + display: none; +} + +#fancybox-loading div { + position: absolute; + top: 0; + left: 0; + width: 40px; + height: 480px; + background-image: url('<?php echo $jquery_path; ?>fancybox/fancybox.png'); +} + +#fancybox-overlay { + position: absolute; + top: 0; + left: 0; + width: 100%; + z-index: 1100; + display: none; +} + +#fancybox-tmp { + padding: 0; + margin: 0; + border: 0; + overflow: auto; + display: none; +} + +#fancybox-wrap { + position: absolute; + top: 0; + left: 0; + padding: 20px; + z-index: 1101; + outline: none; + display: none; +} + +#fancybox-outer { + position: relative; + width: 100%; + height: 100%; + background: #fff; +} + +#fancybox-content { + width: 0; + height: 0; + padding: 0; + outline: none; + position: relative; + overflow: hidden; + z-index: 1102; + border: 0px solid #fff; +} + +#fancybox-hide-sel-frame { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + background: transparent; + z-index: 1101; +} + +#fancybox-close { + position: absolute; + top: -15px; + right: -15px; + width: 30px; + height: 30px; + background: transparent url('<?php echo $jquery_path; ?>fancybox/fancybox.png') -40px 0px; + cursor: pointer; + z-index: 1103; + display: none; +} + +#fancybox-error { + color: #444; + font: normal 12px/20px Arial; + padding: 14px; + margin: 0; +} + +#fancybox-img { + width: 100%; + height: 100%; + padding: 0; + margin: 0; + border: none; + outline: none; + line-height: 0; + vertical-align: top; +} + +#fancybox-frame { + width: 100%; + height: 100%; + border: none; + display: block; +} + +#fancybox-left, #fancybox-right { + position: absolute; + bottom: 0px; + height: 100%; + width: 35%; + cursor: pointer; + outline: none; + background: transparent url('<?php echo $jquery_path; ?>fancybox/blank.gif'); + z-index: 1102; + display: none; +} + +#fancybox-left { + left: 0px; +} + +#fancybox-right { + right: 0px; +} + +#fancybox-left-ico, #fancybox-right-ico { + position: absolute; + top: 50%; + left: -9999px; + width: 30px; + height: 30px; + margin-top: -15px; + cursor: pointer; + z-index: 1102; + display: block; +} + +#fancybox-left-ico { + background-image: url('<?php echo $jquery_path; ?>fancybox/fancybox.png'); + background-position: -40px -30px; +} + +#fancybox-right-ico { + background-image: url('<?php echo $jquery_path; ?>fancybox/fancybox.png'); + background-position: -40px -60px; +} + +#fancybox-left:hover, #fancybox-right:hover { + visibility: visible; /* IE6 */ +} + +#fancybox-left:hover span { + left: 20px; +} + +#fancybox-right:hover span { + left: auto; + right: 20px; +} + +.fancybox-bg { + position: absolute; + padding: 0; + margin: 0; + border: 0; + width: 20px; + height: 20px; + z-index: 1001; +} + +#fancybox-bg-n { + top: -20px; + left: 0; + width: 100%; + background-image: url('<?php echo $jquery_path; ?>fancybox/fancybox-x.png'); +} + +#fancybox-bg-ne { + top: -20px; + right: -20px; + background-image: url('<?php echo $jquery_path; ?>fancybox/fancybox.png'); + background-position: -40px -162px; +} + +#fancybox-bg-e { + top: 0; + right: -20px; + height: 100%; + background-image: url('<?php echo $jquery_path; ?>fancybox/fancybox-y.png'); + background-position: -20px 0px; +} + +#fancybox-bg-se { + bottom: -20px; + right: -20px; + background-image: url('<?php echo $jquery_path; ?>fancybox/fancybox.png'); + background-position: -40px -182px; +} + +#fancybox-bg-s { + bottom: -20px; + left: 0; + width: 100%; + background-image: url('<?php echo $jquery_path; ?>fancybox/fancybox-x.png'); + background-position: 0px -20px; +} + +#fancybox-bg-sw { + bottom: -20px; + left: -20px; + background-image: url('<?php echo $jquery_path; ?>fancybox/fancybox.png'); + background-position: -40px -142px; +} + +#fancybox-bg-w { + top: 0; + left: -20px; + height: 100%; + background-image: url('<?php echo $jquery_path; ?>fancybox/fancybox-y.png'); +} + +#fancybox-bg-nw { + top: -20px; + left: -20px; + background-image: url('<?php echo $jquery_path; ?>fancybox/fancybox.png'); + background-position: -40px -122px; +} + +#fancybox-title { + font-family: Helvetica; + font-size: 12px; + z-index: 1102; +} + +.fancybox-title-inside { + padding-bottom: 10px; + text-align: center; + color: #333; + background: #fff; + position: relative; +} + +.fancybox-title-outside { + padding-top: 10px; + color: #fff; +} + +.fancybox-title-over { + position: absolute; + bottom: 0; + left: 0; + color: #FFF; + text-align: left; +} + +#fancybox-title-over { + padding: 10px; + background-image: url('<?php echo $jquery_path; ?>fancybox/fancy_title_over.png'); + display: block; +} + +.fancybox-title-float { + position: absolute; + left: 0; + bottom: -20px; + height: 32px; +} + +#fancybox-title-float-wrap { + border: none; + border-collapse: collapse; + width: auto; +} + +#fancybox-title-float-wrap td { + border: none; + white-space: nowrap; +} + +#fancybox-title-float-left { + padding: 0 0 0 15px; + background: url('<?php echo $jquery_path; ?>fancybox/fancybox.png') -40px -90px no-repeat; +} + +#fancybox-title-float-main { + color: #FFF; + line-height: 29px; + font-weight: bold; + padding: 0 0 3px 0; + background: url('<?php echo $jquery_path; ?>fancybox/fancybox-x.png') 0px -40px; +} + +#fancybox-title-float-right { + padding: 0 0 0 15px; + background: url('<?php echo $jquery_path; ?>fancybox/fancybox.png') -55px -90px no-repeat; +} + +/* IE6 */ + +.fancybox-ie6 #fancybox-close { background: transparent; filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='<?php echo $jquery_path; ?>fancybox/fancy_close.png', sizingMethod='scale'); } + +.fancybox-ie6 #fancybox-left-ico { background: transparent; filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='<?php echo $jquery_path; ?>fancybox/fancy_nav_left.png', sizingMethod='scale'); } +.fancybox-ie6 #fancybox-right-ico { background: transparent; filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='<?php echo $jquery_path; ?>fancybox/fancy_nav_right.png', sizingMethod='scale'); } + +.fancybox-ie6 #fancybox-title-over { background: transparent; filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='<?php echo $jquery_path; ?>fancybox/fancy_title_over.png', sizingMethod='scale'); zoom: 1; } +.fancybox-ie6 #fancybox-title-float-left { background: transparent; filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='<?php echo $jquery_path; ?>fancybox/fancy_title_left.png', sizingMethod='scale'); } +.fancybox-ie6 #fancybox-title-float-main { background: transparent; filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='<?php echo $jquery_path; ?>fancybox/fancy_title_main.png', sizingMethod='scale'); } +.fancybox-ie6 #fancybox-title-float-right { background: transparent; filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='<?php echo $jquery_path; ?>fancybox/fancy_title_right.png', sizingMethod='scale'); } + +.fancybox-ie6 #fancybox-bg-w, .fancybox-ie6 #fancybox-bg-e, .fancybox-ie6 #fancybox-left, .fancybox-ie6 #fancybox-right, #fancybox-hide-sel-frame { + height: expression(this.parentNode.clientHeight + "px"); +} + +#fancybox-loading.fancybox-ie6 { + position: absolute; margin-top: 0; + top: expression( (-20 + (document.documentElement.clientHeight ? document.documentElement.clientHeight/2 : document.body.clientHeight/2 ) + ( ignoreMe = document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop )) + 'px'); +} + +#fancybox-loading.fancybox-ie6 div { background: transparent; filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='<?php echo $jquery_path; ?>fancybox/fancy_loading.png', sizingMethod='scale'); } + +/* IE6, IE7, IE8 */ +.fancybox-ie .fancybox-bg { background: transparent !important; } + +.fancybox-ie #fancybox-bg-n { filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='<?php echo $jquery_path; ?>fancybox/fancy_shadow_n.png', sizingMethod='scale'); } +.fancybox-ie #fancybox-bg-ne { filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='<?php echo $jquery_path; ?>fancybox/fancy_shadow_ne.png', sizingMethod='scale'); } +.fancybox-ie #fancybox-bg-e { filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='<?php echo $jquery_path; ?>fancybox/fancy_shadow_e.png', sizingMethod='scale'); } +.fancybox-ie #fancybox-bg-se { filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='<?php echo $jquery_path; ?>fancybox/fancy_shadow_se.png', sizingMethod='scale'); } +.fancybox-ie #fancybox-bg-s { filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='<?php echo $jquery_path; ?>fancybox/fancy_shadow_s.png', sizingMethod='scale'); } +.fancybox-ie #fancybox-bg-sw { filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='<?php echo $jquery_path; ?>fancybox/fancy_shadow_sw.png', sizingMethod='scale'); } +.fancybox-ie #fancybox-bg-w { filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='<?php echo $jquery_path; ?>fancybox/fancy_shadow_w.png', sizingMethod='scale'); } +.fancybox-ie #fancybox-bg-nw { filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='<?php echo $jquery_path; ?>fancybox/fancy_shadow_nw.png', sizingMethod='scale'); }
\ No newline at end of file diff --git a/views/default/css/walled_garden.php b/views/default/css/walled_garden.php index e38d29f7a..f6f7f97dc 100644 --- a/views/default/css/walled_garden.php +++ b/views/default/css/walled_garden.php @@ -54,8 +54,8 @@ $url = elgg_get_site_url(); padding: 0 8px; } -.elgg-walledgarden-single > .elgg-body > .elgg-inner { - padding: 0 8px; +.elgg-walledgarden-single > .elgg-body { + padding: 0 18px; } .elgg-module-walledgarden-login { @@ -68,7 +68,14 @@ $url = elgg_get_site_url(); } .elgg-heading-walledgarden { - color: #666666; - margin-top: 20px; + margin-top: 60px; line-height: 1.1em; +} + +h1, h2, h3, h4, h5, h6 { + color: #666; +} + +a { + color: #999; }
\ No newline at end of file diff --git a/views/default/discussion/river_footer.php b/views/default/discussion/river_footer.php deleted file mode 100644 index 65605026b..000000000 --- a/views/default/discussion/river_footer.php +++ /dev/null @@ -1,51 +0,0 @@ -<?php - -$item = $vars['item']; - -if ($item->action_type !== 'create') { - return true; -} - -$object = $vars['item']->getObjectEntity(); - -$replies_options = array( - 'guid' => $object->getGUID(), - 'annotation_name' => 'group_topic_post', - 'limit' => 3, - 'order_by' => 'n_table.time_created desc' -); - -$replies = elgg_get_annotations($replies_options); - -if ($replies) { - // why is this reversing it? because we're asking for the 3 latest - // replies by sorting desc and limiting by 3, but we want to display - // these replies with the latest at the bottom. - $replies = array_reverse($replies); - - $replies_options['count'] = TRUE; - - $reply_count = elgg_get_annotations($replies_options); - - // If greater that 3 replies, link to the rest of them - if ($reply_count > count($replies)) { - $link = elgg_view('output/url', array( - 'href' => $object->getURL(), - 'text' => elgg_echo('river:replies:all', array($reply_count)), - )); - - echo elgg_view_image_block(elgg_view_icon('speech-bubble-alt'), $link, array('class' => 'elgg-river-participation')); - } - - // Display the latest - echo elgg_view_annotation_list($replies, array('list_class' => 'elgg-river-replies', 'item_class' => 'elgg-river-participation')); - -} - - -if ($object->canAnnotate(0, 'group_topic_post')) { - // inline reply form - $form_vars = array('id' => "groups-reply-{$object->getGUID()}", 'class' => 'elgg-form-small elgg-river-participation'); - $body_vars = array('entity' => $object, 'inline' => true); - echo elgg_view_form('discussion/reply/save', $form_vars, $body_vars); -}
\ No newline at end of file diff --git a/views/default/errors/404.php b/views/default/errors/404.php new file mode 100644 index 000000000..8bc35acdd --- /dev/null +++ b/views/default/errors/404.php @@ -0,0 +1,8 @@ +<?php +/** + * Page not found error + */ + +$message = elgg_echo('error:404'); + +echo "<h2>$message</h2>"; diff --git a/views/default/errors/default.php b/views/default/errors/default.php new file mode 100644 index 000000000..a0582eba2 --- /dev/null +++ b/views/default/errors/default.php @@ -0,0 +1,8 @@ +<?php +/** + * General error + */ + +$message = elgg_echo('error:default'); + +echo "<h2>$message</h2>"; diff --git a/views/default/export/entity.php b/views/default/export/entity.php new file mode 100644 index 000000000..3064f1288 --- /dev/null +++ b/views/default/export/entity.php @@ -0,0 +1,79 @@ +<?php +/** + * Elgg Entity export. + * Displays an entity using the current view. + * + * @package Elgg + * @subpackage Core + */ + +$entity = $vars['entity']; +if (!$entity) { + throw new InvalidParameterException(elgg_echo('InvalidParameterException:NoEntityFound')); +} +$options = array( + 'guid' => $entity->guid, + 'limit' => 0 +); +$metadata = elgg_get_metadata($options); +$annotations = elgg_get_annotations($options); +$relationships = get_entity_relationships($entity->guid); + +$exportable_values = $entity->getExportableValues(); +?> +<div> +<h2><?php echo elgg_echo('Entity'); ?></h2> + <?php + foreach ($entity as $k => $v) { + if ((in_array($k, $exportable_values)) || (elgg_is_admin_logged_in())) { +?> + <p class="margin-none"><b><?php echo $k; ?>: </b><?php echo strip_tags($v); ?></p> +<?php + } + } + ?> +</div> + +<?php if ($metadata) { ?> +<div id="metadata" class="mtm"> +<h2><?php echo elgg_echo('metadata'); ?></h2> + <?php + foreach ($metadata as $m) { +?> + <p class="margin-none"><b><?php echo $m->name; ?>: </b><?php echo $m->value; ?></p> +<?php + } + ?> + +</div> +<?php } ?> + +<?php if ($annotations) { ?> +<div id="annotations" class="mtm"> +<h2><?php echo elgg_echo('annotations'); ?></h2> + <?php + foreach ($annotations as $a) { +?> + <table> + <p class="margin-none"><b><?php echo $a->name; ?>: </b><?php echo $a->value; ?></p> + </table> +<?php + } + ?> +</div> +<?php } ?> + +<?php if ($relationships) { ?> +<div id="relationship" class="mtm"> +<h2><?php echo elgg_echo('relationships'); ?></h2> + <?php + foreach ($relationships as $r) { +?> + <table> + <p class="margin-none"><b><?php echo $r->relationship; ?>: </b><?php echo $r->guid_two; ?></p> + </table> +<?php + } + ?> +</div> +<?php } ?> diff --git a/views/default/export/metadata.php b/views/default/export/metadata.php new file mode 100644 index 000000000..1dd7f2054 --- /dev/null +++ b/views/default/export/metadata.php @@ -0,0 +1,14 @@ +<?php +/** + * Elgg metadata export. + * Displays a metadata item using the current view. + * + * @package Elgg + * @subpackage Core + */ + +$m = $vars['metadata']; +$e = get_entity($m->entity_guid); +?> +<p class="margin-none"><?php if ($e) echo "<a href=\"" . $e->getURL() . "\">GUID:{$m->entity_guid}</a>"; else echo "GUID:".$m->entity_guid; +?>: <b><?php echo $m->name; ?></b> <?php echo $m->value; ?></p>
\ No newline at end of file diff --git a/views/default/export/relationship.php b/views/default/export/relationship.php new file mode 100644 index 000000000..d8cb3e4f4 --- /dev/null +++ b/views/default/export/relationship.php @@ -0,0 +1,21 @@ +<?php +/** + * Elgg relationship export. + * Displays a relationship using the current view. + * + * @package Elgg + * @subpackage Core + */ + +$r = $vars['relationship']; + +$e1 = get_entity($r->guid_one); +$e2 = get_entity($r->guid_two); +?> +<p class="margin-none"><?php + if ($e1) echo "<a href=\"" . $e1->getURL() . "\">GUID:" . $r->guid_one . "</a>"; else echo "GUID:".$r->guid_one; +?> +<b><?php echo $r->relationship; ?></b> +<?php + if ($e2) echo "<a href=\"" . $e2->getURL() . "\">GUID:" . $r->guid_two . "</a>"; else echo "GUID:".$r->guid_two; +?></p> diff --git a/views/default/file/composer.php b/views/default/file/composer.php deleted file mode 100644 index 461171fde..000000000 --- a/views/default/file/composer.php +++ /dev/null @@ -1,8 +0,0 @@ -<?php -elgg_load_library('elgg:file'); -$form_vars = array( - 'enctype' => 'multipart/form-data', -); -$body_vars = file_prepare_form_vars(); - -echo elgg_view_form('file/upload', $form_vars, array_merge($body_vars, $vars));
\ No newline at end of file diff --git a/views/default/forms/account/settings.php b/views/default/forms/account/settings.php new file mode 100644 index 000000000..3967207ce --- /dev/null +++ b/views/default/forms/account/settings.php @@ -0,0 +1,10 @@ +<?php +/** + * Account settings form used for user settings + * + * This form is extended by Elgg with the views in core/settings/account. + * Plugins can additionally extend it and then register for the + * 'usersettings:save', 'user' plugin hook. + * + * This view is included by "forms/usersettings/save" + */ diff --git a/views/default/forms/admin/menu/save.php b/views/default/forms/admin/menu/save.php new file mode 100644 index 000000000..1a67ffcc4 --- /dev/null +++ b/views/default/forms/admin/menu/save.php @@ -0,0 +1,102 @@ +<?php +/** + * Form body for setting up site menu + */ + +// @todo Could probably make this number configurable +$num_featured_items = 6; + +// get site menu items +$menu = elgg_get_config('menus'); +$menu = $menu['site']; +$builder = new ElggMenuBuilder($menu); +$menu = $builder->getMenu('name'); +$menu_items = $menu['default']; + +$featured_menu_names = elgg_get_config('site_featured_menu_names'); + +$dropdown_values = array(); +foreach ($menu_items as $item) { + $dropdown_values[$item->getName()] = $item->getText(); +} +$dropdown_values[' '] = elgg_echo('none'); + +?> +<div class="elgg-module elgg-module-inline"> + <div class="elgg-head"> + <h3><?php echo elgg_echo('admin:menu_items:configure'); ?></h3> + </div> + <div class="elgg-body"> +<?php +echo elgg_view('output/longtext', array( + 'value' => elgg_echo("admin:menu_items:description") +)); + +for ($i=0; $i<$num_featured_items; $i++) { + if ($featured_menu_names && array_key_exists($i, $featured_menu_names)) { + $current_value = $featured_menu_names[$i]; + } else { + $current_value = ' '; + } + + echo elgg_view('input/dropdown', array( + 'options_values' => $dropdown_values, + 'name' => 'featured_menu_names[]', + 'value' => $current_value + )); +} +?> + </div> +</div> + +<div class="elgg-module elgg-module-inline"> + <div class="elgg-head"> + <h3><?php echo elgg_echo('admin:add_menu_item'); ?></h3> + </div> + <div class="elgg-body"> +<?php +echo elgg_view('output/longtext', array( + 'value' => elgg_echo("admin:add_menu_item:description") +)); + +$custom_items = elgg_get_config('site_custom_menu_items'); + +$name_str = elgg_echo('name'); +$url_str = elgg_echo('admin:plugins:label:website'); + +echo '<ul class="elgg-list elgg-list-simple">'; + +if (is_array($custom_items)) { + foreach ($custom_items as $title => $url) { + $name_input = elgg_view('input/text', array( + 'name' => 'custom_menu_titles[]', + 'value' => $title + )); + + $url_input = elgg_view('input/text', array( + 'name' => 'custom_menu_urls[]', + 'value' => $url + )); + + echo "<li>$name_str: $name_input $url_str: $url_input $delete</li>"; + } +} + +$new = elgg_echo('new'); +$name_input = elgg_view('input/text', array( + 'name' => 'custom_menu_titles[]', +)); + +$url_input = elgg_view('input/text', array( + 'name' => 'custom_menu_urls[]', +)); + +echo "<li class='custom_menuitem'>$name_str: $name_input $url_str: $url_input</li> +</ul>"; + +?> + </div> +</div> +<?php + +echo elgg_view('input/submit', array('value' => elgg_echo('save'))); diff --git a/views/default/forms/admin/plugins/change_state.php b/views/default/forms/admin/plugins/change_state.php new file mode 100644 index 000000000..730c8ff32 --- /dev/null +++ b/views/default/forms/admin/plugins/change_state.php @@ -0,0 +1,22 @@ +<?php +/** + * Activate/deactive all plugins specified by guids array + * + * @uses $vars['guids'] Array of GUIDs + * @uses $vars['action'] 'activate' or 'deactivate' + */ + +$guids = elgg_extract('guids', $vars, array()); +$guids = implode(',', $guids); + +echo '<div>'; +echo elgg_view('input/hidden', array( + 'name' => 'guids', + 'value' => $guids, +)); + +echo elgg_view('input/submit', array( + 'value' => elgg_echo("admin:plugins:{$vars['action']}_all"), + 'class' => 'elgg-button elgg-button-action mrm' +)); +echo '</div>'; diff --git a/views/default/forms/admin/plugins/filter.php b/views/default/forms/admin/plugins/filter.php new file mode 100644 index 000000000..fd1b618bc --- /dev/null +++ b/views/default/forms/admin/plugins/filter.php @@ -0,0 +1,26 @@ +<?php +/** + * Category filter for plugins + * + * @uses $vars['category'] + * @uses $vars['category_options'] + * @uses $vvars['sort'] + */ + +echo '<div>'; +echo elgg_view('input/dropdown', array( + 'name' => 'category', + 'options_values' => $vars['category_options'], + 'value' => $vars['category'], +)); + +echo elgg_view('input/hidden', array( + 'name' => 'sort', + 'value' => $vars['sort'], +)); + +echo elgg_view('input/submit', array( + 'value' => elgg_echo('filter'), + 'class' => 'elgg-button elgg-button-action', +)); +echo '</div>'; diff --git a/views/default/forms/admin/plugins/sort.php b/views/default/forms/admin/plugins/sort.php new file mode 100644 index 000000000..7f2246bad --- /dev/null +++ b/views/default/forms/admin/plugins/sort.php @@ -0,0 +1,26 @@ +<?php +/** + * Sort plugins form body + * + * @uses $vars['sort'] + * @uses $vars['sort_options'] + * @uses $vars['category'] + */ + +echo '<div class="mtm">'; +echo elgg_view('input/dropdown', array( + 'name' => 'sort', + 'options_values' => $vars['sort_options'], + 'value' => $vars['sort'], +)); + +echo elgg_view('input/hidden', array( + 'name' => 'category', + 'value' => $vars['category'], +)); + +echo elgg_view('input/submit', array( + 'value' => elgg_echo('sort'), + 'class' => 'elgg-button elgg-button-action' +)); +echo '</div>'; diff --git a/views/default/forms/admin/site/regenerate_secret.php b/views/default/forms/admin/site/regenerate_secret.php new file mode 100644 index 000000000..af269b801 --- /dev/null +++ b/views/default/forms/admin/site/regenerate_secret.php @@ -0,0 +1,24 @@ +<?php + +$strength = $vars['strength']; + +?> +<p><?php echo elgg_echo('admin:site:secret:intro'); ?></p> + +<table class="elgg-table"> + <tr> + <th><?php echo elgg_echo('site_secret:current_strength'); ?></th> + <td class="elgg-strength-<?php echo $strength; ?>"> + <h4><?php echo elgg_echo("site_secret:strength:$strength"); ?></h4> + <div><?php echo elgg_echo("site_secret:strength_msg:$strength"); ?></div> + </td> + </tr> +</table> + +<div class="elgg-foot"> + <?php echo elgg_view('input/submit', array( + 'value' => elgg_echo('admin:site:secret:regenerate'), + 'class' => 'elgg-requires-confirmation elgg-button elgg-button-submit', + )); ?> + <p class="elgg-text-help mts"><?php echo elgg_echo('admin:site:secret:regenerate:help'); ?></p> +</div> diff --git a/views/default/forms/admin/site/update_advanced.php b/views/default/forms/admin/site/update_advanced.php new file mode 100644 index 000000000..14b74e4f9 --- /dev/null +++ b/views/default/forms/admin/site/update_advanced.php @@ -0,0 +1,101 @@ +<?php +/** + * @todo cleanup + */ +$form_body = ""; + +foreach (array('wwwroot', 'path', 'dataroot') as $field) { + $form_body .= "<div>"; + $form_body .= elgg_echo('installation:' . $field) . "<br />"; + $warning = elgg_echo('installation:warning:' . $field); + if ($warning != 'installation:warning:' . $field) { + echo "<b>" . $warning . "</b><br />"; + } + $value = elgg_get_config($field); + $form_body .= elgg_view("input/text",array('name' => $field, 'value' => $value)); + $form_body .= "</div>"; +} + +$form_body .= "<div>" . elgg_echo('admin:site:access:warning') . "<br />"; +$form_body .= "<label>" . elgg_echo('installation:sitepermissions') . "</label>"; +$form_body .= elgg_view('input/access', array( + 'options_values' => array( + ACCESS_PRIVATE => elgg_echo("PRIVATE"), + ACCESS_FRIENDS => elgg_echo("access:friends:label"), + ACCESS_LOGGED_IN => elgg_echo("LOGGED_IN"), + ACCESS_PUBLIC => elgg_echo("PUBLIC") + ), + 'name' => 'default_access', + 'value' => elgg_get_config('default_access'), +)) . "</div>"; +$form_body .= "<div>" . elgg_echo('installation:allow_user_default_access:description') . "<br />"; +$form_body .= elgg_view("input/checkboxes", array( + 'options' => array(elgg_echo('installation:allow_user_default_access:label') => 1), + 'name' => 'allow_user_default_access', + 'value' => (elgg_get_config('allow_user_default_access') ? 1 : 0), +)) . "</div>"; +$form_body .= "<div>" . elgg_echo('installation:simplecache:description') . "<br />"; +$form_body .= elgg_view("input/checkboxes", array( + 'options' => array(elgg_echo('installation:simplecache:label') => 1), + 'name' => 'simplecache_enabled', + 'value' => (elgg_get_config('simplecache_enabled') ? 1 : 0), +)) . "</div>"; +$form_body .= "<div>" . elgg_echo('installation:systemcache:description') . "<br />"; +$form_body .= elgg_view("input/checkboxes", array( + 'options' => array(elgg_echo('installation:systemcache:label') => 1), + 'name' => 'system_cache_enabled', + 'value' => (elgg_get_config('system_cache_enabled') ? 1 : 0), +)) . "</div>"; + +$debug_options = array('0' => elgg_echo('installation:debug:none'), 'ERROR' => elgg_echo('installation:debug:error'), 'WARNING' => elgg_echo('installation:debug:warning'), 'NOTICE' => elgg_echo('installation:debug:notice')); +$form_body .= "<div>" . elgg_echo('installation:debug'); +$form_body .= elgg_view('input/dropdown', array( + 'options_values' => $debug_options, + 'name' => 'debug', + 'value' => elgg_get_config('debug'), +)); +$form_body .= '</div>'; + +// control new user registration +$options = array( + 'options' => array(elgg_echo('installation:registration:label') => 1), + 'name' => 'allow_registration', + 'value' => elgg_get_config('allow_registration') ? 1 : 0, +); +$form_body .= '<div>' . elgg_echo('installation:registration:description'); +$form_body .= '<br />' .elgg_view('input/checkboxes', $options) . '</div>'; + +// control walled garden +$walled_garden = elgg_get_config(walled_garden); +$options = array( + 'options' => array(elgg_echo('installation:walled_garden:label') => 1), + 'name' => 'walled_garden', + 'value' => $walled_garden ? 1 : 0, +); +$form_body .= '<div>' . elgg_echo('installation:walled_garden:description'); +$form_body .= '<br />' . elgg_view('input/checkboxes', $options) . '</div>'; + +$form_body .= "<div>" . elgg_echo('installation:httpslogin') . "<br />"; +$form_body .= elgg_view("input/checkboxes", array( + 'options' => array(elgg_echo('installation:httpslogin:label') => 1), + 'name' => 'https_login', + 'value' => (elgg_get_config('https_login') ? 1 : 0) +)) . "</div>"; + +$form_body .= "<div>" . elgg_echo('installation:disableapi') . "<br />"; +$disable_api = elgg_get_config('disable_api'); +$on = $disable_api ? 0 : 1; +$form_body .= elgg_view("input/checkboxes", array( + 'options' => array(elgg_echo('installation:disableapi:label') => 1), + 'name' => 'api', + 'value' => $on, +)); +$form_body .= "</div>"; + +$form_body .= elgg_view('input/hidden', array('name' => 'settings', 'value' => 'go')); + +$form_body .= '<div class="elgg-foot">'; +$form_body .= elgg_view('input/submit', array('value' => elgg_echo("save"))); +$form_body .= '</div>'; + +echo $form_body; diff --git a/views/default/forms/admin/site/update_basic.php b/views/default/forms/admin/site/update_basic.php new file mode 100644 index 000000000..88870bc60 --- /dev/null +++ b/views/default/forms/admin/site/update_basic.php @@ -0,0 +1,31 @@ +<?php +/** + * @todo cleanup + */ +$form_body = ""; + +foreach (array('sitename','sitedescription', 'siteemail') as $field) { + $form_body .= "<div>"; + $form_body .= elgg_echo('installation:' . $field) . "<br />"; + $warning = elgg_echo('installation:warning:' . $field); + if ($warning != 'installation:warning:' . $field) { + echo "<b>" . $warning . "</b><br />"; + } + $value = elgg_get_config($field); + $form_body .= elgg_view("input/text",array('name' => $field, 'value' => $value)); + $form_body .= "</div>"; +} + +$languages = get_installed_translations(); +$form_body .= "<div>" . elgg_echo('installation:language'); +$form_body .= elgg_view("input/dropdown", array( + 'name' => 'language', + 'value' => elgg_get_config('language'), + 'options_values' => $languages, +)) . "</div>"; + +$form_body .= '<div class="elgg-foot">'; +$form_body .= elgg_view('input/submit', array('value' => elgg_echo("save"))); +$form_body .= '</div>'; + +echo $form_body;
\ No newline at end of file diff --git a/views/default/forms/avatar/crop.php b/views/default/forms/avatar/crop.php new file mode 100644 index 000000000..3e798cb27 --- /dev/null +++ b/views/default/forms/avatar/crop.php @@ -0,0 +1,42 @@ +<?php +/** + * Avatar crop form + * + * @uses $vars['entity'] + */ + +elgg_load_js('jquery.imgareaselect'); +elgg_load_js('elgg.avatar_cropper'); +elgg_load_css('jquery.imgareaselect'); + +$master_img = elgg_view('output/img', array( + 'src' => $vars['entity']->getIconUrl('master'), + 'alt' => elgg_echo('avatar'), + 'class' => 'mrl', + 'id' => 'user-avatar-cropper', +)); + +$preview_img = elgg_view('output/img', array( + 'src' => $vars['entity']->getIconUrl('master'), + 'alt' => elgg_echo('avatar'), +)); + +?> +<div class="clearfix"> + <?php echo $master_img; ?> + <div id="user-avatar-preview-title"><label><?php echo elgg_echo('avatar:preview'); ?></label></div> + <div id="user-avatar-preview"><?php echo $preview_img; ?></div> +</div> +<div class="elgg-foot"> +<?php +$coords = array('x1', 'x2', 'y1', 'y2'); +foreach ($coords as $coord) { + echo elgg_view('input/hidden', array('name' => $coord, 'value' => $vars['entity']->$coord)); +} + +echo elgg_view('input/hidden', array('name' => 'guid', 'value' => $vars['entity']->guid)); + +echo elgg_view('input/submit', array('value' => elgg_echo('avatar:create'))); + +?> +</div> diff --git a/views/default/forms/avatar/upload.php b/views/default/forms/avatar/upload.php new file mode 100644 index 000000000..d91e8575e --- /dev/null +++ b/views/default/forms/avatar/upload.php @@ -0,0 +1,16 @@ +<?php +/** + * Avatar upload form + * + * @uses $vars['entity'] + */ + +?> +<div> + <label><?php echo elgg_echo("avatar:upload"); ?></label><br /> + <?php echo elgg_view("input/file",array('name' => 'avatar')); ?> +</div> +<div class="elgg-foot"> + <?php echo elgg_view('input/hidden', array('name' => 'guid', 'value' => $vars['entity']->guid)); ?> + <?php echo elgg_view('input/submit', array('value' => elgg_echo('upload'))); ?> +</div> diff --git a/views/default/forms/comments/add.php b/views/default/forms/comments/add.php index 55341ea46..9acabf3ea 100644 --- a/views/default/forms/comments/add.php +++ b/views/default/forms/comments/add.php @@ -14,26 +14,24 @@ if (isset($vars['entity']) && elgg_is_logged_in()) { $inline = elgg_extract('inline', $vars, false); if ($inline) { - echo elgg_view('input/text', array( - 'name' => 'generic_comment', - 'placeholder' => elgg_echo('annotation:generic_comment:value:placeholder'), - )); - echo elgg_view('input/submit', array( - 'value' => elgg_echo('comment'), - 'class' => 'hidden', - )); + echo elgg_view('input/text', array('name' => 'generic_comment')); + echo elgg_view('input/submit', array('value' => elgg_echo('comment'))); } else { ?> - <div> - <label><?php echo elgg_echo("generic_comments:add"); ?></label> - <?php echo elgg_view('input/longtext', array('name' => 'generic_comment')); ?> - </div> + <div> + <label><?php echo elgg_echo("generic_comments:add"); ?></label> + <?php echo elgg_view('input/longtext', array('name' => 'generic_comment')); ?> + </div> + <div class="elgg-foot"> <?php echo elgg_view('input/submit', array('value' => elgg_echo("generic_comments:post"))); +?> + </div> +<?php } echo elgg_view('input/hidden', array( 'name' => 'entity_guid', 'value' => $vars['entity']->getGUID() )); -}
\ No newline at end of file +} diff --git a/views/default/forms/discussion/reply/save.php b/views/default/forms/discussion/reply/save.php deleted file mode 100644 index 5fb94d488..000000000 --- a/views/default/forms/discussion/reply/save.php +++ /dev/null @@ -1,28 +0,0 @@ -<?php -/** - * Discussion topic reply form bofy - * - * @uses $vars['entity'] A discussion topic object - * @uses $vars['inline'] Display a shortened form? - */ - -if (isset($vars['entity']) && elgg_is_logged_in()) { - $inline = elgg_extract('inline', $vars, false); - - if ($inline) { - echo elgg_view('input/text', array('name' => 'group_topic_post', 'placeholder' => elgg_echo('annotation:group_topic_post:value:placeholder'))); - echo elgg_view('input/submit', array('value' => elgg_echo('reply'), 'class' => 'hidden')); - } else { -?> - <div> - <label><?php echo elgg_echo("reply"); ?></label> - <?php echo elgg_view('input/longtext', array('name' => 'group_topic_post')); ?> - </div> -<?php - echo elgg_view('input/submit', array('value' => elgg_echo('reply'))); - } - echo elgg_view('input/hidden', array( - 'name' => 'entity_guid', - 'value' => $vars['entity']->getGUID(), - )); -} diff --git a/views/default/forms/friends/collections/add.php b/views/default/forms/friends/collections/add.php new file mode 100644 index 000000000..04c87346b --- /dev/null +++ b/views/default/forms/friends/collections/add.php @@ -0,0 +1,53 @@ +<?php +/** + * Form body for editing or adding a friend collection + * + * @package Elgg + * @subpackage Core + * + * @uses $vars['collection'] Optionally, the collection to edit + */ + +// Set title, form destination +if (isset($vars['collection'])) { + $title = $vars['collection']->name; + $highlight = 'default'; +} else { + $title = ""; + $highlight = 'all'; +} + +echo "<div class=\"mtm\"><label>" . elgg_echo("friends:collectionname") . "<br/>"; +echo elgg_view("input/text", array( + "name" => "collection_name", + "value" => $title, + )); +echo "</label></div>"; + +echo "<div>"; +if ($vars['collection_members']) { + echo elgg_echo("friends:collectionfriends") . "<br />"; + foreach ($vars['collection_members'] as $mem) { + echo elgg_view_entity_icon($mem, 'tiny'); + echo $mem->name; + } +} +echo "</div>"; + +echo "<div><label>" . elgg_echo("friends:addfriends") . "</label>"; +echo elgg_view('input/friendspicker', array( + 'entities' => $vars['friends'], + 'name' => 'friends_collection', + 'highlight' => $highlight, +)); +echo "</div>"; + +echo '<div class="elgg-foot">'; +if (isset($vars['collection'])) { + echo elgg_view('input/hidden', array( + 'name' => 'collection_id', + 'value' => $vars['collection']->id, + )); +} +echo elgg_view('input/submit', array('name' => 'submit', 'value' => elgg_echo('save'))); +echo '</div>'; diff --git a/views/default/forms/login.php b/views/default/forms/login.php new file mode 100644 index 000000000..d2c6e6221 --- /dev/null +++ b/views/default/forms/login.php @@ -0,0 +1,49 @@ +<?php +/** + * Elgg login form + * + * @package Elgg + * @subpackage Core + */ +?> + +<div> + <label><?php echo elgg_echo('loginusername'); ?></label> + <?php echo elgg_view('input/text', array( + 'name' => 'username', + 'class' => 'elgg-autofocus', + )); + ?> +</div> +<div> + <label><?php echo elgg_echo('password'); ?></label> + <?php echo elgg_view('input/password', array('name' => 'password')); ?> +</div> + +<?php echo elgg_view('login/extend', $vars); ?> + +<div class="elgg-foot"> + <label class="mtm float-alt"> + <input type="checkbox" name="persistent" value="true" /> + <?php echo elgg_echo('user:persistent'); ?> + </label> + + <?php echo elgg_view('input/submit', array('value' => elgg_echo('login'))); ?> + + <?php + if (isset($vars['returntoreferer'])) { + echo elgg_view('input/hidden', array('name' => 'returntoreferer', 'value' => 'true')); + } + ?> + + <ul class="elgg-menu elgg-menu-general mtm"> + <?php + if (elgg_get_config('allow_registration')) { + echo '<li><a class="registration_link" href="' . elgg_get_site_url() . 'register">' . elgg_echo('register') . '</a></li>'; + } + ?> + <li><a class="forgot_link" href="<?php echo elgg_get_site_url(); ?>forgotpassword"> + <?php echo elgg_echo('user:password:lost'); ?> + </a></li> + </ul> +</div> diff --git a/views/default/forms/members/name_search.php b/views/default/forms/members/name_search.php new file mode 100644 index 000000000..5f6b9a4b6 --- /dev/null +++ b/views/default/forms/members/name_search.php @@ -0,0 +1,9 @@ +<?php + +$params = array( + 'name' => 'name', + 'class' => 'mbm', +); +echo elgg_view('input/text', $params); + +echo elgg_view('input/submit', array('value' => elgg_echo('search'))); diff --git a/views/default/forms/members/tag_search.php b/views/default/forms/members/tag_search.php new file mode 100644 index 000000000..4fe9bb32a --- /dev/null +++ b/views/default/forms/members/tag_search.php @@ -0,0 +1,12 @@ +<?php +/** + * Simple members search by tag form + */ + +$params = array( + 'name' => 'tag', + 'class' => 'mbm', +); +echo elgg_view('input/text', $params); + +echo elgg_view('input/submit', array('value' => elgg_echo('search'))); diff --git a/views/default/forms/plugins/settings/save.php b/views/default/forms/plugins/settings/save.php new file mode 100644 index 000000000..116529905 --- /dev/null +++ b/views/default/forms/plugins/settings/save.php @@ -0,0 +1,31 @@ +<?php +/** + * Used to show plugin settings for both users and admins. + * + * @package Elgg.Core + * @subpackage Plugins + */ + +$plugin = $vars['entity']; +$plugin_id = $plugin->getID(); +$user_guid = elgg_extract('user_guid', $vars, elgg_get_logged_in_user_guid()); + +// Do we want to show admin settings or user settings +$type = elgg_extract('type', $vars, ''); + +if ($type != 'user') { + $type = ''; +} + +if (elgg_view_exists("plugins/$plugin_id/{$type}settings")) { + echo elgg_view("plugins/$plugin_id/{$type}settings", $vars); +} elseif (elgg_view_exists("{$type}settings/$plugin_id/edit")) { + elgg_deprecated_notice("{$type}settings/$plugin_id/edit was deprecated in favor of plugins/$plugin_id/{$type}settings", 1.8); + echo elgg_view("{$type}settings/$plugin_id/edit", $vars); +} + +echo '<div class="elgg-foot">'; +echo elgg_view('input/hidden', array('name' => 'plugin_id', 'value' => $plugin_id)); +echo elgg_view('input/hidden', array('name' => 'user_guid', 'value' => $user_guid)); +echo elgg_view('input/submit', array('value' => elgg_echo('save'))); +echo '</div>'; diff --git a/views/default/forms/plugins/usersettings/save.php b/views/default/forms/plugins/usersettings/save.php new file mode 100644 index 000000000..ced88f818 --- /dev/null +++ b/views/default/forms/plugins/usersettings/save.php @@ -0,0 +1,14 @@ +<?php +/** + * Plugin user settings + * + * Calls the plugin admin settings form body with type set to 'user' + * + * @package Elgg.Core + * @subpackage Plugins + */ + +$vars['type'] = 'user'; + +// Can't use elgg_view_form() because it overrides the $vars['action'] parameter +echo elgg_view('forms/plugins/settings/save', $vars);
\ No newline at end of file diff --git a/views/default/forms/profile/edit.php b/views/default/forms/profile/edit.php index 46b77a95b..cb0a37ca4 100644 --- a/views/default/forms/profile/edit.php +++ b/views/default/forms/profile/edit.php @@ -7,18 +7,21 @@ ?> -<div class="elgg-module elgg-module-info"><div class="elgg-head"> - <h3><?php echo elgg_echo('user:name:label'); ?></h3></div> +<div> + <label><?php echo elgg_echo('user:name:label'); ?></label> <?php echo elgg_view('input/text', array('name' => 'name', 'value' => $vars['entity']->name)); ?> </div> <?php +$sticky_values = elgg_get_sticky_values('profile:edit'); + $profile_fields = elgg_get_config('profile_fields'); if (is_array($profile_fields) && count($profile_fields) > 0) { foreach ($profile_fields as $shortname => $valtype) { $metadata = elgg_get_metadata(array( 'guid' => $vars['entity']->guid, - 'metadata_name' => $shortname + 'metadata_name' => $shortname, + 'limit' => false )); if ($metadata) { if (is_array($metadata)) { @@ -39,9 +42,17 @@ if (is_array($profile_fields) && count($profile_fields) > 0) { $access_id = ACCESS_DEFAULT; } + // sticky form values take precedence over saved ones + if (isset($sticky_values[$shortname])) { + $value = $sticky_values[$shortname]; + } + if (isset($sticky_values['accesslevel'][$shortname])) { + $access_id = $sticky_values['accesslevel'][$shortname]; + } + ?> -<div class="elgg-module elgg-module-info"><div class="elgg-head"> - <h3><?php echo elgg_echo("profile:{$shortname}") ?></h3> +<div> + <label><?php echo elgg_echo("profile:{$shortname}") ?></label> <?php $params = array( 'name' => $shortname, @@ -58,6 +69,9 @@ if (is_array($profile_fields) && count($profile_fields) > 0) { <?php } } + +elgg_clear_sticky_form('profile:edit'); + ?> <div class="elgg-foot"> <?php diff --git a/views/default/forms/profile/fields/add.php b/views/default/forms/profile/fields/add.php index 1ea9c57a9..2087ec299 100644 --- a/views/default/forms/profile/fields/add.php +++ b/views/default/forms/profile/fields/add.php @@ -25,5 +25,5 @@ $formbody = <<< END $submit_control</div> END; -echo autop(elgg_echo('profile:explainchangefields')); +echo elgg_autop(elgg_echo('profile:explainchangefields')); echo $formbody; diff --git a/views/default/forms/register.php b/views/default/forms/register.php new file mode 100644 index 000000000..c0ee66f76 --- /dev/null +++ b/views/default/forms/register.php @@ -0,0 +1,80 @@ +<?php +/** + * Elgg register form + * + * @package Elgg + * @subpackage Core + */ + +elgg_load_js('elgg.register'); + +$password = $password2 = ''; +$username = get_input('u'); +$email = get_input('e'); +$name = get_input('n'); + +if (elgg_is_sticky_form('register')) { + extract(elgg_get_sticky_values('register')); + elgg_clear_sticky_form('register'); +} + +?> +<div class="mtm"> + <label><?php echo elgg_echo('name'); ?></label><br /> + <?php + echo elgg_view('input/text', array( + 'name' => 'name', + 'value' => $name, + 'class' => 'elgg-autofocus', + )); + ?> +</div> +<div> + <label><?php echo elgg_echo('email'); ?></label><br /> + <?php + echo elgg_view('input/text', array( + 'name' => 'email', + 'value' => $email, + )); + ?> +</div> +<div> + <label><?php echo elgg_echo('username'); ?></label><br /> + <?php + echo elgg_view('input/text', array( + 'name' => 'username', + 'value' => $username, + )); + ?> +</div> +<div> + <label><?php echo elgg_echo('password'); ?></label><br /> + <?php + echo elgg_view('input/password', array( + 'name' => 'password', + 'value' => $password, + )); + ?> +</div> +<div> + <label><?php echo elgg_echo('passwordagain'); ?></label><br /> + <?php + echo elgg_view('input/password', array( + 'name' => 'password2', + 'value' => $password2, + )); + ?> +</div> + +<?php +// view to extend to add more fields to the registration form +echo elgg_view('register/extend', $vars); + +// Add captcha hook +echo elgg_view('input/captcha', $vars); + +echo '<div class="elgg-foot">'; +echo elgg_view('input/hidden', array('name' => 'friend_guid', 'value' => $vars['friend_guid'])); +echo elgg_view('input/hidden', array('name' => 'invitecode', 'value' => $vars['invitecode'])); +echo elgg_view('input/submit', array('name' => 'submit', 'value' => elgg_echo('register'))); +echo '</div>'; diff --git a/views/default/forms/user/passwordreset.php b/views/default/forms/user/passwordreset.php new file mode 100644 index 000000000..5946fa7c0 --- /dev/null +++ b/views/default/forms/user/passwordreset.php @@ -0,0 +1,20 @@ +<?php +/** + * Reset user password form + */ + +echo elgg_autop(elgg_echo('user:resetpassword:reset_password_confirm')); + +echo elgg_view('input/hidden', array( + 'name' => 'u', + 'value' => $vars['guid'], +)); + +echo elgg_view('input/hidden', array( + 'name' => 'c', + 'value' => $vars['code'], +)); + +echo elgg_view('input/submit', array( + 'value' => elgg_echo('resetpassword') +)); diff --git a/views/default/forms/user/requestnewpassword.php b/views/default/forms/user/requestnewpassword.php new file mode 100644 index 000000000..c90971eaf --- /dev/null +++ b/views/default/forms/user/requestnewpassword.php @@ -0,0 +1,24 @@ +<?php +/** + * Elgg forgotten password. + * + * @package Elgg + * @subpackage Core + */ +?> + +<div class="mtm"> + <?php echo elgg_echo('user:password:text'); ?> +</div> +<div> + <label><?php echo elgg_echo('loginusername'); ?></label><br /> + <?php echo elgg_view('input/text', array( + 'name' => 'username', + 'class' => 'elgg-autofocus', + )); + ?> +</div> +<?php echo elgg_view('input/captcha'); ?> +<div class="elgg-foot"> + <?php echo elgg_view('input/submit', array('value' => elgg_echo('request'))); ?> +</div> diff --git a/views/default/forms/useradd.php b/views/default/forms/useradd.php new file mode 100644 index 000000000..4f337e4e4 --- /dev/null +++ b/views/default/forms/useradd.php @@ -0,0 +1,78 @@ +<?php +/** + * Elgg add user form. + * + * @package Elgg + * @subpackage Core + * + */ + +$name = $username = $email = $password = $password2 = $admin = ''; + +if (elgg_is_sticky_form('useradd')) { + extract(elgg_get_sticky_values('useradd')); + elgg_clear_sticky_form('useradd'); + if (is_array($admin)) { + $admin = $admin[0]; + } +} + +?> +<div> + <label><?php echo elgg_echo('name');?></label><br /> + <?php + echo elgg_view('input/text', array( + 'name' => 'name', + 'value' => $name, + )); + ?> +</div> +<div> + <label><?php echo elgg_echo('username'); ?></label><br /> + <?php + echo elgg_view('input/text', array( + 'name' => 'username', + 'value' => $username, + )); + ?> +</div> +<div> + <label><?php echo elgg_echo('email'); ?></label><br /> + <?php + echo elgg_view('input/text', array( + 'name' => 'email', + 'value' => $email, + )); + ?> +</div> +<div> + <label><?php echo elgg_echo('password'); ?></label><br /> + <?php + echo elgg_view('input/password', array( + 'name' => 'password', + 'value' => $password, + )); + ?> +</div> +<div> + <label><?php echo elgg_echo('passwordagain'); ?></label><br /> + <?php + echo elgg_view('input/password', array( + 'name' => 'password2', + 'value' => $password2, + )); + ?> +</div> +<div> +<?php + echo elgg_view('input/checkboxes', array( + 'name' => "admin", + 'options' => array(elgg_echo('admin_option') => 1), + 'value' => $admin, + )); +?> +</div> + +<div class="elgg-foot"> + <?php echo elgg_view('input/submit', array('value' => elgg_echo('register'))); ?> +</div>
\ No newline at end of file diff --git a/views/default/forms/usersettings/save.php b/views/default/forms/usersettings/save.php new file mode 100644 index 000000000..71323083f --- /dev/null +++ b/views/default/forms/usersettings/save.php @@ -0,0 +1,14 @@ +<?php +/** + * User account settings. + * + * Plugins should extend "forms/account/settings" to add to the settings. + */ + +$form_body = elgg_view("forms/account/settings", $vars); + +$form_body .= '<div class="elgg-foot">'; +$form_body .= elgg_view('input/submit', array('value' => elgg_echo('save'))); +$form_body .= '</div>'; + +echo $form_body;
\ No newline at end of file diff --git a/views/default/forms/widgets/save.php b/views/default/forms/widgets/save.php new file mode 100644 index 000000000..6959b2a82 --- /dev/null +++ b/views/default/forms/widgets/save.php @@ -0,0 +1,41 @@ +<?php +/** + * Elgg widget edit settings + * + * @uses $vars['widget'] + * @uses $vars['show_access'] + */ + +$widget = $vars['widget']; +$show_access = elgg_extract('show_access', $vars, true); + +$edit_view = "widgets/$widget->handler/edit"; +$custom_form_section = elgg_view($edit_view, array('entity' => $widget)); + +$access = ''; +if ($show_access) { + $access = elgg_echo('access') . ': ' . elgg_view('input/access', array( + 'name' => 'params[access_id]', + 'value' => $widget->access_id, + )); +} + +if (!$custom_form_section && !$access) { + return true; +} + +$hidden = elgg_view('input/hidden', array('name' => 'guid', 'value' => $widget->guid)); +$submit = elgg_view('input/submit', array('value' => elgg_echo('save'))); + +$body = <<<___END + $custom_form_section + <div> + $access + </div> + <div class="elgg-foot"> + $hidden + $submit + </div> +___END; + +echo $body; diff --git a/views/default/graphics/ajax_loader.php b/views/default/graphics/ajax_loader.php new file mode 100644 index 000000000..d5ce87ea9 --- /dev/null +++ b/views/default/graphics/ajax_loader.php @@ -0,0 +1,32 @@ +<?php +/** + * Elgg AJAX loader + * + * @package Elgg + * @subpackage Core + * + * @uses $vars['id'] CSS id + * @uses $vars['class'] Optional additional CSS class + * @uses $vars['hidden'] Begin hidden? (true) + */ + +if (isset($vars['id'])) { + $id = "id=\"{$vars['id']}\""; +} + +$class = 'elgg-ajax-loader'; +if (isset($vars['class'])) { + $class = "$class {$vars['class']}"; +} + +if (elgg_extract('hidden', $vars, true)) { + $class = "$class hidden"; +} + +$loader = <<< END + +<div class="$class" $id></div> + +END; + +echo $loader;
\ No newline at end of file diff --git a/views/default/group/default.php b/views/default/group/default.php new file mode 100644 index 000000000..383a25c49 --- /dev/null +++ b/views/default/group/default.php @@ -0,0 +1,9 @@ +<?php +/** + * ElggGroup default view. + * + * @package Elgg + * @subpackage Core + */ + +echo elgg_view('object/default', $vars); diff --git a/views/default/group/default/river.php b/views/default/group/default/river.php deleted file mode 100644 index e87331fec..000000000 --- a/views/default/group/default/river.php +++ /dev/null @@ -1,23 +0,0 @@ -<?php - -$group = $vars['entity']; - -$image = elgg_view_entity_icon($group, 'tiny'); - -$title = elgg_view('output/url', array( - 'href' => $group->getURL(), - 'text' => $group->name, - 'encode_text' => true, -)); - - -$subtitle = elgg_view('output/text', array('value' => $group->briefdescription)); - -$description = elgg_get_excerpt($group->description, 350); - -echo elgg_view('river/elements/attachment', array( - 'icon' => $image, - 'title' => $title, - 'subtitle' => $subtitle, - 'description' => $description, -));
\ No newline at end of file diff --git a/views/default/group/elements/summary.php b/views/default/group/elements/summary.php new file mode 100644 index 000000000..395ed5292 --- /dev/null +++ b/views/default/group/elements/summary.php @@ -0,0 +1,13 @@ +<?php +/** + * Group summary + * + * @uses $vars['entity'] ElggEntity + * @uses $vars['title'] Title link (optional) false = no title, '' = default + * @uses $vars['metadata'] HTML for entity metadata and actions (optional) + * @uses $vars['subtitle'] HTML for the subtitle (optional) + * @uses $vars['tags'] HTML for the tags (optional) + * @uses $vars['content'] HTML for the entity content (optional) + */ + +echo elgg_view('object/elements/summary', $vars); diff --git a/views/default/group/search/finishblurb.php b/views/default/group/search/finishblurb.php new file mode 100644 index 000000000..ceaeb0ff0 --- /dev/null +++ b/views/default/group/search/finishblurb.php @@ -0,0 +1,18 @@ +<?php +/** + * @package Elgg + * @subpackage Core + * @deprecated 1.7 + */ +elgg_deprecated_notice('view groups/search/finishblurb was deprecated.', 1.7); + +if ($vars['count'] > $vars['threshold']) { + +?> +<div class="contentWrapper"><a href="<?php echo elgg_get_site_url(); ?>search/groups?tag=<?php echo urlencode($vars['tag']); ?>"> + <?php + echo elgg_echo("group:search:finishblurb"); + ?></a> +</div> +<?php +} diff --git a/views/default/group/search/startblurb.php b/views/default/group/search/startblurb.php new file mode 100644 index 000000000..92256d1db --- /dev/null +++ b/views/default/group/search/startblurb.php @@ -0,0 +1,14 @@ +<?php +/** + * @package Elgg + * @subpackage Core + * @deprecated 1.7 + */ +elgg_deprecated_notice('view groups/search/startblurb was deprecated.', 1.7); +?> + +<div class="contentWrapper"> + <?php + echo elgg_echo("group:search:startblurb", array($vars['tag'])); + ?> +</div> diff --git a/views/default/groups/profile/fields.php b/views/default/groups/profile/fields.php deleted file mode 100644 index 6a666cfb7..000000000 --- a/views/default/groups/profile/fields.php +++ /dev/null @@ -1,36 +0,0 @@ -<?php -/** - * Group profile fields - */ - -$group = $vars['entity']; - -$profile_fields = elgg_get_config('group'); - -echo "<dl class=\"elgg-profile\">"; -if (is_array($profile_fields) && count($profile_fields) > 0) { - - foreach ($profile_fields as $key => $valtype) { - // do not show the name - if ($key == 'name') { - continue; - } - - $value = $group->$key; - if (empty($value)) { - continue; - } - - $options = array('value' => $group->$key); - if ($valtype == 'tags') { - $options['tag_names'] = $key; - } - - echo "<dt>"; - echo elgg_echo("groups:$key"); - echo "</dt><dd>"; - echo elgg_view("output/$valtype", $options); - echo "</dd>"; - } -} -echo "</dl>";
\ No newline at end of file diff --git a/views/default/groups/profile/profile_block.php b/views/default/groups/profile/profile_block.php deleted file mode 100644 index 9dcad2715..000000000 --- a/views/default/groups/profile/profile_block.php +++ /dev/null @@ -1,69 +0,0 @@ -<?php -/** - * Group profile - * - * Icon and profile fields - * - * @uses $vars['group'] - */ - -if (!isset($vars['entity']) || !$vars['entity']) { - echo elgg_echo('groups:notfound'); - return true; -} - -$group = $vars['entity']; -$owner = $group->getOwnerEntity(); - -$profile_fields = elgg_get_config('group'); - -?> -<div class="groups-profile clearfix"> - <div class="groups-profile-fields elgg-body"> - <p> - <b><?php echo elgg_echo("groups:owner"); ?>: </b> - <?php - echo elgg_view('output/url', array( - 'text' => $owner->name, - 'value' => $owner->getURL(), - )); - ?> - </p> - <p> - <?php - echo elgg_echo('groups:members') . ": " . $group->getMembers(0, 0, TRUE); - ?> - </p> -<?php -if (is_array($profile_fields) && count($profile_fields) > 0) { - - $even_odd = 'odd'; - foreach ($profile_fields as $key => $valtype) { - // do not show the name - if ($key == 'name') { - continue; - } - - $value = $group->$key; - if (empty($value)) { - continue; - } - - $options = array('value' => $group->$key); - if ($valtype == 'tags') { - $options['tag_names'] = $key; - } - - echo "<p class=\"{$even_odd}\">"; - echo "<b>"; - echo elgg_echo("groups:$key"); - echo ": </b>"; - echo elgg_view("output/$valtype", $options); - echo "</p>"; - - $even_odd = ($even_odd == 'even') ? 'odd' : 'even'; - } -} -?> - </div> -</div> diff --git a/views/default/groups/profile/stats.php b/views/default/groups/profile/stats.php deleted file mode 100644 index 9289cbab9..000000000 --- a/views/default/groups/profile/stats.php +++ /dev/null @@ -1,19 +0,0 @@ -<?php - -$group = $vars['entity']; -$owner = $group->getOwnerEntity(); - -?> -<dl class="elgg-profile"> - <dt><?php echo elgg_echo("groups:owner"); ?></dt> - <dd> - <?php - echo elgg_view('output/url', array( - 'text' => $owner->name, - 'value' => $owner->getURL(), - )); - ?> - </dd> - <dt><?php echo elgg_echo('groups:members'); ?></dt> - <dd><?php echo $group->getMembers(0, 0, TRUE); ?></dd> -</dl>
\ No newline at end of file diff --git a/views/default/groups/profile/summary.php b/views/default/groups/profile/summary.php deleted file mode 100644 index 8b4c0fadf..000000000 --- a/views/default/groups/profile/summary.php +++ /dev/null @@ -1,17 +0,0 @@ -<?php -/** - * Group profile summary - * - * Icon and profile fields - * - * @uses $vars['group'] - */ - -if (!isset($vars['entity']) || !$vars['entity']) { - echo elgg_echo('groups:notfound'); - return true; -} - -echo elgg_view_module('info', 'Info', elgg_view('groups/profile/fields', $vars)); - -echo elgg_view_module('info', 'Stats', elgg_view('groups/profile/stats', $vars)); diff --git a/views/default/icon/default.php b/views/default/icon/default.php new file mode 100644 index 000000000..7f13a1189 --- /dev/null +++ b/views/default/icon/default.php @@ -0,0 +1,80 @@ +<?php +/** + * Generic icon view. + * + * @package Elgg + * @subpackage Core + * + * @uses $vars['entity'] The entity the icon represents - uses getIconURL() method + * @uses $vars['size'] topbar, tiny, small, medium (default), large, master + * @uses $vars['href'] Optional override for link + * @uses $vars['img_class'] Optional CSS class added to img + * @uses $vars['link_class'] Optional CSS class for the link + */ + +$entity = $vars['entity']; + +$sizes = array('small', 'medium', 'large', 'tiny', 'master', 'topbar'); +// Get size +if (!in_array($vars['size'], $sizes)) { + $vars['size'] = "medium"; +} + +$class = elgg_extract('img_class', $vars, ''); + +if (isset($entity->name)) { + $title = $entity->name; +} else { + $title = $entity->title; +} +$title = htmlspecialchars($title, ENT_QUOTES, 'UTF-8', false); + +$url = $entity->getURL(); +if (isset($vars['href'])) { + $url = $vars['href']; +} + +$icon_sizes = elgg_get_config('icon_sizes'); +$size = $vars['size']; + +if (!isset($vars['width'])) { + $vars['width'] = $size != 'master' ? $icon_sizes[$size]['w'] : null; +} +if (!isset($vars['height'])) { + $vars['height'] = $size != 'master' ? $icon_sizes[$size]['h'] : null; +} + +$img_params = array( + 'src' => $entity->getIconURL($vars['size']), + 'alt' => $title, +); + +if (!empty($class)) { + $img_params['class'] = $class; +} + +if (!empty($vars['width'])) { + $img_params['width'] = $vars['width']; +} + +if (!empty($vars['height'])) { + $img_params['height'] = $vars['height']; +} + +$img = elgg_view('output/img', $img_params); + +if ($url) { + $params = array( + 'href' => $url, + 'text' => $img, + 'is_trusted' => true, + ); + $class = elgg_extract('link_class', $vars, ''); + if ($class) { + $params['class'] = $class; + } + + echo elgg_view('output/url', $params); +} else { + echo $img; +} diff --git a/views/default/icon/user/default.php b/views/default/icon/user/default.php new file mode 100644 index 000000000..c0b0e7483 --- /dev/null +++ b/views/default/icon/user/default.php @@ -0,0 +1,103 @@ +<?php +/** + * Elgg user icon + * + * Rounded avatar corners - CSS3 method + * uses avatar as background image so we can clip it with border-radius in supported browsers + * + * @uses $vars['entity'] The user entity. If none specified, the current user is assumed. + * @uses $vars['size'] The size - tiny, small, medium or large. (medium) + * @uses $vars['use_hover'] Display the hover menu? (true) + * @uses $vars['use_link'] Wrap a link around image? (true) + * @uses $vars['class'] Optional class added to the .elgg-avatar div + * @uses $vars['img_class'] Optional CSS class added to img + * @uses $vars['link_class'] Optional CSS class for the link + * @uses $vars['href'] Optional override of the link href + */ + +$user = elgg_extract('entity', $vars, elgg_get_logged_in_user_entity()); +$size = elgg_extract('size', $vars, 'medium'); +if (!in_array($size, array('topbar', 'tiny', 'small', 'medium', 'large', 'master'))) { + $size = 'medium'; +} + +$class = "elgg-avatar elgg-avatar-$size"; +if (isset($vars['class'])) { + $class = "$class {$vars['class']}"; +} + +$use_link = elgg_extract('use_link', $vars, true); + +if (!($user instanceof ElggUser)) { + return true; +} + +$name = htmlspecialchars($user->name, ENT_QUOTES, 'UTF-8', false); +$username = $user->username; + +$icontime = $user->icontime; +if (!$icontime) { + $icontime = "default"; +} + +$js = elgg_extract('js', $vars, ''); +if ($js) { + elgg_deprecated_notice("Passing 'js' to icon views is deprecated.", 1.8, 5); +} + +$img_class = ''; +if (isset($vars['img_class'])) { + $img_class = $vars['img_class']; +} + +$use_hover = elgg_extract('use_hover', $vars, true); +if (isset($vars['override'])) { + elgg_deprecated_notice("Use 'use_hover' rather than 'override' with user avatars", 1.8, 5); + $use_hover = false; +} +if (isset($vars['hover'])) { + // only 1.8.0 was released with 'hover' as the key + $use_hover = $vars['hover']; +} + +$spacer_url = elgg_get_site_url() . '_graphics/spacer.gif'; + +$icon_url = elgg_format_url($user->getIconURL($size)); +$icon = elgg_view('output/img', array( + 'src' => $spacer_url, + 'alt' => $name, + 'title' => $name, + 'class' => $img_class, + 'style' => "background: url($icon_url) no-repeat;", +)); + +$show_menu = $use_hover && (elgg_is_admin_logged_in() || !$user->isBanned()); + +?> +<div class="<?php echo $class; ?>"> +<?php + +if ($show_menu) { + $params = array( + 'entity' => $user, + 'username' => $username, + 'name' => $name, + ); + echo elgg_view_icon('hover-menu'); + echo elgg_view_menu('user_hover', $params); +} + +if ($use_link) { + $class = elgg_extract('link_class', $vars, ''); + $url = elgg_extract('href', $vars, $user->getURL()); + echo elgg_view('output/url', array( + 'href' => $url, + 'text' => $icon, + 'is_trusted' => true, + 'class' => $class, + )); +} else { + echo "<a>$icon</a>"; +} +?> +</div> diff --git a/views/default/input/longtext.php b/views/default/input/longtext.php index 2b1462635..61dc7ca19 100644 --- a/views/default/input/longtext.php +++ b/views/default/input/longtext.php @@ -19,6 +19,8 @@ if (isset($vars['class'])) { $defaults = array( 'value' => '', + 'rows' => '10', + 'cols' => '50', 'id' => 'elgg-input-' . rand(), //@todo make this more robust ); diff --git a/views/default/input/plaintext.php b/views/default/input/plaintext.php index cd0aaafcf..e92c61ced 100644 --- a/views/default/input/plaintext.php +++ b/views/default/input/plaintext.php @@ -20,6 +20,8 @@ if (isset($vars['class'])) { $defaults = array( 'value' => '', + 'rows' => '10', + 'cols' => '50', 'disabled' => false, ); diff --git a/views/default/input/pulldown.php b/views/default/input/pulldown.php index 705329691..fc0595300 100644 --- a/views/default/input/pulldown.php +++ b/views/default/input/pulldown.php @@ -5,5 +5,5 @@ * @deprecated 1.8 */ -elgg_deprecated_notice("input/pulldown was deprecated by input/dropdown", 1.8); +elgg_deprecated_notice("input/pulldown was deprecated by input/dropdown", 1.8, 2); echo elgg_view('input/dropdown', $vars); diff --git a/views/default/input/text.php b/views/default/input/text.php index 707a50179..07ce5c710 100644 --- a/views/default/input/text.php +++ b/views/default/input/text.php @@ -23,5 +23,4 @@ $defaults = array( $vars = array_merge($defaults, $vars); ?> - <input type="text" <?php echo elgg_format_attributes($vars); ?> />
\ No newline at end of file diff --git a/views/default/input/userpicker.php b/views/default/input/userpicker.php index 91a397e37..8b64d7df5 100644 --- a/views/default/input/userpicker.php +++ b/views/default/input/userpicker.php @@ -63,11 +63,13 @@ foreach ($vars['value'] as $user_id) { ?> <div class="elgg-user-picker"> <input type="text" class="elgg-input-user-picker" size="30"/> - <input type="checkbox" name="match_on" value="true" /> - <label><?php echo elgg_echo('userpicker:only_friends'); ?></label> + <label> + <input type="checkbox" name="match_on" value="true" /> + <?php echo elgg_echo('userpicker:only_friends'); ?> + </label> <ul class="elgg-user-picker-list"><?php echo $user_list; ?></ul> </div> <script type="text/javascript"> // @todo grab the values in the init function rather than using inline JS elgg.userpicker.userList = <?php echo $json_values ?>; -</script>
\ No newline at end of file +</script> diff --git a/views/default/js/admin.php b/views/default/js/admin.php new file mode 100644 index 000000000..e8aa0d2ed --- /dev/null +++ b/views/default/js/admin.php @@ -0,0 +1,126 @@ +<?php +/** + * Admin-area specific javascript functions. + * + * @since 1.8 + */ + +if (0) { ?><script><?php } +?> +elgg.provide('elgg.admin'); + +elgg.admin.init = function () { + + // system messages do not fade in admin area, instead slide up when clicked + $('.elgg-system-messages li').stop(true); + $('.elgg-system-messages li').die('click'); + $('.elgg-system-messages li').live('click', function() { + $(this).stop().slideUp('medium'); + }); + + // draggable plugin reordering + $('#elgg-plugin-list > ul').sortable({ + items: 'li:has(> .elgg-state-draggable)', + handle: '.elgg-head', + forcePlaceholderSize: true, + placeholder: 'elgg-widget-placeholder', + opacity: 0.8, + revert: 500, + stop: elgg.admin.movePlugin + }); + + // in-line editing for custom profile fields. + // @note this requires jquery.jeditable plugin + $(".elgg-state-editable").editable(elgg.admin.editProfileField, { + type: 'text', + onblur: 'submit', + width: '300px', + height: 'none', + style: 'display:inline;' + }); + + // draggable profile field reordering. + $('#elgg-profile-fields').sortable({ + items: 'li', + handle: 'span.elgg-state-draggable', + stop: elgg.admin.moveProfileField + }); + + // admin notices delete ajax + $('a.elgg-admin-notice').click(elgg.admin.deleteNotice); +}; + +/** + * Save the plugin order after a move event. + * + * @param {Object} e Event object. + * @param {Object} ui jQueryUI object + * @return void + */ +elgg.admin.movePlugin = function(e, ui) { + // get guid from id like elgg-object-<guid> + var pluginGuid = ui.item.attr('id'); + pluginGuid = pluginGuid.replace('elgg-object-', ''); + + elgg.action('admin/plugins/set_priority', { + data: { + plugin_guid: pluginGuid, + // we start at priority 1 + priority: ui.item.index() + 1 + } + }); +}; + +/** + * In-line editing for custom profile fields + * + * @param string value The new value + * @param {Object} settings The settings used for editable + * @return void + */ +elgg.admin.editProfileField = function(value, settings) { + var id = $(this).attr('id'); + id = id.replace('elgg-profile-field-', ''); + + var data = { + id: id, + label: value + }; + + elgg.action('profile/fields/edit', data); + return value; +}; + +/** + * Save the plugin profile order after a move event. + * + * @param {Object} e Event object. + * @param {Object} ui jQueryUI object + * @return void + */ +elgg.admin.moveProfileField = function(e, ui) { + var orderArr = $('#elgg-profile-fields').sortable('toArray'); + var orderStr = orderArr.join(','); + + elgg.action('profile/fields/reorder', { + fieldorder: orderStr + }); +}; + +/** + * Fires the ajax action to delete the admin notice then hides the notice. + * + * @return void + */ +elgg.admin.deleteNotice = function(e) { + e.preventDefault(); + var $container = $(this).closest('p'); + + elgg.action($(this).attr('href'), { + success: function(json) { + $container.slideUp('medium'); + } + }); +}; + +elgg.register_hook_handler('init', 'system', elgg.admin.init, 1000);
\ No newline at end of file diff --git a/views/default/js/elgg.php b/views/default/js/elgg.php new file mode 100644 index 000000000..c3b56e398 --- /dev/null +++ b/views/default/js/elgg.php @@ -0,0 +1,77 @@ +<?php +/** + * Core Elgg javascript loader + */ +global $CONFIG; + +$prereq_files = array( + "vendors/sprintf.js", + "js/lib/elgglib.js", +); + +foreach ($prereq_files as $file) { + include("{$CONFIG->path}$file"); +} + +//No such thing as autoloading classes in javascript +$model_files = array( + 'ElggEntity', + 'ElggUser', + 'ElggPriorityList', +); + +foreach ($model_files as $file) { + include("{$CONFIG->path}js/classes/$file.js"); +} + +//Include library files +$libs = array( + //libraries + 'prototypes', + 'hooks', + 'security', + 'languages', + 'ajax', + 'session', + 'pageowner', + 'configuration', + + //ui + 'ui', + 'ui.widgets', +); + +foreach ($libs as $file) { + include("{$CONFIG->path}js/lib/$file.js"); + // putting a new line between the files to address https://github.com/elgg/elgg/issues/3081 + echo "\n"; +} + +/** + * Set some values that are cacheable + */ +if (0) { ?><script><?php } +?> + +elgg.version = '<?php echo get_version(); ?>'; +elgg.release = '<?php echo get_version(true); ?>'; +elgg.config.wwwroot = '<?php echo elgg_get_site_url(); ?>'; +<?php //@todo make this configurable ?> +elgg.security.interval = 5 * 60 * 1000; +elgg.config.domReady = false; +elgg.config.language = '<?php echo isset($CONFIG->language) ? $CONFIG->language : 'en'; ?>'; +elgg.config.languageReady = false; + +//After the DOM is ready +$(function() { + elgg.config.domReady = true; + elgg.initWhenReady(); +}); + +<?php + +$previous_content = elgg_view('js/initialise_elgg'); +if ($previous_content) { + elgg_deprecated_notice("The view 'js/initialise_elgg' has been deprecated for js/elgg", 1.8); + echo $previous_content; +} diff --git a/views/default/js/initialise_elgg.php b/views/default/js/initialise_elgg.php new file mode 100644 index 000000000..3d617953a --- /dev/null +++ b/views/default/js/initialise_elgg.php @@ -0,0 +1,4 @@ +<?php +/** + * This has been deprecated in 1.8 - see elgg.php in this directory. + */
\ No newline at end of file diff --git a/views/default/js/initialize_elgg.php b/views/default/js/initialize_elgg.php new file mode 100644 index 000000000..b45c33463 --- /dev/null +++ b/views/default/js/initialize_elgg.php @@ -0,0 +1,52 @@ +<?php +/** + * Initialize Elgg's js lib with the uncacheable data + */ + +if (0) { ?><script><?php } +?> +/** + * Don't want to cache these -- they could change for every request + */ +elgg.config.lastcache = <?php echo (int)elgg_get_config('lastcache'); ?>; +elgg.config.viewtype = '<?php echo elgg_get_viewtype(); ?>'; +elgg.config.simplecache_enabled = <?php echo (int)elgg_is_simplecache_enabled(); ?>; + +elgg.security.token.__elgg_ts = <?php echo $ts = time(); ?>; +elgg.security.token.__elgg_token = '<?php echo generate_action_token($ts); ?>'; + +<?php +// @todo json export should be smoother than this... +// @todo Might also be nice to make url exportable. $entity->url? yes please! +$page_owner = elgg_get_page_owner_entity(); + +if ($page_owner instanceof ElggEntity) { + $page_owner_json = array(); + foreach ($page_owner->getExportableValues() as $v) { + $page_owner_json[$v] = $page_owner->$v; + } + + $page_owner_json['subtype'] = $page_owner->getSubtype(); + $page_owner_json['url'] = $page_owner->getURL(); + + echo 'elgg.page_owner = ' . json_encode($page_owner_json) . ';'; +} + +$user = elgg_get_logged_in_user_entity(); + +if ($user instanceof ElggUser) { + $user_json = array(); + foreach ($user->getExportableValues() as $v) { + $user_json[$v] = $user->$v; + } + + $user_json['subtype'] = $user->getSubtype(); + $user_json['url'] = $user->getURL(); + $user_json['admin'] = $user->isAdmin(); + + echo 'elgg.session.user = new elgg.ElggUser(' . json_encode($user_json) . ');'; +} +?> + +//Before the DOM is ready, but elgg's js framework is fully initalized +elgg.trigger_hook('boot', 'system');
\ No newline at end of file diff --git a/views/default/js/languages.php b/views/default/js/languages.php new file mode 100644 index 000000000..fcf903d4b --- /dev/null +++ b/views/default/js/languages.php @@ -0,0 +1,33 @@ +<?php +/** + * @uses $vars['language'] + * @uses $vars['lc'] if present, client will be sent long expires headers + */ + +$language = $vars['language']; +$lastcache = elgg_extract('lc', $vars, 0); + +// @todo add server-side caching +if ($lastcache) { + // we're relying on lastcache changes to predict language changes + $etag = '"' . md5("$language|$lastcache") . '"'; + + header('Expires: ' . gmdate('D, d M Y H:i:s \G\M\T', strtotime("+6 months")), true); + header("Pragma: public", true); + header("Cache-Control: public", true); + header("ETag: $etag"); + + if (isset($_SERVER['HTTP_IF_NONE_MATCH']) && trim($_SERVER['HTTP_IF_NONE_MATCH']) === $etag) { + header("HTTP/1.1 304 Not Modified"); + exit; + } +} + +$all_translations = elgg_get_config('translations'); +$translations = $all_translations['en']; + +if ($language != 'en') { + $translations = array_merge($translations, $all_translations[$language]); +} + +echo json_encode($translations);
\ No newline at end of file diff --git a/views/default/js/languages/en.php b/views/default/js/languages/en.php new file mode 100644 index 000000000..8a604cc12 --- /dev/null +++ b/views/default/js/languages/en.php @@ -0,0 +1,2 @@ +<?php +echo elgg_view('js/languages', array('language' => 'en'));
\ No newline at end of file diff --git a/views/default/js/lightbox.php b/views/default/js/lightbox.php new file mode 100644 index 000000000..a1f018eea --- /dev/null +++ b/views/default/js/lightbox.php @@ -0,0 +1,36 @@ +<?php +/** + * Elgg lightbox + * + * Usage + * Call elgg_load_js('lightbox') and elgg_load_css('lightbox') then + * apply the class elgg-lightbox to links. + * + * Advanced Usage + * Elgg is distributed with the Fancybox jQuery library. Please go to + * http://fancybox.net for more information on the options of this lightbox. + * + * Overriding + * In a plugin, override this view and override the registration for the + * lightbox JavaScript and CSS (@see elgg_views_boot()). + * + * @todo add support for passing options: $('#myplugin-lightbox').elgg.ui.lightbox(options); + */ + +if (0) { ?><script><?php } +?> + +/** + * Lightbox initialization + */ +elgg.ui.lightbox_init = function() { + $(".elgg-lightbox").fancybox(); +} + +elgg.register_hook_handler('init', 'system', elgg.ui.lightbox_init); + +<?php + +$js_path = elgg_get_config('path'); +$js_path = "{$js_path}vendors/jquery/fancybox/jquery.fancybox-1.3.4.pack.js"; +include $js_path; diff --git a/views/default/js/tobar2.php b/views/default/js/tobar2.php deleted file mode 100644 index 454a9684b..000000000 --- a/views/default/js/tobar2.php +++ /dev/null @@ -1,100 +0,0 @@ -/* ============================================================ - * bootstrap-dropdown.js v2.0.4 - * http://twitter.github.com/bootstrap/javascript.html#dropdowns - * ============================================================ - * Copyright 2012 Twitter, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============================================================ */ - - -!function ($) { - - "use strict"; // jshint ;_; - - - /* DROPDOWN CLASS DEFINITION - * ========================= */ - - var toggle = '[data-toggle="dropdown"]' - , Dropdown = function (element) { - var $el = $(element).on('click.dropdown.data-api', this.toggle) - $('html').on('click.dropdown.data-api', function () { - $el.parent().removeClass('open') - }) - } - - Dropdown.prototype = { - - constructor: Dropdown - - , toggle: function (e) { - var $this = $(this) - , $parent - , selector - , isActive - - if ($this.is('.disabled, :disabled')) return - - selector = $this.attr('data-target') - - if (!selector) { - selector = $this.attr('href') - selector = selector && selector.replace(/.*(?=#[^\s]*$)/, '') //strip for ie7 - } - - $parent = $(selector) - $parent.length || ($parent = $this.parent()) - - isActive = $parent.hasClass('open') - - clearMenus() - - if (!isActive) $parent.toggleClass('open') - - return false - } - - } - - function clearMenus() { - $(toggle).parent().removeClass('open') - } - - - /* DROPDOWN PLUGIN DEFINITION - * ========================== */ - - $.fn.dropdown = function (option) { - return this.each(function () { - var $this = $(this) - , data = $this.data('dropdown') - if (!data) $this.data('dropdown', (data = new Dropdown(this))) - if (typeof option == 'string') data[option].call($this) - }) - } - - $.fn.dropdown.Constructor = Dropdown - - - /* APPLY TO STANDARD DROPDOWN ELEMENTS - * =================================== */ - - $(function () { - $('html').on('click.dropdown.data-api', clearMenus) - $('body') - .on('click.dropdown', '.dropdown form', function (e) { e.stopPropagation() }) - .on('click.dropdown.data-api', toggle, Dropdown.prototype.toggle) - }) - -}(window.jQuery);
\ No newline at end of file diff --git a/views/default/js/topbar.php b/views/default/js/topbar.php deleted file mode 100644 index 763d0fc7a..000000000 --- a/views/default/js/topbar.php +++ /dev/null @@ -1,3 +0,0 @@ -elgg.provide('elgg.topbar'); -elgg.topbar.init = function() {$('.elgg-menu-topbar .elgg-menu-parent').live('click', function(event) {$(this).toggleClass('elgg-menu-opened elgg-menu-closed').siblings().toggleClass('elgg-state-active');return false;});$('body').live('click', function(event) {$('.elgg-menu-topbar .elgg-child-menu.elgg-state-active').each(function() {if ($(this).has(event.target).length == 0 && !$(this).is(event.target)) {$(this).removeClass('elgg-state-active').siblings().removeClass('elgg-menu-opened').addClass('elgg-menu-closed');}});});}; -elgg.register_hook_handler('init', 'system', elgg.topbar.init);
\ No newline at end of file diff --git a/views/default/js/walled_garden.php b/views/default/js/walled_garden.php new file mode 100644 index 000000000..e228df507 --- /dev/null +++ b/views/default/js/walled_garden.php @@ -0,0 +1,67 @@ +<?php +/** + * Walled garden JavaScript + * + * @since 1.8 + */ + +$cancel_button = elgg_view('input/button', array( + 'value' => elgg_echo('cancel'), + 'class' => 'elgg-button-cancel mlm', +)); +$cancel_button = json_encode($cancel_button); + +if (0) { ?><script><?php } +?> + +elgg.provide('elgg.walled_garden'); + +elgg.walled_garden.init = function () { + + $('.forgot_link').click(elgg.walled_garden.load('lost_password')); + $('.registration_link').click(elgg.walled_garden.load('register')); + + $('input.elgg-button-cancel').live('click', function(event) { + var $wgs = $('.elgg-walledgarden-single'); + if ($wgs.is(':visible')) { + $('.elgg-walledgarden-double').fadeToggle(); + $wgs.fadeToggle(); + $wgs.remove(); + } + event.preventDefault(); + }); +}; + +/** + * Creates a closure for loading walled garden content through ajax + * + * @param {String} view Name of the walled garden view + * @return {Object} + */ +elgg.walled_garden.load = function(view) { + return function(event) { + var id = '#elgg-walledgarden-' + view; + id = id.replace('_', '-'); + //@todo display some visual element that indicates that loading of content is running + elgg.get('walled_garden/' + view, { + 'success' : function(data) { + var $wg = $('.elgg-body-walledgarden'); + $wg.append(data); + $(id).find('input.elgg-button-submit').after(<?php echo $cancel_button; ?>); + + if (view == 'register' && $wg.hasClass('hidden')) { + // this was a failed register, display the register form ASAP + $('#elgg-walledgarden-login').toggle(false); + $(id).toggle(); + $wg.removeClass('hidden'); + } else { + $('#elgg-walledgarden-login').fadeToggle(); + $(id).fadeToggle(); + } + } + }); + event.preventDefault(); + }; +}; + +elgg.register_hook_handler('init', 'system', elgg.walled_garden.init);
\ No newline at end of file diff --git a/views/default/likes/river_footer.php b/views/default/likes/river_footer.php deleted file mode 100644 index 84f942692..000000000 --- a/views/default/likes/river_footer.php +++ /dev/null @@ -1,71 +0,0 @@ -<?php -/** - * Elgg likes display - * - * @uses $vars['entity'] - */ - -if (!$vars['item'] instanceof ElggRiverItem || $vars['item']->annotation_id) { - return true; -} - -$object = $vars['item']->getObjectEntity(); - -$num_of_likes = $object->countAnnotations('likes'); - -if ($num_of_likes == 0) { - return true; -} - -$guid = $object->guid; - -$likes_button = elgg_view_icon('thumbs-up'); - -// check to see if the user has already liked this -if (elgg_is_logged_in() && $object->canAnnotate(0, 'likes')) { - if (!elgg_annotation_exists($guid, 'likes')) { - $likes_button = elgg_view('output/url', array( - 'href' => "action/likes/add?guid={$guid}", - 'text' => elgg_view_icon('thumbs-up'), - 'title' => elgg_echo('likes:likethis'), - 'is_action' => true, - )); - } else { - $likes = elgg_get_annotations(array( - 'guid' => $guid, - 'annotation_name' => 'likes', - 'owner_guid' => elgg_get_logged_in_user_guid() - )); - - $likes_button = elgg_view('output/url', array( - 'href' => "action/likes/delete?annotation_id={$likes[0]->id}", - 'text' => elgg_view_icon('thumbs-up-alt'), - 'title' => elgg_echo('likes:remove'), - 'is_action' => true, - )); - } -} - -// display the number of likes -if ($num_of_likes == 1) { - $likes_string = elgg_echo('likes:userlikedthis', array($num_of_likes)); -} else { - $likes_string = elgg_echo('likes:userslikedthis', array($num_of_likes)); -} - -$likes_string = elgg_view('output/url', array( - 'text' => $likes_string, - 'title' => elgg_echo('likes:see'), - 'rel' => 'popup', - 'href' => "#likes-$guid" -)); - -$likes_list = elgg_list_annotations(array('guid' => $guid, 'annotation_name' => 'likes', 'limit' => 99)); - -$likes_module = elgg_view_module('popup', 'Likes', $likes_list, array('class' => 'hidden elgg-likes-list', 'id' => "likes-$guid")); - -$vars['image'] = $likes_button; -$vars['body'] = $likes_string . $likes_module; -$vars['class'] = 'elgg-river-participation'; - -echo elgg_view('page/components/image_block', $vars);
\ No newline at end of file diff --git a/views/default/messageboard/composer.php b/views/default/messageboard/composer.php deleted file mode 100644 index 49fa91a53..000000000 --- a/views/default/messageboard/composer.php +++ /dev/null @@ -1,6 +0,0 @@ -<?php -//hack! Elgg engine should take care of this, or blog/save form should be coded better -if (elgg_is_xhr() && isset($vars['entity_guid'])) { - elgg_set_page_owner_guid($vars['entity_guid']); -} -echo elgg_view_form('messageboard/add', array(), $vars);
\ No newline at end of file diff --git a/views/default/navigation/breadcrumbs.php b/views/default/navigation/breadcrumbs.php new file mode 100644 index 000000000..88577a8ff --- /dev/null +++ b/views/default/navigation/breadcrumbs.php @@ -0,0 +1,41 @@ +<?php +/** + * Displays breadcrumbs. + * + * @package Elgg + * @subpackage Core + * + * @uses $vars['breadcrumbs'] (Optional) Array of arrays with keys 'title' and 'link' + * @uses $vars['class'] + * + * @see elgg_push_breadcrumb + */ + +if (isset($vars['breadcrumbs'])) { + $breadcrumbs = $vars['breadcrumbs']; +} else { + $breadcrumbs = elgg_get_breadcrumbs(); +} + +$class = 'elgg-menu elgg-breadcrumbs'; +$additional_class = elgg_extract('class', $vars, ''); +if ($additional_class) { + $class = "$class $additional_class"; +} + +if (is_array($breadcrumbs) && count($breadcrumbs) > 0) { + echo "<ul class=\"$class\">"; + foreach ($breadcrumbs as $breadcrumb) { + if (!empty($breadcrumb['link'])) { + $crumb = elgg_view('output/url', array( + 'href' => $breadcrumb['link'], + 'text' => $breadcrumb['title'], + 'is_trusted' => true, + )); + } else { + $crumb = $breadcrumb['title']; + } + echo "<li>$crumb</li>"; + } + echo '</ul>'; +} diff --git a/views/default/navigation/menu/default.php b/views/default/navigation/menu/default.php new file mode 100644 index 000000000..006deb3ea --- /dev/null +++ b/views/default/navigation/menu/default.php @@ -0,0 +1,31 @@ +<?php +/** + * Default menu + * + * @uses $vars['name'] Name of the menu + * @uses $vars['menu'] Array of menu items + * @uses $vars['class'] Additional CSS class for the menu + * @uses $vars['item_class'] Additional CSS class for each menu item + * @uses $vars['show_section_headers'] Do we show headers for each section? + */ + +// we want css classes to use dashes +$vars['name'] = preg_replace('/[^a-z0-9\-]/i', '-', $vars['name']); +$headers = elgg_extract('show_section_headers', $vars, false); +$item_class = elgg_extract('item_class', $vars, ''); + +$class = "elgg-menu elgg-menu-{$vars['name']}"; +if (isset($vars['class'])) { + $class .= " {$vars['class']}"; +} + +foreach ($vars['menu'] as $section => $menu_items) { + echo elgg_view('navigation/menu/elements/section', array( + 'items' => $menu_items, + 'class' => "$class elgg-menu-{$vars['name']}-$section", + 'section' => $section, + 'name' => $vars['name'], + 'show_section_headers' => $headers, + 'item_class' => $item_class, + )); +} diff --git a/views/default/navigation/menu/elements/item.php b/views/default/navigation/menu/elements/item.php new file mode 100644 index 000000000..fd9738826 --- /dev/null +++ b/views/default/navigation/menu/elements/item.php @@ -0,0 +1,43 @@ +<?php +/** + * A single element of a menu. + * + * @package Elgg.Core + * @subpackage Navigation + * + * @uses $vars['item'] ElggMenuItem + * @uses $vars['item_class'] Additional CSS class for the menu item + */ + +$item = $vars['item']; + +$link_class = 'elgg-menu-closed'; +if ($item->getSelected()) { + // @todo switch to addItemClass when that is implemented + //$item->setItemClass('elgg-state-selected'); + $link_class = 'elgg-menu-opened'; +} + +$children = $item->getChildren(); +if ($children) { + $item->addLinkClass($link_class); + $item->addLinkClass('elgg-menu-parent'); +} + +$item_class = $item->getItemClass(); +if ($item->getSelected()) { + $item_class = "$item_class elgg-state-selected"; +} +if (isset($vars['item_class']) && $vars['item_class']) { + $item_class .= ' ' . $vars['item_class']; +} + +echo "<li class=\"$item_class\">"; +echo $item->getContent(); +if ($children) { + echo elgg_view('navigation/menu/elements/section', array( + 'items' => $children, + 'class' => 'elgg-menu elgg-child-menu', + )); +} +echo '</li>'; diff --git a/views/default/navigation/menu/elements/section.php b/views/default/navigation/menu/elements/section.php new file mode 100644 index 000000000..c0e9ba750 --- /dev/null +++ b/views/default/navigation/menu/elements/section.php @@ -0,0 +1,30 @@ +<?php +/** + * Menu group + * + * @uses $vars['items'] Array of menu items + * @uses $vars['class'] Additional CSS class for the section + * @uses $vars['name'] Name of the menu + * @uses $vars['section'] The section name + * @uses $vars['item_class'] Additional CSS class for each menu item + * @uses $vars['show_section_headers'] Do we show headers for each section + */ + +$headers = elgg_extract('show_section_headers', $vars, false); +$class = elgg_extract('class', $vars, ''); +$item_class = elgg_extract('item_class', $vars, ''); + +if ($headers) { + $name = elgg_extract('name', $vars); + $section = elgg_extract('section', $vars); + echo '<h2>' . elgg_echo("menu:$name:header:$section") . '</h2>'; +} + +echo "<ul class=\"$class\">"; +foreach ($vars['items'] as $menu_item) { + echo elgg_view('navigation/menu/elements/item', array( + 'item' => $menu_item, + 'item_class' => $item_class, + )); +} +echo '</ul>'; diff --git a/views/default/navigation/menu/page.php b/views/default/navigation/menu/page.php new file mode 100644 index 000000000..56a288234 --- /dev/null +++ b/views/default/navigation/menu/page.php @@ -0,0 +1,36 @@ +<?php +/** + * Page menu + * + * @uses $vars['menu'] + * @uses $vars['selected_item'] + * @uses $vars['class'] + * @uses $vars['name'] + * @uses $vars['show_section_headers'] + */ + +$headers = elgg_extract('show_section_headers', $vars, false); + +$class = 'elgg-menu elgg-menu-page'; +if (isset($vars['class'])) { + $class = "$class {$vars['class']}"; +} + +if (isset($vars['selected_item'])) { + $parent = $vars['selected_item']->getParent(); + + while ($parent) { + $parent->setSelected(); + $parent = $parent->getParent(); + } +} + +foreach ($vars['menu'] as $section => $menu_items) { + echo elgg_view('navigation/menu/elements/section', array( + 'items' => $menu_items, + 'class' => "$class elgg-menu-page-$section", + 'section' => $section, + 'name' => $vars['name'], + 'show_section_headers' => $headers + )); +} diff --git a/views/default/navigation/menu/site.php b/views/default/navigation/menu/site.php new file mode 100644 index 000000000..24c21dd57 --- /dev/null +++ b/views/default/navigation/menu/site.php @@ -0,0 +1,30 @@ +<?php +/** + * Site navigation menu + * + * @uses $vars['menu']['default'] + * @uses $vars['menu']['more'] + */ + +$default_items = elgg_extract('default', $vars['menu'], array()); +$more_items = elgg_extract('more', $vars['menu'], array()); + +echo '<ul class="elgg-menu elgg-menu-site elgg-menu-site-default clearfix">'; +foreach ($default_items as $menu_item) { + echo elgg_view('navigation/menu/elements/item', array('item' => $menu_item)); +} + +if ($more_items) { + echo '<li class="elgg-more">'; + + $more = elgg_echo('more'); + echo "<a href=\"#\">$more</a>"; + + echo elgg_view('navigation/menu/elements/section', array( + 'class' => 'elgg-menu elgg-menu-site elgg-menu-site-more', + 'items' => $more_items, + )); + + echo '</li>'; +} +echo '</ul>'; diff --git a/views/default/navigation/menu/user_hover.php b/views/default/navigation/menu/user_hover.php new file mode 100644 index 000000000..5c89e585c --- /dev/null +++ b/views/default/navigation/menu/user_hover.php @@ -0,0 +1,60 @@ +<?php +/** + * User hover menu + * + * Register for the 'register', 'menu:user_hover' plugin hook to add to the user + * hover menu. There are three sections: action, default, and admin. + * + * @uses $vars['menu'] Menu array provided by elgg_view_menu() + */ + +$user = $vars['entity']; +$actions = elgg_extract('action', $vars['menu'], null); +$main = elgg_extract('default', $vars['menu'], null); +$admin = elgg_extract('admin', $vars['menu'], null); + +echo '<ul class="elgg-menu elgg-menu-hover">'; + +// name and username +$name_link = elgg_view('output/url', array( + 'href' => $user->getURL(), + 'text' => "<span class=\"elgg-heading-basic\">$user->name</span>@$user->username", + 'is_trusted' => true, +)); +echo "<li>$name_link</li>"; + +// actions +if (elgg_is_logged_in() && $actions) { + echo '<li>'; + echo elgg_view('navigation/menu/elements/section', array( + 'class' => "elgg-menu elgg-menu-hover-actions", + 'items' => $actions, + )); + echo '</li>'; +} + +// main +if ($main) { + echo '<li>'; + + echo elgg_view('navigation/menu/elements/section', array( + 'class' => 'elgg-menu elgg-menu-hover-default', + 'items' => $main, + )); + + echo '</li>'; +} + +// admin +if (elgg_is_admin_logged_in() && $admin) { + echo '<li>'; + + echo elgg_view('navigation/menu/elements/section', array( + 'class' => 'elgg-menu elgg-menu-hover-admin', + 'items' => $admin, + )); + + echo '</li>'; +} + +echo '</ul>'; diff --git a/views/default/navigation/pagination.php b/views/default/navigation/pagination.php new file mode 100644 index 000000000..04044c51c --- /dev/null +++ b/views/default/navigation/pagination.php @@ -0,0 +1,132 @@ +<?php +/** + * Elgg pagination + * + * @package Elgg + * @subpackage Core + * + * @uses int $vars['offset'] The offset in the list + * @uses int $vars['limit'] Number of items per page + * @uses int $vars['count'] Number of items in list + * @uses string $vars['base_url'] Base URL to use in links + * @uses string $vars['offset_key'] The string to use for offet in the URL + */ + +if (elgg_in_context('widget')) { + // widgets do not show pagination + return true; +} + +$offset = abs((int) elgg_extract('offset', $vars, 0)); +// because you can say $vars['limit'] = 0 +if (!$limit = (int) elgg_extract('limit', $vars, 10)) { + $limit = 10; +} + +$count = (int) elgg_extract('count', $vars, 0); +$offset_key = elgg_extract('offset_key', $vars, 'offset'); +// some views pass an empty string for base_url +if (isset($vars['base_url']) && $vars['base_url']) { + $base_url = $vars['base_url']; +} else if (isset($vars['baseurl']) && $vars['baseurl']) { + elgg_deprecated_notice("Use 'base_url' instead of 'baseurl' for the navigation/pagination view", 1.8); + $base_url = $vars['baseurl']; +} else { + $base_url = current_page_url(); +} + +$num_pages = elgg_extract('num_pages', $vars, 10); +$delta = ceil($num_pages / 2); + +if ($count <= $limit && $offset == 0) { + // no need for pagination + return true; +} + +$total_pages = ceil($count / $limit); +$current_page = ceil($offset / $limit) + 1; + +$pages = new stdClass(); +$pages->prev = array( + 'text' => '« ' . elgg_echo('previous'), + 'href' => '', + 'is_trusted' => true, +); +$pages->next = array( + 'text' => elgg_echo('next') . ' »', + 'href' => '', + 'is_trusted' => true, +); +$pages->items = array(); + +// Add pages before the current page +if ($current_page > 1) { + $prev_offset = $offset - $limit; + if ($prev_offset < 0) { + $prev_offset = 0; + } + + $pages->prev['href'] = elgg_http_add_url_query_elements($base_url, array($offset_key => $prev_offset)); + + $first_page = $current_page - $delta; + if ($first_page < 1) { + $first_page = 1; + } + + $pages->items = range($first_page, $current_page - 1); +} + + +$pages->items[] = $current_page; + + +// add pages after the current one +if ($current_page < $total_pages) { + $next_offset = $offset + $limit; + if ($next_offset >= $count) { + $next_offset--; + } + + $pages->next['href'] = elgg_http_add_url_query_elements($base_url, array($offset_key => $next_offset)); + + $last_page = $current_page + $delta; + if ($last_page > $total_pages) { + $last_page = $total_pages; + } + + $pages->items = array_merge($pages->items, range($current_page + 1, $last_page)); +} + + +echo '<ul class="elgg-pagination">'; + +if ($pages->prev['href']) { + $link = elgg_view('output/url', $pages->prev); + echo "<li>$link</li>"; +} else { + echo "<li class=\"elgg-state-disabled\"><span>{$pages->prev['text']}</span></li>"; +} + +foreach ($pages->items as $page) { + if ($page == $current_page) { + echo "<li class=\"elgg-state-selected\"><span>$page</span></li>"; + } else { + $page_offset = (($page - 1) * $limit); + $url = elgg_http_add_url_query_elements($base_url, array($offset_key => $page_offset)); + $link = elgg_view('output/url', array( + 'href' => $url, + 'text' => $page, + 'is_trusted' => true, + )); + echo "<li>$link</li>"; + } +} + +if ($pages->next['href']) { + $link = elgg_view('output/url', $pages->next); + echo "<li>$link</li>"; +} else { + echo "<li class=\"elgg-state-disabled\"><span>{$pages->next['text']}</span></li>"; +} + +echo '</ul>'; diff --git a/views/default/navigation/tabs.php b/views/default/navigation/tabs.php new file mode 100644 index 000000000..95e3f2669 --- /dev/null +++ b/views/default/navigation/tabs.php @@ -0,0 +1,81 @@ +<?php +/** + * Tab navigation + * + * @uses string $vars['type'] horizontal || vertical - Defaults to horizontal + * @uses string $vars['class'] Additional class to add to ul + * @uses array $vars['tabs'] A multi-dimensional array of tab entries in the format array( + * 'text' => string, // The string between the <a></a> tags + * 'href' => string, // URL for the link + * 'class' => string // Class of the li element + * 'id' => string, // ID of the li element + * 'selected' => bool // if this tab is currently selected (applied to li element) + * 'link_class' => string, // Class to pass to the link + * 'link_id' => string, // ID to pass to the link + * ) + */ +$options = elgg_clean_vars($vars); + +$type = elgg_extract('type', $vars, 'horizontal'); + +if ($type == 'horizontal') { + $options['class'] = "elgg-tabs elgg-htabs"; +} else { + $options['class'] = "elgg-tabs elgg-vtabs"; +} +if (isset($vars['class'])) { + $options['class'] = "{$options['class']} {$vars['class']}"; +} + +unset($options['tabs']); +unset($options['type']); + +$attributes = elgg_format_attributes($options); + +if (isset($vars['tabs']) && is_array($vars['tabs']) && !empty($vars['tabs'])) { + ?> + <ul <?php echo $attributes; ?>> + <?php + foreach ($vars['tabs'] as $info) { + $class = elgg_extract('class', $info, ''); + $id = elgg_extract('id', $info, ''); + + $selected = elgg_extract('selected', $info, FALSE); + if ($selected) { + $class .= ' elgg-state-selected'; + } + + $class_str = ($class) ? "class=\"$class\"" : ''; + $id_str = ($id) ? "id=\"$id\"" : ''; + + $options = $info; + unset($options['class']); + unset($options['id']); + unset($options['selected']); + + if (!isset($info['href']) && isset($info['url'])) { + $options['href'] = $info['url']; + unset($options['url']); + } + if (!isset($info['text']) && isset($info['title'])) { + $options['text'] = $options['title']; + unset($options['title']); + } + if (isset($info['link_class'])) { + $options['class'] = $options['link_class']; + unset($options['link_class']); + } + + if (isset($info['link_id'])) { + $options['id'] = $options['link_id']; + unset($options['link_id']); + } + + $link = elgg_view('output/url', $options); + + echo "<li $id_str $class_str>$link</li>"; + } + ?> + </ul> + <?php +} diff --git a/views/default/navigation/topbar_tools.php b/views/default/navigation/topbar_tools.php new file mode 100644 index 000000000..307f03fc6 --- /dev/null +++ b/views/default/navigation/topbar_tools.php @@ -0,0 +1,9 @@ +<?php +/** + * Empty view for backward compatibility. + * + * @package Elgg + * @subpackage Core + * + * @deprecated 1.8 Extend the topbar menus or the page/elements/topbar view directly + */ diff --git a/views/default/navigation/viewtype.php b/views/default/navigation/viewtype.php new file mode 100644 index 000000000..6dfa4ebc7 --- /dev/null +++ b/views/default/navigation/viewtype.php @@ -0,0 +1,11 @@ +<?php +/** + * Elgg list view switcher + * + * @package Elgg + * @subpackage Core + * + * @deprecated 1.8 See how file plugin adds a toggle in function file_register_toggle() + */ + +elgg_deprecated_notice('navigation/viewtype was deprecated', 1.8); diff --git a/views/default/object/admin_notice.php b/views/default/object/admin_notice.php new file mode 100644 index 000000000..11524567e --- /dev/null +++ b/views/default/object/admin_notice.php @@ -0,0 +1,20 @@ +<?php +/** + * A persistent admin notice to be displayed on all admin pages until cleared. + */ + +if (isset($vars['entity']) && elgg_instanceof($vars['entity'], 'object', 'admin_notice')) { + $notice = $vars['entity']; + $message = $notice->description; + + $delete = elgg_view('output/url', array( + 'href' => "action/admin/delete_admin_notice?guid=$notice->guid", + 'text' => '<span class="elgg-icon elgg-icon-delete"></span>', + 'is_action' => true, + 'class' => 'elgg-admin-notice', + 'is_trusted' => true, + )); + + echo "<p>$delete$message</p>"; +} + diff --git a/views/default/object/blog/river.php b/views/default/object/blog/river.php deleted file mode 100644 index 59d5245ea..000000000 --- a/views/default/object/blog/river.php +++ /dev/null @@ -1,17 +0,0 @@ -<?php - -$blog = $vars['entity']; - -$title = elgg_view('output/url', array( - 'text' => $blog->title, - 'href' => $blog->getURL(), - 'encode_text' => true, -)); - -$description = elgg_get_excerpt($blog->description, 350); - -echo elgg_view('river/elements/attachment', array( - 'title' => $title, - 'description' => $description, - 'image' => elgg_view_entity_icon($blog->getOwnerEntity(), 'tiny'), -));
\ No newline at end of file diff --git a/views/default/object/bookmarks/river.php b/views/default/object/bookmarks/river.php deleted file mode 100644 index 543998446..000000000 --- a/views/default/object/bookmarks/river.php +++ /dev/null @@ -1,19 +0,0 @@ -<?php - -$link = $vars['entity']; - -$title = elgg_view('output/url', array( - 'text' => $link->title, - 'href' => $link->getURL(), - 'encode_text' => true, -)); - -$subtitle = elgg_view('output/url', array('value' => $link->address)); - -$description = elgg_get_excerpt($link->description, 350); - -echo elgg_view('river/elements/attachment', array( - 'title' => $title, - 'subtitle' => $subtitle, - 'description' => $description, -));
\ No newline at end of file diff --git a/views/default/object/default.php b/views/default/object/default.php new file mode 100644 index 000000000..70e098742 --- /dev/null +++ b/views/default/object/default.php @@ -0,0 +1,48 @@ +<?php +/** + * ElggObject default view. + * + * @warning This view may be used for other ElggEntity objects + * + * @package Elgg + * @subpackage Core + */ + +$icon = elgg_view_entity_icon($vars['entity'], 'small'); + +$title = $vars['entity']->title; +if (!$title) { + $title = $vars['entity']->name; +} +if (!$title) { + $title = get_class($vars['entity']); +} + +if (elgg_instanceof($vars['entity'], 'object')) { + $metadata = elgg_view('navigation/menu/metadata', $vars); +} + +$owner_link = ''; +$owner = $vars['entity']->getOwnerEntity(); +if ($owner) { + $owner_link = elgg_view('output/url', array( + 'href' => $owner->getURL(), + 'text' => $owner->name, + 'is_trusted' => true, + )); +} + +$date = elgg_view_friendly_time($vars['entity']->time_created); + +$subtitle = "$owner_link $date"; + +$params = array( + 'entity' => $vars['entity'], + 'title' => $title, + 'metadata' => $metadata, + 'subtitle' => $subtitle, +); +$params = $params + $vars; +$body = elgg_view('object/elements/summary', $params); + +echo elgg_view_image_block($icon, $body, $vars); diff --git a/views/default/object/elements/full.php b/views/default/object/elements/full.php new file mode 100644 index 000000000..b4634fe7e --- /dev/null +++ b/views/default/object/elements/full.php @@ -0,0 +1,37 @@ +<?php +/** + * Object full rendering + * + * Sample output: + * <div class="elgg-content"> + * <div class="elgg-image-block"> + * </div> + * <div class="elgg-output"> + * </div> + * </div> + * + * @uses $vars['entity'] ElggEntity + * @uses $vars['icon'] HTML for the content icon + * @uses $vars['summary'] HTML for the content summary + * @uses $vars['body'] HTML for the content body + * @uses $vars['class'] Optional additional class for the content wrapper + */ + +$icon = elgg_extract('icon', $vars); +$summary = elgg_extract('summary', $vars); +$body = elgg_extract('body', $vars); +$class = elgg_extract('class', $vars); +if ($class) { + $class = "elgg-content clearfix $class"; +} else { + $class = "elgg-content clearfix"; +} + +$header = elgg_view_image_block($icon, $summary); + +echo <<<HTML +<div class="$class"> +$header +$body +</div> +HTML; diff --git a/views/default/object/elements/summary.php b/views/default/object/elements/summary.php new file mode 100644 index 000000000..63ab8f816 --- /dev/null +++ b/views/default/object/elements/summary.php @@ -0,0 +1,59 @@ +<?php +/** + * Object summary + * + * Sample output + * <ul class="elgg-menu elgg-menu-entity"><li>Public</li><li>Like this</li></ul> + * <h3><a href="">Title</a></h3> + * <p class="elgg-subtext">Posted 3 hours ago by George</p> + * <p class="elgg-tags"><a href="">one</a>, <a href="">two</a></p> + * <div class="elgg-content">Excerpt text</div> + * + * @uses $vars['entity'] ElggEntity + * @uses $vars['title'] Title link (optional) false = no title, '' = default + * @uses $vars['metadata'] HTML for entity menu and metadata (optional) + * @uses $vars['subtitle'] HTML for the subtitle (optional) + * @uses $vars['tags'] HTML for the tags (default is tags on entity, pass false for no tags) + * @uses $vars['content'] HTML for the entity content (optional) + */ + +$entity = $vars['entity']; + +$title_link = elgg_extract('title', $vars, ''); +if ($title_link === '') { + if (isset($entity->title)) { + $text = $entity->title; + } else { + $text = $entity->name; + } + $params = array( + 'text' => elgg_get_excerpt($text, 100), + 'href' => $entity->getURL(), + 'is_trusted' => true, + ); + $title_link = elgg_view('output/url', $params); +} + +$metadata = elgg_extract('metadata', $vars, ''); +$subtitle = elgg_extract('subtitle', $vars, ''); +$content = elgg_extract('content', $vars, ''); + +$tags = elgg_extract('tags', $vars, ''); +if ($tags === '') { + $tags = elgg_view('output/tags', array('tags' => $entity->tags)); +} + +if ($metadata) { + echo $metadata; +} +if ($title_link) { + echo "<h3>$title_link</h3>"; +} +echo "<div class=\"elgg-subtext\">$subtitle</div>"; +echo $tags; + +echo elgg_view('object/summary/extend', $vars); + +if ($content) { + echo "<div class=\"elgg-content\">$content</div>"; +} diff --git a/views/default/object/file/river.php b/views/default/object/file/river.php deleted file mode 100644 index e767567d5..000000000 --- a/views/default/object/file/river.php +++ /dev/null @@ -1,17 +0,0 @@ -<?php - -$file = $vars['entity']; - -$title = elgg_view('output/url', array( - 'text' => $file->title, - 'href' => $file->getURL(), - 'encode_text' => true, -)); - -$description = elgg_get_excerpt($file->description, 350); - -echo elgg_view('river/elements/attachment', array( - 'image' => elgg_view_entity_icon($file, 'small'), - 'title' => $title, - 'description' => $description, -));
\ No newline at end of file diff --git a/views/default/object/groupforumtopic/river.php b/views/default/object/groupforumtopic/river.php deleted file mode 100644 index f062793ec..000000000 --- a/views/default/object/groupforumtopic/river.php +++ /dev/null @@ -1,17 +0,0 @@ -<?php - -$groupforumtopic = $vars['entity']; - -$title = elgg_view('output/url', array( - 'text' => $groupforumtopic->title, - 'href' => $groupforumtopic->getURL(), - 'encode_text' => true, -)); - -$description = elgg_get_excerpt($groupforumtopic->description, 350); - -echo elgg_view('river/elements/attachment', array( - 'image' => elgg_view_entity_icon($groupforumtopic->getOwnerEntity(), 'tiny'), - 'title' => $title, - 'description' => $description, -));
\ No newline at end of file diff --git a/views/default/object/page/river.php b/views/default/object/page/river.php deleted file mode 100644 index cfd93d658..000000000 --- a/views/default/object/page/river.php +++ /dev/null @@ -1,15 +0,0 @@ -<?php - -$page = $vars['entity']; - -$icon = elgg_view_entity_icon($page, 'tiny'); - -echo elgg_view('river/elements/attachment', array( - 'image' => $icon, - 'title' => elgg_view('output/url', array( - 'href' => $page->getURL(), - 'text' => $page->title, - 'encode_text' => true, - )), - 'description' => elgg_get_excerpt($page->description, 1000), -));
\ No newline at end of file diff --git a/views/default/object/plugin.php b/views/default/object/plugin.php new file mode 100644 index 000000000..5c7138e96 --- /dev/null +++ b/views/default/object/plugin.php @@ -0,0 +1,20 @@ +<?php +/** + * Used to show plugin user settings. + * + * @package Elgg.Core + * @subpackage Plugins + * + */ + +if (!elgg_in_context('admin')) { + forward('/', 403); +} + +$plugin = $vars['entity']; + +if (!$plugin->isValid()) { + echo elgg_view('object/plugin/invalid', $vars); +} else { + echo elgg_view('object/plugin/full', $vars); +} diff --git a/views/default/object/plugin/elements/dependencies.php b/views/default/object/plugin/elements/dependencies.php new file mode 100644 index 000000000..d8daedd33 --- /dev/null +++ b/views/default/object/plugin/elements/dependencies.php @@ -0,0 +1,49 @@ +<?php +/** + * Shows a table of plugin dependecies for ElggPlugin in $vars['plugin']. + * + * This uses a table because it's a table of data. + * + * @package Elgg.Core + * @subpackage Admin.Plugins + */ + +$plugin = elgg_extract('plugin', $vars, false); +$deps = $plugin->getPackage()->checkDependencies(true); + +$columns = array('type', 'name', 'expected_value', 'local_value', 'comment'); + +echo '<table class="elgg-plugin-dependencies styled"><tr>'; + +foreach ($columns as $column) { + $column = elgg_echo("admin:plugins:dependencies:$column"); + echo "<th class=\"pas\">$column</th>"; +} + +echo '</tr>'; + +$row = 'odd'; +foreach ($deps as $dep) { + $fields = elgg_get_plugin_dependency_strings($dep); + $type = $dep['type']; + + if ($dep['status']) { + $class = "elgg-state-success elgg-dependency elgg-dependency-$type"; + } elseif ($dep['type'] == 'suggests') { + $class = "elgg-state-warning elgg-dependency elgg-dependency-$type"; + } else { + $class = "elgg-state-error elgg-dependency elgg-dependency-$type"; + } + + echo "<tr class=\"$row\">"; + + foreach ($columns as $column) { + echo "<td class=\"pas $class\">{$fields[$column]}</td>"; + } + + echo '</tr>'; + + $row = ($row == 'odd') ? 'even' : 'odd'; +} + +echo '</table>';
\ No newline at end of file diff --git a/views/default/object/plugin/full.php b/views/default/object/plugin/full.php new file mode 100644 index 000000000..2de65b555 --- /dev/null +++ b/views/default/object/plugin/full.php @@ -0,0 +1,308 @@ +<?php +/** + * Displays a plugin on the admin screen. + * + * This file renders a plugin for the admin screen, including active/deactive, + * manifest details & display plugin settings. + * + * @uses $vars['entity'] + * @uses $vars['display_reordering'] Do we display the priority reordering links? + * + * @package Elgg.Core + * @subpackage Plugins + */ + +$plugin = $vars['entity']; +$reordering = elgg_extract('display_reordering', $vars, false); +$priority = $plugin->getPriority(); +$active = $plugin->isActive(); + +$can_activate = $plugin->canActivate(); +$max_priority = elgg_get_max_plugin_priority(); +$actions_base = '/action/admin/plugins/'; +$css_id = preg_replace('/[^a-z0-9-]/i', '-', $plugin->getID()); + +// build reordering links +$links = ''; +$classes = array('elgg-plugin'); + +if ($reordering) { + $classes[] = 'elgg-state-draggable'; + + // top and up link only if not at top + if ($priority > 1) { + $top_url = elgg_http_add_url_query_elements($actions_base . 'set_priority', array( + 'plugin_guid' => $plugin->guid, + 'priority' => 'first', + 'is_action' => true + )); + + $links .= "<li>" . elgg_view('output/url', array( + 'href' => $top_url, + 'text' => elgg_echo('top'), + 'is_action' => true, + 'is_trusted' => true, + )) . "</li>"; + + $up_url = elgg_http_add_url_query_elements($actions_base . 'set_priority', array( + 'plugin_guid' => $plugin->guid, + 'priority' => '-1', + 'is_action' => true + )); + + $links .= "<li>" . elgg_view('output/url', array( + 'href' => $up_url, + 'text' => elgg_echo('up'), + 'is_action' => true, + 'is_trusted' => true, + )) . "</li>"; + } + + // down and bottom links only if not at bottom + if ($priority < $max_priority) { + $down_url = elgg_http_add_url_query_elements($actions_base . 'set_priority', array( + 'plugin_guid' => $plugin->guid, + 'priority' => '+1', + 'is_action' => true + )); + + $links .= "<li>" . elgg_view('output/url', array( + 'href' => $down_url, + 'text' => elgg_echo('down'), + 'is_action' => true, + 'is_trusted' => true, + )) . "</li>"; + + $bottom_url = elgg_http_add_url_query_elements($actions_base . 'set_priority', array( + 'plugin_guid' => $plugin->guid, + 'priority' => 'last', + 'is_action' => true + )); + + $links .= "<li>" . elgg_view('output/url', array( + 'href' => $bottom_url, + 'text' => elgg_echo('bottom'), + 'is_action' => true, + 'is_trusted' => true, + )) . "</li>"; + } +} else { + $classes[] = 'elgg-state-undraggable'; +} + + +// activate / deactivate links + +// always let them deactivate +$options = array( + 'is_action' => true, + 'is_trusted' => true, +); +if ($active) { + $classes[] = 'elgg-state-active'; + $action = 'deactivate'; + $options['text'] = elgg_echo('admin:plugins:deactivate'); + $options['class'] = "elgg-button elgg-button-cancel"; + + if (!$can_activate) { + $classes[] = 'elgg-state-active'; + $options['class'] = 'elgg-button elgg-state-warning'; + } +} else if ($can_activate) { + $classes[] = 'elgg-state-inactive'; + $action = 'activate'; + $options['text'] = elgg_echo('admin:plugins:activate'); + $options['class'] = "elgg-button elgg-button-submit"; +} else { + $classes[] = 'elgg-state-inactive'; + $action = ''; + $options['text'] = elgg_echo('admin:plugins:cannot_activate'); + $options['class'] = "elgg-button elgg-button-disabled"; + $options['disabled'] = 'disabled'; +} + +if ($action) { + $url = elgg_http_add_url_query_elements($actions_base . $action, array( + 'plugin_guids[]' => $plugin->guid + )); + + $options['href'] = $url; +} +$action_button = elgg_view('output/url', $options); + +// Display categories and make category classes +$categories = $plugin->getManifest()->getCategories(); +$categories_html = ''; +if ($categories) { + $base_url = elgg_get_site_url() . "admin/plugins?category="; + + foreach ($categories as $category) { + $css_class = preg_replace('/[^a-z0-9-]/i', '-', $category); + $classes[] = "elgg-plugin-category-$css_class"; + + $url = $base_url . urlencode($category); + $friendly_category = htmlspecialchars(ElggPluginManifest::getFriendlyCategory($category)); + $categories_html .= "<li class=\"elgg-plugin-category prm\"><a href=\"$url\">$friendly_category</a></li>"; + } +} + +$screenshots_html = ''; +$screenshots = $plugin->getManifest()->getScreenshots(); +if ($screenshots) { + $base_url = elgg_get_plugins_path() . $plugin->getID() . '/'; + foreach ($screenshots as $screenshot) { + $desc = elgg_echo($screenshot['description']); + $alt = htmlentities($desc, ENT_QUOTES, 'UTF-8'); + $screenshot_full = "{$vars['url']}admin_plugin_screenshot/{$plugin->getID()}/full/{$screenshot['path']}"; + $screenshot_src = "{$vars['url']}admin_plugin_screenshot/{$plugin->getID()}/thumbnail/{$screenshot['path']}"; + + $screenshots_html .= "<li class=\"elgg-plugin-screenshot prm ptm\"><a class=\"elgg-lightbox\" href=\"$screenshot_full\">" + . "<img src=\"$screenshot_src\" alt=\"$alt\"></a></li>"; + } +} + +// metadata +$description = elgg_view('output/longtext', array('value' => $plugin->getManifest()->getDescription())); +$author = '<span>' . elgg_echo('admin:plugins:label:author') . '</span>: ' + . elgg_view('output/text', array('value' => $plugin->getManifest()->getAuthor())); +$version = htmlspecialchars($plugin->getManifest()->getVersion()); +$website = elgg_view('output/url', array( + 'href' => $plugin->getManifest()->getWebsite(), + 'text' => $plugin->getManifest()->getWebsite(), + 'is_trusted' => true, +)); + +$resources = array( + 'repository' => $plugin->getManifest()->getRepositoryURL(), + 'bugtracker' => $plugin->getManifest()->getBugTrackerURL(), + 'donate' => $plugin->getManifest()->getDonationsPageURL(), +); + +$resources_html = "<ul class=\"elgg-plugin-resources\">"; +foreach ($resources as $id => $href) { + if ($href) { + $resources_html .= "<li class=\"prm\">"; + $resources_html .= elgg_view('output/url', array( + 'href' => $href, + 'text' => elgg_echo("admin:plugins:label:$id"), + 'is_trusted' => true, + )); + $resources_html .= "</li>"; + } +} +$resources_html .= "</ul>"; + +$copyright = elgg_view('output/text', array('value' => $plugin->getManifest()->getCopyright())); +$license = elgg_view('output/text', array('value' => $plugin->getManifest()->getLicense())); + +// show links to text files +$files = $plugin->getAvailableTextFiles(); + +$docs = ''; +if ($files) { + $docs = '<ul>'; + foreach ($files as $file => $path) { + $url = 'admin_plugin_text_file/' . $plugin->getID() . "/$file"; + $link = elgg_view('output/url', array( + 'text' => $file, + 'href' => $url, + 'is_trusted' => true, + )); + $docs .= "<li>$link</li>"; + + } + $docs .= '</ul>'; +} + +?> + +<div class="<?php echo implode(' ', $classes); ?>" id="<?php echo $css_id; ?>"> + <div class="elgg-image-block"> + <div class="elgg-image-alt"> + <?php if ($links) : ?> + <ul class="elgg-menu elgg-menu-metadata"> + <?php echo $links; ?> + </ul> + <?php endif; ?> + <div class="clearfloat float-alt mtm"> + <?php echo $action_button; ?> + </div> + </div> + <div class="elgg-body"> +<?php +$settings_view_old = 'settings/' . $plugin->getID() . '/edit'; +$settings_view_new = 'plugins/' . $plugin->getID() . '/settings'; +if (elgg_view_exists($settings_view_old) || elgg_view_exists($settings_view_new)) { + $link = elgg_get_site_url() . "admin/plugin_settings/" . $plugin->getID(); + $settings_link = "<a class='elgg-plugin-settings' href='$link'>[" . elgg_echo('settings') . "]</a>"; +} +?> + <div class="elgg-head"> + <h3><?php echo $plugin->getManifest()->getName() . " $version $settings_link"; ?></h3> + </div> + <?php + if ($plugin->getManifest()->getApiVersion() < 1.8) { + $reqs = $plugin->getManifest()->getRequires(); + if (!$reqs) { + $message = elgg_echo('admin:plugins:warning:elgg_version_unknown'); + echo "<p class=\"elgg-state-error\">$message</p>"; + } + } + + if (!$can_activate) { + if ($active) { + $message = elgg_echo('admin:plugins:warning:unmet_dependencies_active'); + echo "<p class=\"elgg-state-warning\">$message</p>"; + } else { + $message = elgg_echo('admin:plugins:warning:unmet_dependencies'); + echo "<p class=\"elgg-state-error\">$message</p>"; + } + } + ?> + + <div><?php echo $description; ?></div> + <p><?php echo $author . ' - ' . $website; ?></p> + + <?php + echo $resources_html; + echo $docs; + ?> + + <div class="pts"> + <?php + echo elgg_view('output/url', array( + 'href' => "#elgg-plugin-manifest-$css_id", + 'text' => elgg_echo("admin:plugins:label:moreinfo"), + 'rel' => 'toggle', + )); + ?> + </div> + </div> + </div> + <div class="elgg-plugin-more hidden" id="elgg-plugin-manifest-<?php echo $css_id; ?>"> + + <?php + if ($screenshots_html) { + ?> + <div><ul><?php echo $screenshots_html; ?></ul></div> + <?php + } + + if ($categories_html) { + ?> + <div><?php echo elgg_echo('admin:plugins:label:categories') . ": <ul class=\"elgg-plugin-categories\">$categories_html</ul>"; ?></div> + <?php + } + + ?> + <div><?php echo elgg_echo('admin:plugins:label:copyright') . ": " . $copyright; ?></div> + <div><?php echo elgg_echo('admin:plugins:label:licence') . ": " . $license; ?></div> + <div><?php echo elgg_echo('admin:plugins:label:location') . ": " . htmlspecialchars($plugin->getPath()) ?></div> + + <div><?php echo elgg_echo('admin:plugins:label:dependencies'); ?>: + <?php + echo elgg_view('object/plugin/elements/dependencies', array('plugin' => $plugin)); + ?> + </div> + </div> +</div> diff --git a/views/default/object/plugin/invalid.php b/views/default/object/plugin/invalid.php new file mode 100644 index 000000000..828bceaba --- /dev/null +++ b/views/default/object/plugin/invalid.php @@ -0,0 +1,42 @@ +<?php +/** + * Displays an invalid plugin on the admin screen. + * + * An invalid plugin is a plugin whose isValid() method returns false. + * This usually means there are required files missing, unreadable or in the + * wrong format. + * + * @package Elgg.Core + * @subpackage Plugins + */ + +$plugin = $vars['entity']; + +$id = $plugin->getID(); +$path = htmlspecialchars($plugin->getPath()); +$message = elgg_echo('admin:plugins:warning:invalid', array($plugin->getError())); +$css_id = preg_replace('/[^a-z0-9-]/i', '-', $plugin->getID()); + +?> + +<div class="elgg-state-draggable elgg-plugin elgg-state-inactive elgg-state-error" id="elgg-plugin-<?php echo $plugin->guid; ?>"> + <div class="elgg-head"><h3><?php echo $id; ?></h3></div> + <div class="elgg-body"> + <p class="elgg-state-error"><?php echo $message; ?></p> + <p><?php echo elgg_echo('admin:plugins:warning:invalid:check_docs'); ?></p> + + <div class="pts"> + <?php + echo elgg_view('output/url', array( + 'href' => "#elgg-plugin-manifest-$css_id", + 'text' => elgg_echo("admin:plugins:label:moreinfo"), + 'rel' => 'toggle', + )); + ?> + </div> + + <div class="hidden elgg-plugin-more" id="elgg-plugin-manifest-<?php echo $css_id; ?>"> + <p><?php echo elgg_echo('admin:plugins:label:location') . ": " . $path; ?></p> + </div> + </div> +</div>
\ No newline at end of file diff --git a/views/default/object/widget.php b/views/default/object/widget.php new file mode 100644 index 000000000..0c7994f2b --- /dev/null +++ b/views/default/object/widget.php @@ -0,0 +1,75 @@ +<?php +/** + * Widget object + * + * @uses $vars['entity'] ElggWidget + * @uses $vars['show_access'] Show the access control in edit area? (true) + */ + +$widget = $vars['entity']; +if (!elgg_instanceof($widget, 'object', 'widget')) { + return true; +} + +$show_access = elgg_extract('show_access', $vars, true); + +// @todo catch for disabled plugins +$widget_types = elgg_get_widget_types('all'); + +$handler = $widget->handler; + +$title = $widget->getTitle(); + +$edit_area = ''; +$can_edit = $widget->canEdit(); +if ($can_edit) { + $edit_area = elgg_view('object/widget/elements/settings', array( + 'widget' => $widget, + 'show_access' => $show_access, + )); +} +$controls = elgg_view('object/widget/elements/controls', array( + 'widget' => $widget, + 'show_edit' => $edit_area != '', +)); + +// don't show content for default widgets +if (elgg_in_context('default_widgets')) { + $content = ''; +} else { + if (elgg_view_exists("widgets/$handler/content")) { + $content = elgg_view("widgets/$handler/content", $vars); + } else { + elgg_deprecated_notice("widgets use content as the display view", 1.8); + $content = elgg_view("widgets/$handler/view", $vars); + } +} + +$widget_id = "elgg-widget-$widget->guid"; +$widget_instance = "elgg-widget-instance-$handler"; +$widget_class = "elgg-module elgg-module-widget"; +if ($can_edit) { + $widget_class .= " elgg-state-draggable $widget_instance"; +} else { + $widget_class .= " elgg-state-fixed $widget_instance"; +} + +$widget_header = <<<HEADER + <div class="elgg-widget-handle clearfix"><h3>$title</h3> + $controls + </div> +HEADER; + +$widget_body = <<<BODY + $edit_area + <div class="elgg-widget-content" id="elgg-widget-content-$widget->guid"> + $content + </div> +BODY; + +echo elgg_view('page/components/module', array( + 'class' => $widget_class, + 'id' => $widget_id, + 'body' => $widget_body, + 'header' => $widget_header, +)); diff --git a/views/default/object/widget/elements/controls.php b/views/default/object/widget/elements/controls.php new file mode 100644 index 000000000..57a935f62 --- /dev/null +++ b/views/default/object/widget/elements/controls.php @@ -0,0 +1,14 @@ +<?php +/** + * Elgg widget controls + * + * @uses $vars['widget'] + * @uses $vars['show_edit'] Whether to show the edit button (true) + */ + +echo elgg_view_menu('widget', array( + 'entity' => elgg_extract('widget', $vars), + 'show_edit' => elgg_extract('show_edit', $vars, true), + 'sort_by' => 'priority', + 'class' => 'elgg-menu-hz', +)); diff --git a/views/default/object/widget/elements/settings.php b/views/default/object/widget/elements/settings.php new file mode 100644 index 000000000..25cda58c9 --- /dev/null +++ b/views/default/object/widget/elements/settings.php @@ -0,0 +1,25 @@ +<?php +/** + * Elgg widget edit settings + * + * @uses $vars['widget'] + */ + +$widget = elgg_extract('widget', $vars); + +// not using elgg_view_form() so that we can detect if the form is empty +$form_body = elgg_view('forms/widgets/save', $vars); +if (!$form_body) { + return true; +} + +$form = elgg_view('input/form', array( + 'action' => 'action/widgets/save', + 'body' => $form_body, + 'class' => 'elgg-form-widgets-save', +)); +?> + +<div class="elgg-widget-edit" id="widget-edit-<?php echo $widget->guid; ?>"> + <?php echo $form; ?> +</div> diff --git a/views/default/output/access.php b/views/default/output/access.php new file mode 100644 index 000000000..5c8d62c4d --- /dev/null +++ b/views/default/output/access.php @@ -0,0 +1,42 @@ +<?php +/** + * Displays HTML for entity access levels. + * Requires an entity because some special logic for containers is used. + * + * @uses int $vars['entity'] - The entity whose access ID to display. + */ + +//sort out the access level for display +if (isset($vars['entity']) && elgg_instanceof($vars['entity'])) { + $access_id = $vars['entity']->access_id; + $access_class = 'elgg-access'; + $access_id_string = get_readable_access_level($access_id); + $access_id_string = htmlspecialchars($access_id_string, ENT_QUOTES, 'UTF-8', false); + + // if within a group or shared access collection display group name and open/closed membership status + // @todo have a better way to do this instead of checking against subtype / class. + $container = $vars['entity']->getContainerEntity(); + + if ($container && $container instanceof ElggGroup) { + // we decided to show that the item is in a group, rather than its actual access level + // not required. Group ACLs are prepended with "Group: " when written. + //$access_id_string = elgg_echo('groups:group') . $container->name; + $membership = $container->membership; + + if ($membership == ACCESS_PUBLIC) { + $access_class .= ' elgg-access-group-open'; + } else { + $access_class .= ' elgg-access-group-closed'; + } + + // @todo this is plugin specific code in core. Should be removed. + } elseif ($container && $container->getSubtype() == 'shared_access') { + $access_class .= ' shared_collection'; + } elseif ($access_id == ACCESS_PRIVATE) { + $access_class .= ' elgg-access-private'; + } + + $help_text = elgg_echo('access:help'); + + echo "<span title=\"$help_text\" class=\"$access_class\">$access_id_string</span>"; +} diff --git a/views/default/output/calendar.php b/views/default/output/calendar.php new file mode 100644 index 000000000..fa0bd0c04 --- /dev/null +++ b/views/default/output/calendar.php @@ -0,0 +1,13 @@ +<?php +/** + * Elgg calendar output + * Displays a calendar output field + * + * @package Elgg + * @subpackage Core + * + * @uses $vars['value'] The current value, if any + * + */ +elgg_deprecated_notice('output/calendar was deprecated in favor of output/date', 1.8); +echo elgg_view('output/date', $vars);
\ No newline at end of file diff --git a/views/default/output/checkboxes.php b/views/default/output/checkboxes.php new file mode 100644 index 000000000..56d2588ac --- /dev/null +++ b/views/default/output/checkboxes.php @@ -0,0 +1,13 @@ +<?php +/** + * Elgg text output + * Displays some text that was input using a standard text field + * + * @package Elgg + * @subpackage Core + * + * @uses $vars['text'] The text to display + * + */ + +echo elgg_view('output/tags',$vars);
\ No newline at end of file diff --git a/views/default/output/confirmlink.php b/views/default/output/confirmlink.php new file mode 100644 index 000000000..532790a38 --- /dev/null +++ b/views/default/output/confirmlink.php @@ -0,0 +1,47 @@ +<?php +/** + * Elgg confirmation link + * A link that displays a confirmation dialog before it executes + * + * @package Elgg + * @subpackage Core + * + * @uses $vars['text'] The text of the link + * @uses $vars['href'] The address + * @uses $vars['title'] The title text (defaults to confirm text) + * @uses $vars['confirm'] The dialog text + * @uses $vars['encode_text'] Run $vars['text'] through htmlspecialchars() (false) + */ + +$vars['rel'] = elgg_extract('confirm', $vars, elgg_echo('question:areyousure')); +$vars['rel'] = addslashes($vars['rel']); +$encode = elgg_extract('encode_text', $vars, false); + +// always generate missing action tokens +$vars['href'] = elgg_add_action_tokens_to_url(elgg_normalize_url($vars['href']), true); + +$text = elgg_extract('text', $vars, ''); +if ($encode) { + $text = htmlspecialchars($text, ENT_QUOTES, 'UTF-8', false); +} + +if (!isset($vars['title']) && isset($vars['confirm'])) { + $vars['title'] = $vars['rel']; +} + +if (isset($vars['class'])) { + if (!is_array($vars['class'])) { + $vars['class'] = array($vars['class']); + } + $vars['class'][] = 'elgg-requires-confirmation'; +} else { + $vars['class'] = 'elgg-requires-confirmation'; +} + +unset($vars['encode_text']); +unset($vars['text']); +unset($vars['confirm']); +unset($vars['is_trusted']); + +$attributes = elgg_format_attributes($vars); +echo "<a $attributes>$text</a>"; diff --git a/views/default/output/date.php b/views/default/output/date.php new file mode 100644 index 000000000..1644a3480 --- /dev/null +++ b/views/default/output/date.php @@ -0,0 +1,17 @@ +<?php +/** + * Date + * Displays a properly formatted date + * + * @package Elgg + * @subpackage Core + * + * @uses $vars['value'] Date as text or a Unix timestamp in seconds + */ + +// convert timestamps to text for display +if (is_numeric($vars['value'])) { + $vars['value'] = gmdate('Y-m-d', $vars['value']); +} + +echo $vars['value']; diff --git a/views/default/output/dropdown.php b/views/default/output/dropdown.php new file mode 100644 index 000000000..8d68508ca --- /dev/null +++ b/views/default/output/dropdown.php @@ -0,0 +1,13 @@ +<?php +/** + * Elgg dropdown display + * Displays a value that was entered into the system via a dropdown + * + * @package Elgg + * @subpackage Core + * + * @uses $vars['text'] The text to display + * + */ + +echo htmlspecialchars($vars['value'], ENT_QUOTES, 'UTF-8', false); diff --git a/views/default/output/email.php b/views/default/output/email.php new file mode 100644 index 000000000..f5a8bc4b8 --- /dev/null +++ b/views/default/output/email.php @@ -0,0 +1,17 @@ +<?php +/** + * Elgg email output + * Displays an email address that was entered using an email input field + * + * @package Elgg + * @subpackage Core + * + * @uses $vars['value'] The email address to display + * + */ + +$encoded_value = htmlspecialchars($vars['value'], ENT_QUOTES, 'UTF-8'); + +if (!empty($vars['value'])) { + echo "<a href=\"mailto:$encoded_value\">$encoded_value</a>"; +}
\ No newline at end of file diff --git a/views/default/output/friendlytime.php b/views/default/output/friendlytime.php new file mode 100644 index 000000000..22f60d517 --- /dev/null +++ b/views/default/output/friendlytime.php @@ -0,0 +1,12 @@ +<?php +/** + * Friendly time + * Translates an epoch time into a human-readable time. + * + * @uses string $vars['time'] Unix-style epoch timestamp + */ + +$friendly_time = elgg_get_friendly_time($vars['time']); +$timestamp = htmlspecialchars(date(elgg_echo('friendlytime:date_format'), $vars['time'])); + +echo "<acronym title=\"$timestamp\">$friendly_time</acronym>"; diff --git a/views/default/output/friendlytitle.php b/views/default/output/friendlytitle.php new file mode 100644 index 000000000..fbc4f39de --- /dev/null +++ b/views/default/output/friendlytitle.php @@ -0,0 +1,19 @@ +<?php +/** + * Friendly title + * Makes a URL-friendly title. + * + * @uses string $vars['title'] Title to create from. + */ + + +$title = $vars['title']; + +//$title = iconv('UTF-8', 'ASCII//TRANSLIT', $title); +$title = preg_replace("/[^\w ]/","",$title); +$title = str_replace(" ","-",$title); +$title = str_replace("--","-",$title); +$title = trim($title); +$title = strtolower($title); + +echo $title; diff --git a/views/default/output/iframe.php b/views/default/output/iframe.php new file mode 100644 index 000000000..7df9332f1 --- /dev/null +++ b/views/default/output/iframe.php @@ -0,0 +1,13 @@ +<?php +/** + * Display a page in an embedded window + * + * @package Elgg + * @subpackage Core + * + * @uses $vars['value'] Source of the page + * + */ +?> +<iframe src="<?php echo $vars['value']; ?>"> +</iframe>
\ No newline at end of file diff --git a/views/default/output/img.php b/views/default/output/img.php new file mode 100644 index 000000000..d3f596801 --- /dev/null +++ b/views/default/output/img.php @@ -0,0 +1,12 @@ +<?php +/** + * Elgg image view + * + * @uses string $vars['src'] The image src url. + */ + +$vars['src'] = elgg_normalize_url($vars['src']); +$vars['src'] = elgg_format_url($vars['src']); + +$attributes = elgg_format_attributes($vars); +echo "<img $attributes/>"; diff --git a/views/default/output/location.php b/views/default/output/location.php new file mode 100644 index 000000000..e1009f17d --- /dev/null +++ b/views/default/output/location.php @@ -0,0 +1,19 @@ +<?php +/** + * Display a location + * + * @uses $vars['entity'] The ElggEntity that has a location + * @uses $vars['value'] The location string if the entity is not passed + */ + +if (isset($vars['entity'])) { + $vars['value'] = $vars['entity']->location; + unset($vars['entity']); +} + +// Fixes #4566 we used to allow arrays of strings for location +if (is_array($vars['value'])) { + $vars['value'] = implode(', ', $vars['value']); +} + +echo elgg_view('output/tag', $vars); diff --git a/views/default/output/longtext.php b/views/default/output/longtext.php new file mode 100644 index 000000000..589100c4f --- /dev/null +++ b/views/default/output/longtext.php @@ -0,0 +1,38 @@ +<?php +/** + * Elgg display long text + * Displays a large amount of text, with new lines converted to line breaks + * + * @package Elgg + * @subpackage Core + * + * @uses $vars['value'] The text to display + * @uses $vars['parse_urls'] Whether to turn urls into links. Default is true. + * @uses $vars['class'] + */ + +$class = 'elgg-output'; +$additional_class = elgg_extract('class', $vars, ''); +if ($additional_class) { + $vars['class'] = "$class $additional_class"; +} else { + $vars['class'] = $class; +} + +$parse_urls = elgg_extract('parse_urls', $vars, true); +unset($vars['parse_urls']); + +$text = $vars['value']; +unset($vars['value']); + +if ($parse_urls) { + $text = parse_urls($text); +} + +$text = filter_tags($text); + +$text = elgg_autop($text); + +$attributes = elgg_format_attributes($vars); + +echo "<div $attributes>$text</div>"; diff --git a/views/default/output/pulldown.php b/views/default/output/pulldown.php new file mode 100644 index 000000000..7097a9a8d --- /dev/null +++ b/views/default/output/pulldown.php @@ -0,0 +1,14 @@ +<?php +/** + * Elgg pulldown display + * Displays a value that was entered into the system via a pulldown + * + * @package Elgg + * @subpackage Core + * + * @uses $vars['text'] The text to display + * + * @deprecated 1.8 Use output/dropdown + */ + +echo elgg_view('output/dropdown', $vars);
\ No newline at end of file diff --git a/views/default/output/radio.php b/views/default/output/radio.php new file mode 100644 index 000000000..0fae9977b --- /dev/null +++ b/views/default/output/radio.php @@ -0,0 +1,13 @@ +<?php +/** + * Elgg text output + * Displays some text that was input using a standard text field + * + * @package Elgg + * @subpackage Core + * + * @uses $vars['text'] The text to display + * + */ + +echo elgg_view('output/text', $vars);
\ No newline at end of file diff --git a/views/default/output/tag.php b/views/default/output/tag.php new file mode 100644 index 000000000..6bd9a72a7 --- /dev/null +++ b/views/default/output/tag.php @@ -0,0 +1,35 @@ +<?php +/** + * Elgg single tag output + * + * @uses $vars['value'] String + * @uses $vars['type'] The entity type, optional + * @uses $vars['subtype'] The entity subtype, optional + * + */ + +if (!empty($vars['type'])) { + $type = "&type=" . rawurlencode($vars['type']); +} else { + $type = ""; +} +if (!empty($vars['subtype'])) { + $subtype = "&subtype=" . rawurlencode($vars['subtype']); +} else { + $subtype = ""; +} +if (!empty($vars['object'])) { + $object = "&object=" . rawurlencode($vars['object']); +} else { + $object = ""; +} + +if (isset($vars['value'])) { + $url = elgg_get_site_url() . 'search?q=' . rawurlencode($vars['value']) . "&search_type=tags{$type}{$subtype}{$object}"; + $vars['value'] = htmlspecialchars($vars['value'], ENT_QUOTES, 'UTF-8', false); + echo elgg_view('output/url', array( + 'href' => $url, + 'text' => $vars['value'], + 'rel' => 'tag', + )); +} diff --git a/views/default/output/tagcloud.php b/views/default/output/tagcloud.php new file mode 100644 index 000000000..2fbf1cd0a --- /dev/null +++ b/views/default/output/tagcloud.php @@ -0,0 +1,66 @@ +<?php +/** + * Elgg tagcloud + * Displays a tagcloud + * + * @package Elgg + * @subpackage Core + * + * @uses $vars['tagcloud'] An array of stdClass objects with two elements: 'tag' (the text of the tag) and 'total' (the number of elements with this tag) + * @uses $vars['value'] Sames as tagcloud + * @uses $vars['type'] Entity type + * @uses $vars['subtype'] Entity subtype + */ + +if (!empty($vars['subtype'])) { + $subtype = "&entity_subtype=" . urlencode($vars['subtype']); +} else { + $subtype = ""; +} +if (!empty($vars['type'])) { + $type = "&entity_type=" . urlencode($vars['type']); +} else { + $type = ""; +} + +if (empty($vars['tagcloud']) && !empty($vars['value'])) { + $vars['tagcloud'] = $vars['value']; +} + +if (!empty($vars['tagcloud']) && is_array($vars['tagcloud'])) { + $counter = 0; + $max = 0; + + foreach ($vars['tagcloud'] as $tag) { + if ($tag->total > $max) { + $max = $tag->total; + } + } + + $cloud = ''; + foreach ($vars['tagcloud'] as $tag) { + $tag->tag = htmlspecialchars($tag->tag, ENT_QUOTES, 'UTF-8', false); + + if ($cloud != '') { + $cloud .= ', '; + } + // protecting against division by zero warnings + $size = round((log($tag->total) / log($max + .0001)) * 100) + 30; + if ($size < 100) { + $size = 100; + } + $url = "search?q=". urlencode($tag->tag) . "&search_type=tags$type$subtype"; + + $cloud .= elgg_view('output/url', array( + 'text' => $tag->tag, + 'href' => $url, + 'style' => "font-size: $size%;", + 'title' => "$tag->tag ($tag->total)", + 'rel' => 'tag' + )); + } + + $cloud .= elgg_view('tagcloud/extend'); + + echo "<div class=\"elgg-tagcloud\">$cloud</div>"; +} diff --git a/views/default/output/tags.php b/views/default/output/tags.php new file mode 100644 index 000000000..db096a3be --- /dev/null +++ b/views/default/output/tags.php @@ -0,0 +1,82 @@ +<?php +/** + * Elgg tags + * Tags can be a single string (for one tag) or an array of strings + * + * @uses $vars['value'] Array of tags or a string + * @uses $vars['type'] The entity type, optional + * @uses $vars['subtype'] The entity subtype, optional + * @uses $vars['entity'] Optional. Entity whose tags are being displayed (metadata ->tags) + * @uses $vars['list_class'] Optional. Additional classes to be passed to <ul> element + * @uses $vars['item_class'] Optional. Additional classes to be passed to <li> elements + * @uses $vars['icon_class'] Optional. Additional classes to be passed to tags icon image + */ + +if (isset($vars['entity'])) { + $vars['tags'] = $vars['entity']->tags; + unset($vars['entity']); +} + +if (!empty($vars['type'])) { + $type = "&type=" . rawurlencode($vars['type']); +} else { + $type = ""; +} +if (!empty($vars['subtype'])) { + $subtype = "&subtype=" . rawurlencode($vars['subtype']); +} else { + $subtype = ""; +} +if (!empty($vars['object'])) { + $object = "&object=" . rawurlencode($vars['object']); +} else { + $object = ""; +} + +if (empty($vars['tags']) && !empty($vars['value'])) { + $vars['tags'] = $vars['value']; +} + +if (empty($vars['tags']) && isset($vars['entity'])) { + $vars['tags'] = $vars['entity']->tags; +} + +if (!empty($vars['tags'])) { + if (!is_array($vars['tags'])) { + $vars['tags'] = array($vars['tags']); + } + + $list_class = "elgg-tags"; + if (isset($vars['list_class'])) { + $list_class = "$list_class {$vars['list_class']}"; + } + + $item_class = "elgg-tag"; + if (isset($vars['item_class'])) { + $item_class = "$item_class {$vars['item_class']}"; + } + + $icon_class = elgg_extract('icon_class', $vars); + $list_items = '<li>' . elgg_view_icon('tag', $icon_class) . '</li>'; + + foreach($vars['tags'] as $tag) { + $url = elgg_get_site_url() . 'search?q=' . rawurlencode($tag) . "&search_type=tags{$type}{$subtype}{$object}"; + if (is_string($tag)) { + $tag = htmlspecialchars($tag, ENT_QUOTES, 'UTF-8', false); + $list_items .= "<li class=\"$item_class\">"; + $list_items .= elgg_view('output/url', array('href' => $url, 'text' => $tag, 'rel' => 'tag')); + $list_items .= '</li>'; + } + } + + $list = <<<___HTML + <div class="clearfix"> + <ul class="$list_class"> + $list_items + </ul> + </div> +___HTML; + + echo $list; +} + diff --git a/views/default/output/text.php b/views/default/output/text.php new file mode 100644 index 000000000..5cbfc35b0 --- /dev/null +++ b/views/default/output/text.php @@ -0,0 +1,12 @@ +<?php +/** + * Elgg text output + * Displays some text that was input using a standard text field + * + * @package Elgg + * @subpackage Core + * + * @uses $vars['value'] The text to display + */ + +echo htmlspecialchars($vars['value'], ENT_QUOTES, 'UTF-8', false);
\ No newline at end of file diff --git a/views/default/output/url.php b/views/default/output/url.php new file mode 100644 index 000000000..81b02087d --- /dev/null +++ b/views/default/output/url.php @@ -0,0 +1,56 @@ +<?php +/** + * Elgg URL display + * Displays a URL as a link + * + * @package Elgg + * @subpackage Core + * + * @uses string $vars['text'] The string between the <a></a> tags. + * @uses string $vars['href'] The unencoded url string + * @uses bool $vars['encode_text'] Run $vars['text'] through htmlspecialchars() (false) + * @uses bool $vars['is_action'] Is this a link to an action (false) + * @uses bool $vars['is_trusted'] Is this link trusted (false) + */ + +$url = elgg_extract('href', $vars, null); +if (!$url and isset($vars['value'])) { + $url = trim($vars['value']); + unset($vars['value']); +} + +if (isset($vars['text'])) { + if (elgg_extract('encode_text', $vars, false)) { + $text = htmlspecialchars($vars['text'], ENT_QUOTES, 'UTF-8', false); + } else { + $text = $vars['text']; + } + unset($vars['text']); +} else { + $text = htmlspecialchars($url, ENT_QUOTES, 'UTF-8', false); +} + +unset($vars['encode_text']); + +if ($url) { + $url = elgg_normalize_url($url); + + if (elgg_extract('is_action', $vars, false)) { + $url = elgg_add_action_tokens_to_url($url, false); + } + + if (!elgg_extract('is_trusted', $vars, false)) { + if (!isset($vars['rel'])) { + $vars['rel'] = 'nofollow'; + $url = strip_tags($url); + } + } + + $vars['href'] = $url; +} + +unset($vars['is_action']); +unset($vars['is_trusted']); + +$attributes = elgg_format_attributes($vars); +echo "<a $attributes>$text</a>"; diff --git a/views/default/page/admin.php b/views/default/page/admin.php new file mode 100644 index 000000000..7045edd91 --- /dev/null +++ b/views/default/page/admin.php @@ -0,0 +1,66 @@ +<?php +/** + * Elgg pageshell for the admin area + * + * @package Elgg + * @subpackage Core + * + * @uses $vars['title'] The page title + * @uses $vars['body'] The main content of the page + * @uses $vars['sysmessages'] A 2d array of various message registers, passed from system_messages() + */ + +$notices_html = ''; +$notices = elgg_get_admin_notices(); +if ($notices) { + foreach ($notices as $notice) { + $notices_html .= elgg_view_entity($notice); + } + + $notices_html = "<div class=\"elgg-admin-notices\">$notices_html</div>"; +} + +// render content before head so that JavaScript and CSS can be loaded. See #4032 +$messages = elgg_view('page/elements/messages', array('object' => $vars['sysmessages'])); +$header = elgg_view('admin/header', $vars); +$body = $vars['body']; +$footer = elgg_view('admin/footer', $vars); + + +// Set the content type +header("Content-type: text/html; charset=UTF-8"); + +?> +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> +<head> +<?php echo elgg_view('page/elements/head', $vars); ?> +</head> +<body> + <div class="elgg-page elgg-page-admin"> + <div class="elgg-inner"> + <div class="elgg-page-header"> + <div class="elgg-inner clearfix"> + <?php echo $header; ?> + </div> + </div> + <div class="elgg-page-messages"> + <?php echo $messages; ?> + <?php echo $notices_html; ?> + </div> + <div class="elgg-page-body"> + <div class="elgg-inner"> + <?php echo $body; ?> + </div> + </div> + <div class="elgg-page-footer"> + <div class="elgg-inner"> + <?php echo $footer; ?> + </div> + </div> + </div> + </div> + <?php echo elgg_view('page/elements/foot'); ?> +</body> + +</html>
\ No newline at end of file diff --git a/views/default/page/components/list.php b/views/default/page/components/list.php index 5ddf82b63..28ed58ddf 100644 --- a/views/default/page/components/list.php +++ b/views/default/page/components/list.php @@ -49,21 +49,21 @@ if ($pagination && $count) { } if (is_array($items) && count($items) > 0) { - $html .= "<ul class=\"$list_class\">"; - foreach ($items as $item) { - if($item->action_type != 'comment') { - if (elgg_instanceof($item)) { - $id = "elgg-{$item->getType()}-{$item->getGUID()}"; - } else { - $id = "item-{$item->getType()}-{$item->id}"; - } - $html .= "<li id=\"$id\" class=\"$item_class\">"; - $html .= elgg_view_list_item($item, $vars); - $html .= '</li>'; - } - } - $html .= '</ul>'; + $html .= "<ul class=\"$list_class\">"; + foreach ($items as $item) { + $li = elgg_view_list_item($item, $vars); + if ($li) { + if (elgg_instanceof($item)) { + $id = "elgg-{$item->getType()}-{$item->getGUID()}"; + } else { + $id = "item-{$item->getType()}-{$item->id}"; + } + $html .= "<li id=\"$id\" class=\"$item_class\">$li</li>"; + } + } + $html .= '</ul>'; } + if ($position == 'before' || $position == 'both') { $html = $nav . $html; } diff --git a/views/default/page/default.php b/views/default/page/default.php index 1cc7a32a1..567494d0c 100644 --- a/views/default/page/default.php +++ b/views/default/page/default.php @@ -6,68 +6,71 @@ * @package Elgg * @subpackage Core * - * @uses $vars['title'] The page title - * @uses $vars['body'] The main content of the page + * @uses $vars['title'] The page title + * @uses $vars['body'] The main content of the page * @uses $vars['sysmessages'] A 2d array of various message registers, passed from system_messages() */ // backward compatability support for plugins that are not using the new approach // of routing through admin. See reportedcontent plugin for a simple example. if (elgg_get_context() == 'admin') { - elgg_deprecated_notice("admin plugins should route through 'admin'.", 1.8); + if (get_input('handler') != 'admin') { + elgg_deprecated_notice("admin plugins should route through 'admin'.", 1.8); + } elgg_admin_add_plugin_settings_menu(); elgg_unregister_css('elgg'); - echo elgg_view('page/shells/admin', $vars); + echo elgg_view('page/admin', $vars); return true; } +// render content before head so that JavaScript and CSS can be loaded. See #4032 +$topbar = elgg_view('page/elements/topbar', $vars); +$messages = elgg_view('page/elements/messages', array('object' => $vars['sysmessages'])); +$header = elgg_view('page/elements/header', $vars); +$body = elgg_view('page/elements/body', $vars); +$footer = elgg_view('page/elements/footer', $vars); + // Set the content type header("Content-type: text/html; charset=UTF-8"); -?> -<!DOCTYPE html> - <html xml:lang="en" lang="en"> - <head> - <?php echo elgg_view('page/elements/head', $vars); ?> - </head> - <?php flush() ?> - <body> - <div class="elgg-page elgg-page-default"> - <div class="elgg-page-messages"> - <?php echo elgg_view('page/elements/messages', array('object' => $vars['sysmessages'])); ?> - </div> - <?php if (elgg_is_logged_in()): ?> - <div class="elgg-page-topbar"> - <div class="elgg-inner"> - <?php echo elgg_view('page/elements/topbar', $vars); ?> - </div> - </div> - <?php else: ?> - <div class="elgg-page-header"> - <div class="elgg-inner"> - <?php echo elgg_view('page/elements/header', $vars); ?> - </div> - </div> - <?php endif; ?> - <div class="elgg-page-body"> - <div class="elgg-inner"> - <?php echo elgg_view('page/elements/body', $vars); ?> - </div> - </div> - <div class="elgg-page-footer"> - <div class="elgg-inner"> - <?php echo elgg_view('page/elements/footer', $vars); ?> - </div> - </div> - </div> - <?php -echo elgg_view('footer/analytics'); -$js = elgg_get_loaded_js('footer'); -foreach ($js as $script) { ?> -<script type="text/javascript" src="<?php echo $script; ?>"></script> -<?php -} +$lang = get_current_language(); ?> - </body> +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="<?php echo $lang; ?>" lang="<?php echo $lang; ?>"> +<head> +<?php echo elgg_view('page/elements/head', $vars); ?> +</head> +<body> +<div class="elgg-page elgg-page-default"> + <div class="elgg-page-messages"> + <?php echo $messages; ?> + </div> + + <?php if (elgg_is_logged_in()){ ?> + <div class="elgg-page-topbar"> + <div class="elgg-inner"> + <?php echo $topbar; ?> + </div> + </div> + <?php } ?> + + <div class="elgg-page-header"> + <div class="elgg-inner"> + <?php echo $header; ?> + </div> + </div> + <div class="elgg-page-body"> + <div class="elgg-inner"> + <?php echo $body; ?> + </div> + </div> + <div class="elgg-page-footer"> + <div class="elgg-inner"> + <?php echo $footer; ?> + </div> + </div> +</div> +<?php echo elgg_view('page/elements/foot'); ?> +</body> </html>
\ No newline at end of file diff --git a/views/default/page/elements/body.php b/views/default/page/elements/body.php new file mode 100644 index 000000000..14c3978d3 --- /dev/null +++ b/views/default/page/elements/body.php @@ -0,0 +1,8 @@ +<?php +/** + * Elgg page body wrapper + * + * @uses $vars['body'] The HTML of the page body + */ + +echo elgg_extract('body', $vars, '');
\ No newline at end of file diff --git a/views/default/page/elements/comments.php b/views/default/page/elements/comments.php new file mode 100644 index 000000000..97cb9574e --- /dev/null +++ b/views/default/page/elements/comments.php @@ -0,0 +1,42 @@ +<?php +/** + * List comments with optional add form + * + * @uses $vars['entity'] ElggEntity + * @uses $vars['show_add_form'] Display add form or not + * @uses $vars['id'] Optional id for the div + * @uses $vars['class'] Optional additional class for the div + */ + +$show_add_form = elgg_extract('show_add_form', $vars, true); + +$id = ''; +if (isset($vars['id'])) { + $id = "id=\"{$vars['id']}\""; +} + +$class = 'elgg-comments'; +if (isset($vars['class'])) { + $class = "$class {$vars['class']}"; +} + +// work around for deprecation code in elgg_view() +unset($vars['internalid']); + +echo "<div $id class=\"$class\">"; + +$options = array( + 'guid' => $vars['entity']->getGUID(), + 'annotation_name' => 'generic_comment' +); +$html = elgg_list_annotations($options); +if ($html) { + echo '<h3>' . elgg_echo('comments') . '</h3>'; + echo $html; +} + +if ($show_add_form) { + echo elgg_view_form('comments/add', array(), $vars); +} + +echo '</div>'; diff --git a/views/default/page/elements/comments_block.php b/views/default/page/elements/comments_block.php new file mode 100644 index 000000000..d0f8ab809 --- /dev/null +++ b/views/default/page/elements/comments_block.php @@ -0,0 +1,45 @@ +<?php +/** + * Display the latest related comments + * + * Generally used in a sidebar. Does not work with groups currently. + * + * @uses $vars['subtypes'] Object subtype string or array of subtypes + * @uses $vars['owner_guid'] The owner of the content being commented on + * @uses $vars['limit'] The number of comments to display + */ + +$owner_guid = elgg_extract('owner_guid', $vars, ELGG_ENTITIES_ANY_VALUE); +if (!$owner_guid) { + $owner_guid = ELGG_ENTITIES_ANY_VALUE; +} + +$owner_entity = get_entity($owner_guid); +if ($owner_entity && elgg_instanceof($owner_entity, 'group')) { + // not supporting groups so return + return true; +} + +$options = array( + 'annotation_name' => 'generic_comment', + 'owner_guid' => $owner_guid, + 'reverse_order_by' => true, + 'limit' => elgg_extract('limit', $vars, 4), + 'type' => 'object', + 'subtypes' => elgg_extract('subtypes', $vars, ELGG_ENTITIES_ANY_VALUE), +); + +$title = elgg_echo('generic_comments:latest'); +$comments = elgg_get_annotations($options); +if ($comments) { + $body = elgg_view('page/components/list', array( + 'items' => $comments, + 'pagination' => false, + 'list_class' => 'elgg-latest-comments', + 'full_view' => false, + )); +} else { + $body = '<p>' . elgg_echo('generic_comment:none') . '</p>'; +} + +echo elgg_view_module('aside', $title, $body); diff --git a/views/default/page/elements/composer.php b/views/default/page/elements/composer.php deleted file mode 100644 index 3c92b4e7b..000000000 --- a/views/default/page/elements/composer.php +++ /dev/null @@ -1,7 +0,0 @@ -<div class="elgg-composer"><h4><?php echo elgg_echo('composer:prompt'); ?> :</h4><?php - echo elgg_view_menu('composer', array( - 'entity' => elgg_get_page_owner_entity(), - 'class' => 'elgg-menu-hz', - 'sort_by' => 'priority', - )); - ?></div><script>$('.elgg-composer').tabs({spinner: '',panelTemplate: '<div><div class="elgg-ajax-loader"></div></div>'});</script>
\ No newline at end of file diff --git a/views/default/page/elements/foot.php b/views/default/page/elements/foot.php new file mode 100644 index 000000000..a56b373b4 --- /dev/null +++ b/views/default/page/elements/foot.php @@ -0,0 +1,11 @@ +<?php + +echo elgg_view('footer/analytics'); + +$js = elgg_get_loaded_js('footer'); +foreach ($js as $script) { ?> + <script type="text/javascript" src="<?php echo $script; ?>"></script> +<?php +} + +?>
\ No newline at end of file diff --git a/views/default/page/elements/footer.php b/views/default/page/elements/footer.php index 5469e0f36..ded2cea9a 100644 --- a/views/default/page/elements/footer.php +++ b/views/default/page/elements/footer.php @@ -14,22 +14,8 @@ $powered_url = elgg_get_site_url() . "_graphics/powered_by_elgg_badge_drk_bckgnd echo '<div class="mts clearfloat float-alt">'; echo elgg_view('output/url', array( - 'href' => 'http://blog.wisb.me', - 'text' => elgg_echo('WISB:footer_wisblog'), - 'class' => '', - 'is_trusted' => true, -)); -echo (' · '); -echo elgg_view('output/url', array( - 'href' => 'http://developers.wisb.me', - 'text' => elgg_echo('WISB:footer_developers'), - 'class' => '', - 'is_trusted' => true, -)); -echo (' · '); -echo elgg_view('output/url', array( - 'href' => 'http://www.wisb.me', - 'text' => elgg_echo('WISB:footer_wisb'), + 'href' => 'http://elgg.org', + 'text' => "<img src=\"$powered_url\" alt=\"Powered by Elgg\" width=\"106\" height=\"15\" />", 'class' => '', 'is_trusted' => true, )); diff --git a/views/default/page/elements/head.php b/views/default/page/elements/head.php index 859326bbe..d4a95b4d0 100644 --- a/views/default/page/elements/head.php +++ b/views/default/page/elements/head.php @@ -9,12 +9,12 @@ if (empty($vars['title'])) { $title = elgg_get_config('sitename'); } else { - $title = elgg_get_config('sitename') . " · " . $vars['title']; + $title = elgg_get_config('sitename') . ": " . $vars['title']; } global $autofeed; if (isset($autofeed) && $autofeed == true) { - $url = full_url(); + $url = current_page_url(); if (substr_count($url,'?')) { $url .= "&view=rss"; } else { @@ -36,28 +36,41 @@ $css = elgg_get_loaded_css(); $version = get_version(); $release = get_version(true); ?> -<meta http-equiv="X-UA-Compatible" content="IE=edge" /> -<title><?php echo $title; ?></title> -<?php echo elgg_view('page/elements/shortcut_icon', $vars); ?> + <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> + <meta name="ElggRelease" content="<?php echo $release; ?>" /> + <meta name="ElggVersion" content="<?php echo $version; ?>" /> + <title><?php echo $title; ?></title> + <?php echo elgg_view('page/elements/shortcut_icon', $vars); ?> + <?php foreach ($css as $link) { ?> <link rel="stylesheet" href="<?php echo $link; ?>" type="text/css" /> <?php } ?> + <?php $ie_url = elgg_get_simplecache_url('css', 'ie'); $ie7_url = elgg_get_simplecache_url('css', 'ie7'); + $ie6_url = elgg_get_simplecache_url('css', 'ie6'); ?> -<!--[if gt IE 7]> - <link rel="stylesheet" type="text/css" href="<?php echo $ie_url; ?>" /> -<![endif]--> -<!--[if IE 7]> - <link rel="stylesheet" type="text/css" href="<?php echo $ie7_url; ?>" /> -<![endif]--> + <!--[if gt IE 7]> + <link rel="stylesheet" type="text/css" href="<?php echo $ie_url; ?>" /> + <![endif]--> + <!--[if IE 7]> + <link rel="stylesheet" type="text/css" href="<?php echo $ie7_url; ?>" /> + <![endif]--> + <!--[if IE 6]> + <link rel="stylesheet" type="text/css" href="<?php echo $ie6_url; ?>" /> + <![endif]--> + <?php foreach ($js as $script) { ?> <script type="text/javascript" src="<?php echo $script; ?>"></script> <?php } ?> + <script type="text/javascript"> -<?php echo elgg_view('js/initialize_elgg'); ?> +// <![CDATA[ + <?php echo elgg_view('js/initialize_elgg'); ?> +// ]]> </script> + <?php echo $feedref; @@ -65,4 +78,4 @@ $metatags = elgg_view('metatags', $vars); if ($metatags) { elgg_deprecated_notice("The metatags view has been deprecated. Extend page/elements/head instead", 1.8); echo $metatags; -}
\ No newline at end of file +} diff --git a/views/default/page/elements/header.php b/views/default/page/elements/header.php index 45fb91da8..1a1f5d211 100644 --- a/views/default/page/elements/header.php +++ b/views/default/page/elements/header.php @@ -1,12 +1,14 @@ <?php +/** + * Elgg page header + * In the default theme, the header lives between the topbar and main content area. + */ -$site = elgg_get_site_entity(); +// link back to main site. +echo elgg_view('page/elements/header_logo', $vars); -echo "<h1 id=\"facebook-header-logo\">"; -echo elgg_view('output/url', array( - 'href' => '/', - 'text' => $site->name, -)); -echo "</h1>"; +// drop-down login +echo elgg_view('core/account/login_dropdown'); -echo elgg_view_form('login', array('id' => 'facebook-header-login'));
\ No newline at end of file +// insert site-wide navigation +echo elgg_view_menu('site');
\ No newline at end of file diff --git a/views/default/page/elements/header_logo.php b/views/default/page/elements/header_logo.php new file mode 100644 index 000000000..7fe721c40 --- /dev/null +++ b/views/default/page/elements/header_logo.php @@ -0,0 +1,15 @@ +<?php +/** + * Elgg header logo + */ + +$site = elgg_get_site_entity(); +$site_name = $site->name; +$site_url = elgg_get_site_url(); +?> + +<h1> + <a class="elgg-heading-site" href="<?php echo $site_url; ?>"> + <?php echo $site_name; ?> + </a> +</h1> diff --git a/views/default/page/elements/messages.php b/views/default/page/elements/messages.php new file mode 100644 index 000000000..edd40d71e --- /dev/null +++ b/views/default/page/elements/messages.php @@ -0,0 +1,27 @@ +<?php +/** + * Elgg global system message list + * Lists all system messages + * + * @package Elgg + * @subpackage Core + * + * @uses $vars['object'] The array of message registers + */ + +echo '<ul class="elgg-system-messages">'; + +// hidden li so we validate +echo '<li class="hidden"></li>'; + +if (isset($vars['object']) && is_array($vars['object']) && sizeof($vars['object']) > 0) { + foreach ($vars['object'] as $type => $list ) { + foreach ($list as $message) { + echo "<li class=\"elgg-message elgg-state-$type\">"; + echo elgg_autop($message); + echo '</li>'; + } + } +} + +echo '</ul>'; diff --git a/views/default/page/elements/owner_block.php b/views/default/page/elements/owner_block.php index cee13ebff..fc7f0f6d2 100644 --- a/views/default/page/elements/owner_block.php +++ b/views/default/page/elements/owner_block.php @@ -12,11 +12,12 @@ elgg_push_context('owner_block'); // groups and other users get owner block $owner = elgg_get_page_owner_entity(); -if ($owner instanceof ElggGroup || $owner instanceof ElggUser) { +if ($owner instanceof ElggGroup || + ($owner instanceof ElggUser && $owner->getGUID() != elgg_get_logged_in_user_guid())) { - $header = elgg_view_entity_icon($owner, 'large'); + $header = elgg_view_entity($owner, array('full_view' => false)); - $body = elgg_view_menu('owner_block', array('entity' => $owner, 'sort_by' => 'priority')); + $body = elgg_view_menu('owner_block', array('entity' => $owner)); $body .= elgg_view('page/elements/owner_block/extend', $vars); diff --git a/views/default/page/elements/shortcut_icon.php b/views/default/page/elements/shortcut_icon.php index 74ab4f629..12fe9c1f8 100644 --- a/views/default/page/elements/shortcut_icon.php +++ b/views/default/page/elements/shortcut_icon.php @@ -3,4 +3,4 @@ * Displays the default shortcut icon */ ?> -<link rel="SHORTCUT ICON" href="<?php echo elgg_get_site_url(); ?>mod/cool_theme/_graphics/favicon.ico" />
\ No newline at end of file +<link rel="SHORTCUT ICON" href="<?php echo elgg_get_site_url(); ?>_graphics/favicon.ico" />
\ No newline at end of file diff --git a/views/default/page/elements/sidebar.php b/views/default/page/elements/sidebar.php index 3bd8abb8e..fe6bb450e 100644 --- a/views/default/page/elements/sidebar.php +++ b/views/default/page/elements/sidebar.php @@ -5,9 +5,14 @@ * @uses $vars['sidebar'] Optional content that is displayed at the bottom of sidebar */ +echo elgg_view_menu('extras', array( + 'sort_by' => 'priority', + 'class' => 'elgg-menu-hz', +)); + echo elgg_view('page/elements/owner_block', $vars); -echo elgg_view_menu('page', array('sort_by' => 'priority')); +echo elgg_view_menu('page', array('sort_by' => 'name')); // optional 'sidebar' parameter if (isset($vars['sidebar'])) { @@ -24,8 +29,4 @@ if (isset($vars['area2'])) { // optional third parameter of elgg_view_layout if (isset($vars['area3'])) { echo $vars['area3']; -} - -echo elgg_view_menu('extras', array( - 'sort_by' => 'priority', -));
\ No newline at end of file +}
\ No newline at end of file diff --git a/views/default/page/elements/sidebar_alt.php b/views/default/page/elements/sidebar_alt.php index 5d1f54947..6d91ca58b 100644 --- a/views/default/page/elements/sidebar_alt.php +++ b/views/default/page/elements/sidebar_alt.php @@ -1,12 +1,12 @@ -<?php +<?php +/** + * Elgg secondary sidebar contents + * + * You can override, extend, or pass content to it + * + * @uses $vars['sidebar_alt] HTML content for the alternate sidebar + */ +$sidebar = elgg_extract('sidebar_alt', $vars, ''); -$homepage = "/dashboard"; -$currentpage = $_SERVER['REQUEST_URI']; -if($homepage==$currentpage) { -echo "<strong><a href=\"../thanks\">Thanks</a></strong><br /> -edit the sidebar for the dashboard in /mod/cool_theme/views/default/page/elements/sidebar_alt.php<br /> -and enjoy"; -} - -?>
\ No newline at end of file +echo $sidebar; diff --git a/views/default/page/elements/tagcloud_block.php b/views/default/page/elements/tagcloud_block.php new file mode 100644 index 000000000..258951c41 --- /dev/null +++ b/views/default/page/elements/tagcloud_block.php @@ -0,0 +1,58 @@ +<?php +/** + * Display content-based tags + * + * Generally used in a sidebar. Does not work with groups currently. + * + * @uses $vars['subtypes'] Object subtype string or array of subtypes + * @uses $vars['owner_guid'] The owner of the content being tagged + * @uses $vars['limit'] The maxinum number of tags to display + */ + +$owner_guid = elgg_extract('owner_guid', $vars, ELGG_ENTITIES_ANY_VALUE); +if (!$owner_guid) { + $owner_guid = ELGG_ENTITIES_ANY_VALUE; +} + +$owner_entity = get_entity($owner_guid); +if ($owner_entity && elgg_instanceof($owner_entity, 'group')) { + // not supporting groups so return + return true; +} + +$options = array( + 'type' => 'object', + 'subtype' => elgg_extract('subtypes', $vars, ELGG_ENTITIES_ANY_VALUE), + 'owner_guid' => $owner_guid, + 'threshold' => 0, + 'limit' => elgg_extract('limit', $vars, 50), + 'tag_name' => 'tags', +); + +$title = elgg_echo('tagcloud'); +if (is_array($options['subtype']) && count($options['subtype']) > 1) { + // we cannot provide links to tagged objects with multiple types + $tag_data = elgg_get_tags($options); + $cloud = elgg_view("output/tagcloud", array( + 'value' => $tag_data, + 'type' => $type, + )); +} else { + $cloud = elgg_view_tagcloud($options); +} +if (!$cloud) { + return true; +} + +// add a link to all site tags +$cloud .= '<p class="small">'; +$cloud .= elgg_view_icon('tag'); +$cloud .= elgg_view('output/url', array( + 'href' => 'tags', + 'text' => elgg_echo('tagcloud:allsitetags'), + 'is_trusted' => true, +)); +$cloud .= '</p>'; + + +echo elgg_view_module('aside', $title, $cloud); diff --git a/views/default/page/elements/title.php b/views/default/page/elements/title.php index 77260212e..19f47f4e6 100644 --- a/views/default/page/elements/title.php +++ b/views/default/page/elements/title.php @@ -6,16 +6,9 @@ * @uses $vars['class'] Optional class for heading */ -if (isset($vars['header'])) { - echo $vars['header']; - return true; -} - -$class = ''; +$class= ''; if (isset($vars['class'])) { $class = " class=\"{$vars['class']}\""; } -echo elgg_view_menu('title', array('sort_by' => 'priority')); -echo "<h1{$class}>{$vars['title']}</h1>"; -echo elgg_view('navigation/breadcrumbs');
\ No newline at end of file +echo "<h2{$class}>{$vars['title']}</h2>"; diff --git a/views/default/page/elements/topbar.php b/views/default/page/elements/topbar.php new file mode 100644 index 000000000..e4c6c86bb --- /dev/null +++ b/views/default/page/elements/topbar.php @@ -0,0 +1,16 @@ +<?php +/** + * Elgg topbar + * The standard elgg top toolbar + */ + +// Elgg logo +echo elgg_view_menu('topbar', array('sort_by' => 'priority', array('elgg-menu-hz'))); + +// elgg tools menu +// need to echo this empty view for backward compatibility. +$content = elgg_view("navigation/topbar_tools"); +if ($content) { + elgg_deprecated_notice('navigation/topbar_tools was deprecated. Extend the topbar menus or the page/elements/topbar view directly', 1.8); + echo $content; +} diff --git a/views/default/page/elements/wrapper.php b/views/default/page/elements/wrapper.php new file mode 100644 index 000000000..61828832d --- /dev/null +++ b/views/default/page/elements/wrapper.php @@ -0,0 +1,22 @@ +<?php +/** + * Deprecated content wrapper view from Elgg 1.5 through 1.7 + * + * @uses $vars['body'] The content to display inside content wrapper + * @uses $vars['subclass'] Additional css class + */ + +elgg_deprecated_notice("The 'page_elements/contentwrapper' has been deprecated", 1.8); +?> + +<div class="contentWrapper<?php + + if (isset($vars['subclass'])) { + echo ' ' . $vars['subclass']; + } + +?>"> +<?php + echo $vars['body']; +?> +</div> diff --git a/views/default/page/error.php b/views/default/page/error.php new file mode 100644 index 000000000..b7ba3ae9b --- /dev/null +++ b/views/default/page/error.php @@ -0,0 +1,14 @@ +<?php +/** + * Page shell for errors + * + * This is for errors that are not unhandled exceptions. Those are handled + * through the failsafe viewtype to guarantee that no further exceptions occur. + * An example error would be 404 (page not found). + * + * @uses $vars['title'] The page title + * @uses $vars['body'] The main content of the page + * @uses $vars['sysmessages'] A 2d array of various message registers, passed from system_messages() + */ + +echo elgg_view('page/default', $vars); diff --git a/views/default/page/layouts/admin.php b/views/default/page/layouts/admin.php new file mode 100644 index 000000000..8dbdc27e6 --- /dev/null +++ b/views/default/page/layouts/admin.php @@ -0,0 +1,40 @@ +<?php +/** + * Elgg Admin Area Canvas + * + * @package Elgg + * @subpackage Core + * + * @uses $vars['content'] Content string + * @uses $vars['sidebar'] Optional sidebar content + * @uses $vars['title'] Title string + */ + +?> + +<div class="elgg-layout elgg-layout-one-sidebar"> + <div class="elgg-sidebar clearfix"> + <?php + echo elgg_view('admin/sidebar', $vars); + ?> + </div> + <div class="elgg-main elgg-body"> + <div class="elgg-head"> + <?php + echo elgg_view_menu('title', array( + 'sort_by' => 'priority', + 'class' => 'elgg-menu-hz', + )); + + if (isset($vars['title'])) { + echo elgg_view_title($vars['title']); + } + ?> + </div> + <?php + if (isset($vars['content'])) { + echo $vars['content']; + } + ?> + </div> +</div>
\ No newline at end of file diff --git a/views/default/page/layouts/content.php b/views/default/page/layouts/content.php index ea27ab7f2..c406c9faf 100644 --- a/views/default/page/layouts/content.php +++ b/views/default/page/layouts/content.php @@ -10,13 +10,21 @@ * @uses $vars['filter'] HTML of the content area filter (override) * @uses $vars['title'] Title text (override) * @uses $vars['context'] Page context (override) - * @uses $vars['buttons'] Content header buttons (override) * @uses $vars['filter_context'] Filter context: everyone, friends, mine * @uses $vars['class'] Additional class to apply to layout */ -// navigation defaults to breadcrumbs -$nav = elgg_extract('nav', $vars, elgg_view('navigation/breadcrumbs')); +// give plugins an opportunity to add to content sidebars +$sidebar_content = elgg_extract('sidebar', $vars, ''); +$params = $vars; +$params['content'] = $sidebar_content; +$sidebar = elgg_view('page/layouts/content/sidebar', $params); + +// allow page handlers to override the default header +if (isset($vars['header'])) { + $vars['header_override'] = $vars['header']; +} +$header = elgg_view('page/layouts/content/header', $vars); // allow page handlers to override the default filter if (isset($vars['filter'])) { @@ -33,13 +41,13 @@ $params = $vars; $params['content'] = $footer_content; $footer = elgg_view('page/layouts/content/footer', $params); +$body = $header . $filter . $content . $footer; + $params = array( - 'title' => $vars['title'], - 'content' => $filter . $content . $footer, - 'sidebar' => elgg_extract('sidebar_alt', $vars, ''), - 'sidebar_alt' => elgg_extract('sidebar', $vars, ''), + 'content' => $body, + 'sidebar' => $sidebar, ); if (isset($vars['class'])) { $params['class'] = $vars['class']; } -echo elgg_view_layout('two_sidebar', $params);
\ No newline at end of file +echo elgg_view_layout('one_sidebar', $params); diff --git a/views/default/page/layouts/content/filter.php b/views/default/page/layouts/content/filter.php new file mode 100644 index 000000000..701c6418a --- /dev/null +++ b/views/default/page/layouts/content/filter.php @@ -0,0 +1,52 @@ +<?php +/** + * Main content filter + * + * Select between user, friends, and all content + * + * @uses $vars['filter_context'] Filter context: all, friends, mine + * @uses $vars['filter_override'] HTML for overriding the default filter (override) + * @uses $vars['context'] Page context (override) + */ + +if (isset($vars['filter_override'])) { + echo $vars['filter_override']; + return true; +} + +$context = elgg_extract('context', $vars, elgg_get_context()); + +if (elgg_is_logged_in() && $context) { + $username = elgg_get_logged_in_user_entity()->username; + $filter_context = elgg_extract('filter_context', $vars, 'all'); + + // generate a list of default tabs + $tabs = array( + 'all' => array( + 'text' => elgg_echo('all'), + 'href' => (isset($vars['all_link'])) ? $vars['all_link'] : "$context/all", + 'selected' => ($filter_context == 'all'), + 'priority' => 200, + ), + 'mine' => array( + 'text' => elgg_echo('mine'), + 'href' => (isset($vars['mine_link'])) ? $vars['mine_link'] : "$context/owner/$username", + 'selected' => ($filter_context == 'mine'), + 'priority' => 300, + ), + 'friend' => array( + 'text' => elgg_echo('friends'), + 'href' => (isset($vars['friend_link'])) ? $vars['friend_link'] : "$context/friends/$username", + 'selected' => ($filter_context == 'friends'), + 'priority' => 400, + ), + ); + + foreach ($tabs as $name => $tab) { + $tab['name'] = $name; + + elgg_register_menu_item('filter', $tab); + } + + echo elgg_view_menu('filter', array('sort_by' => 'priority', 'class' => 'elgg-menu-hz')); +} diff --git a/views/default/page/layouts/content/footer.php b/views/default/page/layouts/content/footer.php new file mode 100644 index 000000000..66f5d3ff8 --- /dev/null +++ b/views/default/page/layouts/content/footer.php @@ -0,0 +1,8 @@ +<?php +/** + * Main content footer + * + * @uses $vars['content'] The content for the footer + */ + +echo $vars['content']; diff --git a/views/default/page/layouts/content/header.php b/views/default/page/layouts/content/header.php new file mode 100644 index 000000000..1e66e52db --- /dev/null +++ b/views/default/page/layouts/content/header.php @@ -0,0 +1,43 @@ +<?php +/** + * Main content header + * + * Title and title menu + * + * @uses $vars['header_override'] HTML for overriding the default header (override) + * @uses $vars['title'] Title text (override) + * @uses $vars['context'] Page context (override) + */ + +if (isset($vars['buttons'])) { + // it was a bad idea to implement buttons with a pass through + elgg_deprecated_notice("Use elgg_register_menu_item() to register for the title menu", 1.0); +} + +if (isset($vars['header_override'])) { + echo $vars['header_override']; + return true; +} + +$context = elgg_extract('context', $vars, elgg_get_context()); + +$title = elgg_extract('title', $vars, ''); +if (!$title) { + $title = elgg_echo($context); +} +$title = elgg_view_title($title, array('class' => 'elgg-heading-main')); + +if (isset($vars['buttons']) && $vars['buttons']) { + $buttons = $vars['buttons']; +} else { + $buttons = elgg_view_menu('title', array( + 'sort_by' => 'priority', + 'class' => 'elgg-menu-hz', + )); +} + +echo <<<HTML +<div class="elgg-head clearfix"> + $title$buttons +</div> +HTML; diff --git a/views/default/page/layouts/content/sidebar.php b/views/default/page/layouts/content/sidebar.php new file mode 100644 index 000000000..86ca8435f --- /dev/null +++ b/views/default/page/layouts/content/sidebar.php @@ -0,0 +1,8 @@ +<?php +/** + * Main content sidebar + * + * @uses $vars['content] The content for the sidebar + */ + +echo $vars['content']; diff --git a/views/default/page/layouts/content/sidebar_alt.php b/views/default/page/layouts/content/sidebar_alt.php deleted file mode 100644 index e69de29bb..000000000 --- a/views/default/page/layouts/content/sidebar_alt.php +++ /dev/null diff --git a/views/default/page/layouts/default.php b/views/default/page/layouts/default.php new file mode 100644 index 000000000..60dc90b0d --- /dev/null +++ b/views/default/page/layouts/default.php @@ -0,0 +1,18 @@ +<?php +/** + * Elgg default layout + * + * @package Elgg + * @subpackage Core + * + * @uses $vars['content'] Content string + */ + +// @todo deprecated so remove in Elgg 2.0 +if (isset($vars['area1'])) { + echo $vars['area1']; +} + +if (isset($vars['content'])) { + echo $vars['content']; +} diff --git a/views/default/page/layouts/error.php b/views/default/page/layouts/error.php new file mode 100644 index 000000000..cdce28a8e --- /dev/null +++ b/views/default/page/layouts/error.php @@ -0,0 +1,12 @@ +<?php +/** + * Error layout + */ + +$class = 'elgg-layout-error'; +if (isset($vars['class'])) { + $class = "$class {$vars['class']}"; +} +$vars['class'] = $class; + +echo elgg_view('page/layouts/one_column', $vars); diff --git a/views/default/page/layouts/one_column.php b/views/default/page/layouts/one_column.php new file mode 100644 index 000000000..491d5b459 --- /dev/null +++ b/views/default/page/layouts/one_column.php @@ -0,0 +1,38 @@ +<?php +/** + * Elgg one-column layout + * + * @package Elgg + * @subpackage Core + * + * @uses $vars['content'] Content string + * @uses $vars['class'] Additional class to apply to layout + */ + +$class = 'elgg-layout elgg-layout-one-column clearfix'; +if (isset($vars['class'])) { + $class = "$class {$vars['class']}"; +} + +// navigation defaults to breadcrumbs +$nav = elgg_extract('nav', $vars, elgg_view('navigation/breadcrumbs')); + +?> +<div class="<?php echo $class; ?>"> + <div class="elgg-body elgg-main"> + <?php + echo $nav; + + if (isset($vars['title'])) { + echo elgg_view_title($vars['title']); + } + + echo $vars['content']; + + // @deprecated 1.8 + if (isset($vars['area1'])) { + echo $vars['area1']; + } + ?> + </div> +</div>
\ No newline at end of file diff --git a/views/default/page/layouts/one_sidebar.php b/views/default/page/layouts/one_sidebar.php new file mode 100644 index 000000000..d74dad53d --- /dev/null +++ b/views/default/page/layouts/one_sidebar.php @@ -0,0 +1,48 @@ +<?php +/** + * Layout for main column with one sidebar + * + * @package Elgg + * @subpackage Core + * + * @uses $vars['content'] Content HTML for the main column + * @uses $vars['sidebar'] Optional content that is displayed in the sidebar + * @uses $vars['title'] Optional title for main content area + * @uses $vars['class'] Additional class to apply to layout + * @uses $vars['nav'] HTML of the page nav (override) (default: breadcrumbs) + */ + +$class = 'elgg-layout elgg-layout-one-sidebar clearfix'; +if (isset($vars['class'])) { + $class = "$class {$vars['class']}"; +} + +// navigation defaults to breadcrumbs +$nav = elgg_extract('nav', $vars, elgg_view('navigation/breadcrumbs')); + +?> + +<div class="<?php echo $class; ?>"> + <div class="elgg-sidebar"> + <?php + echo elgg_view('page/elements/sidebar', $vars); + ?> + </div> + + <div class="elgg-main elgg-body"> + <?php + echo $nav; + + if (isset($vars['title'])) { + echo elgg_view_title($vars['title']); + } + // @todo deprecated so remove in Elgg 2.0 + if (isset($vars['area1'])) { + echo $vars['area1']; + } + if (isset($vars['content'])) { + echo $vars['content']; + } + ?> + </div> +</div> diff --git a/views/default/page/layouts/two_column_left_sidebar.php b/views/default/page/layouts/two_column_left_sidebar.php new file mode 100644 index 000000000..e395a5053 --- /dev/null +++ b/views/default/page/layouts/two_column_left_sidebar.php @@ -0,0 +1,26 @@ +<?php +/** + * Deprecated layout from 1.0-1.7 + * + * Use one_sidebar instead + */ + +if (!isset($vars['content'])) { + $vars['content'] = $vars['area2']; +} +if (!isset($vars['content'])) { + $vars['sidebar'] = $vars['area1'] . $vars['area3']; +} + +unset($vars['area1']); +unset($vars['area2']); +unset($vars['area3']); + +// backward compatability support for plugins that are not using the new approach +// of routing through 'admin' +if (elgg_get_context() == 'admin') { + echo elgg_view('page/layouts/admin', $vars); + return true; +} + +echo elgg_view('page/layouts/one_sidebar', $vars); diff --git a/views/default/page/layouts/two_sidebar.php b/views/default/page/layouts/two_sidebar.php index 817b02dc6..7521dd44f 100644 --- a/views/default/page/layouts/two_sidebar.php +++ b/views/default/page/layouts/two_sidebar.php @@ -5,10 +5,10 @@ * @package Elgg * @subpackage Core * - * @uses $vars['content'] The content string for the main column - * @uses $vars['sidebar'] Optional content that is displayed in the sidebar + * @uses $vars['content'] The content string for the main column + * @uses $vars['sidebar'] Optional content that is displayed in the sidebar * @uses $vars['sidebar_alt'] Optional content that is displayed in the alternate sidebar - * @uses $vars['class'] Additional class to apply to layout + * @uses $vars['class'] Additional class to apply to layout */ $class = 'elgg-layout elgg-layout-two-sidebar clearfix'; @@ -19,28 +19,25 @@ if (isset($vars['class'])) { <div class="<?php echo $class; ?>"> <div class="elgg-sidebar"> - <?php echo elgg_view('page/elements/sidebar', $vars); ?> + <?php + echo elgg_view('page/elements/sidebar', $vars); + ?> + </div> + <div class="elgg-sidebar-alt"> + <?php + echo elgg_view('page/elements/sidebar_alt', $vars); + ?> </div> - <div class="elgg-body"> - <div class="elgg-head"> - <?php echo elgg_view('page/elements/title', $vars); ?> - </div> - <?php - // allow page handlers to override the default header + + <div class="elgg-main elgg-body"> + <?php + // @todo deprecated so remove in Elgg 2.0 + if (isset($vars['area1'])) { + echo $vars['area1']; + } + if (isset($vars['content'])) { + echo $vars['content']; + } ?> - <div class="elgg-sidebar-alt"> - <?php echo elgg_view('page/elements/sidebar_alt', $vars); ?> - </div> - <div class="elgg-body elgg-main"> - <?php - // @todo deprecated so remove in Elgg 2.0 - if (isset($vars['area1'])) { - echo $vars['area1']; - } - if (isset($vars['content'])) { - echo $vars['content']; - } - ?> - </div> </div> -</div>
\ No newline at end of file +</div> diff --git a/views/default/page/layouts/walled_garden.php b/views/default/page/layouts/walled_garden.php new file mode 100644 index 000000000..6ecd941ef --- /dev/null +++ b/views/default/page/layouts/walled_garden.php @@ -0,0 +1,16 @@ +<?php +/** + * Walled Garden layout + * + * @uses $vars['content'] Main content + * @uses $vars['class'] CSS classes + * @uses $vars['id'] CSS id + */ + +$class = elgg_extract('class', $vars, 'elgg-walledgarden-single'); +echo elgg_view_module('walledgarden', '', $vars['content'], array( + 'class' => $class, + 'id' => elgg_extract('id', $vars, ''), + 'header' => ' ', + 'footer' => ' ', +)); diff --git a/views/default/page/layouts/widgets.php b/views/default/page/layouts/widgets.php new file mode 100644 index 000000000..c6b162516 --- /dev/null +++ b/views/default/page/layouts/widgets.php @@ -0,0 +1,62 @@ +<?php +/** + * Elgg widgets layout + * + * @uses $vars['content'] Optional display box at the top of layout + * @uses $vars['num_columns'] Number of widget columns for this layout (3) + * @uses $vars['show_add_widgets'] Display the add widgets button and panel (true) + * @uses $vars['exact_match'] Widgets must match the current context (false) + * @uses $vars['show_access'] Show the access control (true) + */ + +$num_columns = elgg_extract('num_columns', $vars, 3); +$show_add_widgets = elgg_extract('show_add_widgets', $vars, true); +$exact_match = elgg_extract('exact_match', $vars, false); +$show_access = elgg_extract('show_access', $vars, true); + +$owner = elgg_get_page_owner_entity(); + +$widget_types = elgg_get_widget_types(); + +$context = elgg_get_context(); +elgg_push_context('widgets'); + +$widgets = elgg_get_widgets($owner->guid, $context); + +if (elgg_can_edit_widget_layout($context)) { + if ($show_add_widgets) { + echo elgg_view('page/layouts/widgets/add_button'); + } + $params = array( + 'widgets' => $widgets, + 'context' => $context, + 'exact_match' => $exact_match, + 'show_access' => $show_access, + ); + echo elgg_view('page/layouts/widgets/add_panel', $params); +} + +echo $vars['content']; + +$widget_class = "elgg-col-1of{$num_columns}"; +for ($column_index = 1; $column_index <= $num_columns; $column_index++) { + if (isset($widgets[$column_index])) { + $column_widgets = $widgets[$column_index]; + } else { + $column_widgets = array(); + } + + echo "<div class=\"$widget_class elgg-widgets\" id=\"elgg-widget-col-$column_index\">"; + if (sizeof($column_widgets) > 0) { + foreach ($column_widgets as $widget) { + if (array_key_exists($widget->handler, $widget_types)) { + echo elgg_view_entity($widget, array('show_access' => $show_access)); + } + } + } + echo '</div>'; +} + +elgg_pop_context(); + +echo elgg_view('graphics/ajax_loader', array('id' => 'elgg-widget-loader')); diff --git a/views/default/page/layouts/widgets/add_button.php b/views/default/page/layouts/widgets/add_button.php new file mode 100644 index 000000000..c33a45f99 --- /dev/null +++ b/views/default/page/layouts/widgets/add_button.php @@ -0,0 +1,16 @@ +<?php +/** + * Button area for showing the add widgets panel + */ +?> +<div class="elgg-widget-add-control"> +<?php + echo elgg_view('output/url', array( + 'href' => '#widgets-add-panel', + 'text' => elgg_echo('widgets:add'), + 'class' => 'elgg-button elgg-button-action', + 'rel' => 'toggle', + 'is_trusted' => true, + )); +?> +</div> diff --git a/views/default/page/layouts/widgets/add_panel.php b/views/default/page/layouts/widgets/add_panel.php new file mode 100644 index 000000000..d9b11342a --- /dev/null +++ b/views/default/page/layouts/widgets/add_panel.php @@ -0,0 +1,62 @@ +<?php +/** + * Widget add panel + * + * @uses $vars['widgets'] Array of current widgets + * @uses $vars['context'] The context for this widget layout + * @uses $vars['exact_match'] Only use widgets that match the context + */ + +$widgets = $vars['widgets']; +$context = $vars['context']; +$exact = elgg_extract('exact_match', $vars, false); + +$widget_types = elgg_get_widget_types($context, $exact); +uasort($widget_types, create_function('$a,$b', 'return strcmp($a->name,$b->name);')); + +$current_handlers = array(); +foreach ($widgets as $column_widgets) { + foreach ($column_widgets as $widget) { + $current_handlers[] = $widget->handler; + } +} + +?> +<div class="elgg-widgets-add-panel hidden clearfix" id="widgets-add-panel"> + <p> + <?php echo elgg_echo('widgets:add:description'); ?> + </p> + <ul> +<?php + foreach ($widget_types as $handler => $widget_type) { + $id = "elgg-widget-type-$handler"; + // check if widget added and only one instance allowed + if ($widget_type->multiple == false && in_array($handler, $current_handlers)) { + $class = 'elgg-state-unavailable'; + $tooltip = elgg_echo('widget:unavailable'); + } else { + $class = 'elgg-state-available'; + $tooltip = $widget_type->description; + } + + if ($widget_type->multiple) { + $class .= ' elgg-widget-multiple'; + } else { + $class .= ' elgg-widget-single'; + } + + echo "<li title=\"$tooltip\" id=\"$id\" class=\"$class\">$widget_type->name</li>"; + } +?> + </ul> +<?php + echo elgg_view('input/hidden', array( + 'name' => 'widget_context', + 'value' => $context + )); + echo elgg_view('input/hidden', array( + 'name' => 'show_access', + 'value' => (int)$vars['show_access'] + )); +?> +</div> diff --git a/views/default/page/upgrade.php b/views/default/page/upgrade.php new file mode 100644 index 000000000..1a92042be --- /dev/null +++ b/views/default/page/upgrade.php @@ -0,0 +1,18 @@ +<?php +/** + * Page shell for upgrade script + * + * Displays an ajax loader until upgrade is complete + */ +?> +<html> + <head> + <?php echo elgg_view('page/elements/head', $vars); ?> + <meta http-equiv="refresh" content="1;url=<?php echo elgg_get_site_url(); ?>upgrade.php?upgrade=upgrade"/> + </head> + <body> + <div style="margin-top:200px"> + <?php echo elgg_view('graphics/ajax_loader', array('hidden' => false)); ?> + </div> + </body> +</html>
\ No newline at end of file diff --git a/views/default/page/walled_garden.php b/views/default/page/walled_garden.php new file mode 100644 index 000000000..b280cf6b2 --- /dev/null +++ b/views/default/page/walled_garden.php @@ -0,0 +1,40 @@ +<?php +/** + * Walled garden page shell + * + * Used for the walled garden index page + */ + +$is_sticky_register = elgg_is_sticky_form('register'); +$wg_body_class = 'elgg-body-walledgarden'; +if ($is_sticky_register) { + $wg_body_class .= ' hidden'; +} + +// Set the content type +header("Content-type: text/html; charset=UTF-8"); +?> +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> +<head> +<?php echo elgg_view('page/elements/head', $vars); ?> +</head> +<body> +<div class="elgg-page elgg-page-walledgarden"> + <div class="elgg-page-messages"> + <?php echo elgg_view('page/elements/messages', array('object' => $vars['sysmessages'])); ?> + </div> + <div class="<?php echo $wg_body_class; ?>"> + <?php echo $vars['body']; ?> + </div> +</div> +<?php if ($is_sticky_register): ?> +<script type="text/javascript"> +elgg.register_hook_handler('init', 'system', function() { + $('.registration_link').trigger('click'); +}); +</script> +<?php endif; ?> +<?php echo elgg_view('page/elements/foot'); ?> +</body> +</html>
\ No newline at end of file diff --git a/views/default/profile/details.php b/views/default/profile/details.php deleted file mode 100644 index 6ad73688f..000000000 --- a/views/default/profile/details.php +++ /dev/null @@ -1,41 +0,0 @@ -<?php -/** - * Elgg user display (details) - * @uses $vars['entity'] The user entity - */ - -$user = elgg_get_page_owner_entity(); - -$profile_fields = elgg_get_config('profile_fields'); - -echo "<dl class=\"elgg-profile\">"; -if (is_array($profile_fields) && sizeof($profile_fields) > 0) { - foreach ($profile_fields as $shortname => $valtype) { - if ($shortname == "description") { - // skip about me and put at bottom - continue; - } - $value = $user->$shortname; - if (!empty($value)) { -?> - <dt><?php echo elgg_echo("profile:{$shortname}"); ?></dt> - <dd><?php echo elgg_view("output/{$valtype}", array('value' => $user->$shortname)); ?></dd> -<?php - } - } -} - -if (!elgg_get_config('profile_custom_fields')) { - if ($user->isBanned()) { - echo "</dl><p class='profile-banned-user'>"; - echo elgg_echo('banned'); - echo "</p>"; - } else { - if ($user->description) { - echo "<dt>" . elgg_echo("profile:aboutme") . "</dt>"; - echo "<dd>"; - echo elgg_view('output/longtext', array('value' => $user->description)); - echo "</dd></dl>"; - } - } -}
\ No newline at end of file diff --git a/views/default/profile/icon.php b/views/default/profile/icon.php new file mode 100644 index 000000000..5f06cfd54 --- /dev/null +++ b/views/default/profile/icon.php @@ -0,0 +1,17 @@ +<?php +/** + * Elgg profile icon + * + * @deprecated 1.8 use elgg_view_entity_icon() + * + * @uses $vars['entity'] The user entity. If none specified, the current user is assumed. + * @uses $vars['size'] The size - small, medium or large. If none specified, medium is assumed. + * @uses $vars['override'] + * @uses $vars['js'] + */ +elgg_deprecated_notice('The profile/icon view was deprecated. Use elgg_view_entity_icon()', 1.8); + +$override = elgg_extract('override', $vars, false); +$vars['use_hover'] = !$override; + +echo elgg_view('icon/user/default', $vars); diff --git a/views/default/river/object/messageboard/create.php b/views/default/river/annotation/generic_comment/create.php index 7d586450d..7d586450d 100644 --- a/views/default/river/object/messageboard/create.php +++ b/views/default/river/annotation/generic_comment/create.php diff --git a/views/default/river/elements/attachment.php b/views/default/river/elements/attachment.php deleted file mode 100644 index d5c0aab99..000000000 --- a/views/default/river/elements/attachment.php +++ /dev/null @@ -1,25 +0,0 @@ -<?php - -$title = ''; -$subtitle = false; -$image = false; -$description = false; - -extract($vars, EXTR_IF_EXISTS); - -$body = "<h4 class=\"elgg-attachment-title\">$title</h4>"; - -if ($subtitle) { - $body .= "<div class=\"elgg-attachment-subtitle\">$subtitle</div>"; -} - -if ($description) { - $body .= "<div class=\"elgg-attachment-description\">$description</div>"; -} - - -if ($image) { - echo elgg_view_image_block($image, $body); -} else { - echo $body; -}
\ No newline at end of file diff --git a/views/default/river/elements/body.php b/views/default/river/elements/body.php index 56d7a09e9..2cd7f2289 100644 --- a/views/default/river/elements/body.php +++ b/views/default/river/elements/body.php @@ -14,11 +14,11 @@ $item = $vars['item']; $menu = elgg_view_menu('river', array( 'item' => $item, 'sort_by' => 'priority', + 'class' => 'elgg-menu-hz', )); // river item header -if($item->action_type != 'comment') { -$timestamp = elgg_get_friendly_time($item->getPostedTime()); +$timestamp = elgg_view_friendly_time($item->getPostedTime()); $summary = elgg_extract('summary', $vars, elgg_view('river/elements/summary', array('item' => $vars['item']))); if ($summary === false) { @@ -27,6 +27,7 @@ if ($summary === false) { 'href' => $subject->getURL(), 'text' => $subject->name, 'class' => 'elgg-river-subject', + 'is_trusted' => true, )); } @@ -37,7 +38,7 @@ if ($message !== false) { $attachments = elgg_extract('attachments', $vars, false); if ($attachments !== false) { - $attachments = "<div class=\"elgg-river-attachments\">$attachments</div>"; + $attachments = "<div class=\"elgg-river-attachments clearfix\">$attachments</div>"; } $responses = elgg_view('river/elements/responses', $vars); @@ -52,17 +53,15 @@ if ($container instanceof ElggGroup && $container->guid != elgg_get_page_owner_g $group_link = elgg_view('output/url', array( 'href' => $container->getURL(), 'text' => $container->name, + 'is_trusted' => true, )); $group_string = elgg_echo('river:ingroup', array($group_link)); } echo <<<RIVER -<div class="elgg-river-summary">$summary $group_string</div> +$menu +<div class="elgg-river-summary">$summary $group_string <span class="elgg-river-timestamp">$timestamp</span></div> $message $attachments -<span class="elgg-river-timestamp">$timestamp</span> -$menu $responses RIVER; - -}
\ No newline at end of file diff --git a/views/default/river/elements/image.php b/views/default/river/elements/image.php new file mode 100644 index 000000000..6f6aeae65 --- /dev/null +++ b/views/default/river/elements/image.php @@ -0,0 +1,16 @@ +<?php +/** + * Elgg river image + * + * Displayed next to the body of each river item + * + * @uses $vars['item'] + */ + +$subject = $vars['item']->getSubjectEntity(); + +if (elgg_in_context('widgets')) { + echo elgg_view_entity_icon($subject, 'tiny'); +} else { + echo elgg_view_entity_icon($subject, 'small'); +} diff --git a/views/default/river/elements/layout.php b/views/default/river/elements/layout.php new file mode 100644 index 000000000..94622e272 --- /dev/null +++ b/views/default/river/elements/layout.php @@ -0,0 +1,14 @@ +<?php +/** + * Layout of a river item + * + * @uses $vars['item'] ElggRiverItem + */ + +$item = $vars['item']; + +echo elgg_view('page/components/image_block', array( + 'image' => elgg_view('river/elements/image', $vars), + 'body' => elgg_view('river/elements/body', $vars), + 'class' => 'elgg-river-item', +)); diff --git a/views/default/river/elements/responses.php b/views/default/river/elements/responses.php index 432296737..f6c32e142 100644 --- a/views/default/river/elements/responses.php +++ b/views/default/river/elements/responses.php @@ -1,25 +1,35 @@ <?php /** * River item footer + * + * @uses $vars['item'] ElggRiverItem + * @uses $vars['responses'] Alternate override for this item */ +// allow river views to override the response content +$responses = elgg_extract('responses', $vars, false); +if ($responses) { + echo $responses; + return true; +} + $item = $vars['item']; $object = $item->getObjectEntity(); // annotations do not have comments -if (!$object || $item->annotation_id) { +if ($item->annotation_id != 0 || !$object) { return true; } - $comment_count = $object->countComments(); -$comments = elgg_get_annotations(array( +$options = array( 'guid' => $object->getGUID(), 'annotation_name' => 'generic_comment', 'limit' => 3, 'order_by' => 'n_table.time_created desc' -)); +); +$comments = elgg_get_annotations($options); if ($comments) { // why is this reversing it? because we're asking for the 3 latest @@ -27,23 +37,27 @@ if ($comments) { // these comments with the latest at the bottom. $comments = array_reverse($comments); +?> + <span class="elgg-river-comments-tab"><?php echo elgg_echo('comments'); ?></span> + +<?php + + echo elgg_view_annotation_list($comments, array('list_class' => 'elgg-river-comments')); + if ($comment_count > count($comments)) { - $link = elgg_view('output/url', array( - 'href' => $object->getURL(), - 'text' => elgg_echo('river:comments:all', array($comment_count)), - )); - - echo elgg_view_image_block(elgg_view_icon('speech-bubble-alt'), $link, array('class' => 'elgg-river-participation')); + $num_more_comments = $comment_count - count($comments); + $url = $object->getURL(); + $params = array( + 'href' => $url, + 'text' => elgg_echo('river:comments:more', array($num_more_comments)), + 'is_trusted' => true, + ); + $link = elgg_view('output/url', $params); + echo "<div class=\"elgg-river-more\">$link</div>"; } - - echo elgg_view_annotation_list($comments, array('list_class' => 'elgg-river-comments', 'item_class' => 'elgg-river-participation')); - } -if ($object->canAnnotate(0, 'generic_comment')) { - // inline comment form - echo elgg_view_form('comments/add', array( - 'id' => "comments-add-{$object->getGUID()}", - 'class' => 'elgg-river-participation elgg-form-small', - ), array('entity' => $object, 'inline' => true)); -}
\ No newline at end of file +// inline comment form +$form_vars = array('id' => "comments-add-{$object->getGUID()}", 'class' => 'hidden'); +$body_vars = array('entity' => $object, 'inline' => true); +echo elgg_view_form('comments/add', $form_vars, $body_vars); diff --git a/views/default/river/elements/summary.php b/views/default/river/elements/summary.php new file mode 100644 index 000000000..d7bde51dd --- /dev/null +++ b/views/default/river/elements/summary.php @@ -0,0 +1,54 @@ +<?php +/** + * Short summary of the action that occurred + * + * @vars['item'] ElggRiverItem + */ + +$item = $vars['item']; + +$subject = $item->getSubjectEntity(); +$object = $item->getObjectEntity(); +$target = $object->getContainerEntity(); + +$subject_link = elgg_view('output/url', array( + 'href' => $subject->getURL(), + 'text' => $subject->name, + 'class' => 'elgg-river-subject', + 'is_trusted' => true, +)); + +$object_text = $object->title ? $object->title : $object->name; +$object_link = elgg_view('output/url', array( + 'href' => $object->getURL(), + 'text' => elgg_get_excerpt($object_text, 100), + 'class' => 'elgg-river-object', + 'is_trusted' => true, +)); + +$action = $item->action_type; +$type = $item->type; +$subtype = $item->subtype ? $item->subtype : 'default'; + +$container = $object->getContainerEntity(); +if ($container instanceof ElggGroup) { + $params = array( + 'href' => $container->getURL(), + 'text' => $container->name, + 'is_trusted' => true, + ); + $group_link = elgg_view('output/url', $params); + $group_string = elgg_echo('river:ingroup', array($group_link)); +} + +// check summary translation keys. +// will use the $type:$subtype if that's defined, otherwise just uses $type:default +$key = "river:$action:$type:$subtype"; +$summary = elgg_echo($key, array($subject_link, $object_link)); + +if ($summary == $key) { + $key = "river:$action:$type:default"; + $summary = elgg_echo($key, array($subject_link, $object_link)); +} + +echo $summary;
\ No newline at end of file diff --git a/views/default/river/group/create.php b/views/default/river/group/create.php deleted file mode 100644 index 6beaf2d7d..000000000 --- a/views/default/river/group/create.php +++ /dev/null @@ -1,25 +0,0 @@ -<?php -/** - * Group creation river view. - */ - -$object = $vars['item']->getObjectEntity(); -$subject = $vars['item']->getSubjectEntity(); - -$subject_link = elgg_view('output/url', array( - 'href' => $subject->getURL(), - 'text' => $subject->name, - 'class' => 'elgg-actor-name', - 'encode_text' => true, -)); - -$group_link = elgg_view('output/url', array( - 'href' => $object->getURL(), - 'text' => $object->name, - 'encode_text' => true, -)); - -echo elgg_view('river/item', array( - 'item' => $vars['item'], - 'attachments' => elgg_view('group/default/river', array('entity' => $object)), -));
\ No newline at end of file diff --git a/views/default/river/item.php b/views/default/river/item.php new file mode 100644 index 000000000..75767e08d --- /dev/null +++ b/views/default/river/item.php @@ -0,0 +1,30 @@ +<?php +/** + * Primary river item view + * + * Calls the individual view saved for that river item. Most of these + * individual river views then use the views in river/elements. + * + * @uses $vars['item'] ElggRiverItem + */ + +// @todo remove this in Elgg 1.9 +global $_elgg_special_river_catch; +if (!isset($_elgg_special_river_catch)) { + $_elgg_special_river_catch = false; +} +if ($_elgg_special_river_catch) { + // we changed the views a little in 1.8.1 so this catches the plugins that + // were updated in 1.8.0 and redirects to the layout view + echo elgg_view('river/elements/layout', $vars); + return true; +} +$_elgg_special_river_catch = true; + + +$item = $vars['item']; + +echo elgg_view($item->getView(), $vars); + + +$_elgg_special_river_catch = false; diff --git a/views/default/river/object/blog/create.php b/views/default/river/object/blog/create.php deleted file mode 100644 index 2d08a7d86..000000000 --- a/views/default/river/object/blog/create.php +++ /dev/null @@ -1,11 +0,0 @@ -<?php -/** - * Blog river view. - */ - -$object = $vars['item']->getObjectEntity(); - -echo elgg_view('river/item', array( - 'item' => $vars['item'], - 'attachments' => elgg_view('object/blog/river', array('entity' => $object)), -));
\ No newline at end of file diff --git a/views/default/river/object/bookmarks/create.php b/views/default/river/object/bookmarks/create.php deleted file mode 100644 index b4170b8ec..000000000 --- a/views/default/river/object/bookmarks/create.php +++ /dev/null @@ -1,14 +0,0 @@ -<?php -/** - * New bookmarks river entry - * - * @package Bookmarks - */ - -$object = $vars['item']->getObjectEntity(); - - -echo elgg_view('river/item', array( - 'item' => $vars['item'], - 'attachments' => elgg_view('object/bookmarks/river', array('entity' => $object)), -));
\ No newline at end of file diff --git a/views/default/river/object/file/create.php b/views/default/river/object/file/create.php deleted file mode 100644 index 99af38ace..000000000 --- a/views/default/river/object/file/create.php +++ /dev/null @@ -1,13 +0,0 @@ -<?php -/** - * New file river entry - * - * @package File - */ - -$object = $vars['item']->getObjectEntity(); - -echo elgg_view('river/item', array( - 'item' => $vars['item'], - 'attachments' => elgg_view('object/file/river', array('entity' => $object)), -));
\ No newline at end of file diff --git a/views/default/river/object/groupforumtopic/create.php b/views/default/river/object/groupforumtopic/create.php deleted file mode 100644 index 291585698..000000000 --- a/views/default/river/object/groupforumtopic/create.php +++ /dev/null @@ -1,11 +0,0 @@ -<?php -/** - * Group discussion topic river view. - */ - -$object = $vars['item']->getObjectEntity(); - -echo elgg_view('river/item', array( - 'item' => $vars['item'], - 'attachments' => elgg_view('object/groupforumtopic/river', array('entity' => $object)), -));
\ No newline at end of file diff --git a/views/default/river/object/page/create.php b/views/default/river/object/page/create.php deleted file mode 100644 index 1f1ab4801..000000000 --- a/views/default/river/object/page/create.php +++ /dev/null @@ -1,11 +0,0 @@ -<?php -/** - * Page river view. - */ - -$object = $vars['item']->getObjectEntity(); - -echo elgg_view('river/item', array( - 'item' => $vars['item'], - 'attachments' => elgg_view('object/page/river', array('entity' => $object)), -));
\ No newline at end of file diff --git a/views/default/river/relationship/friend/create.php b/views/default/river/relationship/friend/create.php new file mode 100644 index 000000000..0408d79e1 --- /dev/null +++ b/views/default/river/relationship/friend/create.php @@ -0,0 +1,14 @@ +<?php +/** + * Create friend river view + */ +$subject = $vars['item']->getSubjectEntity(); +$object = $vars['item']->getObjectEntity(); + +$subject_icon = elgg_view_entity_icon($subject, 'tiny'); +$object_icon = elgg_view_entity_icon($object, 'tiny'); + +echo elgg_view('river/elements/layout', array( + 'item' => $vars['item'], + 'attachments' => $subject_icon . elgg_view_icon('arrow-right') . $object_icon, +)); diff --git a/views/default/river/user/default/profileiconupdate.php b/views/default/river/user/default/profileiconupdate.php index 255d660ca..271064a06 100644 --- a/views/default/river/user/default/profileiconupdate.php +++ b/views/default/river/user/default/profileiconupdate.php @@ -17,7 +17,7 @@ $string = elgg_echo('river:update:user:avatar', array($subject_link)); echo elgg_view('river/elements/layout', array( 'item' => $vars['item'], 'summary' => $string, - 'attachments' => elgg_view_entity_icon($subject, 'medium', array( + 'attachments' => elgg_view_entity_icon($subject, 'tiny', array( 'use_hover' => false, 'use_link' => false, )), diff --git a/views/default/search/css.php b/views/default/search/css.php deleted file mode 100644 index 3e0c5f379..000000000 --- a/views/default/search/css.php +++ /dev/null @@ -1,11 +0,0 @@ -<?php -/** - * Elgg Search css - * - */ -?> -/* <style> -/********************************** -Search plugin -***********************************/ -.elgg-search {width: 330px;background: white url(<?php echo elgg_get_site_url(); ?>_graphics/elgg_sprites.png) no-repeat 335px -934px;border: 1px solid #AAA;border-radius: 1px;height: 20px;padding: 0 23px 0 0;}.elgg-search .search-input {padding: 1px 0 1px 3px;margin: 2px 0 2px 2px;outline: none;font-size: 11px;border: 0;border-right: 1px solid #e9e9e9;}.elgg-search input[type=submit] {display: none;}.elgg-search .search-input:focus {background-position: 2px -700px;}.elgg-page-header .elgg-search {bottom: 5px;position: absolute;right: 0;border-color: black;}.elgg-page-topbar .elgg-search {margin: 4px 0 4px 181px;position: relative;}.search-list li {padding: 5px 0 0;}.search-heading-category {margin-top: 20px;color: #666666;}.search-highlight {background-color: #bbdaf7;}.search-highlight-color1 {background-color: #bbdaf7;}.search-highlight-color2 {background-color: #A0FFFF;}.search-highlight-color3 {background-color: #FDFFC3;}.search-highlight-color4 {background-color: #ccc;}.search-highlight-color5 {background-color: #4690d6;}
\ No newline at end of file diff --git a/views/default/search/entity.php b/views/default/search/entity.php deleted file mode 100644 index 287ce4512..000000000 --- a/views/default/search/entity.php +++ /dev/null @@ -1,57 +0,0 @@ -<?php -/** - * Default view for an entity returned in a search - * - * Display largely controlled by a set of overrideable volatile data: - * - search_icon (defaults to entity icon) - * - search_matched_title - * - search_matched_description - * - search_matched_extra - * - search_url (defaults to entity->getURL()) - * - search_time (defaults to entity->time_updated or entity->time_created) - * - * @uses $vars['entity'] Entity returned in a search - */ - -$entity = $vars['entity']; - -$icon = $entity->getVolatileData('search_icon'); -if (!$icon) { - // display the entity's owner by default if available. - // @todo allow an option to switch to displaying the entity's icon instead. - $type = $entity->getType(); - if ($type == 'user' || $type == 'group') { - $icon = elgg_view_entity_icon($entity, 'small'); - } elseif ($owner = $entity->getOwnerEntity()) { - $icon = elgg_view_entity_icon($owner, 'small'); - } else { - // display a generic icon if no owner, though there will probably be - // other problems if the owner can't be found. - $icon = elgg_view_entity($entity, 'small'); - } -} - -$title = $entity->getVolatileData('search_matched_title'); -$description = $entity->getVolatileData('search_matched_description'); -$extra_info = $entity->getVolatileData('search_matched_extra'); -$url = $entity->getVolatileData('search_url'); - -if (!$url) { - $url = $entity->getURL(); -} - -$title = "<a href=\"$url\">$title</a>"; -$time = $entity->getVolatileData('search_time'); -if (!$time) { - $tc = $entity->time_created; - $tu = $entity->time_updated; - $time = elgg_view_friendly_time(($tu > $tc) ? $tu : $tc); -} - -$body = "<p class=\"mbn\">$title</p>$description"; -if ($extra_info) { - $body .= "<p class=\"elgg-subtext\">$extra_info</p>"; -} -$body .= "<p class=\"elgg-subtext\">$time</p>"; - -echo elgg_view_image_block($icon, $body); diff --git a/views/default/search/search_box.php b/views/default/search/search_box.php deleted file mode 100644 index 36cceef4a..000000000 --- a/views/default/search/search_box.php +++ /dev/null @@ -1,27 +0,0 @@ -<?php -/** - * Search box - * - * @uses $vars['value'] Current search query - * - * @todo Move javascript into something that extends elgg.js - */ - -$value = ''; -if (array_key_exists('value', $vars)) { - $value = $vars['value']; -} elseif ($value = get_input('q', get_input('tag', NULL))) { - $value = $value; -} - -// @todo - why the strip slashes? -$value = stripslashes($value); - -// @todo - create function for sanitization of strings for display in 1.8 -// encode <,>,&, quotes and characters above 127 -$display_query = mb_convert_encoding($value, 'HTML-ENTITIES', 'UTF-8'); -$display_query = htmlspecialchars($display_query, ENT_QUOTES, 'UTF-8', false); - - -?> -<form class="elgg-search" action="<?php echo elgg_get_site_url(); ?>search" method="get"><fieldset><input type="text" size="21" name="q" placeholder="<?php echo elgg_echo('search'); ?>" class="search-input" value="<?php echo $value; ?>"/><input type="submit" value="<?php echo elgg_echo('search:go'); ?>" class="search-submit-button" /></fieldset></form>
\ No newline at end of file diff --git a/views/default/site/default.php b/views/default/site/default.php new file mode 100644 index 000000000..5dacb4019 --- /dev/null +++ b/views/default/site/default.php @@ -0,0 +1,17 @@ +<?php +/** + * ElggSite default view. + * + * @package Elgg + * @subpackage Core + */ + +// sites information (including plugin settings) shouldn't be shown. +// this view is required for pinging home during install. +if (!defined('INSTALLING')) { + if ($site = $vars['entity']->url) { + forward($site); + } else { + forward(); + } +} diff --git a/views/default/thewire/composer.php b/views/default/thewire/composer.php deleted file mode 100644 index a6cdcdd2a..000000000 --- a/views/default/thewire/composer.php +++ /dev/null @@ -1,2 +0,0 @@ -<?php -echo elgg_view_form('thewire/add');
\ No newline at end of file diff --git a/views/default/user/default.php b/views/default/user/default.php new file mode 100644 index 000000000..6c84e84ad --- /dev/null +++ b/views/default/user/default.php @@ -0,0 +1,57 @@ +<?php +/** + * Elgg user display + * + * @uses $vars['entity'] ElggUser entity + * @uses $vars['size'] Size of the icon + */ + +$entity = $vars['entity']; +$size = elgg_extract('size', $vars, 'tiny'); + +$icon = elgg_view_entity_icon($entity, $size, $vars); + +// Simple XFN +$rel = ''; +if (elgg_get_logged_in_user_guid() == $entity->guid) { + $rel = 'rel="me"'; +} elseif (check_entity_relationship(elgg_get_logged_in_user_guid(), 'friend', $entity->guid)) { + $rel = 'rel="friend"'; +} + +$title = "<a href=\"" . $entity->getUrl() . "\" $rel>" . $entity->name . "</a>"; + +$metadata = elgg_view_menu('entity', array( + 'entity' => $entity, + 'sort_by' => 'priority', + 'class' => 'elgg-menu-hz', +)); + +if (elgg_in_context('owner_block') || elgg_in_context('widgets')) { + $metadata = ''; +} + +if (elgg_get_context() == 'gallery') { + echo $icon; +} else { + if ($entity->isBanned()) { + $banned = elgg_echo('banned'); + $params = array( + 'entity' => $entity, + 'title' => $title, + 'metadata' => $metadata, + ); + } else { + $params = array( + 'entity' => $entity, + 'title' => $title, + 'metadata' => $metadata, + 'subtitle' => $entity->briefdescription, + 'content' => elgg_view('user/status', array('entity' => $entity)), + ); + } + + $list_body = elgg_view('user/elements/summary', $params); + + echo elgg_view_image_block($icon, $list_body, $vars); +} diff --git a/views/default/user/elements/summary.php b/views/default/user/elements/summary.php new file mode 100644 index 000000000..46d11c14c --- /dev/null +++ b/views/default/user/elements/summary.php @@ -0,0 +1,13 @@ +<?php +/** + * User summary + * + * @uses $vars['entity'] ElggEntity + * @uses $vars['title'] Title link (optional) false = no title, '' = default + * @uses $vars['metadata'] HTML for entity metadata and actions (optional) + * @uses $vars['subtitle'] HTML for the subtitle (optional) + * @uses $vars['tags'] HTML for the tags (optional) + * @uses $vars['content'] HTML for the entity content (optional) + */ + +echo elgg_view('object/elements/summary', $vars); diff --git a/views/default/user/search/finishblurb.php b/views/default/user/search/finishblurb.php new file mode 100644 index 000000000..a3878a803 --- /dev/null +++ b/views/default/user/search/finishblurb.php @@ -0,0 +1,18 @@ +<?php +/** + * @package Elgg + * @subpackage Core + * @deprecated 1.7 + */ + +elgg_deprecated_notice('view user/search/finishblurb was deprecated.', 1.7); + +if ($vars['count'] > $vars['threshold']) { + +?> +<a href="<?php echo elgg_get_site_url(); ?>search/users?tag=<?php echo urlencode($vars['tag']); ?>"><?php + echo elgg_echo("user:search:finishblurb"); + ?></a> +<?php + +} diff --git a/views/default/user/search/startblurb.php b/views/default/user/search/startblurb.php new file mode 100644 index 000000000..806157609 --- /dev/null +++ b/views/default/user/search/startblurb.php @@ -0,0 +1,10 @@ +<?php +/** + * @package Elgg + * @subpackage Core + * @deprecated 1.7 + */ + +elgg_deprecated_notice('view user/search/startblurb was deprecated.', 1.7); + +echo elgg_echo("user:search:startblurb", array($vars['tag']));
\ No newline at end of file diff --git a/views/default/widgets/admin_welcome/content.php b/views/default/widgets/admin_welcome/content.php new file mode 100644 index 000000000..f4b92ea66 --- /dev/null +++ b/views/default/widgets/admin_welcome/content.php @@ -0,0 +1,19 @@ +<?php +/** + * Welcome widget for admins + */ + +// section => string replacements. +$sections = array( + 'intro' => array(), + 'admin_overview' => array(), + 'outro' => array() +); + +// don't use longtext because it filters output. +// that's annoying. +echo '<div class="elgg-output">'; +foreach ($sections as $section => $strings) { + echo '<p>' . elgg_echo("admin:widget:admin_welcome:$section", $strings) . '</p>'; +} +echo '</div>';
\ No newline at end of file diff --git a/views/default/widgets/content_stats/content.php b/views/default/widgets/content_stats/content.php new file mode 100644 index 000000000..56772047d --- /dev/null +++ b/views/default/widgets/content_stats/content.php @@ -0,0 +1,28 @@ +<?php +/** + * Content stats widget + */ + +$max = $vars['entity']->num_display; + +$entity_stats = get_entity_statistics(); +$object_stats = $entity_stats['object']; +arsort($object_stats); +$object_stats = array_slice($object_stats, 0, $max); + +echo '<table class="elgg-table-alt">'; +echo '<tr><th>' . elgg_echo('widget:content_stats:type') . '</th>'; +echo '<th>' . elgg_echo('widget:content_stats:number') . '</th></tr>'; +foreach ($object_stats as $subtype => $num) { + $name = elgg_echo("item:object:$subtype"); + echo "<tr><td>$name</td><td>$num</td></tr>"; +} +echo '</table>'; + +echo '<div class="mtm">'; +echo elgg_view('output/url', array( + 'href' => 'admin/statistics/overview', + 'text' => elgg_echo('more'), + 'is_trusted' => true, +)); +echo '</div>'; diff --git a/views/default/widgets/content_stats/edit.php b/views/default/widgets/content_stats/edit.php new file mode 100644 index 000000000..f1a050df8 --- /dev/null +++ b/views/default/widgets/content_stats/edit.php @@ -0,0 +1,23 @@ +<?php +/** + * Content statistics widget edit view + */ + + +// set default value +if (!isset($vars['entity']->num_display)) { + $vars['entity']->num_display = 8; +} + +$params = array( + 'name' => 'params[num_display]', + 'value' => $vars['entity']->num_display, + 'options' => array(5, 8, 10, 12, 15, 20), +); +$dropdown = elgg_view('input/dropdown', $params); + +?> +<p> + <?php echo elgg_echo('widget:numbertodisplay'); ?>: + <?php echo $dropdown; ?> +</p> diff --git a/views/default/widgets/control_panel/content.php b/views/default/widgets/control_panel/content.php new file mode 100644 index 000000000..a348d612f --- /dev/null +++ b/views/default/widgets/control_panel/content.php @@ -0,0 +1,38 @@ +<?php +/** + * Admin control panel widget + */ + +elgg_register_menu_item('admin_control_panel', array( + 'name' => 'flush', + 'text' => elgg_echo('admin:cache:flush'), + 'href' => 'action/admin/site/flush_cache', + 'is_action' => true, + 'link_class' => 'elgg-button elgg-button-action', +)); + +// @todo Move in this in ElggUpgradeManager::isLocked() when #4682 fixed +$is_locked = _elgg_upgrade_is_locked(); + +if (!$is_locked) { + elgg_register_menu_item('admin_control_panel', array( + 'name' => 'upgrade', + 'text' => elgg_echo('upgrade'), + 'href' => 'upgrade.php', + 'link_class' => 'elgg-button elgg-button-action', + )); +} else { + elgg_register_menu_item('admin_control_panel', array( + 'name' => 'unlock_upgrade', + 'text' => elgg_echo('upgrade:unlock'), + 'href' => 'action/admin/site/unlock_upgrade', + 'is_action' => true, + 'link_class' => 'elgg-button elgg-button-action', + 'confirm' => elgg_echo('upgrade:unlock:confirm'), + )); +} + +echo elgg_view_menu('admin_control_panel', array( + 'class' => 'elgg-menu-hz', + 'item_class' => 'mrm', +)); diff --git a/views/default/widgets/friends/content.php b/views/default/widgets/friends/content.php new file mode 100644 index 000000000..98814c244 --- /dev/null +++ b/views/default/widgets/friends/content.php @@ -0,0 +1,25 @@ +<?php +/** + * Friend widget display view + * + */ + +// owner of the widget +$owner = $vars['entity']->getOwnerEntity(); + +// the number of friends to display +$num = (int) $vars['entity']->num_display; + +// get the correct size +$size = $vars['entity']->icon_size; + +if (elgg_instanceof($owner, 'user')) { + $html = $owner->listFriends('', $num, array( + 'size' => $size, + 'list_type' => 'gallery', + 'pagination' => false + )); + if ($html) { + echo $html; + } +} diff --git a/views/default/widgets/friends/edit.php b/views/default/widgets/friends/edit.php new file mode 100644 index 000000000..c7e6b06ff --- /dev/null +++ b/views/default/widgets/friends/edit.php @@ -0,0 +1,52 @@ +<?php +/** + * Friend widget options + * + */ + +// set default value for display number +if (!isset($vars['entity']->num_display)) { + $vars['entity']->num_display = 12; +} + +$params = array( + 'name' => 'params[num_display]', + 'value' => $vars['entity']->num_display, + 'options' => array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 12, 15, 20, 30, 50, 100), +); +$display_dropdown = elgg_view('input/dropdown', $params); + + +// handle upgrade to 1.7.2 from previous versions +if ($vars['entity']->icon_size == 1) { + $vars['entity']->icon_size = 'small'; +} elseif ($vars['entity']->icon_size == 2) { + $vars['entity']->icon_size = 'tiny'; +} + +// set default value for icon size +if (!isset($vars['entity']->icon_size)) { + $vars['entity']->icon_size = 'small'; +} + +$params = array( + 'name' => 'params[icon_size]', + 'value' => $vars['entity']->icon_size, + 'options_values' => array( + 'small' => elgg_echo('friends:small'), + 'tiny' => elgg_echo('friends:tiny'), + ), +); +$size_dropdown = elgg_view('input/dropdown', $params); + + +?> +<p> + <?php echo elgg_echo('friends:num_display'); ?>: + <?php echo $display_dropdown; ?> +</p> + +<p> + <?php echo elgg_echo('friends:icon_size'); ?>: + <?php echo $size_dropdown; ?> +</p> diff --git a/views/default/widgets/new_users/content.php b/views/default/widgets/new_users/content.php new file mode 100644 index 000000000..ba85e7421 --- /dev/null +++ b/views/default/widgets/new_users/content.php @@ -0,0 +1,11 @@ +<?php +/** + * New users admin widget + */ + +echo elgg_list_entities(array( + 'type' => 'user', + 'subtype'=> null, + 'full_view' => false, + 'pagination' => false, +));
\ No newline at end of file diff --git a/views/default/widgets/new_users/edit.php b/views/default/widgets/new_users/edit.php new file mode 100644 index 000000000..ed07213cb --- /dev/null +++ b/views/default/widgets/new_users/edit.php @@ -0,0 +1,23 @@ +<?php +/** + * New users widget edit view + */ + + +// set default value +if (!isset($vars['entity']->num_display)) { + $vars['entity']->num_display = 5; +} + +$params = array( + 'name' => 'params[num_display]', + 'value' => $vars['entity']->num_display, + 'options' => array(5, 8, 10, 12, 15, 20), +); +$dropdown = elgg_view('input/dropdown', $params); + +?> +<p> + <?php echo elgg_echo('widget:numbertodisplay'); ?>: + <?php echo $dropdown; ?> +</p> diff --git a/views/default/widgets/online_users/content.php b/views/default/widgets/online_users/content.php new file mode 100644 index 000000000..6e0cc7abb --- /dev/null +++ b/views/default/widgets/online_users/content.php @@ -0,0 +1,15 @@ +<?php +/** + * Online users widget + */ + +$count = find_active_users(600, 10, 0, true); +$objects = find_active_users(600, 10); + +if ($objects) { + echo elgg_view_entity_list($objects, array( + 'count' => $count, + 'limit' => 10, + 'pagination' => false, + )); +} diff --git a/views/default/widgets/online_users/edit.php b/views/default/widgets/online_users/edit.php new file mode 100644 index 000000000..66f03a745 --- /dev/null +++ b/views/default/widgets/online_users/edit.php @@ -0,0 +1,22 @@ +<?php +/** + * Online users widget edit view + */ + +// set default value +if (!isset($vars['entity']->num_display)) { + $vars['entity']->num_display = 8; +} + +$params = array( + 'name' => 'params[num_display]', + 'value' => $vars['entity']->num_display, + 'options' => array(5, 8, 10, 12, 15, 20), +); +$dropdown = elgg_view('input/dropdown', $params); + +?> +<p> + <?php echo elgg_echo('widget:numbertodisplay'); ?>: + <?php echo $dropdown; ?> +</p> diff --git a/views/default/widgets/river_widget/content.php b/views/default/widgets/river_widget/content.php new file mode 100644 index 000000000..867fc9db6 --- /dev/null +++ b/views/default/widgets/river_widget/content.php @@ -0,0 +1,27 @@ +<?php +/** + * Activity widget content view + */ + +$num = (int) $vars['entity']->num_display; + +$options = array( + 'limit' => $num, + 'pagination' => false, +); + +if (elgg_in_context('dashboard')) { + if ($vars['entity']->content_type == 'friends') { + $options['relationship_guid'] = elgg_get_page_owner_guid(); + $options['relationship'] = 'friend'; + } +} else { + $options['subject_guid'] = elgg_get_page_owner_guid(); +} + +$content = elgg_list_river($options); +if (!$content) { + $content = elgg_echo('river:none'); +} + +echo $content; diff --git a/views/default/widgets/river_widget/edit.php b/views/default/widgets/river_widget/edit.php new file mode 100644 index 000000000..228212e47 --- /dev/null +++ b/views/default/widgets/river_widget/edit.php @@ -0,0 +1,58 @@ +<?php +/** + * Edit settings for river widget + */ + +// dashboard widget has type parameter +if (elgg_in_context('dashboard')) { + if (!isset($vars['entity']->content_type)) { + $vars['entity']->content_type = 'friends'; + } + $params = array( + 'name' => 'params[content_type]', + 'value' => $vars['entity']->content_type, + 'options_values' => array( + 'friends' => elgg_echo('river:widgets:friends'), + 'all' => elgg_echo('river:widgets:all'), + ), + ); + $type_dropdown = elgg_view('input/dropdown', $params); + ?> + <div> + <?php echo elgg_echo('river:widget:type'); ?>: + <?php echo $type_dropdown; ?> + </div> + <?php +} + + +// set default value for number to display +if (!isset($vars['entity']->num_display)) { + $vars['entity']->num_display = 8; +} + +$params = array( + 'name' => 'params[num_display]', + 'value' => $vars['entity']->num_display, + 'options' => array(5, 8, 10, 12, 15, 20), +); +$num_dropdown = elgg_view('input/dropdown', $params); + +?> +<div> + <?php echo elgg_echo('widget:numbertodisplay'); ?>: + <?php echo $num_dropdown; ?> +</div> + +<?php +// pass the context so we have the correct output upon save. +if (elgg_in_context('dashboard')) { + $context = 'dashboard'; +} else { + $context = 'profile'; +} + +echo elgg_view('input/hidden', array( + 'name' => 'context', + 'value' => $context +));
\ No newline at end of file diff --git a/views/failsafe/messages/exceptions/admin_exception.php b/views/failsafe/messages/exceptions/admin_exception.php new file mode 100644 index 000000000..57665d9c0 --- /dev/null +++ b/views/failsafe/messages/exceptions/admin_exception.php @@ -0,0 +1,30 @@ +<?php +/** + * Elgg exception (failsafe mode) + * Displays a single exception + * + * @package Elgg + * @subpackage Core + * + * @uses $vars['object'] An exception + */ + +?> + +<p class="elgg-messages-exception"> + <span title="<?php echo get_class($vars['object']); ?>"> + <?php + + echo nl2br($vars['object']->getMessage()); + + ?> + </span> +</p> + +<p class="elgg-messages-exception"> + <?php + + echo nl2br(htmlentities(print_r($vars['object'], true), ENT_QUOTES, 'UTF-8')); + + ?> +</p>
\ No newline at end of file diff --git a/views/failsafe/messages/exceptions/exception.php b/views/failsafe/messages/exceptions/exception.php new file mode 100644 index 000000000..1873ca0d9 --- /dev/null +++ b/views/failsafe/messages/exceptions/exception.php @@ -0,0 +1,20 @@ +<?php +/** + * Elgg exception (failsafe mode) + * Displays a single exception + * + * @package Elgg + * @subpackage Core + * + * @uses $vars['object'] An exception + */ + +?> + +<p class="elgg-messages-exception"> + <span title="Unrecoverable Error"> + <?php echo elgg_echo('exception:contact_admin'); ?> + <br /><br /> + Exception #<?php echo $vars['ts']; ?>. + </span> +</p> diff --git a/views/failsafe/page/default.php b/views/failsafe/page/default.php new file mode 100644 index 000000000..6d628ebbb --- /dev/null +++ b/views/failsafe/page/default.php @@ -0,0 +1,60 @@ +<?php +/** + * Elgg failsafe pageshell + * Special viewtype for rendering exceptions. Includes minimal code so as not to + * create a "Exception thrown without a stack frame in Unknown on line 0" error + * + * @package Elgg + * @subpackage Core + * + * @uses $vars['title'] The page title + * @uses $vars['body'] The main content of the page + */ + +// we won't trust server configuration but specify utf-8 +header('Content-type: text/html; charset=utf-8'); + +?> +<html> + <head> + <title><?php echo $vars['title']; ?></title> + <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> + + <style type="text/css"> + + body { + text-align:left; + margin:0; + padding:0; + background: #4690d6; + font: 80%/1.5 "Lucida Grande", Verdana, sans-serif; + color: #333333; + } + p { + margin: 0px 0px 15px 0; + } + #elgg-wrapper { + background:white; + width:570px; + margin:auto; + padding:10px 40px; + margin-bottom:40px; + margin-top:20px; + border-right: 1px solid #666666; + border-bottom: 1px solid #666666; + } + .elgg-messages-exception { + background:#FDFFC3; + display:block; + padding:10px; + } + </style> + + </head> + <body> + <div id="elgg-wrapper"> + <h1><?php echo $vars['title']; ?></h1> + <?php echo $vars['body']; ?> + </div> + </body> +</html> diff --git a/views/foaf/page/default.php b/views/foaf/page/default.php new file mode 100644 index 000000000..fad46ed35 --- /dev/null +++ b/views/foaf/page/default.php @@ -0,0 +1,47 @@ +<?php +/** + * FOAF pageshell + * + * @package Elgg + * @subpackage Core + * + * // @todo removed below because blog is a plugin + * <foaf:weblog rdf:resource="<?php echo elgg_get_site_url(); ?>blog/<?php echo $owner->username; ?>" /> + */ + +header("Content-Type: text/xml"); +// echo $vars['body']; + +echo "<?xml version='1.0'?>\n"; + +if (!$owner = elgg_get_page_owner_entity()) { + if (!elgg_is_logged_in()) { + exit; + } else { + $owner = elgg_get_logged_in_user_entity(); + } +} + +?> +<rdf:RDF + xml:lang="en" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#" + xmlns:foaf="http://xmlns.com/foaf/0.1/" + xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> + + <rdf:Description rdf:about=""> + <rdf:type rdf:resource="http://xmlns.com/foaf/0.1/PersonalProfileDocument"/> + <foaf:maker rdf:resource="#me"/> + <foaf:primaryTopic rdf:resource="#me"/> + </rdf:Description> + + <foaf:Person rdf:about="#me"> + <foaf:nick><?php echo $owner->username; ?></foaf:nick> + <foaf:name><?php echo $owner->name; ?></foaf:name> + <foaf:homepage rdf:resource="<?php echo $owner->getURL(); ?>" /> + <foaf:depiction rdf:resource="<?php echo elgg_format_url($owner->getIconURL('large')); ?>" /> +<?php echo $vars['body']; ?> + </foaf:Person> +</rdf:RDF> diff --git a/views/foaf/user/default.php b/views/foaf/user/default.php new file mode 100644 index 000000000..dcba55562 --- /dev/null +++ b/views/foaf/user/default.php @@ -0,0 +1,23 @@ +<?php +/** + * Elgg default user view + * + * @package Elgg + * @subpackage Core + */ + +// @todo update when get_user_friends is deprecated in 1.9 +$friends = get_user_friends(elgg_get_page_owner_guid(), $subtype = "", $limit = 10000, $offset = 0); + +foreach ($friends as $friend) { +?> + +<foaf:knows> +<foaf:Person> + <foaf:nick><?php echo $friend->username; ?></foaf:nick> + <foaf:name><?php echo $friend->name; ?></foaf:name> + <rdfs:seeAlso rdf:resource="<?php echo $friend->getURL() . "?view=foaf" ?>" /> +</foaf:Person> +</foaf:knows> + +<?php } ?> diff --git a/views/ical/export/entity.php b/views/ical/export/entity.php new file mode 100644 index 000000000..eaa3b56d8 --- /dev/null +++ b/views/ical/export/entity.php @@ -0,0 +1,33 @@ +<?php +/** + * Elgg ICAL output of default object. + * + * @package Elgg + * @subpackage Core + * + */ + +$entity = $vars['entity']; + +if ($entity instanceof Notable && + $entity->getCalendarStartTime() && + $entity->getCalendarEndTime()) { + + $timestamp = date("Ymd\THis\Z", $entity->getTimeCreated()); + $start = date("Ymd\THis\Z", $entity->getCalendarStartTime()); + $end = date("Ymd\THis\Z", $entity->getCalendarEndTime()); + $summary = $entity->title; + $modified = date("Ymd\THis\Z", $entity->getTimeUpdated()); + + echo <<< ICAL +BEGIN:VEVENT +DTSTAMP:$timestamp +DTSTART:$start +DTEND:$end +SUMMARY:$summary +LAST-MODIFIED:$modified +END:VEVENT + +ICAL; + +} diff --git a/views/ical/object/default.php b/views/ical/object/default.php new file mode 100644 index 000000000..77183bb8a --- /dev/null +++ b/views/ical/object/default.php @@ -0,0 +1,10 @@ +<?php +/** + * Elgg ICAL output of default object. + * + * @package Elgg + * @subpackage Core + * + */ + +echo elgg_view('export/entity', $vars);
\ No newline at end of file diff --git a/views/ical/page/default.php b/views/ical/page/default.php new file mode 100644 index 000000000..01bd9e86e --- /dev/null +++ b/views/ical/page/default.php @@ -0,0 +1,19 @@ +<?php +/** + * Elgg ICAL output pageshell + * + * @package Elgg + * @subpackage Core + * + */ + +$site = elgg_get_site_entity(); + +header("Content-Type: text/calendar"); + +?> +BEGIN:VCALENDAR +VERSION:2.0 +PRODID:-//Elgg//NONSGML <?php echo $site->name; ?>//EN +<?php echo $vars['body']; ?> +END:VCALENDAR diff --git a/views/installation/forms/install/template.php b/views/installation/forms/install/template.php new file mode 100644 index 000000000..a01914f12 --- /dev/null +++ b/views/installation/forms/install/template.php @@ -0,0 +1,30 @@ +<?php +/** + * Generic form template for install forms + * + * @uses $vars['variables'] + * @uses $vars['type'] Type of form: admin, database, settings + */ + +$variables = $vars['variables']; +$type = $vars['type']; + +$form_body = ''; +foreach ($variables as $field => $params) { + $label = elgg_echo("install:$type:label:$field"); + $help = elgg_echo("install:$type:help:$field"); + $params['name'] = $field; + + $form_body .= '<div>'; + $form_body .= "<label>$label</label>"; + $form_body .= elgg_view("input/{$params['type']}", $params); + $form_body .= "<span class=\"install-help\">$help</span>"; + $form_body .= '</div>'; +} + +$submit_params = array( + 'value' => elgg_echo('install:next'), +); +$form_body .= elgg_view('input/submit', $submit_params); + +echo $form_body; diff --git a/views/installation/input/access.php b/views/installation/input/access.php new file mode 100644 index 000000000..c3d4713bc --- /dev/null +++ b/views/installation/input/access.php @@ -0,0 +1,38 @@ +<?php +/** + * Elgg access level input + * Displays a dropdown input field + * + * @uses $vars['value'] The current value, if any + * @uses $vars['name'] The name of the input field + * + */ + +$class = "elgg-input-access"; + +if ((!isset($vars['options'])) || (!is_array($vars['options']))) { + $vars['options'] = array(); + $vars['options'] = get_write_access_array(); +} + +if (is_array($vars['options']) && sizeof($vars['options']) > 0) { + + ?> + + <select name="<?php echo $vars['name']; ?>" class="<?php echo $class; ?>"> + <?php + + foreach($vars['options'] as $key => $option) { + if ($key != $vars['value']) { + echo "<option value=\"{$key}\">{$option}</option>"; + } else { + echo "<option value=\"{$key}\" selected=\"selected\">{$option}</option>"; + } + } + + ?> + </select> + + <?php + +} diff --git a/views/installation/input/button.php b/views/installation/input/button.php new file mode 100644 index 000000000..ec90fed9d --- /dev/null +++ b/views/installation/input/button.php @@ -0,0 +1,40 @@ +<?php +/** + * Create a input button + * + * @uses $vars['value'] The current value, if any + * @uses $vars['name'] The name of the input field + * @uses $vars['type'] submit or button. + */ + +if (isset($vars['class'])) { + $class = $vars['class']; +} else { + $class = "elgg-button-submit"; +} + +if (isset($vars['name'])) { + $name = $vars['name']; +} else { + $name = ''; +} + +if (isset($vars['type'])) { + $type = strtolower($vars['type']); +} else { + $type = 'submit'; +} + +switch ($type) { + case 'button' : + $type='button'; + break; + case 'submit': + default: + $type = 'submit'; +} + +$value = htmlentities($vars['value'], ENT_QUOTES, 'UTF-8'); + +?> +<input type="<?php echo $type; ?>" value="<?php echo $value; ?>" class="<?php echo $class; ?>" />
\ No newline at end of file diff --git a/views/installation/input/checkbox.php b/views/installation/input/checkbox.php new file mode 100644 index 000000000..6fbe25169 --- /dev/null +++ b/views/installation/input/checkbox.php @@ -0,0 +1,24 @@ +<?php +/** + * Elgg checkbox input + * Displays a checkbox input tag + * + * @uses $var['name'] + * @uses $vars['value'] + * @uses $vars['class'] + */ + + +if (isset($vars['class'])) { + $id = "class=\"{$vars['class']}\""; +} else { + $id = ''; +} + +if (!isset($vars['value'])) { + $vars['value'] = $vars['name']; +} + +?> + +<input type="checkbox" <?php echo $class; ?> name="<?php echo $vars['name']; ?>" value="<?php echo $vars['value']; ?>" />
\ No newline at end of file diff --git a/views/installation/input/combo.php b/views/installation/input/combo.php new file mode 100644 index 000000000..508dbcd01 --- /dev/null +++ b/views/installation/input/combo.php @@ -0,0 +1,19 @@ +<?php +/** + * Combination of text box and check box. When the checkbox is checked, the + * text field is cleared and disabled. + * + */ + +$label = elgg_echo('install:label:combo:' . $vars['name']); + +$vars['class'] = "elgg-combo-text"; +echo elgg_view('input/text', $vars); + +$vars['class'] = "elgg-combo-checkbox"; +$vars['value'] = "{$vars['name']}-checkbox"; +echo elgg_view('input/checkbox', $vars); + +echo "<label class=\"elgg-combo-label\">$label</label>"; + +echo '<div class="clearfloat"></div>';
\ No newline at end of file diff --git a/views/installation/input/dropdown.php b/views/installation/input/dropdown.php new file mode 100644 index 000000000..cf875492e --- /dev/null +++ b/views/installation/input/dropdown.php @@ -0,0 +1,36 @@ +<?php +/** + * Elgg dropdown input + * Displays a dropdown input field + * + * @uses $vars['value'] The current value, if any + * @uses $vars['name'] The name of the input field + * @uses $vars['options'] An array of strings representing the options for the dropdown field + * @uses $vars['options_values'] An associative array of "value" => "option" where "value" is an internal name and "option" is + * the value displayed on the button. Replaces $vars['options'] when defined. + */ + +$class = "elgg-input-dropdown"; + +?> +<select name="<?php echo $vars['name']; ?>" class="<?php echo $class; ?>"> +<?php +if (isset($vars['options_values'])) { + foreach ($vars['options_values'] as $value => $option) { + if ($value != $vars['value']) { + echo "<option value=\"$value\">{$option}</option>"; + } else { + echo "<option value=\"$value\" selected=\"selected\">{$option}</option>"; + } + } +} else { + foreach ($vars['options'] as $option) { + if ($option != $vars['value']) { + echo "<option>{$option}</option>"; + } else { + echo "<option selected=\"selected\">{$option}</option>"; + } + } +} +?> +</select> diff --git a/views/installation/input/form.php b/views/installation/input/form.php new file mode 100644 index 000000000..3556413a8 --- /dev/null +++ b/views/installation/input/form.php @@ -0,0 +1,30 @@ +<?php +/** + * Create a form for data submission. + * + * @uses $vars['body'] The body of the form (made up of other input/xxx views and html + * @uses $vars['action'] URL of the action being called + * @uses $vars['method'] Method (default POST) + * @uses $vars['name'] Form name + */ + +if (isset($vars['name'])) { + $name = "name=\"{$vars['name']}\""; +} else { + $name = ''; +} + +$body = $vars['body']; +$action = $vars['action']; +if (isset($vars['method'])) { + $method = $vars['method']; +} else { + $method = 'POST'; +} + +$method = strtolower($method); + +?> +<form <?php echo $name; ?> action="<?php echo $action; ?>" method="<?php echo $method; ?>"> +<?php echo $body; ?> +</form>
\ No newline at end of file diff --git a/views/installation/input/password.php b/views/installation/input/password.php new file mode 100644 index 000000000..2265ab117 --- /dev/null +++ b/views/installation/input/password.php @@ -0,0 +1,17 @@ +<?php +/** + * Elgg password input + * Displays a password input field + * + * @uses $vars['value'] The current value, if any + * @uses $vars['name'] The name of the input field + * + */ + +$class = "input-password"; + +$value = htmlentities($vars['value'], ENT_QUOTES, 'UTF-8'); + +?> + +<input type="password" name="<?php echo $vars['name']; ?>" value="<?php echo $value; ?>" class="<?php echo $class; ?>" /> diff --git a/views/installation/input/submit.php b/views/installation/input/submit.php new file mode 100644 index 000000000..5d891c380 --- /dev/null +++ b/views/installation/input/submit.php @@ -0,0 +1,11 @@ +<?php +/** + * Create a submit input button + * + * @uses $vars['value'] The current value, if any + * @uses $vars['name'] The name of the input field + */ + +$vars['type'] = 'submit'; + +echo elgg_view('input/button', $vars);
\ No newline at end of file diff --git a/views/installation/input/text.php b/views/installation/input/text.php new file mode 100644 index 000000000..375b91c44 --- /dev/null +++ b/views/installation/input/text.php @@ -0,0 +1,20 @@ +<?php +/** + * Elgg text input + * Displays a text input field + * + * @uses $vars['value'] The current value, if any + * @uses $vars['name'] The name of the input field + * @uses $vars['class'] CSS class + */ + +if (isset($vars['class'])) { + $class = "class=\"{$vars['class']}\""; +} else { + $class = "elgg-input-text"; +} + +$value = htmlentities($vars['value'], ENT_QUOTES, 'UTF-8'); + +?> +<input type="text" name="<?php echo $vars['name']; ?>" value="<?php echo $value; ?>" <?php echo $class; ?> />
\ No newline at end of file diff --git a/views/installation/install/js_rewrite_check.php b/views/installation/install/js_rewrite_check.php new file mode 100644 index 000000000..04d81171d --- /dev/null +++ b/views/installation/install/js_rewrite_check.php @@ -0,0 +1,12 @@ +<?php +/** + * Some servers don't allow PHP to check the rewrite, so try via AJAX + */ +?> +<script type="text/javascript"> + elgg.installer.rewriteTest( + '<?php echo $vars['url'];?>', + '<?php echo elgg_echo('install:check:rewrite:success'); ?>', + '<?php echo $vars['config']->wwwroot; ?>install.php?step=database' + ); +</script>
\ No newline at end of file diff --git a/views/installation/install/nav.php b/views/installation/install/nav.php new file mode 100644 index 000000000..c150cb2cb --- /dev/null +++ b/views/installation/install/nav.php @@ -0,0 +1,35 @@ +<?php +/** + * Navigation for installation pages + * + * @uses $vars['url'] base url of site + * @uses $vars['next_step'] next step as string + * @uses $vars['refresh'] should refresh button be shown? + * @uses $vars['advance'] should the next button be active? + */ + + +// has a refresh button been requested +$refresh = ''; +if (isset($vars['refresh']) && $vars['refresh']) { + $refresh_text = elgg_echo('install:refresh'); + $refresh = "<a href=\"\">$refresh_text</a>"; +} + +// create next button and selectively disable +$next_text = elgg_echo('install:next'); +$next_link = elgg_get_site_url()."install.php?step={$vars['next_step']}"; +$next = "<a href=\"$next_link\">$next_text</a>"; +if (isset($vars['advance']) && !$vars['advance']) { + // disable the next button + $next = "<a class=\"elgg-state-disabled\">$next_text</a>"; +} + + +echo <<<___END +<div class="elgg-install-nav"> + $next + $refresh +</div> + +___END; diff --git a/views/installation/install/pages/admin.php b/views/installation/install/pages/admin.php new file mode 100644 index 000000000..e810aa701 --- /dev/null +++ b/views/installation/install/pages/admin.php @@ -0,0 +1,17 @@ +<?php +/** + * Install create admin account page + */ + +echo elgg_autop(elgg_echo('install:admin:instructions')); + +$vars['type'] = 'admin'; + +$url = current_page_url(); + +$form_vars = array( + 'action' => $url, + 'disable_security' => TRUE, +); + +echo elgg_view_form('install/template', $form_vars, $vars); diff --git a/views/installation/install/pages/complete.php b/views/installation/install/pages/complete.php new file mode 100644 index 000000000..80f8e7434 --- /dev/null +++ b/views/installation/install/pages/complete.php @@ -0,0 +1,16 @@ +<?php +/** + * Install completion page + */ + +echo elgg_autop(elgg_echo('install:complete:instructions')); + +?> + +<div class="elgg-install-nav"> +<?php + $url = elgg_get_site_url() . $vars['destination']; + $text = elgg_echo('install:complete:gotosite'); + echo "<a href=\"$url\">$text</a>"; +?> +</div> diff --git a/views/installation/install/pages/database.php b/views/installation/install/pages/database.php new file mode 100644 index 000000000..d24b4f57b --- /dev/null +++ b/views/installation/install/pages/database.php @@ -0,0 +1,26 @@ +<?php +/** + * Install database page + * + * @uses $vars['failure'] Settings file exists but something went wrong + */ + +if (isset($vars['failure']) && $vars['failure']) { + echo elgg_autop(elgg_echo('install:database:error')); + $vars['refresh'] = TRUE; + $vars['advance'] = FALSE; + echo elgg_view('install/nav', $vars); +} else { + echo elgg_autop(elgg_echo('install:database:instructions')); + + $vars['type'] = 'database'; + + $url = current_page_url(); + + $form_vars = array( + 'action' => $url, + 'disable_security' => TRUE, + ); + + echo elgg_view_form('install/template', $form_vars, $vars); +}
\ No newline at end of file diff --git a/views/installation/install/pages/requirements.php b/views/installation/install/pages/requirements.php new file mode 100644 index 000000000..3f0941c95 --- /dev/null +++ b/views/installation/install/pages/requirements.php @@ -0,0 +1,39 @@ +<?php +/** + * Install requirements checking page + * + * @uses $vars['num_failures] Number of requirements failures + * @uses $vars['num_warnings] Number of recommendation warnings + */ + +if ($vars['num_failures'] != 0) { + $instruct_text = elgg_echo('install:requirements:instructions:failure'); +} elseif ($vars['num_warnings'] != 0) { + $instruct_text = elgg_echo('install:requirements:instructions:warning'); +} else { + $instruct_text = elgg_echo('install:requirements:instructions:success'); +} + +echo elgg_autop($instruct_text); + +$report = $vars['report']; +foreach ($report as $category => $checks) { + $title = elgg_echo("install:require:$category"); + echo "<h3>$title</h3>"; + echo "<ul class=\"elgg-require-$category\">"; + foreach ($checks as $check) { + echo "<li class=\"{$check['severity']}\">"; + echo elgg_autop($check['message']); + echo "</li>"; + } + echo "</ul>"; +} + +$vars['refresh'] = true; + +// cannot advance to next step with a failure +if ($vars['num_failures'] != 0) { + $vars['advance'] = false; +} + +echo elgg_view('install/nav', $vars); diff --git a/views/installation/install/pages/settings.php b/views/installation/install/pages/settings.php new file mode 100644 index 000000000..04f23c0ea --- /dev/null +++ b/views/installation/install/pages/settings.php @@ -0,0 +1,14 @@ +<?php + +echo elgg_autop(elgg_echo('install:settings:instructions')); + +$vars['type'] = 'settings'; + +$url = current_page_url(); + +$form_vars = array( + 'action' => $url, + 'disable_security' => TRUE, +); + +echo elgg_view_form('install/template', $form_vars, $vars); diff --git a/views/installation/install/pages/welcome.php b/views/installation/install/pages/welcome.php new file mode 100644 index 000000000..f370c15f3 --- /dev/null +++ b/views/installation/install/pages/welcome.php @@ -0,0 +1,8 @@ +<?php +/** + * Install welcome page + */ + +echo elgg_autop(elgg_echo('install:welcome:instructions')); + +echo elgg_view('install/nav', $vars); diff --git a/views/installation/page/default.php b/views/installation/page/default.php new file mode 100644 index 000000000..662e8206e --- /dev/null +++ b/views/installation/page/default.php @@ -0,0 +1,57 @@ +<?php +/** + * Elgg install pageshell + * + * @package Elgg + * @subpackage Core + * + * @uses $vars['title'] The page title + * @uses $vars['body'] The main content of the page + * @uses $vars['sysmessages'] Array of system status messages + */ + +$title = elgg_echo('install:title'); +$title .= " : {$vars['title']}"; + +// we won't trust server configuration but specify utf-8 +header('Content-type: text/html; charset=utf-8'); + +// turn off browser caching +header('Pragma: public', TRUE); +header("Cache-Control: no-cache, must-revalidate", TRUE); +header('Expires: Fri, 05 Feb 1982 00:00:00 -0500', TRUE); + +?> +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> + <head> + <title><?php echo $title; ?></title> + <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> + <link rel="SHORTCUT ICON" href="<?php echo elgg_get_site_url(); ?>_graphics/favicon.ico" /> + <link rel="stylesheet" href="<?php echo elgg_get_site_url(); ?>install/css/install.css" type="text/css" /> + <script type="text/javascript" src="<?php echo elgg_get_site_url(); ?>vendors/jquery/jquery-1.6.4.min.js"></script> + <script type="text/javascript" src="<?php echo elgg_get_site_url(); ?>install/js/install.js"></script> + </head> + <body> + <div class="elgg-page"> + <div class="elgg-page-header"> + <?php echo elgg_view('page/elements/header', $vars); ?> + </div> + <div class="elgg-page-body"> + <div class="elgg-layout"> + <div class="elgg-sidebar"> + <?php echo elgg_view('page/elements/sidebar', $vars); ?> + </div> + <div class="elgg-body"> + <h2><?php echo $vars['title']; ?></h2> + <?php echo elgg_view('page/elements/messages', array('object' => $vars['sysmessages'])); ?> + <?php echo $vars['body']; ?> + </div> + </div> + </div> + <div class="elgg-page-footer"> + <?php echo elgg_view('page/elements/footer'); ?> + </div> + </div> + </body> +</html> diff --git a/views/installation/page/elements/footer.php b/views/installation/page/elements/footer.php new file mode 100644 index 000000000..d6a755fba --- /dev/null +++ b/views/installation/page/elements/footer.php @@ -0,0 +1,10 @@ +<?php +/** + * Install footer - offers help links + */ +?> +<ul> + <li><a href="http://docs.elgg.org/wiki/Installation" target="_blank">Install instructions</a></li> + <li><a href="http://docs.elgg.org/wiki/Install_Troubleshooting" target="_blank">Install troubleshooting</a></li> + <li><a href="http://community.elgg.org/pg/groups/world" target="_blank">Elgg community forums</a></li> +</ul>
\ No newline at end of file diff --git a/views/installation/page/elements/header.php b/views/installation/page/elements/header.php new file mode 100644 index 000000000..8c18dbffd --- /dev/null +++ b/views/installation/page/elements/header.php @@ -0,0 +1,8 @@ +<?php +/** + * Install header + */ + +$url = elgg_get_site_url()."_graphics/elgg_logo.png"; +?> +<img src="<?php echo $url; ?>" alt="Elgg" /> diff --git a/views/installation/page/elements/messages.php b/views/installation/page/elements/messages.php new file mode 100644 index 000000000..46261dca4 --- /dev/null +++ b/views/installation/page/elements/messages.php @@ -0,0 +1,21 @@ +<?php +/** + * Lists all system messages + * + * @uses $vars['object'] The array of message registers + */ + +if (isset($vars['object']) && is_array($vars['object']) && sizeof($vars['object']) > 0) { + + echo '<ul class="elgg-system-messages">'; + + foreach ($vars['object'] as $type => $list ) { + foreach ($list as $message) { + echo "<li class=\"elgg-state-$type\">"; + echo elgg_autop($message); + echo '</li>'; + } + } + + echo '</ul>'; +} diff --git a/views/installation/page/elements/sidebar.php b/views/installation/page/elements/sidebar.php new file mode 100644 index 000000000..8136cd898 --- /dev/null +++ b/views/installation/page/elements/sidebar.php @@ -0,0 +1,26 @@ +<?php +/** + * Install sidebar + * + * @uses $vars['step'] Current step + * @uses $vars['steps'] Array of steps + */ + +$current_step = $vars['step']; +$steps = $vars['steps']; + +$current_step_index = array_search($current_step, $steps); + +echo '<ol>'; +foreach ($steps as $index => $step) { + if ($index < $current_step_index) { + $class = 'past'; + } elseif ($index == $current_step_index) { + $class = 'present'; + } else { + $class = 'future'; + } + $text = elgg_echo("install:$step"); + echo "<li class=\"$class\">$text</li>"; +} +echo '</ol>'; diff --git a/views/json/api/output.php b/views/json/api/output.php new file mode 100644 index 000000000..adeb7cc75 --- /dev/null +++ b/views/json/api/output.php @@ -0,0 +1,17 @@ +<?php +/** + * Elgg JSON output + * This outputs the api results as JSON + * + * @package Elgg + * @subpackage Core + */ + +$result = $vars['result']; +$export = $result->export(); + +global $jsonexport; + +// with api calls, we don't want extra baggage found in other json views +// so we skip the associative array +$jsonexport = $export;
\ No newline at end of file diff --git a/views/json/export/entity.php b/views/json/export/entity.php new file mode 100644 index 000000000..36af5eaef --- /dev/null +++ b/views/json/export/entity.php @@ -0,0 +1,25 @@ +<?php +/** + * Elgg Entity export. + * Displays an entity as JSON + * + * @package Elgg + * @subpackage Core + */ + +$entity = $vars['entity']; + +$export = new stdClass; +$exportable_values = $entity->getExportableValues(); + +foreach ($exportable_values as $v) { + $export->$v = $entity->$v; +} + +$export->url = $entity->getURL(); + +global $jsonexport; +$jsonexport[$entity->getType()][$entity->getSubtype()][] = $export; + +// @todo hack to fix #4504 +echo "Fix for bug #4504"; diff --git a/views/json/export/metadata.php b/views/json/export/metadata.php new file mode 100644 index 000000000..e1e6ceb26 --- /dev/null +++ b/views/json/export/metadata.php @@ -0,0 +1,21 @@ +<?php +/** + * Elgg metadata export. + * Displays a metadata item using json + * + * @package Elgg + * @subpackage Core + */ + +$m = $vars['metadata']; + +$export = new stdClass; +$exportable_values = $entity->getExportableValues(); + +foreach ($exportable_values as $v) { + $export->$v = $m->$v; +} + +global $jsonexport; +$jsonexport['metadata'][] = $entity; +// echo json_encode($export);
\ No newline at end of file diff --git a/views/json/export/relationship.php b/views/json/export/relationship.php new file mode 100644 index 000000000..47b3a390d --- /dev/null +++ b/views/json/export/relationship.php @@ -0,0 +1,21 @@ +<?php +/** + * Elgg relationship export. + * Displays a relationship using JSON. + * + * @package Elgg + * @subpackage Core + */ + +$r = $vars['relationship']; + +$export = new stdClass; + +$exportable_values = $entity->getExportableValues(); + +foreach ($exportable_values as $v) { + $export->$v = $r->$v; +} + +global $jsonexport; +$jsonexport['relationships'][] = $export;
\ No newline at end of file diff --git a/views/json/group/default.php b/views/json/group/default.php new file mode 100644 index 000000000..dd190d402 --- /dev/null +++ b/views/json/group/default.php @@ -0,0 +1,9 @@ +<?php +/** + * JSON group view + * + * @package Elgg + * @subpackage Core + */ + +echo elgg_view('export/entity', $vars); diff --git a/views/json/messages/exceptions/exception.php b/views/json/messages/exceptions/exception.php new file mode 100644 index 000000000..4f73212bc --- /dev/null +++ b/views/json/messages/exceptions/exception.php @@ -0,0 +1,15 @@ +<?php +/** + * Elgg exception + * Displays a single exception + * + * @package Elgg + * @subpackage Core + * + * @uses $vars['object'] An exception + */ + +$export = $vars['object']; + +global $jsonexport; +$jsonexport['exceptions'][] = $export;
\ No newline at end of file diff --git a/views/json/object/default.php b/views/json/object/default.php new file mode 100644 index 000000000..8b88b3010 --- /dev/null +++ b/views/json/object/default.php @@ -0,0 +1,9 @@ +<?php +/** + * JSON object view + * + * @package Elgg + * @subpackage Core + */ + +echo elgg_view('export/entity', $vars); diff --git a/views/json/page/components/list.php b/views/json/page/components/list.php new file mode 100644 index 000000000..5de4f1f59 --- /dev/null +++ b/views/json/page/components/list.php @@ -0,0 +1,14 @@ +<?php +/** + * JSON list view + * + * @uses $vars['items'] + */ + +$items = $vars['items']; + +if (is_array($items) && sizeof($items) > 0) { + foreach ($items as $item) { + elgg_view_list_item($item, $vars); + } +}
\ No newline at end of file diff --git a/views/json/page/default.php b/views/json/page/default.php new file mode 100644 index 000000000..2d0403e11 --- /dev/null +++ b/views/json/page/default.php @@ -0,0 +1,13 @@ +<?php +/** + * Elgg JSON output pageshell + * + * @package Elgg + * @subpackage Core + * + */ + +header("Content-Type: application/json"); + +global $jsonexport; +echo json_encode($jsonexport);
\ No newline at end of file diff --git a/views/json/river/item.php b/views/json/river/item.php new file mode 100644 index 000000000..64677817f --- /dev/null +++ b/views/json/river/item.php @@ -0,0 +1,19 @@ +<?php +/** + * JSON river item view + * + * @uses $vars['item'] + */ + +global $jsonexport; + +if (!isset($jsonexport['activity'])) { + $jsonexport['activity'] = array(); +} + +$item = $vars['item']; +if (elgg_view_exists($item->view, 'default')) { + $item->string = elgg_view('river/elements/summary', array('item' => $item), FALSE, FALSE, 'default'); +} + +$jsonexport['activity'][] = $vars['item']; diff --git a/views/json/site/default.php b/views/json/site/default.php new file mode 100644 index 000000000..ee4eda489 --- /dev/null +++ b/views/json/site/default.php @@ -0,0 +1,9 @@ +<?php +/** + * JSON site view + * + * @package Elgg + * @subpackage Core + */ + +echo elgg_view('export/entity', $vars); diff --git a/views/json/user/default.php b/views/json/user/default.php new file mode 100644 index 000000000..4d44692c9 --- /dev/null +++ b/views/json/user/default.php @@ -0,0 +1,9 @@ +<?php +/** + * JSON user view + * + * @package Elgg + * @subpackage Core + */ + +echo elgg_view('export/entity', $vars); diff --git a/views/opendd/export/entity.php b/views/opendd/export/entity.php new file mode 100644 index 000000000..aaaf6bb8d --- /dev/null +++ b/views/opendd/export/entity.php @@ -0,0 +1,14 @@ +<?php +/** + * Elgg Entity export. + * Displays an entity as ODD + * + * @package Elgg + * @subpackage Core + */ + +$entity = $vars['entity']; +$serialised = exportAsArray($vars['entity']->guid); +foreach ($serialised as $s) { + echo $s; +}
\ No newline at end of file diff --git a/views/opendd/export/metadata.php b/views/opendd/export/metadata.php new file mode 100644 index 000000000..03a8e2b42 --- /dev/null +++ b/views/opendd/export/metadata.php @@ -0,0 +1,18 @@ +<?php +/** + * Elgg metadata export. + * Displays a metadata item using the current view. + * + * @package Elgg + * @subpackage Core + */ + +$m = $vars['metadata']; +$uuid = $vars['uuid']; + +//$odd = new ODDDocument(); +//$odd->addElement($m->export()); + +//echo $odd; + +echo $m->export();
\ No newline at end of file diff --git a/views/opendd/export/relationship.php b/views/opendd/export/relationship.php new file mode 100644 index 000000000..f4ab779c4 --- /dev/null +++ b/views/opendd/export/relationship.php @@ -0,0 +1,17 @@ +<?php +/** + * Elgg relationship export. + * Displays a relationship using ODD. + * + * @package Elgg + * @subpackage Core + */ + +$r = $vars['relationship']; + +//$odd = new ODDDocument(); +//$odd->addElement($r->export()); + +//echo $odd; + +echo $r->export(); diff --git a/views/opendd/group/default.php b/views/opendd/group/default.php new file mode 100644 index 000000000..6f6fc2b37 --- /dev/null +++ b/views/opendd/group/default.php @@ -0,0 +1,12 @@ +<?php +/** + * Elgg default object view + * + * @package Elgg + * @subpackage Core + */ + +$serialised = exportAsArray($vars['entity']->guid); +foreach ($serialised as $s) { + echo $s; +}
\ No newline at end of file diff --git a/views/opendd/messages/exceptions/exception.php b/views/opendd/messages/exceptions/exception.php new file mode 100644 index 000000000..dc0f48a8d --- /dev/null +++ b/views/opendd/messages/exceptions/exception.php @@ -0,0 +1,21 @@ +<?php +/** + * Elgg exception + * Displays a single exception + * + * @package Elgg + * @subpackage Core + * + * @uses $vars['object'] An exception + */ + +?> +<!-- +<?php echo get_class($vars['object']); ?>: <?php echo elgg_autop($vars['object']->getMessage()); ?> +<?php if (elgg_get_config('debug')) { ?> +<?php + echo print_r($vars['object'], true); +?> +<?php } ?> + +-->
\ No newline at end of file diff --git a/views/opendd/object/default.php b/views/opendd/object/default.php new file mode 100644 index 000000000..6f6fc2b37 --- /dev/null +++ b/views/opendd/object/default.php @@ -0,0 +1,12 @@ +<?php +/** + * Elgg default object view + * + * @package Elgg + * @subpackage Core + */ + +$serialised = exportAsArray($vars['entity']->guid); +foreach ($serialised as $s) { + echo $s; +}
\ No newline at end of file diff --git a/views/opendd/page/default.php b/views/opendd/page/default.php new file mode 100644 index 000000000..bdd59d45e --- /dev/null +++ b/views/opendd/page/default.php @@ -0,0 +1,16 @@ +<?php +/** + * Elgg XML output pageshell for ODD + * + * @package Elgg + * @subpackage Core + * + */ + +header("Content-Type: text/xml"); +?> +<odd> +<?php +echo $vars['body']; +?> +</odd>
\ No newline at end of file diff --git a/views/opendd/search/entity_list.php b/views/opendd/search/entity_list.php new file mode 100644 index 000000000..6b33cefde --- /dev/null +++ b/views/opendd/search/entity_list.php @@ -0,0 +1,11 @@ +<?php +/** + * @package Elgg + * @subpackage Core + */ +$entities = $vars['entities']; +if (is_array($entities) && sizeof($entities) > 0) { + foreach($entities as $entity) { + echo elgg_view_entity($entity); + } +}
\ No newline at end of file diff --git a/views/opendd/site/default.php b/views/opendd/site/default.php new file mode 100644 index 000000000..83f39eb67 --- /dev/null +++ b/views/opendd/site/default.php @@ -0,0 +1,13 @@ +<?php + +/** + * Elgg default object view + * + * @package Elgg + * @subpackage Core + */ + +$serialised = exportAsArray($vars['entity']->guid); +foreach ($serialised as $s) { + echo $s; +}
\ No newline at end of file diff --git a/views/opendd/user/default.php b/views/opendd/user/default.php new file mode 100644 index 000000000..6f6fc2b37 --- /dev/null +++ b/views/opendd/user/default.php @@ -0,0 +1,12 @@ +<?php +/** + * Elgg default object view + * + * @package Elgg + * @subpackage Core + */ + +$serialised = exportAsArray($vars['entity']->guid); +foreach ($serialised as $s) { + echo $s; +}
\ No newline at end of file diff --git a/views/php/api/output.php b/views/php/api/output.php new file mode 100644 index 000000000..14259564c --- /dev/null +++ b/views/php/api/output.php @@ -0,0 +1,13 @@ +<?php +/** + * Elgg PHP output + * This outputs the api results as serialized PHP + * + * @package Elgg + * @subpackage Core + */ + +$result = $vars['result']; +$export = $result->export(); + +echo serialize($export);
\ No newline at end of file diff --git a/views/php/export/entity.php b/views/php/export/entity.php new file mode 100644 index 000000000..d2bcc0d58 --- /dev/null +++ b/views/php/export/entity.php @@ -0,0 +1,19 @@ +<?php +/** + * Elgg Entity export. + * Displays an entity as PHP serialised data + * + * @package Elgg + * @subpackage Core + */ + +$entity = $vars['entity']; + +$export = new stdClass; +$exportable_values = $entity->getExportableValues(); + +foreach ($exportable_values as $v) { + $export->$v = $entity->$v; +} + +echo serialize($export); diff --git a/views/php/export/metadata.php b/views/php/export/metadata.php new file mode 100644 index 000000000..90f1daeb5 --- /dev/null +++ b/views/php/export/metadata.php @@ -0,0 +1,19 @@ +<?php +/** + * Elgg metadata export. + * Displays a metadata item using PHP serialised data + * + * @package Elgg + * @subpackage Core + */ + +$m = $vars['metadata']; + +$export = new stdClass; +$exportable_values = $m->getExportableValues(); + +foreach ($exportable_values as $v) { + $export->$v = $m->$v; +} + +echo serialize($export);
\ No newline at end of file diff --git a/views/php/export/relationship.php b/views/php/export/relationship.php new file mode 100644 index 000000000..691e63067 --- /dev/null +++ b/views/php/export/relationship.php @@ -0,0 +1,19 @@ +<?php +/** + * Elgg relationship export. + * Displays a relationship using PHP serialised data + * + * @package Elgg + * @subpackage Core + */ + +$r = $vars['relationship']; + +$export = new stdClass; +$exportable_values = $r->getExportableValues(); + +foreach ($exportable_values as $v) { + $export->$v = $r->$v; +} + +echo serialize($export);
\ No newline at end of file diff --git a/views/php/group/default.php b/views/php/group/default.php new file mode 100644 index 000000000..968d68bcd --- /dev/null +++ b/views/php/group/default.php @@ -0,0 +1,9 @@ +<?php +/** + * PHP group view + * + * @package Elgg + * @subpackage Core + */ + +echo elgg_view('export/entity', $vars);
\ No newline at end of file diff --git a/views/php/messages/exceptions/exception.php b/views/php/messages/exceptions/exception.php new file mode 100644 index 000000000..195e9dfd4 --- /dev/null +++ b/views/php/messages/exceptions/exception.php @@ -0,0 +1,12 @@ +<?php +/** + * Elgg exception + * Displays a single exception + * + * @package Elgg + * @subpackage Core + * + * @uses $vars['object'] An exception + */ + +echo serialize($vars['object']);
\ No newline at end of file diff --git a/views/php/object/default.php b/views/php/object/default.php new file mode 100644 index 000000000..8cf4eb8c6 --- /dev/null +++ b/views/php/object/default.php @@ -0,0 +1,9 @@ +<?php +/** + * PHP object view + * + * @package Elgg + * @subpackage Core + */ + +echo elgg_view('export/entity', $vars);
\ No newline at end of file diff --git a/views/php/page/default.php b/views/php/page/default.php new file mode 100644 index 000000000..87211a462 --- /dev/null +++ b/views/php/page/default.php @@ -0,0 +1,9 @@ +<?php +/** + * PHP output pageshell + * + * @package Elgg + * @subpackage Core + */ + +echo $vars['body'];
\ No newline at end of file diff --git a/views/php/site/default.php b/views/php/site/default.php new file mode 100644 index 000000000..102ac7ec7 --- /dev/null +++ b/views/php/site/default.php @@ -0,0 +1,9 @@ +<?php +/** + * PHP site view + * + * @package Elgg + * @subpackage Core + */ + +elgg_view('export/entity', $vars);
\ No newline at end of file diff --git a/views/php/user/default.php b/views/php/user/default.php new file mode 100644 index 000000000..1bb0f8fa9 --- /dev/null +++ b/views/php/user/default.php @@ -0,0 +1,9 @@ +<?php +/** + * PHP user view + * + * @package Elgg + * @subpackage Core + */ + +echo elgg_view('export/entity', $vars);
\ No newline at end of file diff --git a/views/rss/annotation/generic_comment.php b/views/rss/annotation/generic_comment.php new file mode 100644 index 000000000..de652fc8e --- /dev/null +++ b/views/rss/annotation/generic_comment.php @@ -0,0 +1,33 @@ +<?php +/** + * Elgg RSS view for a generic_comment annotation + * + * @package Elgg + * @subpackage Core + */ + +$annotation = $vars['annotation']; + +$poster = $annotation->getOwnerEntity(); +$poster_name = htmlspecialchars($poster->name, ENT_NOQUOTES, 'UTF-8'); +$pubdate = date('r', $annotation->getTimeCreated()); +$permalink = $annotation->getURL(); + +$title = elgg_echo('generic_comment:title', array($poster_name)); + +$creator = elgg_view('page/components/creator', array('entity' => $annotation)); +$extensions = elgg_view('extensions/item', $vars); + +$item = <<<__HTML +<item> + <guid isPermaLink='true'>$permalink</guid> + <pubDate>$pubdate</pubDate> + <link>$permalink</link> + <title><![CDATA[$title]]></title> + <description><![CDATA[{$vars['annotation']->value}]]></description> + $creator$extensions +</item> + +__HTML; + +echo $item; diff --git a/views/rss/group/default.php b/views/rss/group/default.php new file mode 100644 index 000000000..7fef4d434 --- /dev/null +++ b/views/rss/group/default.php @@ -0,0 +1,37 @@ +<?php +/** + * RSS group view + * + * @package Elgg + * @subpackage Core + */ + +$permalink = htmlspecialchars($vars['entity']->getURL(), ENT_NOQUOTES, 'UTF-8'); +$pubdate = date('r', $vars['entity']->getTimeCreated()); +$title = htmlspecialchars($vars['entity']->name, ENT_NOQUOTES, 'UTF-8'); + +if ($vars['entity']->description) { + $description = elgg_autop($vars['entity']->description); +} elseif ($vars['entity']->briefdescription) { + $description = elgg_autop($vars['entity']->briefdescription); +} else { + $description = ''; +} + +$creator = elgg_view('page/components/creator', $vars); +$georss = elgg_view('page/components/georss', $vars); +$extension = elgg_view('extensions/item', $vars); + +$item = <<<__HTML +<item> + <guid isPermaLink="true">$permalink</guid> + <pubDate>$pubdate</pubDate> + <link>$permalink</link> + <title><![CDATA[$title]]></title> + <description><![CDATA[$description]]></description> + $creator$georss$extension +</item> + +__HTML; + +echo $item; diff --git a/views/rss/object/default.php b/views/rss/object/default.php new file mode 100644 index 000000000..8c7d5d8e0 --- /dev/null +++ b/views/rss/object/default.php @@ -0,0 +1,36 @@ +<?php +/** + * RSS object view + * + * @package Elgg + * @subpackage Core + */ + +$title = $vars['entity']->title; +if (empty($title)) { + $title = strip_tags($vars['entity']->description); + $title = elgg_get_excerpt($title, 32); +} + +$permalink = htmlspecialchars($vars['entity']->getURL(), ENT_NOQUOTES, 'UTF-8'); +$pubdate = date('r', $vars['entity']->getTimeCreated()); + +$description = elgg_autop($vars['entity']->description); + +$creator = elgg_view('page/components/creator', $vars); +$georss = elgg_view('page/components/georss', $vars); +$extension = elgg_view('extensions/item', $vars); + +$item = <<<__HTML +<item> + <guid isPermaLink="true">$permalink</guid> + <pubDate>$pubdate</pubDate> + <link>$permalink</link> + <title><![CDATA[$title]]></title> + <description><![CDATA[$description]]></description> + $creator$georss$extension +</item> + +__HTML; + +echo $item; diff --git a/views/rss/output/url.php b/views/rss/output/url.php new file mode 100644 index 000000000..b0f4d9792 --- /dev/null +++ b/views/rss/output/url.php @@ -0,0 +1,6 @@ +<?php +/** + * RSS url output view + * + */ +echo elgg_view('output/url', $vars, false, false, 'default'); diff --git a/views/rss/page/components/creator.php b/views/rss/page/components/creator.php new file mode 100644 index 000000000..a14f1dbca --- /dev/null +++ b/views/rss/page/components/creator.php @@ -0,0 +1,14 @@ +<?php +/** + * Creator view + * + * Implements Dublin Core creator + * + * @uses $vars['entity'] + */ + +$owner = $vars['entity']->getOwnerEntity(); +if ($owner) { + $owner_name = htmlspecialchars($owner->name, ENT_NOQUOTES, 'UTF-8'); + echo "<dc:creator>$owner_name</dc:creator>"; +} diff --git a/views/rss/page/components/gallery.php b/views/rss/page/components/gallery.php new file mode 100644 index 000000000..690416e5b --- /dev/null +++ b/views/rss/page/components/gallery.php @@ -0,0 +1,8 @@ +<?php +/* + * RSS gallery view + * + * @uses $vars['items'] + */ + +echo elgg_view('page/components/list', $vars); diff --git a/views/rss/page/components/georss.php b/views/rss/page/components/georss.php new file mode 100644 index 000000000..d176b8cac --- /dev/null +++ b/views/rss/page/components/georss.php @@ -0,0 +1,15 @@ +<?php +/** + * GeoRSS view + * + * This implements GeoRSS-Simple + * + * @uses $vars['entity'] + */ + +$longitude = $vars['entity']->getLongitude(); +$latitude = $vars['entity']->getLatitude(); + +if ($vars['entity'] instanceof Locatable && $longitude && $latitude) { + echo "<georss:point>$latitude $longitude</georss:point>"; +} diff --git a/views/rss/page/components/image_block.php b/views/rss/page/components/image_block.php new file mode 100644 index 000000000..ff94bcff2 --- /dev/null +++ b/views/rss/page/components/image_block.php @@ -0,0 +1,7 @@ +<?php +/** + * RSS image block view + * + * Only display the body + */ +echo $vars['body'];
\ No newline at end of file diff --git a/views/rss/page/components/list.php b/views/rss/page/components/list.php new file mode 100644 index 000000000..2650fc006 --- /dev/null +++ b/views/rss/page/components/list.php @@ -0,0 +1,14 @@ +<?php +/** + * RSS list view + * + * @uses $vars['items'] + */ + +$items = $vars['items']; + +if (is_array($items) && sizeof($items) > 0) { + foreach ($items as $item) { + echo elgg_view_list_item($item, $vars); + } +}
\ No newline at end of file diff --git a/views/rss/page/default.php b/views/rss/page/default.php new file mode 100644 index 000000000..a7b757760 --- /dev/null +++ b/views/rss/page/default.php @@ -0,0 +1,46 @@ +<?php +/** + * Elgg RSS output pageshell + * + * @package Elgg.Core + * + * @uses $vars['title'] The title of the RSS feed + * @uses $vars['body'] The items for the RSS feed as a string + * @uses $vars['descrption'] The description for the RSS feed + */ + +// Set title +if (empty($vars['title'])) { + $title = elgg_get_config('sitename'); +} else { + $title = elgg_get_config('sitename') . ": " . $vars['title']; +} + +// Remove RSS from URL +$url = str_replace('?view=rss', '', current_page_url()); +$url = str_replace('&view=rss', '', $url); +$url = htmlspecialchars($url, ENT_NOQUOTES, 'UTF-8'); + +$body = elgg_extract('body', $vars, ''); +$description = elgg_extract('description', $vars, ''); + +$namespaces = elgg_view('extensions/xmlns'); +$extensions = elgg_view('extensions/channel'); + + +// allow caching as required by stupid MS products for https feeds. +header('Pragma: public', true); +header("Content-Type: text/xml"); + +echo "<?xml version='1.0'?>"; +echo <<<END +<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:georss="http://www.georss.org/georss" $namespaces> +<channel> + <title><![CDATA[$title]]></title> + <link>$url</link> + <description><![CDATA[$description]]></description> + $extensions + $body +</channel> +</rss> +END; diff --git a/views/rss/page/elements/comments.php b/views/rss/page/elements/comments.php new file mode 100644 index 000000000..9c655ffef --- /dev/null +++ b/views/rss/page/elements/comments.php @@ -0,0 +1,13 @@ +<?php +/** + * RSS comments view + * + * @uses $vars['entity'] + */ + +$options = array( + 'guid' => $vars['entity']->getGUID(), + 'annotation_name' => 'generic_comment', + 'order_by' => 'n_table.time_created desc', +); +echo elgg_list_annotations($options); diff --git a/views/rss/page/layouts/default.php b/views/rss/page/layouts/default.php new file mode 100644 index 000000000..7f3ddebbd --- /dev/null +++ b/views/rss/page/layouts/default.php @@ -0,0 +1,5 @@ +<?php +/** + * RSS layout shell + */ +echo $vars['content'];
\ No newline at end of file diff --git a/views/rss/river/item.php b/views/rss/river/item.php new file mode 100644 index 000000000..fa2914eff --- /dev/null +++ b/views/rss/river/item.php @@ -0,0 +1,35 @@ +<?php +/** + * RSS river view + * + * @uses $vars['item'] + */ +$item = $vars['item']; + +$name = $item->getSubjectEntity()->name; +$name = htmlspecialchars($name, ENT_NOQUOTES, 'UTF-8'); +$title = elgg_echo('river:update', array($name)); + +$timestamp = date('r', $item->getPostedTime()); +$body = elgg_view('river/elements/summary', $vars, false, false, 'default'); + + +$object = $item->getObjectEntity(); +if ($object) { + $url = htmlspecialchars($object->getURL()); +} else { + $url = elgg_normalize_url('activity'); +} + +$html = <<<__HTML +<item> + <guid>$item->id</guid> + <pubDate>$timestamp</pubDate> + <link>$url</link> + <title><![CDATA[$title]]></title> + <description><![CDATA[$body]]></description> +</item> + +__HTML; + +echo $html; diff --git a/views/rss/user/default.php b/views/rss/user/default.php new file mode 100644 index 000000000..92c9427b2 --- /dev/null +++ b/views/rss/user/default.php @@ -0,0 +1,34 @@ +<?php +/** + * RSS user view + * + * @package Elgg + * @subpackage Core + */ + +$permalink = htmlspecialchars($vars['entity']->getURL(), ENT_NOQUOTES, 'UTF-8'); +$pubdate = date('r', $vars['entity']->getTimeCreated()); +$title = htmlspecialchars($vars['entity']->name, ENT_NOQUOTES, 'UTF-8'); + +if ($vars['entity']->description) { + $description = elgg_autop($vars['entity']->description); +} else { + $description = ''; +} + +$georss = elgg_view('page/components/georss', $vars); +$extension = elgg_view('extensions/item', $vars); + +$item = <<<__HTML +<item> + <guid isPermaLink="true">$permalink</guid> + <pubDate>$pubdate</pubDate> + <link>$permalink</link> + <title><![CDATA[$title]]></title> + <description><![CDATA[$description]]></description> + $georss$extension +</item> + +__HTML; + +echo $item; diff --git a/views/xml/api/output.php b/views/xml/api/output.php new file mode 100644 index 000000000..42afd44bb --- /dev/null +++ b/views/xml/api/output.php @@ -0,0 +1,14 @@ +<?php +/** + * Elgg XML output + * This outputs the api as XML + * + * @package Elgg + * @subpackage Core + * + */ + +$result = $vars['result']; +$export = $result->export(); + +echo serialise_object_to_xml($export, "elgg");
\ No newline at end of file diff --git a/views/xml/messages/exceptions/exception.php b/views/xml/messages/exceptions/exception.php new file mode 100644 index 000000000..66a0f2b96 --- /dev/null +++ b/views/xml/messages/exceptions/exception.php @@ -0,0 +1,25 @@ +<?php +/** + * Elgg exception + * Displays a single exception + * + * @package Elgg + * @subpackage Core + * + * @uses $vars['object'] An exception + */ + +?> +<!-- +<?php echo get_class($vars['object']); ?>: <?php echo elgg_autop($vars['object']->getMessage()); ?> + + +<?php if (elgg_get_config('debug')) { ?> +<?php + + echo print_r($vars['object'], true); + + ?> +<?php } ?> + +-->
\ No newline at end of file diff --git a/views/xml/page/default.php b/views/xml/page/default.php new file mode 100644 index 000000000..0f0aecbe4 --- /dev/null +++ b/views/xml/page/default.php @@ -0,0 +1,14 @@ +<?php +/** + * Elgg XML output pageshell + * + * @package Elgg + * @subpackage Core + * + */ + +header("Content-Type: text/xml"); +// web server will handle setting the content length +//header("Content-Length: " . strlen($vars['body'])); +echo "<?xml version='1.0' encoding='UTF-8'?>\n"; +echo $vars['body'];
\ No newline at end of file diff --git a/views/xml/xml-rpc/output.php b/views/xml/xml-rpc/output.php new file mode 100644 index 000000000..4276029d1 --- /dev/null +++ b/views/xml/xml-rpc/output.php @@ -0,0 +1,11 @@ +<?php +/** + * Elgg XML output for XML-RPC + * + * @package Elgg + * @subpackage Core + */ + +$result = $vars['result']; + +echo "$result";
\ No newline at end of file |