all contrib module security updates done
@@ -1 +0,0 @@
|
||||
FirePHPCore*
|
||||
@@ -1,13 +1,32 @@
|
||||
README.txt
|
||||
==========
|
||||
README.txt for Devel module
|
||||
---------------------------
|
||||
|
||||
A module containing helper functions for Drupal developers and
|
||||
inquisitive admins. This module can print a log of
|
||||
all database queries for each page request at the bottom of each page. The
|
||||
summary includes how many times each query was executed on a page, and how long
|
||||
each query took.
|
||||
CONTENTS OF THIS FILE
|
||||
---------------------
|
||||
|
||||
It also offers
|
||||
* Introduction
|
||||
* Requirements
|
||||
* Included Modules and Features
|
||||
* Recommended Modules
|
||||
* Installation
|
||||
* Compatibility Notes
|
||||
* Maintainers
|
||||
|
||||
INTRODUCTION
|
||||
------------
|
||||
|
||||
A module containing helper functions for Drupal developers and inquisitive
|
||||
admins. This module can print a log of all database queries for each page
|
||||
request at the bottom of each page. The summary includes how many times each
|
||||
query was executed on a page, and how long each query took.
|
||||
|
||||
- For a full description of the module visit:
|
||||
https://www.drupal.org/project/devel
|
||||
|
||||
- To submit bug reports and feature suggestions, or to track changes visit:
|
||||
https://www.drupal.org/project/issues/devel
|
||||
|
||||
It also offers
|
||||
- a block for running custom PHP on a page
|
||||
- a block for quickly accessing devel pages
|
||||
- a block for masquerading as other users (useful for testing)
|
||||
@@ -15,46 +34,74 @@ each query took.
|
||||
- A mail-system class which redirects outbound email to files
|
||||
- more
|
||||
|
||||
This module is safe to use on a production site. Just be sure to only grant
|
||||
'access development information' permission to developers.
|
||||
This module is safe to use on a production site. Just be sure to only grant
|
||||
'access development information' permission to developers.
|
||||
|
||||
Also a dpr() function is provided, which pretty prints arrays and strings.
|
||||
Useful during development. Many other nice functions like dpm(), dvm().
|
||||
|
||||
AJAX developers in particular ought to install FirePHP Core from
|
||||
http://www.firephp.org/ and put it in the devel directory.
|
||||
This happens automatically when you enable via drush. You may also
|
||||
use a drush command to download the library. If downloading by hand,
|
||||
your path to fb.php should look like devel/FirePHPCore/lib/FirePHPCore/fb.php.
|
||||
You can use svn checkout http://firephp.googlecode.com/svn/trunk/trunk/Libraries/FirePHPCore.
|
||||
http://www.firephp.org/ and put it in the devel directory. You may use the
|
||||
devel-download drush command to download the library. If downloading by hand,
|
||||
your path to fb.php should look like
|
||||
devel/FirePHPCore/lib/FirePHPCore/fb.php. You can use svn checkout
|
||||
http://firephp.googlecode.com/svn/trunk/trunk/Libraries/FirePHPCore.
|
||||
Then you can log php variables to the Firebug console. Is quite useful.
|
||||
|
||||
|
||||
REQUIREMENTS
|
||||
------------
|
||||
|
||||
This module requires no modules outside of Drupal core.
|
||||
|
||||
|
||||
INCLUDED MODULES AND FEATURES
|
||||
-----------------------------
|
||||
|
||||
Included in this package is also:
|
||||
|
||||
- devel_node_access module which prints out the node_access records for a given node. Also offers hook_node_access_explain for all node access modules to implement. Handy.
|
||||
- devel_generate.module which bulk creates nodes, users, comment, terms for development.
|
||||
- Devel Node Access module - Prints out the node_access records for a given
|
||||
node. Also offers hook_node_access_explain for all node access modules to
|
||||
implement. Handy.
|
||||
- Devel Generate module - Bulk creates nodes, users, comment, terms for
|
||||
development.
|
||||
|
||||
Some nifty drush integration ships with devel and devel_generate. See drush help for details.
|
||||
Some nifty drush integration ships with Devel and Devel Generate. See drush help
|
||||
for details.
|
||||
|
||||
DRUSH UNIT TEST - See develDrushTest.php for an example of unit testing of the
|
||||
Drush integration. This uses Drush's own test framework, based on PHPUnit. To
|
||||
run the tests, use
|
||||
phpunit --bootstrap=/path/to/drush/tests/drush_testcase.inc. Note that we must
|
||||
name a file under /tests there.
|
||||
|
||||
|
||||
RECOMMENDED MODULE
|
||||
------------------
|
||||
|
||||
Devel Generate Extensions - Devel Images Provider allows to configure external
|
||||
providers for images.
|
||||
|
||||
- http://drupal.org/project/devel_image_provider
|
||||
|
||||
|
||||
INSTALLATION
|
||||
------------
|
||||
|
||||
- Install the Devel module as you would normally install a contributed Drupal
|
||||
module. Visit https://www.drupal.org/node/895232 for further information.
|
||||
|
||||
DEVEL GENERATE EXTENSIONS
|
||||
=========================
|
||||
Devel Images Provider [http://drupal.org/project/devel_image_provider] allows to configure external providers for images.
|
||||
|
||||
COMPATIBILITY NOTES
|
||||
==================
|
||||
- Modules that use AHAH may have incompatibility with the query log and other
|
||||
footer info. Consider setting $GLOBALS['devel_shutdown'] = FALSE if you run into
|
||||
any issues.
|
||||
-------------------
|
||||
|
||||
- Modules that use AHAH may have incompatibility with the query log and other
|
||||
footer info. Consider setting $GLOBALS['devel_shutdown'] = FALSE if you run
|
||||
into any issues.
|
||||
|
||||
DRUSH UNIT TEST
|
||||
==================
|
||||
See develDrushTest.php for an example of unit testing of the Drush integration.
|
||||
This uses Drush's own test framework, based on PHPUnit. To run the tests, use
|
||||
phpunit --bootstrap=/path/to/drush/tests/drush_testcase.inc. Note that we must name a file
|
||||
under /tests there.
|
||||
|
||||
AUTHOR/MAINTAINER
|
||||
======================
|
||||
-moshe weitzman <weitzman at tejasa DOT com>
|
||||
http://cyrve.com
|
||||
Hans Salvisberg <drupal at salvisberg DOT com>
|
||||
-----------------
|
||||
|
||||
- Moshe Weitzman (moshe weitzman) - https://www.drupal.org/u/moshe-weitzman
|
||||
- Hans Salvisberg (salvis) - https://www.drupal.org/u/salvis
|
||||
|
||||
@@ -1,3 +1,8 @@
|
||||
/**
|
||||
* @file
|
||||
* Right-to-left styles for Devel.
|
||||
*/
|
||||
|
||||
.dev-query, .dev-timer, .dev-memory-usage {
|
||||
align: left;
|
||||
direction: ltr;
|
||||
@@ -5,4 +10,4 @@
|
||||
}
|
||||
.dev-query, .dev-timer, .dev-memory-usage table {
|
||||
direction: ltr;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,6 +1,18 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* @file
|
||||
* Functions for Devel administrative pages.
|
||||
*/
|
||||
|
||||
/**
|
||||
* Form constructor for the settings form.
|
||||
*
|
||||
* @ingroup forms
|
||||
*/
|
||||
function devel_admin_settings() {
|
||||
_devel_display_block_help_message();
|
||||
|
||||
$form['queries'] = array('#type' => 'fieldset', '#title' => t('Query log'));
|
||||
|
||||
$description = t('Display a log of the database queries needed to generate the current page, and the execution time for each. Also, queries which are repeated during a single page view are summed in the # column, and printed in red since they are candidates for caching.');
|
||||
@@ -22,6 +34,12 @@ function devel_admin_settings() {
|
||||
),
|
||||
),
|
||||
);
|
||||
$form['queries']['settings']['devel_show_query_args_first'] = array(
|
||||
'#type' => 'checkbox',
|
||||
'#title' => t('Show query arguments'),
|
||||
'#default_value' => variable_get('devel_show_query_args_first', FALSE),
|
||||
'#description' => t('Show arguments rather than the query placeholders in the logged query.'),
|
||||
);
|
||||
$form['queries']['settings']['devel_query_sort'] = array('#type' => 'radios',
|
||||
'#title' => t('Sort query log'),
|
||||
'#default_value' => variable_get('devel_query_sort', DEVEL_QUERY_SORT_BY_SOURCE),
|
||||
@@ -36,63 +54,19 @@ function devel_admin_settings() {
|
||||
'#description' => t('Enter an integer in milliseconds. Any query which takes longer than this many milliseconds will be highlighted in the query log. This indicates a possibly inefficient query, or a candidate for caching.'),
|
||||
);
|
||||
|
||||
$form['xhprof'] = array(
|
||||
'#type' => 'fieldset',
|
||||
'#title' => 'XHProf',
|
||||
'#description' => t('XHProf is a php extension which is essential for profiling your Drupal site. It pinpoints slow functions, and also memory hogging functions.'),
|
||||
);
|
||||
$description = extension_loaded('xhprof') ? t('Profile requests with the xhprof php extension.') : '<span class="warning">' . t('You must enable the <a href="!url">xhprof php extension</a> to use this feature.', array('!url' => url('http://techportal.ibuildings.com/2009/12/01/profiling-with-xhprof/'))) . '</span>';
|
||||
$form['xhprof']['devel_xhprof_enabled'] = array(
|
||||
'#type' => 'checkbox',
|
||||
'#title' => t('Enable profiling of all page views and <a href="!drush">drush</a> requests.', array('!drush' => url('http://drush.ws'))),
|
||||
'#default_value' => variable_get('devel_xhprof_enabled', FALSE),
|
||||
'#description' => $description,
|
||||
'#disabled' => !extension_loaded('xhprof'),
|
||||
);
|
||||
$form['xhprof']['settings'] = array(
|
||||
'#type' => 'container',
|
||||
'#states' => array(
|
||||
'invisible' => array(
|
||||
'input[name="devel_xhprof_enabled"]' => array('checked' => FALSE),
|
||||
),
|
||||
),
|
||||
);
|
||||
$form['xhprof']['settings']['devel_xhprof_directory'] = array(
|
||||
'#type' => 'textfield',
|
||||
'#title' => 'xhprof directory',
|
||||
'#description' => t('Location of the xhprof source code on your system, usually somewhere in /usr/local/share or /usr/share, include the leading forward slash.'),
|
||||
'#default_value' => variable_get('devel_xhprof_directory', ''),
|
||||
'#states' => array(
|
||||
'invisible' => array(
|
||||
'input[name="devel_xhprof_enabled"]' => array('checked' => FALSE),
|
||||
),
|
||||
),
|
||||
);
|
||||
$form['xhprof']['settings']['devel_xhprof_url'] = array(
|
||||
'#type' => 'textfield',
|
||||
'#title' => 'XHProf URL',
|
||||
'#description' => t('Path to the publically accessible xhprof_html - required to display profiler reports. You will need to set this up outside Drupal, for example at http://xhprof.localhost/xhprof_html'),
|
||||
'#default_value' => variable_get('devel_xhprof_url', ''),
|
||||
'#states' => array(
|
||||
'invisible' => array(
|
||||
'input[name="devel_xhprof_enabled"]' => array('checked' => FALSE),
|
||||
),
|
||||
),
|
||||
);
|
||||
|
||||
$form['devel_api_url'] = array('#type' => 'textfield',
|
||||
'#title' => t('API Site'),
|
||||
'#default_value' => variable_get('devel_api_url', 'api.drupal.org'),
|
||||
'#description' => t('The base URL for your developer documentation links. You might change this if you run <a href="!url">api.module</a> locally.', array('!url' => url('http://drupal.org/project/api'))));
|
||||
$form['dev_timer'] = array('#type' => 'checkbox',
|
||||
$form['devel_timer'] = array('#type' => 'checkbox',
|
||||
'#title' => t('Display page timer'),
|
||||
'#default_value' => variable_get('dev_timer', 0),
|
||||
'#default_value' => variable_get('devel_timer', 0),
|
||||
'#description' => t('Display page execution time in the query log box.'),
|
||||
);
|
||||
|
||||
$form['dev_mem'] = array('#type' => 'checkbox',
|
||||
$form['devel_memory'] = array('#type' => 'checkbox',
|
||||
'#title' => t('Display memory usage'),
|
||||
'#default_value' => variable_get('dev_mem', 0),
|
||||
'#default_value' => variable_get('devel_memory', 0),
|
||||
'#description' => t('Display how much memory is used to generate the current page. This will show memory usage when devel_init() is called and when devel_exit() is called.'),
|
||||
);
|
||||
$form['devel_redirect_page'] = array('#type' => 'checkbox',
|
||||
@@ -161,6 +135,45 @@ function devel_admin_settings() {
|
||||
return system_settings_form($form);
|
||||
}
|
||||
|
||||
/**
|
||||
* Displays a helpful message if Menu module is not installed.
|
||||
*/
|
||||
function _devel_display_block_help_message() {
|
||||
if (!module_exists('menu')) {
|
||||
$devel_block_alert = t('Devel block alert: The Devel block requires the Core Menu module. The Devel block will become available once you <a href="!url">enable Menu</a>.',
|
||||
array('!url' => url('admin/modules'))
|
||||
);
|
||||
$variables = array(
|
||||
'!admin_menu_url' => url('https://drupal.org/project/admin_menu', array('external' => TRUE)),
|
||||
'!admin_menu_name' => 'Administration Menu',
|
||||
'!admin_menu_config_url' => url('admin/config/administration/admin_menu'),
|
||||
'!icon_menu' => t('Icon menu'),
|
||||
);
|
||||
if (!module_exists('admin_menu')) {
|
||||
$devel_block_alert .= '<br />' . t('Alternatively, you can install <a href="!admin_menu_url">!admin_menu_name</a> which supports displaying the Devel menu items in its !icon_menu.', $variables);
|
||||
}
|
||||
else {
|
||||
$admin_menu_components = variable_get('admin_menu_components', array());
|
||||
if (empty($admin_menu_components['admin_menu.icon']) || !user_access('access administration menu')) {
|
||||
$devel_block_alert .= '<br />' . t("Alternatively, if you <a href='!admin_menu_config_url'>enable !admin_menu_name's !icon_menu</a> you will find the Devel menu items there.", $variables);
|
||||
} else {
|
||||
// Don't bother with a message in the 'normal' case.
|
||||
return;
|
||||
}
|
||||
}
|
||||
drupal_set_message($devel_block_alert, 'warning');
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Demonstrates the active error handler.
|
||||
*
|
||||
* Generates some warnings or errors so that the reaction of the current error
|
||||
* handler can be observed.
|
||||
*
|
||||
* @param $severity
|
||||
* The severity level that the error handler should demonstrate.
|
||||
*/
|
||||
function devel_demonstrate_error_handlers($severity) {
|
||||
switch ($severity) {
|
||||
case 'warning':
|
||||
|
||||
@@ -1,3 +1,8 @@
|
||||
/**
|
||||
* @file
|
||||
* Styles for elements created by Devel.
|
||||
*/
|
||||
|
||||
.dev-query, .dev-timer, .dev-memory-usage {
|
||||
padding: 1em;
|
||||
}
|
||||
|
||||
@@ -12,21 +12,29 @@ function devel_drush_command() {
|
||||
$items['devel-download'] = array(
|
||||
'description' => dt('Downloads the FirePHP library from http://firephp.org/.'),
|
||||
'arguments' => array(
|
||||
'path' => dt('Optional. A path to the download folder. If omitted Drush will use the default location (sites/all/libraries/firephp).'),
|
||||
'path' => dt('Path to the download folder. This path is relative to the Drupal root. If omitted Drush will use the default location (sites/all/libraries/FirePHPCore).'),
|
||||
),
|
||||
);
|
||||
$items['devel-reinstall'] = array(
|
||||
'description' => dt('Disable, Uninstall, and Install a list of projects.'),
|
||||
'drush dependencies' => array('pm'),
|
||||
'arguments' => array(
|
||||
'projects' => dt('A space-separated list of project names.'),
|
||||
),
|
||||
'allow-additional-options' => array('pm-disable', 'pm-uninstall', 'pm-enable'),
|
||||
'required-arguments' => 1,
|
||||
'aliases' => array('dre'),
|
||||
);
|
||||
$items['fn-hook'] = array(
|
||||
'description' => 'List implementations of a given hook and explore source of specified one.',
|
||||
'description' => 'List implementations of a given hook and explore the source of the selected one.',
|
||||
'arguments' => array(
|
||||
'hook' => 'The name of the hook to explore.'
|
||||
'hook' => 'The name of the hook to explore (e.g. "menu" for hook_menu()).'
|
||||
),
|
||||
'examples' => array(
|
||||
'fn-hook cron' => 'List implementations of hook_cron().',
|
||||
),
|
||||
'allow-additional-options' => array('fn-view'),
|
||||
'required-arguments' => 1,
|
||||
'aliases' => array('fnh', 'hook'),
|
||||
);
|
||||
$items['fn-view'] = array(
|
||||
@@ -44,17 +52,21 @@ function devel_drush_command() {
|
||||
'fn-view NodeController::load' => 'View the source code for method load in the class NodeController'
|
||||
),
|
||||
'aliases' => array('fnv'),
|
||||
'required-arguments' => 1,
|
||||
);
|
||||
$items['devel-token'] = array(
|
||||
'description' => dt('List available tokens'),
|
||||
'aliases' => array('token'),
|
||||
'core' => array(7), // Remove once 3.0 is released.
|
||||
//@todo support --format option for json, csv, etc.
|
||||
);
|
||||
return $items;
|
||||
}
|
||||
|
||||
/**
|
||||
* A command callback. This is faster than 3 separate bootstraps.
|
||||
* A command callback for reinstalling one or more projects.
|
||||
*
|
||||
* This is faster than 3 separate bootstraps.
|
||||
*/
|
||||
function drush_devel_reinstall() {
|
||||
$projects = func_get_args();
|
||||
@@ -70,27 +82,30 @@ function drush_devel_reinstall() {
|
||||
}
|
||||
|
||||
/**
|
||||
* A command callback.
|
||||
* A command callback for downloading a project.
|
||||
*/
|
||||
function drush_devel_download() {
|
||||
$args = func_get_args();
|
||||
if (isset($args[0])) {
|
||||
$path = $args[0];
|
||||
function drush_devel_download($path = NULL) {
|
||||
// If no path is provided by the user, set our default path.
|
||||
if (is_null($path)) {
|
||||
// We use devel folder for legacy reason.
|
||||
$path = drupal_get_path('module', 'devel') . '/FirePHPCore';
|
||||
}
|
||||
else {
|
||||
$path = drush_get_context('DRUSH_DRUPAL_ROOT');
|
||||
// If FirePHP is not installed and libraries module is enabled,
|
||||
// try to find FirePHP by its own means.
|
||||
if (!is_dir($path)) {
|
||||
if (module_exists('libraries')) {
|
||||
$path .= '/' . libraries_get_path('FirePHPCore') . '/FirePHPCore';
|
||||
}
|
||||
else {
|
||||
$path .= '/' . drupal_get_path('module', 'devel') . '/FirePHPCore';
|
||||
// Libraries 1.x will return a path even if it doesn't exist
|
||||
// while 2.x will return FALSE.
|
||||
$path = libraries_get_path('FirePHPCore');
|
||||
if (!$path) {
|
||||
$path = 'sites/all/libraries/FirePHPCore';
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (is_dir($path)) {
|
||||
drush_log('FirePHP already present. No download required.', 'ok');
|
||||
drush_log(dt('FirePHP already present at @path. No download required.', array('@path' => $path)), 'ok');
|
||||
}
|
||||
elseif (drush_shell_exec('svn export http://firephp.googlecode.com/svn/branches/Library-FirePHPCore-0.3 ' . $path)) {
|
||||
elseif (drush_shell_exec('svn export http://firephp.googlecode.com/svn/branches/Library-FirePHPCore-0.3 %s', $path)) {
|
||||
drush_log(dt('FirePHP has been exported via svn to @path.', array('@path' => $path)), 'success');
|
||||
}
|
||||
else {
|
||||
@@ -99,22 +114,7 @@ function drush_devel_download() {
|
||||
}
|
||||
|
||||
/**
|
||||
* Implements drush_MODULE_post_COMMAND().
|
||||
*/
|
||||
function drush_devel_post_pm_enable() {
|
||||
$extensions = func_get_args();
|
||||
// Deal with comma delimited extension list.
|
||||
if (strpos($extensions[0], ',') !== FALSE) {
|
||||
$extensions = explode(',', $extensions[0]);
|
||||
}
|
||||
|
||||
if (in_array('devel', $extensions) && !drush_get_option('skip')) {
|
||||
drush_devel_download();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Command handler. Show hook implementations.
|
||||
* A command handler for showing hook implementations.
|
||||
*/
|
||||
function drush_devel_fn_hook($hook) {
|
||||
// Get implementations in the .install files as well.
|
||||
@@ -132,7 +132,7 @@ function drush_devel_fn_hook($hook) {
|
||||
}
|
||||
|
||||
/**
|
||||
* Command handler. Show source code of specified function or method.
|
||||
* A command handler for showing source code of a function or method.
|
||||
*/
|
||||
function drush_devel_fn_view($function_name) {
|
||||
// Get implementations in the .install files as well.
|
||||
@@ -161,7 +161,7 @@ function drush_devel_fn_view($function_name) {
|
||||
}
|
||||
|
||||
/**
|
||||
* Command callback. List available tokens.
|
||||
* A command callback for listing available tokens.
|
||||
*/
|
||||
function drush_devel_token() {
|
||||
$rows[] = array(dt('Group'), dt('Token'), dt('Name'));
|
||||
@@ -176,8 +176,7 @@ function drush_devel_token() {
|
||||
|
||||
|
||||
/**
|
||||
* Print the specified function, including any
|
||||
* doxygen-style comments that come before it.
|
||||
* Prints a function including any Doxygen-style comments preceding it.
|
||||
*/
|
||||
function _drush_devel_print_function($file, $start_line, $end_line) {
|
||||
$line_num = 0;
|
||||
|
||||
@@ -7,9 +7,8 @@ tags[] = developer
|
||||
files[] = devel.test
|
||||
files[] = devel.mail.inc
|
||||
|
||||
; Information added by drupal.org packaging script on 2012-06-05
|
||||
version = "7.x-1.3"
|
||||
; Information added by Drupal.org packaging script on 2019-02-22
|
||||
version = "7.x-1.7"
|
||||
core = "7.x"
|
||||
project = "devel"
|
||||
datestamp = "1338940281"
|
||||
|
||||
datestamp = "1550852892"
|
||||
|
||||
@@ -31,18 +31,24 @@ function devel_enable() {
|
||||
* Implements hook_uninstall().
|
||||
*/
|
||||
function devel_uninstall() {
|
||||
variable_del('devel_form_weights');
|
||||
variable_del('devel_execution');
|
||||
variable_del('dev_timer');
|
||||
variable_del('devel_timer');
|
||||
variable_del('devel_query_display');
|
||||
variable_del('devel_redirect_page');
|
||||
variable_del('devel_api_url');
|
||||
variable_del('dev_mem');
|
||||
variable_del('devel_memory');
|
||||
variable_del('devel_error_handlers');
|
||||
variable_del('devel_raw_names');
|
||||
variable_del('devel_switch_user_list_size');
|
||||
variable_del('devel_switch_user_include_anon');
|
||||
variable_del('devel_switch_user_show_form');
|
||||
variable_del('devel_krumo_skin');
|
||||
variable_del('devel_page_alter');
|
||||
variable_del('devel_query_sort');
|
||||
variable_del('devel_rebuild_theme_registry');
|
||||
variable_del('devel_use_uncompressed_jquery');
|
||||
variable_del('devel_debug_mail_file_format');
|
||||
variable_del('devel_debug_mail_directory');
|
||||
|
||||
// Delete the development menu.
|
||||
if (module_exists('menu')) {
|
||||
@@ -53,7 +59,9 @@ function devel_uninstall() {
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove feature for storing queries. Cleanup deprecated tables and variables.
|
||||
* Remove feature for storing queries.
|
||||
*
|
||||
* Cleanup deprecated tables and variables.
|
||||
*/
|
||||
function devel_update_7000() {
|
||||
db_drop_table('devel_queries');
|
||||
@@ -72,7 +80,7 @@ function devel_update_7001() {
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove deprecated variables - dev_query, devel_code_coverage
|
||||
* Remove deprecated variables: dev_query, devel_code_coverage.
|
||||
*/
|
||||
function devel_update_7002() {
|
||||
variable_del('dev_query'); // Sad trombone. http://drupalcode.org/viewvc/drupal/drupal/includes/database.mysql.inc?revision=1.2&view=markup
|
||||
@@ -106,3 +114,43 @@ function devel_update_7004() {
|
||||
variable_set('devel_error_handlers', drupal_map_assoc($error_handlers));
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Delete variable 'devel_form_weights'.
|
||||
*
|
||||
* 'devel_form_weights' was removed from code.
|
||||
*/
|
||||
function devel_update_7005() {
|
||||
variable_del('devel_form_weights');
|
||||
}
|
||||
|
||||
/**
|
||||
* Change variable 'dev_mem' to 'devel_memory'.
|
||||
*/
|
||||
function devel_update_7006() {
|
||||
if (variable_get('dev_mem', NULL) !== NULL) {
|
||||
variable_set('devel_memory', variable_get('dev_mem'));
|
||||
}
|
||||
|
||||
variable_del('dev_mem');
|
||||
}
|
||||
|
||||
/**
|
||||
* Delete 'devel_xhprof_*' variables as they were removed from code.
|
||||
*/
|
||||
function devel_update_7007() {
|
||||
variable_del('devel_xhprof_directory');
|
||||
variable_del('devel_xhprof_enabled');
|
||||
variable_del('devel_xhprof_url');
|
||||
}
|
||||
|
||||
/**
|
||||
* Change variable "dev_timer" to "devel_timer".
|
||||
*/
|
||||
function devel_update_7008() {
|
||||
if (variable_get('dev_timer') !== NULL) {
|
||||
variable_set('devel_timer', variable_get('dev_timer'));
|
||||
}
|
||||
|
||||
variable_del('dev_timer');
|
||||
}
|
||||
|
||||
@@ -1,12 +1,21 @@
|
||||
/**
|
||||
* @file
|
||||
* Behaviors for Devel.
|
||||
*/
|
||||
|
||||
(function ($) {
|
||||
|
||||
// Explain link in query log
|
||||
/**
|
||||
* Explain link in query log.
|
||||
*
|
||||
* @type {Drupal~behavior}
|
||||
*/
|
||||
Drupal.behaviors.devel_explain = {
|
||||
attach: function() {
|
||||
attach: function(context, settings) {
|
||||
$('a.dev-explain').click(function () {
|
||||
qid = $(this).attr("qid");
|
||||
cell = $('#devel-query-' + qid);
|
||||
$('.dev-explain', cell).load(Drupal.settings.basePath + '?q=devel/explain/' + Drupal.settings.devel.request_id + '/' + qid).show();
|
||||
$('.dev-explain', cell).load(settings.basePath + '?q=devel/explain/' + settings.devel.request_id + '/' + qid).show();
|
||||
$('.dev-placeholders', cell).hide();
|
||||
$('.dev-arguments', cell).hide();
|
||||
return false;
|
||||
@@ -14,13 +23,17 @@ Drupal.behaviors.devel_explain = {
|
||||
}
|
||||
}
|
||||
|
||||
// Arguments link in query log
|
||||
/**
|
||||
* Arguments link in query log.
|
||||
*
|
||||
* @type {Drupal~behavior}
|
||||
*/
|
||||
Drupal.behaviors.devel_arguments = {
|
||||
attach: function() {
|
||||
attach: function(context, settings) {
|
||||
$('a.dev-arguments').click(function () {
|
||||
qid = $(this).attr("qid");
|
||||
cell = $('#devel-query-' + qid);
|
||||
$('.dev-arguments', cell).load(Drupal.settings.basePath + '?q=devel/arguments/' + Drupal.settings.devel.request_id + '/' + qid).show();
|
||||
$('.dev-arguments', cell).load(settings.basePath + '?q=devel/arguments/' + settings.devel.request_id + '/' + qid).show();
|
||||
$('.dev-placeholders', cell).hide();
|
||||
$('.dev-explain', cell).hide();
|
||||
return false;
|
||||
@@ -28,9 +41,13 @@ Drupal.behaviors.devel_arguments = {
|
||||
}
|
||||
}
|
||||
|
||||
// Placeholders link in query log
|
||||
/**
|
||||
* Placeholders link in query log.
|
||||
*
|
||||
* @type {Drupal~behavior}
|
||||
*/
|
||||
Drupal.behaviors.devel_placeholders = {
|
||||
attach: function() {
|
||||
attach: function(context, settings) {
|
||||
$('a.dev-placeholders').click(function () {
|
||||
qid = $(this).attr("qid");
|
||||
cell = $('#devel-query-' + qid);
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* @file
|
||||
* MailSystemInterface for logging mails to the filesystem.
|
||||
@@ -16,8 +17,20 @@
|
||||
*
|
||||
*/
|
||||
|
||||
/**
|
||||
* Logs mail messages to the filesystem.
|
||||
*/
|
||||
class DevelMailLog extends DefaultMailSystem {
|
||||
|
||||
/**
|
||||
* Converts a message array to a string.
|
||||
*
|
||||
* @param $message
|
||||
* The message array containing the body and headers.
|
||||
*
|
||||
* @return
|
||||
* The message as it will be printed in the file.
|
||||
*/
|
||||
public function composeMessage($message) {
|
||||
$mimeheaders = array();
|
||||
$message['headers']['To'] = $message['to'];
|
||||
@@ -27,11 +40,23 @@ class DevelMailLog extends DefaultMailSystem {
|
||||
|
||||
$line_endings = variable_get('mail_line_endings', MAIL_LINE_ENDINGS);
|
||||
$output = join($line_endings, $mimeheaders) . $line_endings;
|
||||
$output .= $message['subject'] . $line_endings;
|
||||
// 'Subject:' is a mail header and should not be translated.
|
||||
$output .= 'Subject: ' . $message['subject'] . $line_endings;
|
||||
// Blank line to separate headers from body.
|
||||
$output .= $line_endings;
|
||||
$output .= preg_replace('@\r?\n@', $line_endings, $message['body']);
|
||||
return $output;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets a filename for a message using tokens.
|
||||
*
|
||||
* @param $message
|
||||
* The message that will supply values for token replacement.
|
||||
*
|
||||
* @return
|
||||
* The full path and filename after token replacement.
|
||||
*/
|
||||
public function getFileName($message) {
|
||||
$output_directory = $this->getOutputDirectory();
|
||||
$this->makeOutputDirectory($output_directory);
|
||||
@@ -45,19 +70,26 @@ class DevelMailLog extends DefaultMailSystem {
|
||||
return $output_directory . '/' . $this->dirify(str_replace(array_keys($tokens), array_values($tokens), $output_file_format));
|
||||
}
|
||||
|
||||
/**
|
||||
* Convert a string to a valid directory name.
|
||||
*
|
||||
* @return
|
||||
* The sanitized string, replacing any characters not whitelisted with "_".
|
||||
*/
|
||||
private function dirify($string) {
|
||||
return preg_replace('/[^a-zA-Z0-9_\-\.@]/', '_', $string);
|
||||
}
|
||||
|
||||
/**
|
||||
* Save an e-mail message to a file, using Drupal variables and default settings.
|
||||
*
|
||||
* @see http://php.net/manual/en/function.mail.php
|
||||
* @see drupal_mail()
|
||||
* Save a mail message to a file using Drupal variables and default settings.
|
||||
*
|
||||
* @param $message
|
||||
* A message array, as described in hook_mail_alter().
|
||||
* @return
|
||||
* TRUE if the mail was successfully accepted, otherwise FALSE.
|
||||
*
|
||||
* @see http://php.net/manual/en/function.mail.php
|
||||
* @see drupal_mail()
|
||||
*/
|
||||
public function mail(array $message) {
|
||||
$output = $this->composeMessage($message);
|
||||
@@ -66,14 +98,25 @@ class DevelMailLog extends DefaultMailSystem {
|
||||
return file_put_contents($output_file, $output);
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates the directory to contain the message file if necessary.
|
||||
*
|
||||
* @throws Exception
|
||||
* Exception thrown when unable to create the destination directory.
|
||||
*/
|
||||
protected function makeOutputDirectory($output_directory) {
|
||||
if (!file_prepare_directory($output_directory, FILE_CREATE_DIRECTORY)) {
|
||||
throw new Exception("Unable to continue sending mail, $output_directory is not writable");
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Retrieves the directory that contains message files.
|
||||
*
|
||||
* @return
|
||||
* The path to mail messages, possibly using a file URI scheme.
|
||||
*/
|
||||
public function getOutputDirectory() {
|
||||
return variable_get('devel_debug_mail_directory', 'temporary://devel-mails');
|
||||
}
|
||||
}
|
||||
?>
|
||||
|
||||
@@ -1,14 +1,23 @@
|
||||
<?php
|
||||
|
||||
// Menu callback that shows menu item.
|
||||
/**
|
||||
* @file
|
||||
* Page callbacks for Devel.
|
||||
*/
|
||||
|
||||
/**
|
||||
* Page callback: Shows a menu item.
|
||||
*/
|
||||
function devel_menu_item() {
|
||||
$item = menu_get_item($_GET['path']);
|
||||
return kdevel_print_object($item);
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a list of all currently defined user functions in the current
|
||||
* request lifecycle, with links their documentation.
|
||||
* Page callback: Returns a list of all currently defined user functions.
|
||||
*
|
||||
* Returns a list of all currently defined user functions in the current request
|
||||
* lifecycle, with links their documentation.
|
||||
*/
|
||||
function devel_function_reference() {
|
||||
$functions = get_defined_functions();
|
||||
@@ -23,9 +32,13 @@ function devel_function_reference() {
|
||||
}
|
||||
|
||||
/**
|
||||
* Menu callback; clears all caches, then redirects to the previous page.
|
||||
* Page callback: Clears all caches, then redirects to the previous page.
|
||||
*/
|
||||
function devel_cache_clear() {
|
||||
if (!isset($_GET['token']) || !drupal_valid_token($_GET['token'], 'devel-cache-clear')) {
|
||||
return MENU_ACCESS_DENIED;
|
||||
}
|
||||
|
||||
drupal_flush_all_caches();
|
||||
|
||||
drupal_set_message('Cache cleared.');
|
||||
@@ -33,7 +46,9 @@ function devel_cache_clear() {
|
||||
drupal_goto();
|
||||
}
|
||||
|
||||
// A menu callback. Called by the AJAX link in query log.
|
||||
/**
|
||||
* Page callback: Called by the AJAX link in query log.
|
||||
*/
|
||||
function devel_querylog_explain($request_id, $qid) {
|
||||
if (!is_numeric($request_id)) {
|
||||
return MENU_ACCESS_DENIED;
|
||||
@@ -41,25 +56,39 @@ function devel_querylog_explain($request_id, $qid) {
|
||||
|
||||
$path = "temporary://devel_querylog/$request_id.txt";
|
||||
$path = file_stream_wrapper_uri_normalize($path);
|
||||
$queries = json_decode(file_get_contents($path));
|
||||
$query = $queries[$qid];
|
||||
$result = db_query('EXPLAIN ' . $query->query, (array)$query->args)->fetchAllAssoc('table');
|
||||
$i = 1;
|
||||
foreach ($result as $row) {
|
||||
$row = (array)$row;
|
||||
if ($i == 1) {
|
||||
$header = array_keys($row);
|
||||
|
||||
$output = t('No explain log found.');
|
||||
|
||||
if (file_exists($path)) {
|
||||
$queries = json_decode(file_get_contents($path));
|
||||
|
||||
if ($queries !== FALSE && isset($queries[$qid])) {
|
||||
$header = $rows = array();
|
||||
|
||||
$query = $queries[$qid];
|
||||
$result = db_query('EXPLAIN ' . $query->query, (array)$query->args)->fetchAllAssoc('table');
|
||||
$i = 1;
|
||||
foreach ($result as $row) {
|
||||
$row = (array)$row;
|
||||
if ($i == 1) {
|
||||
$header = array_keys($row);
|
||||
}
|
||||
$rows[] = array_values($row);
|
||||
$i++;
|
||||
}
|
||||
|
||||
$output = theme('table', array('header' => $header, 'rows' => $rows));
|
||||
}
|
||||
$rows[] = array_values($row);
|
||||
$i++;
|
||||
}
|
||||
|
||||
// Print and return nothing thus avoiding page wrapper.
|
||||
$output = theme('table', array('header' => $header, 'rows' => $rows));
|
||||
print $output;
|
||||
$GLOBALS['devel_shutdown'] = FALSE;
|
||||
}
|
||||
|
||||
// A menu callback. Called by the AJAX link in query log.
|
||||
/**
|
||||
* Page callback: Called by the AJAX link in query log.
|
||||
*/
|
||||
function devel_querylog_arguments($request_id, $qid) {
|
||||
if (!is_numeric($request_id)) {
|
||||
return MENU_ACCESS_DENIED;
|
||||
@@ -67,22 +96,30 @@ function devel_querylog_arguments($request_id, $qid) {
|
||||
|
||||
$path = "temporary://devel_querylog/$request_id.txt";
|
||||
$path = file_stream_wrapper_uri_normalize($path);
|
||||
$queries = json_decode(file_get_contents($path));
|
||||
$query = $queries[$qid];
|
||||
$conn = Database::getConnection();
|
||||
$quoted = array();
|
||||
foreach ((array)$query->args as $key => $val) {
|
||||
$quoted[$key] = $conn->quote($val);
|
||||
}
|
||||
$output = strtr($query->query, $quoted);
|
||||
|
||||
// print and return nothing thus avoiding page wrapper.
|
||||
$output = t('No arguments log found.');
|
||||
|
||||
if (file_exists($path)) {
|
||||
$queries = json_decode(file_get_contents($path));
|
||||
|
||||
if ($queries !== FALSE && isset($queries[$qid])) {
|
||||
$query = $queries[$qid];
|
||||
$conn = Database::getConnection();
|
||||
$quoted = array();
|
||||
foreach ((array)$query->args as $key => $val) {
|
||||
$quoted[$key] = $conn->quote($val);
|
||||
}
|
||||
$output = strtr($query->query, $quoted);
|
||||
}
|
||||
}
|
||||
|
||||
// Print and return nothing thus avoiding page wrapper.
|
||||
print $output;
|
||||
$GLOBALS['devel_shutdown'] = FALSE;
|
||||
}
|
||||
|
||||
/**
|
||||
* Menu callback; clear the database, resetting the menu to factory defaults.
|
||||
* Page callback: Clears the database, resetting the menu to factory defaults.
|
||||
*/
|
||||
function devel_menu_rebuild() {
|
||||
menu_rebuild();
|
||||
@@ -91,7 +128,11 @@ function devel_menu_rebuild() {
|
||||
}
|
||||
|
||||
/**
|
||||
* Display a dropdown of installed modules with the option to reinstall them.
|
||||
* Form constructor for reinstalling any module from a dropdown.
|
||||
*
|
||||
* @see devel_reinstall_submit()
|
||||
*
|
||||
* @ingroup forms
|
||||
*/
|
||||
function devel_reinstall($form, &$form_state) {
|
||||
$output = '';
|
||||
@@ -103,7 +144,8 @@ function devel_reinstall($form, &$form_state) {
|
||||
'#options' => $options,
|
||||
'#description' => t('Uninstall and then install the selected modules. <code>hook_uninstall()</code> and <code>hook_install()</code> will be executed and the schema version number will be set to the most recent update number. You may have to manually clear out any existing tables first if the module doesn\'t implement <code>hook_uninstall()</code>.'),
|
||||
);
|
||||
$form['submit'] = array(
|
||||
$form['actions'] = array('#type' => 'actions');
|
||||
$form['actions']['submit'] = array(
|
||||
'#value' => t('Reinstall'),
|
||||
'#type' => 'submit',
|
||||
);
|
||||
@@ -111,7 +153,7 @@ function devel_reinstall($form, &$form_state) {
|
||||
}
|
||||
|
||||
/**
|
||||
* Process reinstall menu form submissions.
|
||||
* Form submission callback for devel_reinstall().
|
||||
*/
|
||||
function devel_reinstall_submit($form, &$form_state) {
|
||||
// require_once './includes/install.inc';
|
||||
@@ -122,7 +164,9 @@ function devel_reinstall_submit($form, &$form_state) {
|
||||
drupal_set_message(t('Uninstalled and installed: %names.', array('%names' => implode(', ', $modules))));
|
||||
}
|
||||
|
||||
// Menu callback.
|
||||
/**
|
||||
* Page callback: Rebuilds the theme registry.
|
||||
*/
|
||||
function devel_theme_registry() {
|
||||
drupal_theme_initialize();
|
||||
$hooks = theme_get_registry();
|
||||
@@ -130,14 +174,26 @@ function devel_theme_registry() {
|
||||
return kprint_r($hooks, TRUE);
|
||||
}
|
||||
|
||||
// Menu callback. $entity_type argument not currently used in the UI.
|
||||
/**
|
||||
* Page callback: Returns information from hook_entity_info().
|
||||
*
|
||||
* @param string $entity_type
|
||||
* (optional) Limit results to the specified entity type. The default is to
|
||||
* return information about all entity types. The $entity_type argument is not
|
||||
* currently used in the UI.
|
||||
*
|
||||
* @return
|
||||
* The results from kprint_r().
|
||||
*/
|
||||
function devel_entity_info_page($entity_type = NULL) {
|
||||
$info = entity_get_info($entity_type);
|
||||
ksort($info);
|
||||
return kprint_r($info, TRUE);
|
||||
}
|
||||
|
||||
// Menu callback.
|
||||
/**
|
||||
* Page callback: Returns information about fields.
|
||||
*/
|
||||
function devel_field_info_page() {
|
||||
$info = field_info_fields();
|
||||
$output = kprint_r($info, TRUE, t('Fields'));
|
||||
@@ -145,20 +201,24 @@ function devel_field_info_page() {
|
||||
$output .= kprint_r($info, TRUE, t('Instances'));
|
||||
$info = field_info_bundles();
|
||||
$output .= kprint_r($info, TRUE, t('Bundles'));
|
||||
$info = field_info_field_types();
|
||||
$output .= kprint_r($info, TRUE, t('Field types'));
|
||||
$info = field_info_formatter_types();
|
||||
$output .= kprint_r($info, TRUE, t('Formatter types'));
|
||||
$info = field_info_storage_types();
|
||||
$output .= kprint_r($info, TRUE, t('Storage types'));
|
||||
$info = field_info_widget_types();
|
||||
$output .= kprint_r($info, TRUE, t('Widget types'));
|
||||
return $output;
|
||||
}
|
||||
|
||||
/**
|
||||
* Menu callback; display all variables.
|
||||
* Form constructor for displaying and editing variables.
|
||||
*
|
||||
* @see devel_variable_form_submit()
|
||||
*
|
||||
* @ingroup forms.
|
||||
*/
|
||||
function devel_variable_page() {
|
||||
// We return our own $page so as to avoid blocks.
|
||||
$output = drupal_get_form('devel_variable_form');
|
||||
drupal_set_page_content($output);
|
||||
$page = element_info('page');
|
||||
return $page;
|
||||
}
|
||||
|
||||
function devel_variable_form() {
|
||||
$header = array(
|
||||
'name' => array('data' => t('Name'), 'field' => 'name', 'sort' => 'asc'),
|
||||
@@ -166,7 +226,9 @@ function devel_variable_form() {
|
||||
'length' => array('data' => t('Length'), 'field' => 'length'),
|
||||
'edit' => array('data' => t('Operations')),
|
||||
);
|
||||
// TODO: we could get variables out of $conf but that would include hard coded ones too. ideally i would highlight overrridden/hard coded variables
|
||||
// @todo: We could get variables out of $conf but that would include
|
||||
// hard-coded ones too. Ideally I would highlight overridden/hard-coded
|
||||
// variables.
|
||||
$query = db_select('variable', 'v')->extend('TableSort');
|
||||
$query->fields('v', array('name', 'value'));
|
||||
switch (db_driver()) {
|
||||
@@ -205,15 +267,20 @@ function devel_variable_form() {
|
||||
'#options' => $options,
|
||||
'#empty' => t('No variables.'),
|
||||
);
|
||||
$form['submit'] = array(
|
||||
$form['actions'] = array('#type' => 'actions');
|
||||
$form['actions']['submit'] = array(
|
||||
'#type' => 'submit',
|
||||
'#value' => t('Delete'),
|
||||
);
|
||||
$form['#after_build'][] = 'devel_variable_form_after_build';
|
||||
|
||||
// krumo($form);
|
||||
return $form;
|
||||
}
|
||||
|
||||
/**
|
||||
* Form submission handler for devel_variable_form().
|
||||
*/
|
||||
function devel_variable_form_submit($form, &$form_state) {
|
||||
$deletes = array_filter($form_state['values']['variables']);
|
||||
array_walk($deletes, 'variable_del');
|
||||
@@ -222,6 +289,25 @@ function devel_variable_form_submit($form, &$form_state) {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* After build callback for devel_variable_form().
|
||||
*
|
||||
* Wrap each variable name in a <label> element.
|
||||
*/
|
||||
function devel_variable_form_after_build($form, &$form_state) {
|
||||
foreach ($form['variables']['#options'] as $variable => $element) {
|
||||
$form['variables']['#options'][$variable]['name'] = '<label for="' . $form['variables'][$variable]['#id'] . '">' . $element['name'] . '</label>';
|
||||
}
|
||||
return $form;
|
||||
}
|
||||
|
||||
/**
|
||||
* Form constructor for editing a variable.
|
||||
*
|
||||
* @see devel_variable_edit_submit()
|
||||
*
|
||||
* @ingroup forms
|
||||
*/
|
||||
function devel_variable_edit($form, &$form_state, $name) {
|
||||
$value = variable_get($name, 'not found');
|
||||
$form['name'] = array(
|
||||
@@ -239,7 +325,8 @@ function devel_variable_edit($form, &$form_state, $name) {
|
||||
'#title' => t('New value'),
|
||||
'#default_value' => $value
|
||||
);
|
||||
$form['submit'] = array(
|
||||
$form['actions'] = array('#type' => 'actions');
|
||||
$form['actions']['submit'] = array(
|
||||
'#type' => 'submit',
|
||||
'#value' => t('Submit'),
|
||||
);
|
||||
@@ -256,6 +343,9 @@ function devel_variable_edit($form, &$form_state, $name) {
|
||||
return $form;
|
||||
}
|
||||
|
||||
/**
|
||||
* Form submission handler for devel_variable_edit().
|
||||
*/
|
||||
function devel_variable_edit_submit($form, &$form_state) {
|
||||
variable_set($form_state['values']['name'], $form_state['values']['new']);
|
||||
drupal_set_message(t('Saved new value for %name.', array('%name' => $form_state['values']['name'])));
|
||||
@@ -263,7 +353,7 @@ function devel_variable_edit_submit($form, &$form_state) {
|
||||
}
|
||||
|
||||
/**
|
||||
* Menu callback: display the session.
|
||||
* Page callback: Displays the session.
|
||||
*/
|
||||
function devel_session() {
|
||||
global $user;
|
||||
@@ -274,7 +364,7 @@ function devel_session() {
|
||||
}
|
||||
|
||||
/**
|
||||
* Menu callback; prints the loaded structure of the current node/user.
|
||||
* Page callback: Prints the loaded structure of the current node/user.
|
||||
*/
|
||||
function devel_load_object($type, $object, $name = NULL) {
|
||||
$name = isset($name) ? $name : $type;
|
||||
@@ -282,19 +372,45 @@ function devel_load_object($type, $object, $name = NULL) {
|
||||
}
|
||||
|
||||
/**
|
||||
* Menu callback; prints the render structure of the current object (currently node or user).
|
||||
* Page callback: Prints the render structure of the current object.
|
||||
*
|
||||
* @param string $type
|
||||
* The type of entity that will be displayed.
|
||||
* @param object $object
|
||||
* The entity to display.
|
||||
* @param string $name
|
||||
* (optional) The label to use when displaying the entity.
|
||||
*
|
||||
* @return
|
||||
* The results from kdevel_print_object().
|
||||
*/
|
||||
function devel_render_object($type, $object, $name = NULL) {
|
||||
$name = isset($name) ? $name : $type;
|
||||
$function = $type . '_view';
|
||||
$build = $function($object);
|
||||
|
||||
switch ($function) {
|
||||
case 'comment_view':
|
||||
$node = node_load($object->nid);
|
||||
$build = $function($object, $node);
|
||||
break;
|
||||
|
||||
default:
|
||||
$build = $function($object);
|
||||
}
|
||||
|
||||
return kdevel_print_object($build, '$'. $name .'->');
|
||||
}
|
||||
|
||||
/**
|
||||
* Page callback: Returns information from hook_elements().
|
||||
*/
|
||||
function devel_elements_page() {
|
||||
return kdevel_print_object(module_invoke_all('element_info'));
|
||||
}
|
||||
|
||||
/**
|
||||
* Page callback: Returns the results from phpinfo().
|
||||
*/
|
||||
function devel_phpinfo() {
|
||||
print phpinfo();
|
||||
drupal_exit();
|
||||
|
||||
@@ -1,5 +1,10 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* @file
|
||||
* Rules integration for Devel.
|
||||
*/
|
||||
|
||||
/**
|
||||
* Implements hook_rules_action_info().
|
||||
*/
|
||||
|
||||
@@ -11,6 +11,9 @@
|
||||
class DevelMailTest extends DrupalWebTestCase {
|
||||
protected $profile = 'testing';
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public static function getInfo() {
|
||||
return array(
|
||||
'name' => 'Devel Mail interface',
|
||||
@@ -19,6 +22,9 @@ class DevelMailTest extends DrupalWebTestCase {
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
function setUp() {
|
||||
parent::setUp();
|
||||
}
|
||||
@@ -45,7 +51,8 @@ class DevelMailTest extends DrupalWebTestCase {
|
||||
$this->assertEqual($content, 'From: postmaster@example.com
|
||||
X-stupid: dumb
|
||||
To: drupal@example.com
|
||||
Test mail
|
||||
Subject: Test mail
|
||||
|
||||
I am the body of this message');
|
||||
}
|
||||
|
||||
|
||||
@@ -1,13 +1,26 @@
|
||||
<?php
|
||||
|
||||
/*
|
||||
/**
|
||||
* @file
|
||||
* PHPUnit Tests for devel. This uses Drush's own test framework, based on PHPUnit.
|
||||
* To run the tests, use phpunit --bootstrap=/path/to/drush/tests/drush_testcase.inc.
|
||||
* Note that we are pointing to the drush_testcase.inc file under /tests subdir in drush.
|
||||
* PHPUnit Tests for devel.
|
||||
*
|
||||
* This uses Drush's own test framework, based on PHPUnit.
|
||||
* To run the tests, use
|
||||
* @code
|
||||
* phpunit --bootstrap=/path/to/drush/tests/drush_testcase.inc.
|
||||
* @endcode
|
||||
* Note that we are pointing to the drush_testcase.inc file under /tests subdir
|
||||
* in drush.
|
||||
*/
|
||||
|
||||
/**
|
||||
* Class for testing Drush integration.
|
||||
*/
|
||||
class develCase extends Drush_CommandTestCase {
|
||||
|
||||
/**
|
||||
* Tests the printing of a function and its Doxygen comment.
|
||||
*/
|
||||
public function testFnView() {
|
||||
$sites = $this->setUpDrupal(1, TRUE);
|
||||
$options = array(
|
||||
@@ -22,4 +35,4 @@ class develCase extends Drush_CommandTestCase {
|
||||
$this->assertContains('@return', $output, 'Output contain @return Doxygen.');
|
||||
$this->assertContains('function drush_main() {', $output, 'Output contains function drush_main() declaration');
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -10,6 +10,7 @@
|
||||
*/
|
||||
function devel_generate_drush_command() {
|
||||
$items['generate-users'] = array(
|
||||
'callback' => 'drush_devel_generate_users',
|
||||
'description' => 'Create users.',
|
||||
'arguments' => array(
|
||||
'number_users' => 'Number of users to generate.',
|
||||
@@ -17,10 +18,12 @@ function devel_generate_drush_command() {
|
||||
'options' => array(
|
||||
'kill' => 'Delete all users before generating new ones.',
|
||||
'roles' => 'A comma delimited list of role IDs which should be granted to the new users. No need to specify authenticated user role.',
|
||||
'pass' => 'Specify a password to be set for all generated users.',
|
||||
),
|
||||
'aliases' => array('genu'),
|
||||
);
|
||||
$items['generate-terms'] = array(
|
||||
'callback' => 'drush_devel_generate_terms',
|
||||
'description' => 'Create terms in specified vocabulary.',
|
||||
'arguments' => array(
|
||||
'machine_name' => 'Vocabulary machine name into which new terms will be inserted.',
|
||||
@@ -28,12 +31,13 @@ function devel_generate_drush_command() {
|
||||
),
|
||||
'options' => array(
|
||||
'kill' => 'Delete all terms in specified vocabulary before generating.',
|
||||
'feedback' => 'An integer representing interval for insertion rate logging. Defaults to 500',
|
||||
'feedback' => 'An integer representing interval for insertion rate logging. Defaults to 1000',
|
||||
),
|
||||
'aliases' => array('gent'),
|
||||
|
||||
);
|
||||
$items['generate-vocabs'] = array(
|
||||
'callback' => 'drush_devel_generate_vocabs',
|
||||
'description' => 'Create vocabularies.',
|
||||
'arguments' => array(
|
||||
'num_vocabs' => 'Number of vocabularies to create. Defaults to 1.',
|
||||
@@ -44,6 +48,7 @@ function devel_generate_drush_command() {
|
||||
'aliases' => array('genv'),
|
||||
);
|
||||
$items['generate-content'] = array(
|
||||
'callback' => 'drush_devel_generate_content',
|
||||
'description' => 'Create content.',
|
||||
'drupal dependencies' => array('devel_generate'),
|
||||
'arguments' => array(
|
||||
@@ -53,13 +58,14 @@ function devel_generate_drush_command() {
|
||||
'options' => array(
|
||||
'kill' => 'Delete all content before generating new content.',
|
||||
'types' => 'A comma delimited list of content types to create. Defaults to page,article.',
|
||||
'feedback' => 'An integer representing interval for insertion rate logging. Defaults to 500',
|
||||
'feedback' => 'An integer representing interval for insertion rate logging. Defaults to 1000',
|
||||
'skip-fields' => 'A comma delimited list of fields to omit when generating random values',
|
||||
'languages' => 'A comma-separated list of language codes',
|
||||
),
|
||||
'aliases' => array('genc'),
|
||||
);
|
||||
$items['generate-menus'] = array(
|
||||
'callback' => 'drush_devel_generate_menus',
|
||||
'description' => 'Create menus and menu items.',
|
||||
'drupal dependencies' => array('devel_generate'), // Remove these once devel.module is moved down a directory. http://drupal.org/node/925246
|
||||
'arguments' => array(
|
||||
@@ -86,7 +92,8 @@ function drush_devel_generate_users($num_users = NULL) {
|
||||
}
|
||||
drush_generate_include_devel();
|
||||
$roles = drush_get_option('roles') ? explode(',', drush_get_option('roles')) : array();
|
||||
devel_create_users($num_users, drush_get_option('kill'), 0, $roles);
|
||||
$pass = drush_get_option('pass', NULL);
|
||||
devel_create_users($num_users, drush_get_option('kill'), 0, $roles, $pass);
|
||||
drush_log(t('Generated @number users.', array('@number' => $num_users)), 'success');
|
||||
}
|
||||
|
||||
@@ -103,9 +110,14 @@ function drush_devel_generate_terms($vname = NULL, $num_terms = 10) {
|
||||
}
|
||||
|
||||
drush_generate_include_devel();
|
||||
$vocabs[$vocab->vid] = $vocab;
|
||||
devel_generate_term_data($vocabs, $num_terms, '12', drush_get_option('kill'));
|
||||
drush_log(dt('Generated @num_terms terms.', array('@num_terms' => $num_terms)), 'success');
|
||||
if (drush_get_option('kill')) {
|
||||
devel_generate_delete_vocabulary_terms($vocab->vid);
|
||||
drush_log(dt('Deleted existing terms.'), 'success');
|
||||
}
|
||||
$new_terms = devel_generate_terms($num_terms, array($vocab->vid => $vocab), '12');
|
||||
if (!empty($new_terms)) {
|
||||
drush_log(dt("Created the following new terms:\n!terms", array('!terms' => implode("\n", $new_terms))), 'success');
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -116,8 +128,14 @@ function drush_devel_generate_vocabs($num_vocab = 1) {
|
||||
return drush_set_error('DEVEL_GENERATE_INVALID_INPUT', dt('Invalid number of vocabularies: !num.', array('!num' => $num_vocab)));
|
||||
}
|
||||
drush_generate_include_devel();
|
||||
devel_generate_vocab_data($num_vocab, '12', drush_get_option('kill'));
|
||||
drush_log(dt('Generated @num_vocab vocabularies.', array('@num_vocab' => $num_vocab)), 'success');
|
||||
if (drush_get_option('kill')) {
|
||||
devel_generate_delete_vocabularies();
|
||||
drush_log(dt('Deleted existing vocabularies.'), 'success');
|
||||
}
|
||||
$new_vocs = devel_generate_vocabs($num_vocab, '12');
|
||||
if (!empty($new_vocs)) {
|
||||
drush_log(dt("Created the following new vocabularies:\n!vocs", array('!vocs' => implode("\n", $new_vocs))), 'success');
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -152,6 +170,10 @@ function drush_devel_generate_content($num_nodes = NULL, $max_comments = NULL) {
|
||||
$values['values']['num_nodes'] = $num_nodes;
|
||||
$values['values']['max_comments'] = $max_comments;
|
||||
$values['values']['node_types'] = drupal_map_assoc(explode(',', drush_get_option('types', 'page,article')));
|
||||
$node_types = array_filter($values['values']['node_types']);
|
||||
if (!empty($values['values']['kill_content']) && empty($node_types)) {
|
||||
return drush_set_error('DEVEL_GENERATE_INVALID_INPUT', dt('Please provide content type (--types) in which you want to delete the content.'));
|
||||
}
|
||||
drush_generate_include_devel();
|
||||
devel_generate_content($values);
|
||||
drush_log(t('Generated @num_nodes nodes, @max_comments comments (or less) per node.', array('@num_nodes' => (int)$num_nodes, '@max_comments' => (int)$max_comments)), 'success');
|
||||
@@ -179,12 +201,26 @@ function drush_devel_generate_menus($number_menus = 2, $number_links = 50, $max_
|
||||
$user = $user_one;
|
||||
drupal_save_session(FALSE);
|
||||
|
||||
$kill = drush_get_option('kill');
|
||||
drush_generate_include_devel();
|
||||
|
||||
// Delete custom menus.
|
||||
if (drush_get_option('kill')) {
|
||||
devel_generate_delete_menus();
|
||||
drush_log(dt('Deleted existing menus and links.'), 'success');
|
||||
}
|
||||
|
||||
// Generate new menus.
|
||||
$new_menus = devel_generate_menus($number_menus, '12');
|
||||
if (!empty($new_menus)) {
|
||||
drush_log(dt("Created the following new menus:\n!menus", array('!menus' => implode("\n", $new_menus))), 'success');
|
||||
}
|
||||
|
||||
// Generate new menu links.
|
||||
$link_types = drupal_map_assoc(array('node', 'front', 'external'));
|
||||
devel_generate_menu_data($number_menus, array(), $number_links, 12, $link_types, $max_depth, $max_width, $kill);
|
||||
drush_log(t('Generated @number_menus menus, @number_links links.', array('@number_menus' => (int)$number_menus, '@number_links' => (int)$number_links)), 'success');
|
||||
$new_links = devel_generate_links($number_links, $new_menus, '12', $link_types, $max_depth, $max_width);
|
||||
drush_log(dt('Created !count new menu links.', array('!count' => count($new_links))), 'success');
|
||||
}
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////////
|
||||
// Helper functions
|
||||
|
||||
|
||||
@@ -11,8 +11,10 @@
|
||||
* The max age of each randomly-generated user, in seconds.
|
||||
* @param $roles
|
||||
* An array of role IDs that the users should receive.
|
||||
* @param $pass
|
||||
* A string to be used as common password for all generated users.
|
||||
*/
|
||||
function devel_create_users($num, $kill, $age = 0, $roles = array()) {
|
||||
function devel_create_users($num, $kill, $age = 0, $roles = array(), $pass = NULL) {
|
||||
$url = parse_url($GLOBALS['base_url']);
|
||||
if ($kill) {
|
||||
$uids = db_select('users', 'u')
|
||||
@@ -45,8 +47,8 @@ function devel_create_users($num, $kill, $age = 0, $roles = array()) {
|
||||
$edit = array(
|
||||
'uid' => NULL,
|
||||
'name' => $name,
|
||||
'pass' => NULL, // No password avoids user_hash_password() which is expensive.
|
||||
'mail' => $name . '@' . $url['host'],
|
||||
'pass' => $pass,
|
||||
'mail' => $name . '@' . $url['host'].'.invalid',
|
||||
'status' => 1,
|
||||
'created' => REQUEST_TIME - mt_rand(0, $age),
|
||||
'roles' => drupal_map_assoc($roles),
|
||||
@@ -103,6 +105,7 @@ function devel_create_users($num, $kill, $age = 0, $roles = array()) {
|
||||
// Save the user record with the new picture.
|
||||
$edit = (array) $account;
|
||||
$edit['picture'] = $file;
|
||||
$edit['pass'] = $pass; // Reassign password as it is replaced with the hashed version in $account
|
||||
user_save($account, $edit);
|
||||
}
|
||||
}
|
||||
@@ -114,8 +117,11 @@ function devel_create_users($num, $kill, $age = 0, $roles = array()) {
|
||||
/**
|
||||
* The main API function for creating content.
|
||||
*
|
||||
* See devel_generate_content_form() for the supported keys in $form_state['values'].
|
||||
* Other modules may participate by form_alter() on that form and then handling their data during hook_nodeapi('pre_save') or in own submit handler for the form.
|
||||
* See devel_generate_content_form() for the supported keys in
|
||||
* $form_state['values'].
|
||||
* Other modules may participate by form_alter() on that form and then handling
|
||||
* their data during hook_node_insert() or in their own submit handler for the
|
||||
* form.
|
||||
*
|
||||
* @param string $form_state
|
||||
* @return void
|
||||
@@ -205,6 +211,18 @@ function devel_generate_vocabs($records, $maxlength = 12, $types = array('page',
|
||||
return $vocs;
|
||||
}
|
||||
|
||||
/**
|
||||
* Generates taxonomy terms for a list of given vocabularies.
|
||||
*
|
||||
* @param $records
|
||||
* int number of terms to create in total.
|
||||
* @param $vocabs
|
||||
* array list of vocabs to populate.
|
||||
* @param $maxlength
|
||||
* int maximum length per term.
|
||||
* @return
|
||||
* array the list of names of the created terms.
|
||||
*/
|
||||
function devel_generate_terms($records, $vocabs, $maxlength = 12) {
|
||||
$terms = array();
|
||||
|
||||
@@ -252,10 +270,11 @@ function devel_generate_terms($records, $vocabs, $maxlength = 12) {
|
||||
$term->format = filter_fallback_format();
|
||||
$term->weight = mt_rand(0, 10);
|
||||
$term->language = LANGUAGE_NONE;
|
||||
$term->devel_generate = TRUE;
|
||||
|
||||
// Populate all core fields on behalf of field.module
|
||||
module_load_include('inc', 'devel_generate', 'devel_generate.fields');
|
||||
devel_generate_fields($term, 'term', $term->vocabulary_machine_name);
|
||||
devel_generate_fields($term, 'taxonomy_term', $term->vocabulary_machine_name);
|
||||
|
||||
if ($status = taxonomy_term_save($term)) {
|
||||
$max += 1;
|
||||
@@ -289,69 +308,49 @@ function devel_generate_get_terms($vids) {
|
||||
->fetchCol('tid');
|
||||
}
|
||||
|
||||
function devel_generate_term_data($vocabs, $num_terms, $title_length, $kill) {
|
||||
if ($kill) {
|
||||
foreach (devel_generate_get_terms(array_keys($vocabs)) as $tid) {
|
||||
taxonomy_term_delete($tid);
|
||||
}
|
||||
drupal_set_message(t('Deleted existing terms.'));
|
||||
}
|
||||
|
||||
$new_terms = devel_generate_terms($num_terms, $vocabs, $title_length);
|
||||
if (!empty($new_terms)) {
|
||||
drupal_set_message(t('Created the following new terms: !terms', array('!terms' => theme('item_list', array('items' => $new_terms)))));
|
||||
/**
|
||||
* Deletes all terms of a vocabulary.
|
||||
*
|
||||
* @param $vid
|
||||
* int a vocabulary vid.
|
||||
*/
|
||||
function devel_generate_delete_vocabulary_terms($vid) {
|
||||
foreach (taxonomy_get_tree($vid) as $term) {
|
||||
taxonomy_term_delete($term->tid);
|
||||
}
|
||||
}
|
||||
|
||||
function devel_generate_vocab_data($num_vocab, $title_length, $kill) {
|
||||
|
||||
if ($kill) {
|
||||
foreach (taxonomy_get_vocabularies() as $vid => $vocab) {
|
||||
taxonomy_vocabulary_delete($vid);
|
||||
}
|
||||
drupal_set_message(t('Deleted existing vocabularies.'));
|
||||
}
|
||||
|
||||
$new_vocs = devel_generate_vocabs($num_vocab, $title_length);
|
||||
if (!empty($new_vocs)) {
|
||||
drupal_set_message(t('Created the following new vocabularies: !vocs', array('!vocs' => theme('item_list', array('items' => $new_vocs)))));
|
||||
/**
|
||||
* Deletes all vocabularies.
|
||||
*/
|
||||
function devel_generate_delete_vocabularies() {
|
||||
foreach (taxonomy_vocabulary_load_multiple(FALSE) as $vid => $vocab) {
|
||||
taxonomy_vocabulary_delete($vid);
|
||||
}
|
||||
}
|
||||
|
||||
function devel_generate_menu_data($num_menus, $existing_menus, $num_links, $title_length, $link_types, $max_depth, $max_width, $kill) {
|
||||
// Delete menus and menu links.
|
||||
if ($kill) {
|
||||
if (module_exists('menu')) {
|
||||
foreach (menu_get_menus(FALSE) as $menu => $menu_title) {
|
||||
if (strpos($menu, 'devel-') === 0) {
|
||||
$menu = menu_load($menu);
|
||||
menu_delete($menu);
|
||||
}
|
||||
/**
|
||||
* Deletes custom generated menus
|
||||
*/
|
||||
function devel_generate_delete_menus() {
|
||||
if (module_exists('menu')) {
|
||||
foreach (menu_get_menus(FALSE) as $menu => $menu_title) {
|
||||
if (strpos($menu, 'devel-') === 0) {
|
||||
$menu = menu_load($menu);
|
||||
menu_delete($menu);
|
||||
}
|
||||
}
|
||||
// Delete menu links generated by devel.
|
||||
$result = db_select('menu_links', 'm')
|
||||
->fields('m', array('mlid'))
|
||||
->condition('m.menu_name', 'devel', '<>')
|
||||
// Look for the serialized version of 'devel' => TRUE.
|
||||
->condition('m.options', '%' . db_like('s:5:"devel";b:1') . '%', 'LIKE')
|
||||
->execute();
|
||||
foreach ($result as $link) {
|
||||
menu_link_delete($link->mlid);
|
||||
}
|
||||
drupal_set_message(t('Deleted existing menus and links.'));
|
||||
}
|
||||
|
||||
// Generate new menus.
|
||||
$new_menus = devel_generate_menus($num_menus, $title_length);
|
||||
if (!empty($new_menus)) {
|
||||
drupal_set_message(t('Created the following new menus: !menus', array('!menus' => theme('item_list', array('items' => $new_menus)))));
|
||||
// Delete menu links generated by devel.
|
||||
$result = db_select('menu_links', 'm')
|
||||
->fields('m', array('mlid'))
|
||||
->condition('m.menu_name', 'devel', '<>')
|
||||
// Look for the serialized version of 'devel' => TRUE.
|
||||
->condition('m.options', '%' . db_like('s:5:"devel";b:1') . '%', 'LIKE')
|
||||
->execute();
|
||||
foreach ($result as $link) {
|
||||
menu_link_delete($link->mlid);
|
||||
}
|
||||
|
||||
// Generate new menu links.
|
||||
$menus = $new_menus + $existing_menus;
|
||||
$new_links = devel_generate_links($num_links, $menus, $title_length, $link_types, $max_depth, $max_width);
|
||||
drupal_set_message(t('Created @count new menu links.', array('@count' => count($new_links))));
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -366,7 +365,7 @@ function devel_generate_menus($num_menus, $title_length = 12) {
|
||||
|
||||
for ($i = 1; $i <= $num_menus; $i++) {
|
||||
$menu = array();
|
||||
$menu['title'] = devel_generate_word(mt_rand(2, $title_length));
|
||||
$menu['title'] = devel_generate_word(mt_rand(2, max(2, $title_length)));
|
||||
$menu['menu_name'] = 'devel-' . drupal_strtolower($menu['title']);
|
||||
$menu['description'] = t('Description of @name', array('@name' => $menu['title']));
|
||||
menu_save($menu);
|
||||
@@ -394,7 +393,7 @@ function devel_generate_links($num_links, $menus, $title_length, $link_types, $m
|
||||
'options' => array('devel' => TRUE),
|
||||
'weight' => mt_rand(-50, 50),
|
||||
'mlid' => 0,
|
||||
'link_title' => devel_generate_word(mt_rand(2, $title_length)),
|
||||
'link_title' => devel_generate_word(mt_rand(2, max(2, $title_length))),
|
||||
);
|
||||
$link['options']['attributes']['title'] = t('Description of @title.', array('@title' => $link['link_title']));
|
||||
|
||||
@@ -404,7 +403,7 @@ function devel_generate_links($num_links, $menus, $title_length, $link_types, $m
|
||||
}
|
||||
else {
|
||||
// Otherwise, get a random parent menu depth.
|
||||
$depth = mt_rand(1, $max_depth - 1);
|
||||
$depth = mt_rand(1, max(1, $max_depth - 1));
|
||||
}
|
||||
// Get a random parent link from the proper depth.
|
||||
do {
|
||||
@@ -479,29 +478,11 @@ function devel_generate_word($length){
|
||||
return substr($word, 0, $length);
|
||||
}
|
||||
|
||||
function devel_create_content($type = NULL) {
|
||||
$nparas = mt_rand(1,12);
|
||||
$type = empty($type) ? mt_rand(0,3) : $type;
|
||||
|
||||
$output = "";
|
||||
switch($type % 3) {
|
||||
// MW: This appears undesireable. Was giving <p> in text fields
|
||||
// case 1: // html
|
||||
// for ($i = 1; $i <= $nparas; $i++) {
|
||||
// $output .= devel_create_para(mt_rand(10,60),1);
|
||||
// }
|
||||
// break;
|
||||
//
|
||||
// case 2: // brs only
|
||||
// for ($i = 1; $i <= $nparas; $i++) {
|
||||
// $output .= devel_create_para(mt_rand(10,60),2);
|
||||
// }
|
||||
// break;
|
||||
|
||||
default: // plain text
|
||||
for ($i = 1; $i <= $nparas; $i++) {
|
||||
$output .= devel_create_para(mt_rand(10,60)) ."\n\n";
|
||||
}
|
||||
function devel_create_content() {
|
||||
$nparas = mt_rand(1, 12);
|
||||
$output = '';
|
||||
for ($i = 1; $i <= $nparas; $i++) {
|
||||
$output .= devel_create_para(mt_rand(10,60)) . "\n\n";
|
||||
}
|
||||
|
||||
return $output;
|
||||
@@ -661,8 +642,12 @@ function devel_generate_content_pre_node(&$results) {
|
||||
/**
|
||||
* Create one node. Used by both batch and non-batch code branches.
|
||||
*
|
||||
* @param $num
|
||||
* array of options obtained from devel_generate_content_form.
|
||||
* @param $results
|
||||
* array of options obtained from devel_generate_content_form. If call
|
||||
* this function directly, $results should contain at the very least:
|
||||
* node_types => an associative array of node type machine names
|
||||
* users => an array of UIDs
|
||||
* title_length => max number of words in titles, for example 4.
|
||||
*/
|
||||
function devel_generate_content_add_node(&$results) {
|
||||
$node = new stdClass();
|
||||
@@ -674,9 +659,19 @@ function devel_generate_content_add_node(&$results) {
|
||||
$users = $results['users'];
|
||||
$node->uid = $users[array_rand($users)];
|
||||
$type = node_type_get_type($node);
|
||||
$node->title = $type->has_title ? devel_create_greeking(mt_rand(2, $results['title_length']), TRUE) : '';
|
||||
$node->revision = mt_rand(0,1);
|
||||
$node->promote = mt_rand(0, 1);
|
||||
|
||||
if (!$type || $type->has_title) {
|
||||
// We should not use the random function if the value is not random
|
||||
if ($results['title_length'] < 2) {
|
||||
$node->title = devel_create_greeking(1, TRUE);
|
||||
}
|
||||
else {
|
||||
$node->title = devel_create_greeking(mt_rand(1, $results['title_length']), TRUE);
|
||||
}
|
||||
}
|
||||
|
||||
// Avoid NOTICE.
|
||||
if (!isset($results['time_range'])) {
|
||||
$results['time_range'] = 0;
|
||||
@@ -686,14 +681,16 @@ function devel_generate_content_add_node(&$results) {
|
||||
|
||||
$node->created = REQUEST_TIME - mt_rand(0, $results['time_range']);
|
||||
|
||||
// A flag to let hook_nodeapi() implementations know that this is a generated node.
|
||||
// A flag to let hook_node_insert() implementations know that this is a
|
||||
// generated node.
|
||||
$node->devel_generate = $results;
|
||||
|
||||
// Populate all core fields on behalf of field.module
|
||||
module_load_include('inc', 'devel_generate', 'devel_generate.fields');
|
||||
devel_generate_fields($node, 'node', $node->type);
|
||||
|
||||
// See devel_generate_nodeapi() for actions that happen before and after this save.
|
||||
// See devel_generate_node_insert() for actions that happen before and after
|
||||
// this save.
|
||||
node_save($node);
|
||||
}
|
||||
|
||||
|
||||
@@ -2,13 +2,12 @@ name = Devel generate
|
||||
description = Generate dummy users, nodes, and taxonomy terms.
|
||||
package = Development
|
||||
core = 7.x
|
||||
dependencies[] = devel
|
||||
tags[] = developer
|
||||
configure = admin/config/development/generate
|
||||
files[] = devel_generate.test
|
||||
|
||||
; Information added by drupal.org packaging script on 2012-06-05
|
||||
version = "7.x-1.3"
|
||||
; Information added by Drupal.org packaging script on 2019-02-22
|
||||
version = "7.x-1.7"
|
||||
core = "7.x"
|
||||
project = "devel"
|
||||
datestamp = "1338940281"
|
||||
|
||||
datestamp = "1550852892"
|
||||
|
||||
@@ -71,6 +71,14 @@ function devel_generate_users_form() {
|
||||
'#options' => $options,
|
||||
);
|
||||
|
||||
$form['pass'] = array(
|
||||
'#type' => 'textfield',
|
||||
'#title' => t('Password to be set'),
|
||||
'#default_value' => NULL,
|
||||
'#size' => 32,
|
||||
'#description' => t('Leave this field empty if you do not need to set a password.'),
|
||||
);
|
||||
|
||||
$options = array(1 => t('Now'));
|
||||
foreach (array(3600, 86400, 604800, 2592000, 31536000) as $interval) {
|
||||
$options[$interval] = format_interval($interval, 1) . ' ' . t('ago');
|
||||
@@ -83,7 +91,8 @@ function devel_generate_users_form() {
|
||||
'#default_value' => 604800,
|
||||
);
|
||||
|
||||
$form['submit'] = array(
|
||||
$form['actions'] = array('#type' => 'actions');
|
||||
$form['actions']['submit'] = array(
|
||||
'#type' => 'submit',
|
||||
'#value' => t('Generate'),
|
||||
);
|
||||
@@ -93,10 +102,10 @@ function devel_generate_users_form() {
|
||||
/**
|
||||
* FormAPI submission to generate users.
|
||||
*/
|
||||
function devel_generate_users_form_submit($form_id, &$form_state) {
|
||||
function devel_generate_users_form_submit($form, &$form_state) {
|
||||
module_load_include('inc', 'devel_generate');
|
||||
$values = $form_state['values'];
|
||||
devel_create_users($values['num'], $values['kill_users'], $values['time_range'], $values['roles']);
|
||||
devel_create_users($values['num'], $values['kill_users'], $values['time_range'], $values['roles'], $values['pass']);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -117,14 +126,15 @@ function devel_generate_content_form() {
|
||||
}
|
||||
else {
|
||||
$types = node_type_get_types();
|
||||
$suffix = '';
|
||||
foreach ($types as $type) {
|
||||
$options[$type->type] = array(
|
||||
'type' => t($type->name),
|
||||
);
|
||||
if (module_exists('comment')) {
|
||||
$default = variable_get('comment_' . $type->type, COMMENT_NODE_OPEN);
|
||||
$map = array(t('Hidden'), t('Closed'), t('Open'));
|
||||
$suffix = '<small>. ' . t('Comments: ') . $map[$default]. '</small>';
|
||||
$options[$type->type]['comments'] = '<small>'. $map[$default]. '</small>';
|
||||
}
|
||||
$options[$type->type] = t($type->name) . $suffix;
|
||||
}
|
||||
}
|
||||
// we cannot currently generate valid polls.
|
||||
@@ -135,11 +145,18 @@ function devel_generate_content_form() {
|
||||
return;
|
||||
}
|
||||
|
||||
$header = array(
|
||||
'type' => t('Content type'),
|
||||
);
|
||||
if (module_exists('comment')) {
|
||||
$header['comments'] = t('Comments');
|
||||
}
|
||||
|
||||
$form['node_types'] = array(
|
||||
'#type' => 'checkboxes',
|
||||
'#title' => t('Content types'),
|
||||
'#type' => 'tableselect',
|
||||
'#header' => $header,
|
||||
'#options' => $options,
|
||||
'#default_value' => array_keys($options),
|
||||
'#required' => TRUE,
|
||||
);
|
||||
if (module_exists('checkall')) $form['node_types']['#checkall'] = TRUE;
|
||||
$form['kill_content'] = array(
|
||||
@@ -209,7 +226,8 @@ function devel_generate_content_form() {
|
||||
'#default_value' => array(LANGUAGE_NONE),
|
||||
);
|
||||
|
||||
$form['submit'] = array(
|
||||
$form['actions'] = array('#type' => 'actions');
|
||||
$form['actions']['submit'] = array(
|
||||
'#type' => 'submit',
|
||||
'#value' => t('Generate'),
|
||||
);
|
||||
@@ -218,12 +236,21 @@ function devel_generate_content_form() {
|
||||
return $form;
|
||||
}
|
||||
|
||||
/**
|
||||
* FormAPI validation before generate nodes.
|
||||
*/
|
||||
function devel_generate_content_form_validate($form, &$form_state) {
|
||||
form_set_value($form['node_types'], array_filter($form_state['values']['node_types']) , $form_state);
|
||||
if (!empty($form_state['values']['kill_content']) && empty($form_state['values']['node_types'])) {
|
||||
form_set_error('', t('Please select at least one content type to delete the content.'));
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* FormAPI submission to generate nodes.
|
||||
*/
|
||||
function devel_generate_content_form_submit($form_id, &$form_state) {
|
||||
function devel_generate_content_form_submit($form, &$form_state) {
|
||||
module_load_include('inc', 'devel_generate', 'devel_generate');
|
||||
$form_state['values']['node_types'] = array_filter($form_state['values']['node_types']);
|
||||
if ($form_state['values']['num_nodes'] <= 50 && $form_state['values']['max_comments'] <= 10) {
|
||||
module_load_include('inc', 'devel_generate');
|
||||
devel_generate_content($form_state);
|
||||
@@ -267,7 +294,8 @@ function devel_generate_term_form() {
|
||||
'#title' => t('Delete existing terms in specified vocabularies before generating new terms.'),
|
||||
'#default_value' => FALSE,
|
||||
);
|
||||
$form['submit'] = array(
|
||||
$form['actions'] = array('#type' => 'actions');
|
||||
$form['actions']['submit'] = array(
|
||||
'#type' => 'submit',
|
||||
'#value' => t('Generate'),
|
||||
);
|
||||
@@ -295,7 +323,8 @@ function devel_generate_vocab_form() {
|
||||
'#title' => t('Delete existing vocabularies before generating new ones.'),
|
||||
'#default_value' => FALSE,
|
||||
);
|
||||
$form['submit'] = array(
|
||||
$form['actions'] = array('#type' => 'actions');
|
||||
$form['actions']['submit'] = array(
|
||||
'#type' => 'submit',
|
||||
'#value' => t('Generate'),
|
||||
);
|
||||
@@ -305,18 +334,36 @@ function devel_generate_vocab_form() {
|
||||
/**
|
||||
* FormAPI submission to generate taxonomy terms.
|
||||
*/
|
||||
function devel_generate_term_form_submit($form_id, &$form_state) {
|
||||
function devel_generate_term_form_submit($form, &$form_state) {
|
||||
$values = $form_state['values'];
|
||||
module_load_include('inc', 'devel_generate');
|
||||
$vocabs = taxonomy_vocabulary_load_multiple($form_state['values']['vids']);
|
||||
devel_generate_term_data($vocabs, $form_state['values']['num_terms'], $form_state['values']['title_length'], $form_state['values']['kill_taxonomy']);
|
||||
if ($values['kill_taxonomy']) {
|
||||
foreach ($values['vids'] as $vid) {
|
||||
devel_generate_delete_vocabulary_terms($vid);
|
||||
}
|
||||
drupal_set_message(t('Deleted existing terms.'));
|
||||
}
|
||||
$vocabs = taxonomy_vocabulary_load_multiple($values['vids']);
|
||||
$new_terms = devel_generate_terms($values['num_terms'], $vocabs, $values['title_length']);
|
||||
if (!empty($new_terms)) {
|
||||
drupal_set_message(t('Created the following new terms: !terms', array('!terms' => implode(', ', $new_terms))));
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* FormAPI submission to generate taxonomy vocabularies.
|
||||
*/
|
||||
function devel_generate_vocab_form_submit($form_id, &$form_state) {
|
||||
function devel_generate_vocab_form_submit($form, &$form_state) {
|
||||
$values = $form_state['values'];
|
||||
module_load_include('inc', 'devel_generate');
|
||||
devel_generate_vocab_data($form_state['values']['num_vocabs'], $form_state['values']['title_length'], $form_state['values']['kill_taxonomy']);
|
||||
if ($values['kill_taxonomy']) {
|
||||
devel_generate_delete_vocabularies();
|
||||
drupal_set_message(t('Deleted existing vocabularies.'));
|
||||
}
|
||||
$new_vocs = devel_generate_vocabs($values['num_vocabs'], $values['title_length']);
|
||||
if (!empty($new_vocs)) {
|
||||
drupal_set_message(t('Created the following new vocabularies: !vocs', array('!vocs' => implode(', ', $new_vocs))));
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -392,7 +439,7 @@ function devel_generate_menu_form() {
|
||||
'#size' => 10,
|
||||
'#states' => array(
|
||||
'visible' => array(
|
||||
':input[name=existing_menus[__new-menu__]]' => array('checked' => TRUE),
|
||||
':input[name="existing_menus[__new-menu__]"]' => array('checked' => TRUE),
|
||||
),
|
||||
),
|
||||
);
|
||||
@@ -407,6 +454,7 @@ function devel_generate_menu_form() {
|
||||
$form['title_length'] = array(
|
||||
'#type' => 'textfield',
|
||||
'#title' => t('Maximum number of characters in menu and menu link names'),
|
||||
'#description' => t("The minimum length is 2."),
|
||||
'#default_value' => 12,
|
||||
'#size' => 10,
|
||||
'#required' => TRUE,
|
||||
@@ -443,7 +491,8 @@ function devel_generate_menu_form() {
|
||||
'#title' => t('Delete existing custom generated menus and menu links before generating new ones.'),
|
||||
'#default_value' => FALSE,
|
||||
);
|
||||
$form['submit'] = array(
|
||||
$form['actions'] = array('#type' => 'actions');
|
||||
$form['actions']['submit'] = array(
|
||||
'#type' => 'submit',
|
||||
'#value' => t('Generate'),
|
||||
);
|
||||
@@ -453,11 +502,26 @@ function devel_generate_menu_form() {
|
||||
/**
|
||||
* FormAPI submission to generate menus.
|
||||
*/
|
||||
function devel_generate_menu_form_submit($form_id, &$form_state) {
|
||||
function devel_generate_menu_form_submit($form, &$form_state) {
|
||||
// If the create new menus checkbox is off, set the number of new menus to 0.
|
||||
if (!isset($form_state['values']['existing_menus']['__new-menu__']) || !$form_state['values']['existing_menus']['__new-menu__']) {
|
||||
$form_state['values']['num_menus'] = 0;
|
||||
}
|
||||
module_load_include('inc', 'devel_generate');
|
||||
devel_generate_menu_data($form_state['values']['num_menus'], $form_state['values']['existing_menus'], $form_state['values']['num_links'], $form_state['values']['title_length'], $form_state['values']['link_types'], $form_state['values']['max_depth'], $form_state['values']['max_width'], $form_state['values']['kill']);
|
||||
// Delete custom menus.
|
||||
if ($form_state['values']['kill']) {
|
||||
devel_generate_delete_menus();
|
||||
drupal_set_message(t('Deleted existing menus and links.'));
|
||||
}
|
||||
|
||||
// Generate new menus.
|
||||
$new_menus = devel_generate_menus($form_state['values']['num_menus'], $form_state['values']['title_length']);
|
||||
if (!empty($new_menus)) {
|
||||
drupal_set_message(t('Created the following new menus: !menus', array('!menus' => implode(', ', $new_menus))));
|
||||
}
|
||||
|
||||
// Generate new menu links.
|
||||
$menus = $new_menus + $form_state['values']['existing_menus'];
|
||||
$new_links = devel_generate_links($form_state['values']['num_links'], $menus, $form_state['values']['title_length'], $form_state['values']['link_types'], $form_state['values']['max_depth'], $form_state['values']['max_width']);
|
||||
drupal_set_message(t('Created @count new menu links.', array('@count' => count($new_links))));
|
||||
}
|
||||
|
||||
@@ -0,0 +1,108 @@
|
||||
<?php
|
||||
/**
|
||||
* @file
|
||||
* Implements tests for devel_generate submodule.
|
||||
*/
|
||||
|
||||
/**
|
||||
* class DevelGenerateTest
|
||||
*/
|
||||
class DevelGenerateTest extends DrupalWebTestCase {
|
||||
/*
|
||||
* The getInfo() method provides information about the test.
|
||||
* In order for the test to be run, the getInfo() method needs
|
||||
* to be implemented.
|
||||
*/
|
||||
public static function getInfo() {
|
||||
return array(
|
||||
'name' => t('Devel Generate'),
|
||||
'description' => t('Tests the logic to generate data.'),
|
||||
'group' => t('Devel'),
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Prepares the testing environment
|
||||
*/
|
||||
function setUp() {
|
||||
parent::setUp(array('devel', 'devel_generate', 'taxonomy', 'menu', 'comment'));
|
||||
|
||||
// Create Basic page and Article node types.
|
||||
if ($this->profile != 'standard') {
|
||||
$this->drupalCreateContentType(array('type' => 'page', 'name' => 'Basic Page'));
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Tests generate commands
|
||||
*/
|
||||
public function testGenerate() {
|
||||
$user = $this->drupalCreateUser(array(
|
||||
'administer taxonomy',
|
||||
'administer menu',
|
||||
'administer nodes',
|
||||
));
|
||||
$this->drupalLogin($user);
|
||||
|
||||
// Generate taxonomy vocabularies.
|
||||
$edit = array(
|
||||
'num_vocabs' => 5,
|
||||
'title_length' => 12,
|
||||
'kill_taxonomy' => 1,
|
||||
);
|
||||
$this->drupalPost('admin/config/development/generate/vocabs',
|
||||
$edit, t('Generate'));
|
||||
$this->assertText(t('Deleted existing vocabularies.'));
|
||||
$this->assertText(t('Created the following new vocabularies:'));
|
||||
|
||||
// Generate taxonomy terms.
|
||||
$form = devel_generate_term_form();
|
||||
$vids = array_keys($form['vids']['#options']);
|
||||
$edit = array(
|
||||
'vids[]' => $vids,
|
||||
'num_terms' => 5,
|
||||
'title_length' => 12,
|
||||
'kill_taxonomy' => 1,
|
||||
);
|
||||
$this->drupalPost('admin/config/development/generate/taxonomy',
|
||||
$edit, t('Generate'));
|
||||
$this->assertText(t('Deleted existing terms.'));
|
||||
$this->assertText(t('Created the following new terms: '));
|
||||
|
||||
// Generate menus.
|
||||
$edit = array(
|
||||
'existing_menus[__new-menu__]' => 1,
|
||||
'num_menus' => 2,
|
||||
'num_links' => 50,
|
||||
'title_length' => 12,
|
||||
'link_types[node]' => 1,
|
||||
'link_types[front]' => 1,
|
||||
'link_types[external]' => 1,
|
||||
'max_depth' => 4,
|
||||
'max_width' => 6,
|
||||
'kill' => 1,
|
||||
);
|
||||
$this->drupalPost('admin/config/development/generate/menu',
|
||||
$edit, t('Generate'));
|
||||
$this->assertText(t('Deleted existing menus and links.'));
|
||||
$this->assertText(t('Created the following new menus:'));
|
||||
$this->assertText(t('Created 50 new menu links.'));
|
||||
|
||||
// Generate content.
|
||||
// First we create a node in order to test the Delete content checkbox.
|
||||
$this->drupalCreateNode(array());
|
||||
|
||||
// Now submit the generate content form.
|
||||
$edit = array(
|
||||
'node_types[page]' => 1,
|
||||
'kill_content' => 1,
|
||||
'num_nodes' => 2,
|
||||
'time_range' => 604800,
|
||||
'max_comments' => 3,
|
||||
'title_length' => 4,
|
||||
);
|
||||
$this->drupalPost('admin/config/development/generate/content', $edit, t('Generate'));
|
||||
$this->assertText(t('Deleted 1 nodes.'));
|
||||
$this->assertText(t('Finished creating 2 nodes'));
|
||||
}
|
||||
}
|
||||
@@ -1,30 +1,29 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* Devel Generate batch handling functions using the BatchAPI
|
||||
* Devel Generate batch handling functions using the BatchAPI.
|
||||
*/
|
||||
|
||||
/**
|
||||
* Functions called from FAPI:
|
||||
* Form constructor generating in batches.
|
||||
*/
|
||||
|
||||
function devel_generate_batch_content($form_state) {
|
||||
$operations = array();
|
||||
|
||||
// Setup the batch operations and save the variables.
|
||||
$operations[] = array('devel_generate_batch_content_pre_node', array($form_state['values']));
|
||||
|
||||
// add the kill operation
|
||||
// Add the kill operation.
|
||||
if ($form_state['values']['kill_content']) {
|
||||
$operations[] = array('devel_generate_batch_content_kill', array());
|
||||
}
|
||||
|
||||
// add the operations to create the nodes
|
||||
// Add the operations to create the nodes.
|
||||
for ($num = 0; $num < $form_state['values']['num_nodes']; $num ++) {
|
||||
$operations[] = array('devel_generate_batch_content_add_node', array());
|
||||
}
|
||||
|
||||
// start the batch
|
||||
// Start the batch.
|
||||
$batch = array(
|
||||
'title' => t('Generating Content'),
|
||||
'operations' => $operations,
|
||||
@@ -34,10 +33,6 @@ function devel_generate_batch_content($form_state) {
|
||||
batch_set($batch);
|
||||
}
|
||||
|
||||
/**
|
||||
* Create Content Batch Functions:
|
||||
*/
|
||||
|
||||
function devel_generate_batch_content_kill(&$context) {
|
||||
module_load_include('inc', 'devel_generate', 'devel_generate');
|
||||
devel_generate_content_kill($context['results']);
|
||||
@@ -50,12 +45,18 @@ function devel_generate_batch_content_pre_node($vars, &$context) {
|
||||
devel_generate_content_pre_node($context['results']);
|
||||
}
|
||||
|
||||
/**
|
||||
* Batch API callback: Generate nodes.
|
||||
*/
|
||||
function devel_generate_batch_content_add_node(&$context) {
|
||||
module_load_include('inc', 'devel_generate', 'devel_generate');
|
||||
devel_generate_content_add_node($context['results']);
|
||||
$context['results']['num_nids'] ++;
|
||||
}
|
||||
|
||||
/**
|
||||
* Display a message when a batch is complete.
|
||||
*/
|
||||
function devel_generate_batch_finished($success, $results, $operations) {
|
||||
if ($success) {
|
||||
$message = t('Finished @num_nids nodes created successfully.', array('@num_nids' => $results['num_nids']));
|
||||
@@ -65,4 +66,3 @@ function devel_generate_batch_finished($success, $results, $operations) {
|
||||
}
|
||||
drupal_set_message($message);
|
||||
}
|
||||
|
||||
|
||||
@@ -14,15 +14,22 @@ function _file_devel_generate($object, $field, $instance, $bundle) {
|
||||
|
||||
if (empty($file)) {
|
||||
if ($path = devel_generate_textfile()) {
|
||||
$source = new stdClass();
|
||||
$source->uri = $path;
|
||||
$source->uid = 1; // TODO: randomize? use case specific.
|
||||
$source->filemime = 'text/plain';
|
||||
$source->filename = array_pop(explode("//", $path));
|
||||
$destination_dir = $field['settings']['uri_scheme'] . '://' . $instance['settings']['file_directory'];
|
||||
file_prepare_directory($destination_dir, FILE_CREATE_DIRECTORY);
|
||||
$destination = $destination_dir . '/' . basename($path);
|
||||
$file = file_move($source, $destination, FILE_CREATE_DIRECTORY);
|
||||
if ($uri = file_unmanaged_move($path, $destination_dir)) {
|
||||
$file = new stdClass();
|
||||
$file->fid = NULL;
|
||||
$file->uri = $uri;
|
||||
$file->filename = drupal_basename($uri);
|
||||
$file->filemime = file_get_mimetype($file->uri);
|
||||
// @todo Randomize file owner.
|
||||
$file->uid = 1;
|
||||
$file->devel_generate = TRUE;
|
||||
$file = file_save($file);
|
||||
}
|
||||
else {
|
||||
return FALSE;
|
||||
}
|
||||
}
|
||||
else {
|
||||
return FALSE;
|
||||
|
||||
@@ -23,22 +23,28 @@ function _image_devel_generate($object, $field, $instance, $bundle) {
|
||||
|
||||
$min_resolution = empty($instance['settings']['min_resolution']) ? '100x100' : $instance['settings']['min_resolution'];
|
||||
$max_resolution = empty($instance['settings']['max_resolution']) ? '600x600' : $instance['settings']['max_resolution'];
|
||||
$extensions = array_intersect(explode(' ', $instance['settings']['file_extensions']), array('png', 'jpg'));
|
||||
$extensions = array_intersect(explode(' ', $instance['settings']['file_extensions']), array('png', 'gif', 'jpg', 'jpeg'));
|
||||
$extension = array_rand(drupal_map_assoc($extensions));
|
||||
|
||||
// Generate a max of 5 different images.
|
||||
if (!isset($images[$extension][$min_resolution][$max_resolution]) || count($images[$extension][$min_resolution][$max_resolution]) <= DEVEL_GENERATE_IMAGE_MAX) {
|
||||
if ($path = devel_generate_image($extension, $min_resolution, $max_resolution)) {
|
||||
$source = new stdClass();
|
||||
$source->uri = $path;
|
||||
$source->uid = 1; // TODO: randomize? Use case specific.
|
||||
$source->filemime = 'image/' . pathinfo($path, PATHINFO_EXTENSION);
|
||||
$source->filename = array_pop(explode("//", $path));
|
||||
$destination_dir = $field['settings']['uri_scheme'] . '://' . $instance['settings']['file_directory'];
|
||||
file_prepare_directory($destination_dir, FILE_CREATE_DIRECTORY);
|
||||
$destination = $destination_dir . '/' . basename($path);
|
||||
$file = file_move($source, $destination, FILE_CREATE_DIRECTORY);
|
||||
$images[$extension][$min_resolution][$max_resolution][$file->fid] = $file;
|
||||
if ($uri = file_unmanaged_move($path, $destination_dir)) {
|
||||
$file = new stdClass();
|
||||
$file->fid = NULL;
|
||||
$file->uri = $uri;
|
||||
$file->filename = drupal_basename($uri);
|
||||
$file->filemime = file_get_mimetype($file->uri);
|
||||
// @todo Randomize file owner.
|
||||
$file->uid = 1;
|
||||
$file = file_save($file);
|
||||
$images[$extension][$min_resolution][$max_resolution][$file->fid] = $file;
|
||||
}
|
||||
else {
|
||||
return FALSE;
|
||||
}
|
||||
}
|
||||
else {
|
||||
return FALSE;
|
||||
@@ -89,8 +95,6 @@ function devel_generate_image($extension = 'png', $min_resolution, $max_resoluti
|
||||
|
||||
$save_function = 'image'. ($extension == 'jpg' ? 'jpeg' : $extension);
|
||||
$save_function($im, drupal_realpath($destination));
|
||||
|
||||
$images[$extension][$min_resolution][$max_resolution][$destination] = $destination;
|
||||
}
|
||||
return $destination;
|
||||
}
|
||||
|
||||
@@ -19,20 +19,17 @@ function _text_devel_generate($object, $field, $instance, $bundle) {
|
||||
$format = filter_fallback_format();
|
||||
}
|
||||
|
||||
if ($instance['widget']['type'] != 'text_textfield') {
|
||||
if (empty($field['settings']['max_length'])) {
|
||||
// Textarea handling
|
||||
$object_field['value'] = devel_create_content($format);
|
||||
$object_field['value'] = devel_create_content();
|
||||
if ($instance['widget']['type'] == 'text_textarea_with_summary' && !empty($instance['display_summary'])) {
|
||||
$object_field['summary'] = devel_create_content($format);
|
||||
$object_field['summary'] = devel_create_content();
|
||||
}
|
||||
}
|
||||
else {
|
||||
// Textfield handling.
|
||||
// Generate a value that respects max_length.
|
||||
if (empty($field['settings']['max_length'])) {
|
||||
$field['settings']['max_length'] = 12;
|
||||
}
|
||||
$object_field['value'] = user_password($field['settings']['max_length']);
|
||||
$max = ceil($field['settings']['max_length'] / 6);
|
||||
$object_field['value'] = substr(devel_create_greeking(mt_rand(1, $max), FALSE), 0, $field['settings']['max_length']);
|
||||
}
|
||||
$object_field['format'] = $format;
|
||||
return $object_field;
|
||||
|
||||
@@ -0,0 +1,11 @@
|
||||
/**
|
||||
* Krumo
|
||||
*/
|
||||
.krumo-version,
|
||||
.krumo-call {
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.krumo-nest {
|
||||
display: none;
|
||||
}
|
||||
@@ -1,13 +1,21 @@
|
||||
/**
|
||||
* @file
|
||||
* Behaviors for Devel.
|
||||
*/
|
||||
|
||||
(function ($) {
|
||||
|
||||
/**
|
||||
* Attaches double-click behavior to toggle full path of Krumo elements.
|
||||
*
|
||||
* @type {Drupal~behavior}
|
||||
*/
|
||||
Drupal.behaviors.devel = {
|
||||
attach: function (context, settings) {
|
||||
|
||||
// Path
|
||||
// Add hint to footnote
|
||||
$('.krumo-footnote .krumo-call').before('<img style="vertical-align: middle;" title="Click to expand. Double-click to show path." src="' + Drupal.settings.basePath + 'misc/help.png"/>');
|
||||
$('.krumo-footnote .krumo-call', context).once().before('<img style="vertical-align: middle;" title="Click to expand. Double-click to show path." src="' + settings.basePath + 'misc/help.png"/>');
|
||||
|
||||
var krumo_name = [];
|
||||
var krumo_type = [];
|
||||
@@ -21,7 +29,9 @@ Drupal.behaviors.devel = {
|
||||
}
|
||||
}
|
||||
|
||||
$('.krumo-child > div:first-child', context).dblclick(
|
||||
$('.krumo-child > div:first-child', context).once('krumo_path',
|
||||
function() {
|
||||
$(this).dblclick(
|
||||
function(e) {
|
||||
if ($(this).find('> .krumo-php-path').length > 0) {
|
||||
// Remove path if shown.
|
||||
@@ -58,9 +68,20 @@ Drupal.behaviors.devel = {
|
||||
krumo_name = [];
|
||||
krumo_type = [];
|
||||
}
|
||||
}
|
||||
);
|
||||
}
|
||||
};
|
||||
});
|
||||
});
|
||||
|
||||
})(jQuery);
|
||||
// Events
|
||||
$('.krumo-element').once('krumo-events', function() {
|
||||
$(this).click(function() {
|
||||
krumo.toggle(this);
|
||||
}).mouseover(function() {
|
||||
krumo.over(this);
|
||||
}).mouseout(function() {
|
||||
krumo.out(this);
|
||||
});
|
||||
});// End krumo-events .once
|
||||
}// End attach.
|
||||
};// End behaviors.devel.
|
||||
|
||||
})(jQuery);// end outer function
|
||||
@@ -13,19 +13,19 @@
|
||||
/**
|
||||
* Explain your records in the {node_access} table.
|
||||
*
|
||||
* In order to help developers and administrators understand the forces
|
||||
* that control access to any given node, the DNA module provides the
|
||||
* In order to help developers and administrators understand the forces that
|
||||
* control access to any given node, the DNA module provides the
|
||||
* Devel Node Access block, which lists all the grant records in the
|
||||
* {node_access} table for that node.
|
||||
*
|
||||
* However, every Node Access module is free in how it defines and uses the
|
||||
* 'realm' and 'gid' fields in its records in the {node_access} table, and
|
||||
* it's often difficult to interpret them. This hook passes each record
|
||||
* that DNA wants to display, and the owning module is expected to return
|
||||
* an explanation of that record.
|
||||
* 'realm' and 'gid' fields in its records in the {node_access} table, and it's
|
||||
* often difficult to interpret them. This hook passes each record that DNA
|
||||
* wants to display, and the owning module is expected to return an explanation
|
||||
* of that record.
|
||||
*
|
||||
* The explanation should not be localized (not be passed through t()), so
|
||||
* that administrators seeking help can present English explanations.
|
||||
* The explanation should not be localized (not be passed through t()), so that
|
||||
* administrators seeking help can present English explanations.
|
||||
*
|
||||
* @param $row
|
||||
* The record from the {node_access} table, as object. The member fields are:
|
||||
|
||||
@@ -6,9 +6,8 @@ core = 7.x
|
||||
configure = admin/config/development/devel
|
||||
tags[] = developer
|
||||
|
||||
; Information added by drupal.org packaging script on 2012-06-05
|
||||
version = "7.x-1.3"
|
||||
; Information added by Drupal.org packaging script on 2019-02-22
|
||||
version = "7.x-1.7"
|
||||
core = "7.x"
|
||||
project = "devel"
|
||||
datestamp = "1338940281"
|
||||
|
||||
datestamp = "1550852892"
|
||||
|
||||
@@ -1,5 +1,10 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* @file
|
||||
* Uninstall function for Devel node access.
|
||||
*/
|
||||
|
||||
/**
|
||||
* Implements hook_uninstall().
|
||||
*/
|
||||
|
||||
@@ -1,13 +1,14 @@
|
||||
/**
|
||||
* @file devel_node_access.js.
|
||||
* @file
|
||||
* Behavior for Devel node access.
|
||||
*/
|
||||
|
||||
(function ($) {
|
||||
|
||||
/**
|
||||
* Perform the access by user ajax request.
|
||||
* Performs the access by user ajax request.
|
||||
*/
|
||||
function devel_node_access_user_ajax(context) {
|
||||
function devel_node_access_user_ajax(context, settings) {
|
||||
// Get the cell ID for the first .dna-permission that isn't processed.
|
||||
var cell = $('td.dna-permission', context)
|
||||
.not('.ajax-processed', context)
|
||||
@@ -15,7 +16,7 @@
|
||||
if (cell !== undefined) {
|
||||
// Generate the URI from the basePath, path, data type, cell ID, and a
|
||||
// random token to bypass caching.
|
||||
var url = Drupal.settings.basePath
|
||||
var url = settings.basePath
|
||||
+ "?q="
|
||||
+ 'devel/node_access/by_user/json/'
|
||||
+ cell
|
||||
@@ -25,7 +26,7 @@
|
||||
$.getJSON(url, function(data) {
|
||||
$('#' + cell, context).html(data).addClass('ajax-processed');
|
||||
// Call this function again.
|
||||
devel_node_access_user_ajax(context);
|
||||
devel_node_access_user_ajax(context, settings);
|
||||
});
|
||||
// Ajax fails silently on error, mark bad requests with an error message.
|
||||
// If the request is just slow this will update when the request succeeds.
|
||||
@@ -42,7 +43,7 @@
|
||||
)
|
||||
.addClass('ajax-processed');
|
||||
// Call this function again.
|
||||
devel_node_access_user_ajax(context);
|
||||
devel_node_access_user_ajax(context, settings);
|
||||
}
|
||||
},
|
||||
3000
|
||||
@@ -53,12 +54,14 @@
|
||||
|
||||
/**
|
||||
* Attach the access by user behavior which initiates ajax.
|
||||
*
|
||||
* @type {Drupal~behavior}
|
||||
*/
|
||||
Drupal.behaviors.develNodeAccessUserAjax = {
|
||||
attach: function(context) {
|
||||
attach: function(context, settings) {
|
||||
// Start the ajax.
|
||||
devel_node_access_user_ajax(context);
|
||||
devel_node_access_user_ajax(context, settings);
|
||||
}
|
||||
};
|
||||
|
||||
})(jQuery);
|
||||
})(jQuery);
|
||||
|
||||
@@ -1,15 +1,18 @@
|
||||
<?php
|
||||
/**
|
||||
* @file
|
||||
* Functions for debugging node access permissions.
|
||||
*
|
||||
* This module gives developers feedback as to what their
|
||||
* node_access table contains, and which nodes are protected or
|
||||
* visible to the public.
|
||||
* This module gives developers feedback as to what their node_access table
|
||||
* contains, and which nodes are protected or visible to the public.
|
||||
*
|
||||
*/
|
||||
|
||||
define('DNA_ACCESS_VIEW', 'view devel_node_access information');
|
||||
|
||||
/**
|
||||
* Implements hook_permission().
|
||||
*/
|
||||
function devel_node_access_permission() {
|
||||
return array(
|
||||
'view devel_node_access information' => array(
|
||||
@@ -51,7 +54,7 @@ function devel_node_access_menu() {
|
||||
|
||||
if (!module_exists('devel')) {
|
||||
if (!menu_load('devel')) {
|
||||
// we have to create the 'devel' menu ourselves
|
||||
// We have to create the 'devel' menu ourselves.
|
||||
$menu = array(
|
||||
'menu_name' => 'devel',
|
||||
'title' => 'Development',
|
||||
@@ -60,10 +63,10 @@ function devel_node_access_menu() {
|
||||
menu_save($menu);
|
||||
}
|
||||
|
||||
// we have to create the 'Devel settings' menu item ourselves
|
||||
// We have to create the 'Devel settings' menu item ourselves.
|
||||
$items['admin/config/development/devel'] = array(
|
||||
'title' => 'Devel settings',
|
||||
'description' => 'Helper pages and blocks to assist Drupal developers and admins with node_access. The devel blocks can be managed via the <a href="' . url('admin/structure/block') . '">block administration</a> page.',
|
||||
'description' => 'Helper pages and blocks to assist Drupal developers and admins with node_access. The devel blocks can be managed via the <a href="/admin/structure/block">block administration</a> page.',
|
||||
'page callback' => 'drupal_get_form',
|
||||
'page arguments' => array('devel_node_access_admin_settings'),
|
||||
'access arguments' => array('administer site configuration'),
|
||||
@@ -73,7 +76,7 @@ function devel_node_access_menu() {
|
||||
);
|
||||
}
|
||||
|
||||
// create a callback for use by devel_node_access_user_ajax().
|
||||
// Create a callback for use by devel_node_access_user_ajax().
|
||||
$items['devel/node_access/by_user/%/%'] = array(
|
||||
'page callback' => 'devel_node_access_user_ajax',
|
||||
'page arguments' => array(3, 4),
|
||||
@@ -81,7 +84,7 @@ function devel_node_access_menu() {
|
||||
'type' => MENU_CALLBACK,
|
||||
);
|
||||
|
||||
// add this to the custom menu 'devel' created by the devel module.
|
||||
// Add this to the custom menu 'devel' created by the devel module.
|
||||
$items['devel/node_access/summary'] = array(
|
||||
'title' => 'Node_access summary',
|
||||
'page callback' => 'dna_summary',
|
||||
@@ -92,11 +95,24 @@ function devel_node_access_menu() {
|
||||
return $items;
|
||||
}
|
||||
|
||||
/**
|
||||
* Form constructor for Devel node access settings.
|
||||
*
|
||||
* @see devel_node_access_form_alter()
|
||||
*
|
||||
* @ingroup forms
|
||||
*/
|
||||
function devel_node_access_admin_settings() {
|
||||
$form = array();
|
||||
return system_settings_form($form);
|
||||
}
|
||||
|
||||
/**
|
||||
* Implements hook_form_alter().
|
||||
*
|
||||
* Adds form elements to devel_admin_settings() and
|
||||
* devel_node_access_admin_settings().
|
||||
*/
|
||||
function devel_node_access_form_alter(&$form, $form_state, $form_id) {
|
||||
$tr = 't';
|
||||
if ($form_id == 'devel_admin_settings' || $form_id == 'devel_node_access_admin_settings') {
|
||||
@@ -126,6 +142,9 @@ function devel_node_access_form_alter(&$form, $form_state, $form_id) {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Page callback for the Devel node access summary.
|
||||
*/
|
||||
function dna_summary() {
|
||||
// warn user if they have any entries that could grant access to all nodes
|
||||
$output = '';
|
||||
@@ -221,23 +240,47 @@ function dna_summary() {
|
||||
return $output;
|
||||
}
|
||||
|
||||
/**
|
||||
* Retreives the nodes visible in the current menu entry.
|
||||
*
|
||||
* @param integer $nid
|
||||
* (optional) A node ID to add to the list.
|
||||
*
|
||||
* @return array
|
||||
* An associative array of Node ID's that this function has been called with
|
||||
* keyed by Node ID.
|
||||
*/
|
||||
function dna_visible_nodes($nid = NULL) {
|
||||
static $nids = array();
|
||||
if ($nid) {
|
||||
$nids[$nid] = $nid;
|
||||
}
|
||||
elseif (empty($nids) && arg(0) == 'node' && is_numeric(arg(1)) && arg(2) == NULL) {
|
||||
// show DNA information on node/NID even if access is denied (IF the user has the 'view devel_node_access information' permission)!
|
||||
return array(arg(1));
|
||||
elseif (empty($nids)) {
|
||||
$menu_item = menu_get_item();
|
||||
$map = $menu_item['original_map'];
|
||||
if ($map[0] == 'node' && isset($map[1]) && is_numeric($map[1]) && !isset($map[2])) {
|
||||
// show DNA information on node/NID even if access is denied (IF the user has the 'view devel_node_access information' permission)!
|
||||
return array($map[1]);
|
||||
}
|
||||
}
|
||||
return $nids;
|
||||
}
|
||||
|
||||
/**
|
||||
* Implements hook_node_view().
|
||||
*/
|
||||
function devel_node_access_node_view($node, $build_mode) {
|
||||
// remember this node, for display in our block
|
||||
dna_visible_nodes($node->nid);
|
||||
}
|
||||
|
||||
/**
|
||||
* Invokes a hook.
|
||||
*
|
||||
* @return
|
||||
* The results of the hook invocation keyed by the machine name of the
|
||||
* implementing module.
|
||||
*/
|
||||
function _devel_node_access_module_invoke_all() { // array and scalar returns
|
||||
$args = func_get_args();
|
||||
$hook = $args[0];
|
||||
@@ -250,12 +293,12 @@ function _devel_node_access_module_invoke_all() { // array and scalar returns
|
||||
if (isset($result)) {
|
||||
if (is_array($result)) {
|
||||
foreach ($result as $key => $value) {
|
||||
// add name of module that returned the value:
|
||||
// Add name of module that returned the value.
|
||||
$result[$key]['#module'] = $module;
|
||||
}
|
||||
}
|
||||
else {
|
||||
// build array with result keyed by $module:
|
||||
// Build array with result keyed by $module.
|
||||
$result = array($module => $result);
|
||||
}
|
||||
$return = array_merge_recursive($return, $result);
|
||||
@@ -266,12 +309,13 @@ function _devel_node_access_module_invoke_all() { // array and scalar returns
|
||||
}
|
||||
|
||||
/**
|
||||
* Helper function to build an associative array of grant records and their
|
||||
* history. If there are duplicate records, display an error message.
|
||||
* Builds an associative array of grant records and their history.
|
||||
*
|
||||
* If there are duplicate records, display an error message.
|
||||
*
|
||||
* @param $grants
|
||||
* An indexed array of grant records, augmented by the '#module' key,
|
||||
* as created by _devel_node_access_module_invoke_all('node_access_records').
|
||||
* An indexed array of grant records, augmented by the '#module' key, as
|
||||
* created by _devel_node_access_module_invoke_all('node_access_records').
|
||||
*
|
||||
* @param $node
|
||||
* The node that the grant records belong to.
|
||||
@@ -317,8 +361,7 @@ function _devel_node_access_build_nar_data($grants, $node, $function) {
|
||||
}
|
||||
|
||||
/**
|
||||
* Helper function to mimic hook_node_access_records_alter() and trace what
|
||||
* each module does with it.
|
||||
* Mimics hook_node_access_records_alter() and traces what each module does with it.
|
||||
*
|
||||
* @param object $grants
|
||||
* An indexed array of grant records, augmented by the '#module' key,
|
||||
@@ -346,18 +389,19 @@ function _devel_node_access_nar_alter(&$grants, $node) {
|
||||
isset($drupal_static['drupal_alter']) || ($drupal_static['drupal_alter'] = &drupal_static('drupal_alter'));
|
||||
$functions = $drupal_static['drupal_alter'];
|
||||
|
||||
// build the initial tree (and check for duplicates)
|
||||
// Build the initial tree (and check for duplicates).
|
||||
$data = _devel_node_access_build_nar_data($grants, $node, 'hook_node_access_records()');
|
||||
|
||||
// simulate drupal_alter('node_access_records', $grants, $node);
|
||||
// Simulate drupal_alter('node_access_records', $grants, $node);
|
||||
foreach ($functions['node_access_records'] as $function) {
|
||||
// call hook_node_access_records_alter() for one module at a time and analyze
|
||||
// Call hook_node_access_records_alter() for one module at a time and
|
||||
// analyze.
|
||||
$function($grants, $node); // <==
|
||||
$module = substr($function, 0, strlen($function) - 26);
|
||||
|
||||
foreach ($grants as $i => $grant) {
|
||||
if (empty($data[$grant['realm']][$grant['gid']]['current'])) {
|
||||
// it's an added grant
|
||||
// It's an added grant.
|
||||
$data[$grant['realm']][$grant['gid']]['current'] = $grant;
|
||||
$data[$grant['realm']][$grant['gid']]['current']['#module'] = $module;
|
||||
$data[$grant['realm']][$grant['gid']]['changes'][] = array(
|
||||
@@ -367,13 +411,14 @@ function _devel_node_access_nar_alter(&$grants, $node) {
|
||||
$grants[$i]['#module'] = $module;
|
||||
}
|
||||
else {
|
||||
// it's an existing grant, check for changes
|
||||
// It's an existing grant, check for changes.
|
||||
$view = $update = $delete = FALSE;
|
||||
foreach (array('view', 'update', 'delete') as $op) {
|
||||
$$op = $grant["grant_$op"] - $data[$grant['realm']][$grant['gid']]['current']["grant_$op"];
|
||||
}
|
||||
$priority = $grant['priority'] - $data[$grant['realm']][$grant['gid']]['current']['priority'];
|
||||
if ($view || $update || $delete || $priority) {
|
||||
// it was changed
|
||||
// It was changed.
|
||||
$data[$grant['realm']][$grant['gid']]['current'] = $grant;
|
||||
$data[$grant['realm']][$grant['gid']]['current']['#module'] = $module;
|
||||
$data[$grant['realm']][$grant['gid']]['changes'][] = array(
|
||||
@@ -386,10 +431,10 @@ function _devel_node_access_nar_alter(&$grants, $node) {
|
||||
$data[$grant['realm']][$grant['gid']]['found'] = TRUE;
|
||||
}
|
||||
|
||||
// check for newly introduced duplicates
|
||||
// Check for newly introduced duplicates.
|
||||
_devel_node_access_build_nar_data($grants, $node, 'hook_node_access_records_alter()');
|
||||
|
||||
// look for grant records that have disappeared
|
||||
// Look for grant records that have disappeared.
|
||||
foreach ($data as $realm => $data2) {
|
||||
foreach ($data2 as $gid => $data3) {
|
||||
if (empty($data[$realm][$gid]['found']) && isset($data[$realm][$gid]['current'])) {
|
||||
@@ -408,14 +453,12 @@ function _devel_node_access_nar_alter(&$grants, $node) {
|
||||
}
|
||||
|
||||
/**
|
||||
* Helper function to mimic hook_node_grants_alter() and trace what
|
||||
* each module does with it.
|
||||
* Mimics hook_node_grants_alter() and traces what each module does with it.
|
||||
*
|
||||
* @param object $grants
|
||||
* An indexed array of grant records, augmented by the '#module' key,
|
||||
* as created by _devel_node_access_module_invoke_all('node_grants').
|
||||
* This array is updated by the hook_node_grants_alter()
|
||||
* implementations.
|
||||
* An indexed array of grant records, augmented by the '#module' key, as
|
||||
* created by _devel_node_access_module_invoke_all('node_grants'). This array
|
||||
* is updated by the hook_node_grants_alter() implementations.
|
||||
*
|
||||
* @param $node
|
||||
* The node that the grant records belong to.
|
||||
@@ -424,12 +467,13 @@ function _devel_node_access_nar_alter(&$grants, $node) {
|
||||
* A tree representation of the grant records in $grants including their
|
||||
* history:
|
||||
* $data[$realm][$gid]
|
||||
* ['cur'] - TRUE or FALSE whether the gid is present or not
|
||||
* ['ori'][] - array of module names that contributed this grant (if any)
|
||||
* ['chg'][] - array of changes, such as
|
||||
* - 'added' if module name is a prefix if the $realm,
|
||||
* - 'added by module' otherwise, or
|
||||
* - 'removed by module'
|
||||
* - ['cur']: TRUE or FALSE whether the gid is present or not
|
||||
* - ['ori'][]: An array of module names that contributed this grant (if
|
||||
* any)
|
||||
* - ['chg'][]: An array of changes, such as
|
||||
* - 'added' if module name is a prefix if the $realm,
|
||||
* - 'added by module' otherwise, or
|
||||
* - 'removed by module'
|
||||
*/
|
||||
function _devel_node_access_ng_alter(&$grants, $account, $op) {
|
||||
//dpm($grants, '_devel_node_access_ng_alter(): grants IN');
|
||||
@@ -439,7 +483,7 @@ function _devel_node_access_ng_alter(&$grants, $account, $op) {
|
||||
isset($drupal_static['drupal_alter']) || ($drupal_static['drupal_alter'] = &drupal_static('drupal_alter'));
|
||||
$functions = $drupal_static['drupal_alter'];
|
||||
|
||||
// build the initial structure
|
||||
// Build the initial structure.
|
||||
$data = array();
|
||||
foreach ($grants as $realm => $gids) {
|
||||
foreach ($gids as $i => $gid) {
|
||||
@@ -451,13 +495,13 @@ function _devel_node_access_ng_alter(&$grants, $account, $op) {
|
||||
unset($grants[$realm]['#module']);
|
||||
}
|
||||
|
||||
// simulate drupal_alter('node_grants', $grants, $account, $op);
|
||||
// Simulate drupal_alter('node_grants', $grants, $account, $op);
|
||||
foreach ($functions['node_grants'] as $function) {
|
||||
// call hook_node_grants_alter() for one module at a time and analyze
|
||||
// Call hook_node_grants_alter() for one module at a time and analyze.
|
||||
$function($grants, $account, $op); // <==
|
||||
$module = substr($function, 0, strlen($function) - 18);
|
||||
|
||||
// check for new gids
|
||||
// Check for new gids.
|
||||
foreach ($grants as $realm => $gids) {
|
||||
foreach ($gids as $i => $gid) {
|
||||
if (empty($data[$realm][$gid]['cur'])) {
|
||||
@@ -467,7 +511,7 @@ function _devel_node_access_ng_alter(&$grants, $account, $op) {
|
||||
}
|
||||
}
|
||||
|
||||
// check for removed gids
|
||||
// Check for removed gids.
|
||||
foreach ($data as $realm => $gids) {
|
||||
foreach ($gids as $gid => $history) {
|
||||
if ($history['cur'] && array_search($gid, $grants[$realm]) === FALSE) {
|
||||
@@ -496,6 +540,7 @@ function devel_node_access_block_info() {
|
||||
$blocks['dna_user'] = array(
|
||||
'info' => t('Devel Node Access by User'),
|
||||
'region' => 'footer',
|
||||
'status' => 0,
|
||||
'cache' => DRUPAL_NO_CACHE,
|
||||
);
|
||||
return $blocks;
|
||||
@@ -592,9 +637,9 @@ function devel_node_access_block_view($delta) {
|
||||
foreach ($nids as $nid) {
|
||||
$acquired_grants_nid = array();
|
||||
if ($node = node_load($nid)) {
|
||||
// check node_access_acquire_grants()
|
||||
// Check node_access_acquire_grants().
|
||||
$grants = _devel_node_access_module_invoke_all('node_access_records', $node);
|
||||
// check drupal_alter('node_access_records')
|
||||
// Check drupal_alter('node_access_records').
|
||||
$data = _devel_node_access_nar_alter($grants, $node);
|
||||
/* (This was the D6 implementation that didn't analyze the hook_node_access_records_alter() details.)
|
||||
if (!empty($grants)) {
|
||||
@@ -639,19 +684,20 @@ function devel_node_access_block_view($delta) {
|
||||
}
|
||||
/**/
|
||||
//dpm($acquired_grants_nid, "acquired_grants_nid =");
|
||||
// check node_access_grants()
|
||||
// Check node_access_grants().
|
||||
$published_nid[$nid] = $node->status;
|
||||
if ($node->nid) {
|
||||
foreach (array('view', 'update', 'delete') as $op) {
|
||||
$grants = _devel_node_access_module_invoke_all('node_grants', $user, $op);
|
||||
// call all hook_node_grants_alter() implementations
|
||||
$ng_alter_data = _devel_node_access_ng_alter($grants, $user, $op);
|
||||
// Call all hook_node_grants_alter() implementations.
|
||||
$ng_alter_datas[$op] = _devel_node_access_ng_alter($grants, $user, $op);
|
||||
$checked_grants[$nid][$op] = array_merge(array('all' => array(0)), $grants);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// check for grants in the node_access table that aren't returned by node_access_acquire_grants()
|
||||
// Check for grants in the node_access table that aren't returned by
|
||||
// node_access_acquire_grants().
|
||||
|
||||
if (isset($active_grants[$nid])) {
|
||||
foreach ($active_grants[$nid] as $realm => $active_grants_realm) {
|
||||
@@ -680,14 +726,15 @@ function devel_node_access_block_view($delta) {
|
||||
elseif (!$found) {
|
||||
$acknowledged = _devel_node_access_module_invoke_all('node_access_acknowledge', $fixed_grant);
|
||||
if (empty($acknowledged)) {
|
||||
// no module acknowledged this record, mark it as alien
|
||||
// No module acknowledged this record, mark it as alien.
|
||||
$fixed_grant += array(
|
||||
'priority' => '?',
|
||||
'state' => 'alien',
|
||||
);
|
||||
}
|
||||
else {
|
||||
// at least one module acknowledged the record, attribute it to the first one
|
||||
// At least one module acknowledged the record. Attribute it
|
||||
// to the first one.
|
||||
$acknowledged_keys = array_keys($acknowledged);
|
||||
$fixed_grant += array(
|
||||
'priority' => '–',
|
||||
@@ -708,7 +755,7 @@ function devel_node_access_block_view($delta) {
|
||||
}
|
||||
}
|
||||
|
||||
// order grants and evaluate their status
|
||||
// Order grants and evaluate their status.
|
||||
foreach ($acquired_grants_nid as $priority => $acquired_grants_priority) {
|
||||
ksort($acquired_grants_priority);
|
||||
foreach ($acquired_grants_priority as $realm => $acquired_grants_realm) {
|
||||
@@ -744,7 +791,7 @@ function devel_node_access_block_view($delta) {
|
||||
}
|
||||
}
|
||||
|
||||
// fill in the table rows
|
||||
// Fill in the table rows.
|
||||
$rows = array();
|
||||
$error_count = 0;
|
||||
foreach ($all_grants as $grant) {
|
||||
@@ -788,9 +835,17 @@ function devel_node_access_block_view($delta) {
|
||||
'data' => '<a href="#node-' . $grant['nid'] . '">' . $row['nid'] . '</a>',
|
||||
'title' => $grant['#title'],
|
||||
);
|
||||
$row['realm'] = (empty($grant['#module']) || strpos($grant['realm'], $grant['#module']) === 0 ? '' : $grant['#module'] . ':<br />') . $grant['realm'];
|
||||
if (empty($grant['#module']) || strpos($grant['realm'], $grant['#module']) === 0) {
|
||||
$row['realm'] = $grant['realm'];
|
||||
}
|
||||
else {
|
||||
$row['realm'] = array(
|
||||
'data' => $grant['#module'] . ':<br />' . $grant['realm'],
|
||||
'title' => t("The '@module' module fails to adhere to the best practice of naming its realm(s) after itself.", array('@module' => $grant['#module'])),
|
||||
);
|
||||
}
|
||||
|
||||
// prepend information from the D7 hook_node_access_records_alter()
|
||||
// Prepend information from the D7 hook_node_access_records_alter().
|
||||
$next_style = array();
|
||||
if (isset($grant['history'])) {
|
||||
$history = $grant['history'];
|
||||
@@ -831,14 +886,15 @@ function devel_node_access_block_view($delta) {
|
||||
}
|
||||
}
|
||||
|
||||
// fix up the main row cells with the proper class (needed for Bartik)
|
||||
// Fix up the main row cells with the proper class (needed for
|
||||
// Bartik).
|
||||
foreach ($row as $key => $value) {
|
||||
if (!is_array($value)) {
|
||||
$row[$key] = array('data' => $value);
|
||||
}
|
||||
$row[$key]['class'] = array($class);
|
||||
}
|
||||
// add the main row
|
||||
// Add the main row.
|
||||
$will_append = empty($history['current']) && !empty($history['changes']);
|
||||
$rows[] = array(
|
||||
'data' => array_values($row),
|
||||
@@ -846,7 +902,7 @@ function devel_node_access_block_view($delta) {
|
||||
'style' => array_merge($next_style, ($will_append ? array('border-bottom-style: none;') : array())),
|
||||
);
|
||||
|
||||
// append information from the D7 hook_node_access_records_alter()
|
||||
// Append information from the D7 hook_node_access_records_alter().
|
||||
if ($will_append) {
|
||||
$last_change = end($history['changes']);
|
||||
$rows[] = array(
|
||||
@@ -889,7 +945,8 @@ function devel_node_access_block_view($delta) {
|
||||
);
|
||||
}
|
||||
|
||||
// Explain whether access is granted or denied, and why (using code from node_access()).
|
||||
// Explain whether access is granted or denied, and why (using code from
|
||||
// node_access()).
|
||||
$tr = 't';
|
||||
array_shift($nids); // remove the 0
|
||||
$accounts = array();
|
||||
@@ -906,7 +963,7 @@ function devel_node_access_block_view($delta) {
|
||||
);
|
||||
}
|
||||
else {
|
||||
$variables['!list'] = '<div style="margin-left: 2em">' . _devel_node_access_get_grant_list($nid, $ng_alter_data) . '</div>';
|
||||
$variables['!list'] = '<div style="margin-left: 2em">' . _devel_node_access_get_grant_list($nid, $ng_alter_datas['view']) . '</div>';
|
||||
$variables['%access'] = 'view';
|
||||
$output[] = array(
|
||||
'#prefix' => "\n<div style='text-align: left' title='" . t('These are the grants returned by hook_node_grants() for this user.') . "'>",
|
||||
@@ -915,7 +972,10 @@ function devel_node_access_block_view($delta) {
|
||||
);
|
||||
$accounts[] = $user;
|
||||
}
|
||||
if (arg(0) == 'node' && is_numeric(arg(1)) && !$block1_visible) { // only for single nodes
|
||||
$menu_item = menu_get_item();
|
||||
$map = $menu_item['original_map'];
|
||||
if ($map[0] == 'node' && isset($map[1]) && is_numeric($map[1]) && !isset($map[2]) && !$block1_visible) {
|
||||
// Only for single nodes.
|
||||
if (user_is_logged_in()) {
|
||||
$accounts[] = user_load(0); // Anonymous, too
|
||||
}
|
||||
@@ -948,10 +1008,11 @@ function devel_node_access_block_view($delta) {
|
||||
'#suffix' => '</div>',
|
||||
);
|
||||
}
|
||||
$variables['!username'] = theme('username', array('account' => $account));
|
||||
$variables['!username'] = '<em class="placeholder">' . theme('username', array('account' => $account)) . '</em>';
|
||||
$output[] = array(
|
||||
'#prefix' => "\n<div style='text-align: left'>",
|
||||
'#markup' => t("!username has the following access", $variables),
|
||||
'#type' => 'item',
|
||||
'lead-in' => array('#markup' => t("!username has the following access", $variables) . ' '),
|
||||
'items' => $account_items,
|
||||
'#suffix' => "\n</div>\n",
|
||||
);
|
||||
@@ -970,10 +1031,29 @@ function devel_node_access_block_view($delta) {
|
||||
return array('subject' => $subject, 'content' => $output);
|
||||
|
||||
case 'dna_user':
|
||||
// show which users can access this node
|
||||
if (arg(0) == 'node' && is_numeric($nid = arg(1)) && arg(2) == NULL && $node = node_load($nid)) {
|
||||
// Show which users can access this node.
|
||||
$menu_item = menu_get_item();
|
||||
$map = $menu_item['original_map'];
|
||||
if ($map[0] != 'node' || !isset($map[1]) || !is_numeric($map[1]) || isset($map[2])) {
|
||||
// Ignore anything but node/%.
|
||||
return;
|
||||
}
|
||||
|
||||
if (isset($menu_item['map'][1]) && is_object($node = $menu_item['map'][1])) {
|
||||
// We have the node.
|
||||
}
|
||||
elseif (is_numeric($menu_item['original_map'][1])) {
|
||||
$node = node_load($menu_item['original_map'][1]);
|
||||
}
|
||||
if (isset($node)) {
|
||||
$nid = $node->nid;
|
||||
$node_type = node_type_get_type($node);
|
||||
$headers = array(t('username'), '<span title="' . t("Create nodes of the '@Node_type' type.", array('@Node_type' => $node_type->name)) . '">' . t('create') . '</span>', t('view'), t('update'), t('delete'));
|
||||
$variables = array('@Node_type' => ($node_type ? $node_type->name : $node->type));
|
||||
$create_header = '<span title="' . t("Create nodes of the '@Node_type' type.", $variables) . '">' . t('create') . '</span>';
|
||||
if (!$node_type) {
|
||||
$create_header .= '<br /><span class="error">' . t("(missing type: '@Node_type')", $variables) . '</span>';
|
||||
}
|
||||
$headers = array(t('username'), $create_header, t('view'), t('update'), t('delete'));
|
||||
$rows = array();
|
||||
// Determine whether to use Ajax or prepopulate the tables.
|
||||
if ($ajax = variable_get('devel_node_access_user_ajax', FALSE)) {
|
||||
@@ -1042,7 +1122,7 @@ function devel_node_access_block_view($delta) {
|
||||
}
|
||||
|
||||
/**
|
||||
* Callback function for node access by user block ajax.
|
||||
* Page callback for node access by user block ajax.
|
||||
*/
|
||||
function devel_node_access_user_ajax($data_type, $cell) {
|
||||
list($op, $nid, $uid) = explode('-', $cell);
|
||||
@@ -1080,7 +1160,8 @@ function devel_node_access_user_ajax($data_type, $cell) {
|
||||
/**
|
||||
* Helper function that mimicks node.module's node_access() function.
|
||||
*
|
||||
* Unfortunately, this needs to be updated manually whenever node.module changes!
|
||||
* Unfortunately, this needs to be updated manually whenever node.module
|
||||
* changes!
|
||||
*
|
||||
* @return
|
||||
* An array suitable for theming with theme_dna_permission().
|
||||
@@ -1220,7 +1301,13 @@ function _devel_node_access_explain_access($op, $node, $account = NULL) {
|
||||
}
|
||||
|
||||
/**
|
||||
* Helper function to create a list of the grants returned by hook_node_grants().
|
||||
* Creates a list of the grants returned by hook_node_grants().
|
||||
*
|
||||
* @param integer $nid
|
||||
* @param array $ng_alter_data
|
||||
*
|
||||
* @return
|
||||
* A themed item list of grants.
|
||||
*/
|
||||
function _devel_node_access_get_grant_list($nid, $ng_alter_data) {
|
||||
//dpm($ng_alter_data, "_devel_node_access_get_grant_list($nid,");
|
||||
@@ -1286,7 +1373,16 @@ function devel_node_access_node_access_explain($row) {
|
||||
}
|
||||
|
||||
/**
|
||||
* Helper function to return a sanitized node title.
|
||||
* Return a sanitized node title.
|
||||
*
|
||||
* @param $node
|
||||
* The node from which to get the title.
|
||||
* @param boolean $clip_and_decorate
|
||||
* (optional) Set to TRUE to limit the length of the returned title and to add
|
||||
* markup to make it easier to style.
|
||||
*
|
||||
* @return string
|
||||
* The sanitized node title.
|
||||
*/
|
||||
function _devel_node_access_get_node_title($node, $clip_and_decorate = FALSE) {
|
||||
if (isset($node)) {
|
||||
@@ -1308,7 +1404,13 @@ function _devel_node_access_get_node_title($node, $clip_and_decorate = FALSE) {
|
||||
}
|
||||
|
||||
/**
|
||||
* Helper function to apply common formatting to a debug-mode table row.
|
||||
* Applies common formatting to a debug-mode table row.
|
||||
*
|
||||
* @param array $row
|
||||
* The row to format.
|
||||
* @param boolean $may_unpack
|
||||
* (optional) Indicates if $row['data'] needs be formatted rather than $row
|
||||
* itself. Default is TRUE.
|
||||
*/
|
||||
function _devel_node_access_format_row($row, $may_unpack = TRUE) {
|
||||
if ($may_unpack && isset($row['data'])) {
|
||||
@@ -1348,7 +1450,14 @@ function devel_node_access_theme() {
|
||||
}
|
||||
|
||||
/**
|
||||
* Indicate whether user has a permission or not.
|
||||
* Returns HTML to indicate if a user has a permission.
|
||||
*
|
||||
* @param array $variables
|
||||
* An associative array containing:
|
||||
* - permission: An indexed array containing:
|
||||
* - 0: A value indicating if the user has permission.
|
||||
* - 1: The text of the message to display.
|
||||
* - 2: The title to display containing additional information.
|
||||
*/
|
||||
function theme_dna_permission($variables) {
|
||||
$permission = &$variables['permission'];
|
||||
|
||||
@@ -1,32 +1,32 @@
|
||||
------------------------------------------------------------------------------
|
||||
|
||||
SETUP: How to install Krumo ?
|
||||
|
||||
------------------------------------------------------------------------------
|
||||
|
||||
In order to use Krumo you have to put it on your (development) server, and
|
||||
include it in your script. You can put it somewhere in the INCLUDE_PATH, or
|
||||
specify the full path to the "class.krumo.php" file.
|
||||
|
||||
You have to modify the "krumo.ini" file too. It is the configuration file for
|
||||
Krumo. The first option is choosing a skin:
|
||||
|
||||
[skin]
|
||||
selected = "orange"
|
||||
|
||||
The value for this setting has to be the name of one of the sub-folders from the
|
||||
"Krumo/skins/" folder. If the value provided for the skin results in not finding
|
||||
the skin, the `default` skin will be used instead.
|
||||
|
||||
The second option is used to set the correct web path to the folder where Krumo
|
||||
is installed. This is used in order to make the images from Krumo's CSS skins
|
||||
web-accessible.
|
||||
|
||||
[css]
|
||||
url = "http://www.example.com/Krumo/"
|
||||
|
||||
So far those two are the only configuration options.
|
||||
|
||||
All the CSS files ("skin.css") from the "Krumo/skins/" sub-folders must have the
|
||||
proper permissions in order to be readable from Krumo. Same applies for
|
||||
"krumo.ini" and "krumo.js" files.
|
||||
------------------------------------------------------------------------------
|
||||
|
||||
SETUP: How to install Krumo ?
|
||||
|
||||
------------------------------------------------------------------------------
|
||||
|
||||
In order to use Krumo you have to put it on your (development) server, and
|
||||
include it in your script. You can put it somewhere in the INCLUDE_PATH, or
|
||||
specify the full path to the "class.krumo.php" file.
|
||||
|
||||
You have to modify the "krumo.ini" file too. It is the configuration file for
|
||||
Krumo. The first option is choosing a skin:
|
||||
|
||||
[skin]
|
||||
selected = "orange"
|
||||
|
||||
The value for this setting has to be the name of one of the sub-folders from the
|
||||
"Krumo/skins/" folder. If the value provided for the skin results in not finding
|
||||
the skin, the `default` skin will be used instead.
|
||||
|
||||
The second option is used to set the correct web path to the folder where Krumo
|
||||
is installed. This is used in order to make the images from Krumo's CSS skins
|
||||
web-accessible.
|
||||
|
||||
[css]
|
||||
url = "http://www.example.com/Krumo/"
|
||||
|
||||
So far those two are the only configuration options.
|
||||
|
||||
All the CSS files ("skin.css") from the "Krumo/skins/" sub-folders must have the
|
||||
proper permissions in order to be readable from Krumo. Same applies for
|
||||
"krumo.ini" and "krumo.js" files.
|
||||
|
||||
@@ -1,103 +1,103 @@
|
||||
=============================================================================
|
||||
|
||||
Krumo
|
||||
version 0.2.1a
|
||||
|
||||
=============================================================================
|
||||
|
||||
You probably got this package from...
|
||||
http://www.sourceforge.net/projects/krumo/
|
||||
|
||||
If there is no licence agreement with this package please download
|
||||
a version from the location above. You must read and accept that
|
||||
licence to use this software. The file is titled simply LICENSE.
|
||||
|
||||
OVERVIEW
|
||||
------------------------------------------------------------------------------
|
||||
To put it simply, Krumo is a replacement for print_r() and var_dump(). By
|
||||
definition Krumo is a debugging tool (for PHP5), which displays structured
|
||||
information about any PHP variable.
|
||||
|
||||
A lot of developers use print_r() and var_dump() in the means of debugging
|
||||
tools. Although they were intended to present human readble information about a
|
||||
variable, we can all agree that in general they are not. Krumo is an
|
||||
alternative: it does the same job, but it presents the information beautified
|
||||
using CSS and DHTML.
|
||||
|
||||
EXAMPLES
|
||||
------------------------------------------------------------------------------
|
||||
Here's a basic example, which will return a report on the array variable passed
|
||||
as argument to it:
|
||||
|
||||
krumo(array('a1'=> 'A1', 3, 'red'));
|
||||
|
||||
You can dump simultaneously more then one variable - here's another example:
|
||||
|
||||
krumo($_SERVER, $_REQUEST);
|
||||
|
||||
You probably saw from the examples above that some of the nodes are expandable,
|
||||
so if you want to inspect the nested information, click on them and they will
|
||||
expand; if you do not need that information shown simply click again on it to
|
||||
collapse it. Here's an example to test this:
|
||||
|
||||
$x1->x2->x3->x4->x5->x6->x7->x8->x9 = 'X10';
|
||||
krumo($x1);
|
||||
|
||||
The krumo() is the only standalone function from the package, and this is
|
||||
because basic dumps about variables (like print_r() or var_dump()) are the most
|
||||
common tasks such functionality is used for. The rest of the functionality can
|
||||
be called using static calls to the Krumo class. Here are several more examples:
|
||||
|
||||
// print a debug backgrace
|
||||
krumo::backtrace();
|
||||
|
||||
// print all the included(or required) files
|
||||
krumo::includes();
|
||||
|
||||
// print all the included functions
|
||||
krumo::functions();
|
||||
|
||||
// print all the declared classes
|
||||
krumo::classes();
|
||||
|
||||
// print all the defined constants
|
||||
krumo::defines();
|
||||
|
||||
... and so on, etc.
|
||||
|
||||
A full PHPDocumenter API documentation exists both in this package and at the
|
||||
project's website.
|
||||
|
||||
INSTALL
|
||||
------------------------------------------------------------------------------
|
||||
Read the INSTALL file.
|
||||
|
||||
DOCUMENTATION
|
||||
------------------------------------------------------------------------------
|
||||
As I said, a full PHPDocumenter API documentation can be found both in this
|
||||
package and at the project's website.
|
||||
|
||||
SKINS
|
||||
------------------------------------------------------------------------------
|
||||
There are several skins pre-installed with this package, but if you wish you can
|
||||
create skins of your own. The skins are simply CSS files that are prepended to
|
||||
the result that Krumo prints. If you want to use images in your CSS (for
|
||||
background, list-style, etc), you have to put "%URL%" in front of the image URL
|
||||
in order hook it up to the skin folder and make the image web-accessible.
|
||||
|
||||
Here's an example:
|
||||
|
||||
ul.krumo-first {background: url(%url%bg.gif);}
|
||||
|
||||
TODO
|
||||
------------------------------------------------------------------------------
|
||||
You can find the list of stuff that is going to be added to this project in the
|
||||
TODO file from this very package.
|
||||
|
||||
CONTRIBUTION
|
||||
-----------------------------------------------------------------------------
|
||||
If you download and use and possibly even extend this tool, please let us know.
|
||||
Any feedback, even bad, is always welcome and your suggestions are going to be
|
||||
considered for our next release. Please use our SourceForge page for that:
|
||||
|
||||
http://www.sourceforge.net/projects/krumo/
|
||||
=============================================================================
|
||||
|
||||
Krumo
|
||||
version 0.2.1a
|
||||
|
||||
=============================================================================
|
||||
|
||||
You probably got this package from...
|
||||
http://www.sourceforge.net/projects/krumo/
|
||||
|
||||
If there is no licence agreement with this package please download
|
||||
a version from the location above. You must read and accept that
|
||||
licence to use this software. The file is titled simply LICENSE.
|
||||
|
||||
OVERVIEW
|
||||
------------------------------------------------------------------------------
|
||||
To put it simply, Krumo is a replacement for print_r() and var_dump(). By
|
||||
definition Krumo is a debugging tool (for PHP5), which displays structured
|
||||
information about any PHP variable.
|
||||
|
||||
A lot of developers use print_r() and var_dump() in the means of debugging
|
||||
tools. Although they were intended to present human readble information about a
|
||||
variable, we can all agree that in general they are not. Krumo is an
|
||||
alternative: it does the same job, but it presents the information beautified
|
||||
using CSS and DHTML.
|
||||
|
||||
EXAMPLES
|
||||
------------------------------------------------------------------------------
|
||||
Here's a basic example, which will return a report on the array variable passed
|
||||
as argument to it:
|
||||
|
||||
krumo(array('a1'=> 'A1', 3, 'red'));
|
||||
|
||||
You can dump simultaneously more then one variable - here's another example:
|
||||
|
||||
krumo($_SERVER, $_REQUEST);
|
||||
|
||||
You probably saw from the examples above that some of the nodes are expandable,
|
||||
so if you want to inspect the nested information, click on them and they will
|
||||
expand; if you do not need that information shown simply click again on it to
|
||||
collapse it. Here's an example to test this:
|
||||
|
||||
$x1->x2->x3->x4->x5->x6->x7->x8->x9 = 'X10';
|
||||
krumo($x1);
|
||||
|
||||
The krumo() is the only standalone function from the package, and this is
|
||||
because basic dumps about variables (like print_r() or var_dump()) are the most
|
||||
common tasks such functionality is used for. The rest of the functionality can
|
||||
be called using static calls to the Krumo class. Here are several more examples:
|
||||
|
||||
// print a debug backgrace
|
||||
krumo::backtrace();
|
||||
|
||||
// print all the included(or required) files
|
||||
krumo::includes();
|
||||
|
||||
// print all the included functions
|
||||
krumo::functions();
|
||||
|
||||
// print all the declared classes
|
||||
krumo::classes();
|
||||
|
||||
// print all the defined constants
|
||||
krumo::defines();
|
||||
|
||||
... and so on, etc.
|
||||
|
||||
A full PHPDocumenter API documentation exists both in this package and at the
|
||||
project's website.
|
||||
|
||||
INSTALL
|
||||
------------------------------------------------------------------------------
|
||||
Read the INSTALL file.
|
||||
|
||||
DOCUMENTATION
|
||||
------------------------------------------------------------------------------
|
||||
As I said, a full PHPDocumenter API documentation can be found both in this
|
||||
package and at the project's website.
|
||||
|
||||
SKINS
|
||||
------------------------------------------------------------------------------
|
||||
There are several skins pre-installed with this package, but if you wish you can
|
||||
create skins of your own. The skins are simply CSS files that are prepended to
|
||||
the result that Krumo prints. If you want to use images in your CSS (for
|
||||
background, list-style, etc), you have to put "%URL%" in front of the image URL
|
||||
in order hook it up to the skin folder and make the image web-accessible.
|
||||
|
||||
Here's an example:
|
||||
|
||||
ul.krumo-first {background: url(%url%bg.gif);}
|
||||
|
||||
TODO
|
||||
------------------------------------------------------------------------------
|
||||
You can find the list of stuff that is going to be added to this project in the
|
||||
TODO file from this very package.
|
||||
|
||||
CONTRIBUTION
|
||||
-----------------------------------------------------------------------------
|
||||
If you download and use and possibly even extend this tool, please let us know.
|
||||
Any feedback, even bad, is always welcome and your suggestions are going to be
|
||||
considered for our next release. Please use our SourceForge page for that:
|
||||
|
||||
http://www.sourceforge.net/projects/krumo/
|
||||
|
||||
@@ -1,24 +1,24 @@
|
||||
******************************************************************************
|
||||
|
||||
Krumo: TODO
|
||||
|
||||
******************************************************************************
|
||||
|
||||
BUGS
|
||||
----------------
|
||||
- watch the SourceForge.net Bug Tracker
|
||||
|
||||
Features: PHP
|
||||
----------------
|
||||
- Try to detect anonymous (lambda) functions
|
||||
- Try to detect whether an array is indexed or associated
|
||||
- Add var_export support for arrays and objects
|
||||
- Add JSON support for arrays and objects
|
||||
|
||||
Features: GUI
|
||||
----------------
|
||||
- Nicer and friendlier skin(s)
|
||||
- Add top-level links for collapsing and expanding the whole tree
|
||||
- Add object & array -level links for collapsing and expanding all the
|
||||
nested nodes
|
||||
- Print all parent classes for the rendered objects
|
||||
******************************************************************************
|
||||
|
||||
Krumo: TODO
|
||||
|
||||
******************************************************************************
|
||||
|
||||
BUGS
|
||||
----------------
|
||||
- watch the SourceForge.net Bug Tracker
|
||||
|
||||
Features: PHP
|
||||
----------------
|
||||
- Try to detect anonymous (lambda) functions
|
||||
- Try to detect whether an array is indexed or associated
|
||||
- Add var_export support for arrays and objects
|
||||
- Add JSON support for arrays and objects
|
||||
|
||||
Features: GUI
|
||||
----------------
|
||||
- Nicer and friendlier skin(s)
|
||||
- Add top-level links for collapsing and expanding the whole tree
|
||||
- Add object & array -level links for collapsing and expanding all the
|
||||
nested nodes
|
||||
- Print all parent classes for the rendered objects
|
||||
|
||||
@@ -604,7 +604,8 @@ This is a list of all the values from the <code><b><?php echo realpath($ini_file
|
||||
$_recursion_marker = krumo::_marker();
|
||||
if ($hive =& krumo::_hive($dummy)) {
|
||||
foreach($hive as $i=>$bee){
|
||||
if (is_object($bee)) {
|
||||
// skip closures set as properties
|
||||
if (is_object($bee) && !($bee instanceof Closure)) {
|
||||
unset($hive[$i]->$_recursion_marker);
|
||||
// DEVEL: changed 'else' to 'elseif' below
|
||||
} elseif (is_array($bee)) {
|
||||
@@ -654,6 +655,15 @@ This is a list of all the values from the <code><b><?php echo realpath($ini_file
|
||||
|
||||
// -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
|
||||
|
||||
/**
|
||||
* Allows CSS and Javascript to be included without performing a krumo::dump().
|
||||
*/
|
||||
Public Static Function addCssJs() {
|
||||
return krumo::_css();
|
||||
}
|
||||
|
||||
// -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
|
||||
|
||||
/**
|
||||
* Print the skin (CSS)
|
||||
*
|
||||
@@ -673,7 +683,7 @@ This is a list of all the values from the <code><b><?php echo realpath($ini_file
|
||||
|
||||
$css = '';
|
||||
// DEVEL: changed for Drupal variables system
|
||||
$skin = variable_get('devel_krumo_skin', 'orange');
|
||||
$skin = variable_get('devel_krumo_skin', 'default');
|
||||
|
||||
// custom selected skin ?
|
||||
//
|
||||
@@ -704,25 +714,8 @@ This is a list of all the values from the <code><b><?php echo realpath($ini_file
|
||||
|
||||
// the CSS
|
||||
//
|
||||
?>
|
||||
<!-- Using Krumo Skin: <?php echo preg_replace('~^' . preg_quote(realpath(KRUMO_DIR) . DIRECTORY_SEPARATOR) . '~Uis', '', realpath($_));?> -->
|
||||
<style type="text/css">
|
||||
<!--/**/
|
||||
<?php echo $css?>
|
||||
|
||||
/**/-->
|
||||
</style>
|
||||
<?php
|
||||
// the JS
|
||||
//
|
||||
?>
|
||||
<script type="text/javascript">
|
||||
<!--//
|
||||
<?php echo join(file(KRUMO_DIR . "krumo.js"));?>
|
||||
|
||||
//-->
|
||||
</script>
|
||||
<?php
|
||||
drupal_add_css($css, 'inline');
|
||||
drupal_add_js(join(file(KRUMO_DIR . "krumo.js")), 'inline');
|
||||
}
|
||||
|
||||
return $_css;
|
||||
@@ -923,7 +916,7 @@ This is a list of all the values from the <code><b><?php echo realpath($ini_file
|
||||
//
|
||||
$_recursion_marker = krumo::_marker();
|
||||
(is_object($bee))
|
||||
? @($bee->$_recursion_marker++)
|
||||
? (empty($bee->$_recursion_marker) ? ($bee->$_recursion_marker = 1) : $bee->$_recursion_marker++)
|
||||
: @($bee[$_recursion_marker]++);
|
||||
|
||||
$_[0][] =& $bee;
|
||||
@@ -973,6 +966,29 @@ This is a list of all the values from the <code><b><?php echo realpath($ini_file
|
||||
<ul class="krumo-node">
|
||||
<?php
|
||||
|
||||
if ($_is_object && get_class($data) != 'stdClass') {
|
||||
// this part for protected/private properties only
|
||||
$refl = new ReflectionClass($data);
|
||||
foreach ($refl->getProperties() as $property) {
|
||||
$k = $property->getName();
|
||||
if ($k === $_recursion_marker || $property->isPublic()) {
|
||||
continue;
|
||||
}
|
||||
|
||||
// add key indicators
|
||||
if ($property->isProtected()) {
|
||||
$k .= ':protected';
|
||||
}
|
||||
elseif ($property->isPrivate()) {
|
||||
$k .= ':private';
|
||||
}
|
||||
|
||||
$property->setAccessible(TRUE);
|
||||
$v = $property->getValue($data);
|
||||
krumo::_dump($v, $k);
|
||||
}
|
||||
}
|
||||
|
||||
// keys ?
|
||||
//
|
||||
$keys = ($_is_object)
|
||||
@@ -1020,7 +1036,7 @@ This is a list of all the values from the <code><b><?php echo realpath($ini_file
|
||||
<div class="krumo-element"
|
||||
onMouseOver="krumo.over(this);"
|
||||
onMouseOut="krumo.out(this);">
|
||||
<a class="krumo-name"><big>∞</big></a>
|
||||
<a class="krumo-name"><span class="krumo-big">∞</span></a>
|
||||
(<em class="krumo-type">Recursion</em>)
|
||||
</div>
|
||||
|
||||
@@ -1044,10 +1060,7 @@ This is a list of all the values from the <code><b><?php echo realpath($ini_file
|
||||
?>
|
||||
<li class="krumo-child">
|
||||
|
||||
<div class="krumo-element<?php echo count($data) > 0 ? ' krumo-expand' : '';?>"
|
||||
<?php if (count($data) > 0) {?> onClick="krumo.toggle(this);"<?php } ?>
|
||||
onMouseOver="krumo.over(this);"
|
||||
onMouseOut="krumo.out(this);">
|
||||
<div class="krumo-element<?php echo !empty($data) ? ' krumo-expand' : '';?>">
|
||||
|
||||
<?php /* DEVEL: added htmlSpecialChars */ ?>
|
||||
<a class="krumo-name"><?php echo htmlSpecialChars($name);?></a>
|
||||
@@ -1096,10 +1109,7 @@ This is a list of all the values from the <code><b><?php echo realpath($ini_file
|
||||
?>
|
||||
<li class="krumo-child">
|
||||
|
||||
<div class="krumo-element<?php echo count($data) > 0 ? ' krumo-expand' : '';?>"
|
||||
<?php if (count($data) > 0) {?> onClick="krumo.toggle(this);"<?php } ?>
|
||||
onMouseOver="krumo.over(this);"
|
||||
onMouseOut="krumo.out(this);">
|
||||
<div class="krumo-element<?php echo ' krumo-expand';?>">
|
||||
|
||||
<?php /* DEVEL: added htmlSpecialChars */ ?>
|
||||
<a class="krumo-name"><?php echo htmlSpecialChars($name);?></a>
|
||||
@@ -1107,7 +1117,7 @@ This is a list of all the values from the <code><b><?php echo realpath($ini_file
|
||||
<strong class="krumo-class"><?php echo get_class($data);?></strong>
|
||||
</div>
|
||||
|
||||
<?php if (count($data)) {
|
||||
<?php {
|
||||
krumo::_vars($data);
|
||||
} ?>
|
||||
</li>
|
||||
@@ -1243,16 +1253,13 @@ This is a list of all the values from the <code><b><?php echo realpath($ini_file
|
||||
$_extra = false;
|
||||
$_ = $data;
|
||||
if (strLen($data) > KRUMO_TRUNCATE_LENGTH) {
|
||||
$_ = substr($data, 0, KRUMO_TRUNCATE_LENGTH - 3) . '...';
|
||||
$_ = drupal_substr($data, 0, KRUMO_TRUNCATE_LENGTH - 3) . '...';
|
||||
$_extra = true;
|
||||
}
|
||||
?>
|
||||
<li class="krumo-child">
|
||||
|
||||
<div class="krumo-element<?php echo $_extra ? ' krumo-expand' : '';?>"
|
||||
<?php if ($_extra) {?> onClick="krumo.toggle(this);"<?php } ?>
|
||||
onMouseOver="krumo.over(this);"
|
||||
onMouseOut="krumo.out(this);">
|
||||
<div class="krumo-element<?php echo $_extra ? ' krumo-expand' : '';?>">
|
||||
|
||||
<?php /* DEVEL: added htmlSpecialChars */ ?>
|
||||
<a class="krumo-name"><?php echo htmlSpecialChars($name);?></a>
|
||||
|
||||
@@ -1,267 +1,268 @@
|
||||
<?xml version="1.0" encoding="iso-8859-1"?>
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<!-- template designed by Marco Von Ballmoos -->
|
||||
<title>Docs for page class.krumo.php</title>
|
||||
<link rel="stylesheet" href="../media/stylesheet.css" />
|
||||
<script src="../media/lib/classTree.js"></script>
|
||||
<script language="javascript" type="text/javascript">
|
||||
var imgPlus = new Image();
|
||||
var imgMinus = new Image();
|
||||
imgPlus.src = "../media/images/plus.png";
|
||||
imgMinus.src = "../media/images/minus.png";
|
||||
|
||||
function showNode(Node){
|
||||
switch(navigator.family){
|
||||
case 'nn4':
|
||||
// Nav 4.x code fork...
|
||||
var oTable = document.layers["span" + Node];
|
||||
var oImg = document.layers["img" + Node];
|
||||
break;
|
||||
case 'ie4':
|
||||
// IE 4/5 code fork...
|
||||
var oTable = document.all["span" + Node];
|
||||
var oImg = document.all["img" + Node];
|
||||
break;
|
||||
case 'gecko':
|
||||
// Standards Compliant code fork...
|
||||
var oTable = document.getElementById("span" + Node);
|
||||
var oImg = document.getElementById("img" + Node);
|
||||
break;
|
||||
}
|
||||
oImg.src = imgMinus.src;
|
||||
oTable.style.display = "block";
|
||||
}
|
||||
|
||||
function hideNode(Node){
|
||||
switch(navigator.family){
|
||||
case 'nn4':
|
||||
// Nav 4.x code fork...
|
||||
var oTable = document.layers["span" + Node];
|
||||
var oImg = document.layers["img" + Node];
|
||||
break;
|
||||
case 'ie4':
|
||||
// IE 4/5 code fork...
|
||||
var oTable = document.all["span" + Node];
|
||||
var oImg = document.all["img" + Node];
|
||||
break;
|
||||
case 'gecko':
|
||||
// Standards Compliant code fork...
|
||||
var oTable = document.getElementById("span" + Node);
|
||||
var oImg = document.getElementById("img" + Node);
|
||||
break;
|
||||
}
|
||||
oImg.src = imgPlus.src;
|
||||
oTable.style.display = "none";
|
||||
}
|
||||
|
||||
function nodeIsVisible(Node){
|
||||
switch(navigator.family){
|
||||
case 'nn4':
|
||||
// Nav 4.x code fork...
|
||||
var oTable = document.layers["span" + Node];
|
||||
break;
|
||||
case 'ie4':
|
||||
// IE 4/5 code fork...
|
||||
var oTable = document.all["span" + Node];
|
||||
break;
|
||||
case 'gecko':
|
||||
// Standards Compliant code fork...
|
||||
var oTable = document.getElementById("span" + Node);
|
||||
break;
|
||||
}
|
||||
return (oTable && oTable.style.display == "block");
|
||||
}
|
||||
|
||||
function toggleNodeVisibility(Node){
|
||||
if (nodeIsVisible(Node)){
|
||||
hideNode(Node);
|
||||
}else{
|
||||
showNode(Node);
|
||||
}
|
||||
}
|
||||
</script>
|
||||
</head>
|
||||
<body>
|
||||
<div class="page-body"> ␍
|
||||
<h2 class="file-name"><img src="../media/images/Page_logo.png" alt="File" style="vertical-align: middle">/class.krumo.php</h2>
|
||||
|
||||
<a name="sec-description"></a>
|
||||
<div class="info-box">
|
||||
<div class="info-box-title">Description</div>
|
||||
<div class="nav-bar">
|
||||
<span class="disabled">Description</span> |
|
||||
<a href="#sec-classes">Classes</a>
|
||||
| <a href="#sec-constants">Constants</a>
|
||||
| <a href="#sec-functions">Functions</a>
|
||||
</div>
|
||||
<div class="info-box-body">
|
||||
<!-- ========== Info from phpDoc block ========= -->
|
||||
<p class="short-description">Krumo: Structured information display solution</p>
|
||||
<p class="description"><p>Krumo is a debugging tool (PHP5 only), which displays structured information about any PHP variable. It is a nice replacement for print_r() or var_dump() which are used by a lot of PHP developers.</p></p>
|
||||
<ul class="tags">
|
||||
<li><span class="field">author:</span> Kaloyan K. Tsvetkov <<a href="mailto:kaloyan@kaloyan.info">kaloyan@kaloyan.info</a>></li>
|
||||
<li><span class="field">version:</span> $Id$</li>
|
||||
<li><span class="field">license:</span> <a href="http://opensource.org/licenses/lgpl-license.php">GNU Lesser General Public License Version 2.1</a></li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<a name="sec-classes"></a>
|
||||
<div class="info-box">
|
||||
<div class="info-box-title">Classes</div>
|
||||
<div class="nav-bar">
|
||||
<a href="#sec-description">Description</a> |
|
||||
<span class="disabled">Classes</span>
|
||||
| <a href="#sec-constants">Constants</a>
|
||||
| <a href="#sec-functions">Functions</a>
|
||||
</div>
|
||||
<div class="info-box-body">
|
||||
<table cellpadding="2" cellspacing="0" class="class-table">
|
||||
<tr>
|
||||
<th class="class-table-header">Class</th>
|
||||
<th class="class-table-header">Description</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="padding-right: 2em; vertical-align: top; white-space: nowrap">
|
||||
<img src="../media/images/Class.png"
|
||||
alt=" class"
|
||||
title=" class"/>
|
||||
<a href="../Krumo/krumo.html">krumo</a>
|
||||
</td>
|
||||
<td>
|
||||
Krumo API
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<a name="sec-constants"></a>
|
||||
<div class="info-box">
|
||||
<div class="info-box-title">Constants</div>
|
||||
<div class="nav-bar">
|
||||
<a href="#sec-description">Description</a> |
|
||||
<a href="#sec-classes">Classes</a>
|
||||
| <span class="disabled">Constants</span>
|
||||
| <a href="#sec-functions">Functions</a>
|
||||
</div>
|
||||
<div class="info-box-body">
|
||||
<a name="defineDIR_SEP"><!-- --></a>
|
||||
<div class="oddrow">
|
||||
|
||||
<div>
|
||||
<img src="../media/images/Constant.png" />
|
||||
<span class="const-title">
|
||||
<span class="const-name">DIR_SEP</span> = DIRECTORY_SEPARATOR
|
||||
(line <span class="line-number">22</span>)
|
||||
</span>
|
||||
</div>
|
||||
|
||||
<!-- ========== Info from phpDoc block ========= -->
|
||||
<p class="short-description">backward compatibility: the DIR_SEP constant isn't used anymore</p>
|
||||
|
||||
|
||||
</div>
|
||||
<a name="defineKRUMO_DIR"><!-- --></a>
|
||||
<div class="evenrow">
|
||||
|
||||
<div>
|
||||
<img src="../media/images/Constant.png" />
|
||||
<span class="const-title">
|
||||
<span class="const-name">KRUMO_DIR</span> = dirname(__FILE__).DIRECTORY_SEPARATOR
|
||||
(line <span class="line-number">39</span>)
|
||||
</span>
|
||||
</div>
|
||||
|
||||
<!-- ========== Info from phpDoc block ========= -->
|
||||
<p class="short-description">Set the KRUMO_DIR constant up with the absolute path to Krumo files. If it is not defined, include_path will be used. Set KRUMO_DIR only if any other module or application has not already set it up.</p>
|
||||
|
||||
|
||||
</div>
|
||||
<a name="defineKRUMO_TRUNCATE_LENGTH"><!-- --></a>
|
||||
<div class="oddrow">
|
||||
|
||||
<div>
|
||||
<img src="../media/images/Constant.png" />
|
||||
<span class="const-title">
|
||||
<span class="const-name">KRUMO_TRUNCATE_LENGTH</span> = 50
|
||||
(line <span class="line-number">48</span>)
|
||||
</span>
|
||||
</div>
|
||||
|
||||
<!-- ========== Info from phpDoc block ========= -->
|
||||
<p class="short-description">This constant sets the maximum strings of strings that will be shown as they are. Longer strings will be truncated with this length, and their `full form` will be shown in a child node.</p>
|
||||
|
||||
|
||||
</div>
|
||||
<a name="definePATH_SEPARATOR"><!-- --></a>
|
||||
<div class="evenrow">
|
||||
|
||||
<div>
|
||||
<img src="../media/images/Constant.png" />
|
||||
<span class="const-title">
|
||||
<span class="const-name">PATH_SEPARATOR</span> = OS_WINDOWS?';':':'
|
||||
(line <span class="line-number">28</span>)
|
||||
</span>
|
||||
</div>
|
||||
|
||||
<!-- ========== Info from phpDoc block ========= -->
|
||||
<p class="short-description">backward compatibility: the PATH_SEPARATOR constant is availble since 4.3.0RC2</p>
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<a name="sec-functions"></a>
|
||||
<div class="info-box">
|
||||
<div class="info-box-title">Functions</div>
|
||||
<div class="nav-bar">
|
||||
<a href="#sec-description">Description</a> |
|
||||
<a href="#sec-classes">Classes</a>
|
||||
| <a href="#sec-constants">Constants</a>
|
||||
| <span class="disabled">Functions</span>
|
||||
</div>
|
||||
<div class="info-box-body">
|
||||
<a name="functionkrumo" id="functionkrumo"><!-- --></a>
|
||||
<div class="oddrow">
|
||||
|
||||
<div>
|
||||
<img src="../media/images/Function.png" />
|
||||
<span class="method-title">krumo</span> (line <span class="line-number">1295</span>)
|
||||
</div>
|
||||
|
||||
<!-- ========== Info from phpDoc block ========= -->
|
||||
<p class="short-description">Alias of <a href="../Krumo/krumo.html#methoddump">krumo::dump()</a></p>
|
||||
<ul class="tags">
|
||||
<li><span class="field">see:</span> <a href="../Krumo/krumo.html#methoddump">krumo::dump()</a></li>
|
||||
</ul>
|
||||
<div class="method-signature">
|
||||
<span class="method-result">void</span>
|
||||
<span class="method-name">
|
||||
krumo
|
||||
</span>
|
||||
([<span class="var-type">mixed</span> <span class="var-name">$data,...</span> = <span class="var-default"></span>])
|
||||
</div>
|
||||
|
||||
<ul class="parameters">
|
||||
<li>
|
||||
<span class="var-type">mixed</span>
|
||||
<span class="var-name">$data,...</span> </li>
|
||||
</ul>
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<p class="notes" id="credit">
|
||||
Documentation generated on Sun, 02 Dec 2007 09:43:24 +0200 by <a href="http://www.phpdoc.org" target="_blank">phpDocumentor 1.4.0a2</a>
|
||||
</p>
|
||||
</div></body>
|
||||
</html>␍
|
||||
<?xml version="1.0" encoding="iso-8859-1"?>
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<!-- template designed by Marco Von Ballmoos -->
|
||||
<title>Docs for page class.krumo.php</title>
|
||||
<link rel="stylesheet" href="../media/stylesheet.css"/>
|
||||
<script src="../media/lib/classTree.js"></script>
|
||||
<script language="javascript" type="text/javascript">
|
||||
var imgPlus = new Image();
|
||||
var imgMinus = new Image();
|
||||
imgPlus.src = "../media/images/plus.png";
|
||||
imgMinus.src = "../media/images/minus.png";
|
||||
|
||||
function showNode(Node) {
|
||||
switch (navigator.family) {
|
||||
case 'nn4':
|
||||
// Nav 4.x code fork...
|
||||
var oTable = document.layers["span" + Node];
|
||||
var oImg = document.layers["img" + Node];
|
||||
break;
|
||||
case 'ie4':
|
||||
// IE 4/5 code fork...
|
||||
var oTable = document.all["span" + Node];
|
||||
var oImg = document.all["img" + Node];
|
||||
break;
|
||||
case 'gecko':
|
||||
// Standards Compliant code fork...
|
||||
var oTable = document.getElementById("span" + Node);
|
||||
var oImg = document.getElementById("img" + Node);
|
||||
break;
|
||||
}
|
||||
oImg.src = imgMinus.src;
|
||||
oTable.style.display = "block";
|
||||
}
|
||||
|
||||
function hideNode(Node) {
|
||||
switch (navigator.family) {
|
||||
case 'nn4':
|
||||
// Nav 4.x code fork...
|
||||
var oTable = document.layers["span" + Node];
|
||||
var oImg = document.layers["img" + Node];
|
||||
break;
|
||||
case 'ie4':
|
||||
// IE 4/5 code fork...
|
||||
var oTable = document.all["span" + Node];
|
||||
var oImg = document.all["img" + Node];
|
||||
break;
|
||||
case 'gecko':
|
||||
// Standards Compliant code fork...
|
||||
var oTable = document.getElementById("span" + Node);
|
||||
var oImg = document.getElementById("img" + Node);
|
||||
break;
|
||||
}
|
||||
oImg.src = imgPlus.src;
|
||||
oTable.style.display = "none";
|
||||
}
|
||||
|
||||
function nodeIsVisible(Node) {
|
||||
switch (navigator.family) {
|
||||
case 'nn4':
|
||||
// Nav 4.x code fork...
|
||||
var oTable = document.layers["span" + Node];
|
||||
break;
|
||||
case 'ie4':
|
||||
// IE 4/5 code fork...
|
||||
var oTable = document.all["span" + Node];
|
||||
break;
|
||||
case 'gecko':
|
||||
// Standards Compliant code fork...
|
||||
var oTable = document.getElementById("span" + Node);
|
||||
break;
|
||||
}
|
||||
return (oTable && oTable.style.display == "block");
|
||||
}
|
||||
|
||||
function toggleNodeVisibility(Node) {
|
||||
if (nodeIsVisible(Node)) {
|
||||
hideNode(Node);
|
||||
}else {
|
||||
showNode(Node);
|
||||
}
|
||||
}
|
||||
</script>
|
||||
</head>
|
||||
<body>
|
||||
<div class="page-body">
|
||||
|
||||
<h2 class="file-name"><img src="../media/images/Page_logo.png" alt="File" style="vertical-align: middle">/class.krumo.php</h2>
|
||||
|
||||
<a name="sec-description"></a>
|
||||
<div class="info-box">
|
||||
<div class="info-box-title">Description</div>
|
||||
<div class="nav-bar">
|
||||
<span class="disabled">Description</span> |
|
||||
<a href="#sec-classes">Classes</a>
|
||||
| <a href="#sec-constants">Constants</a>
|
||||
| <a href="#sec-functions">Functions</a>
|
||||
</div>
|
||||
<div class="info-box-body">
|
||||
<!-- ========== Info from phpDoc block ========= -->
|
||||
<p class="short-description">Krumo: Structured information display solution</p>
|
||||
<p class="description"><p>Krumo is a debugging tool (PHP5 only), which displays structured information about any PHP variable. It is a nice replacement for print_r() or var_dump() which are used by a lot of PHP developers.</p></p>
|
||||
<ul class="tags">
|
||||
<li><span class="field">author:</span> Kaloyan K. Tsvetkov <<a href="mailto:kaloyan@kaloyan.info">kaloyan@kaloyan.info</a>></li>
|
||||
<li><span class="field">version:</span> $Id$</li>
|
||||
<li><span class="field">license:</span> <a href="http://opensource.org/licenses/lgpl-license.php">GNU Lesser General Public License Version 2.1</a></li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<a name="sec-classes"></a>
|
||||
<div class="info-box">
|
||||
<div class="info-box-title">Classes</div>
|
||||
<div class="nav-bar">
|
||||
<a href="#sec-description">Description</a> |
|
||||
<span class="disabled">Classes</span>
|
||||
| <a href="#sec-constants">Constants</a>
|
||||
| <a href="#sec-functions">Functions</a>
|
||||
</div>
|
||||
<div class="info-box-body">
|
||||
<table cellpadding="2" cellspacing="0" class="class-table">
|
||||
<tr>
|
||||
<th class="class-table-header">Class</th>
|
||||
<th class="class-table-header">Description</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="padding-right: 2em; vertical-align: top; white-space: nowrap">
|
||||
<img src="../media/images/Class.png"
|
||||
alt=" class"
|
||||
title=" class"/>
|
||||
<a href="../Krumo/krumo.html">krumo</a>
|
||||
</td>
|
||||
<td>
|
||||
Krumo API
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<a name="sec-constants"></a>
|
||||
<div class="info-box">
|
||||
<div class="info-box-title">Constants</div>
|
||||
<div class="nav-bar">
|
||||
<a href="#sec-description">Description</a> |
|
||||
<a href="#sec-classes">Classes</a>
|
||||
| <span class="disabled">Constants</span>
|
||||
| <a href="#sec-functions">Functions</a>
|
||||
</div>
|
||||
<div class="info-box-body">
|
||||
<a name="defineDIR_SEP"><!-- --></a>
|
||||
<div class="oddrow">
|
||||
|
||||
<div>
|
||||
<img src="../media/images/Constant.png"/>
|
||||
<span class="const-title">
|
||||
<span class="const-name">DIR_SEP</span> = DIRECTORY_SEPARATOR
|
||||
(line <span class="line-number">22</span>)
|
||||
</span>
|
||||
</div>
|
||||
|
||||
<!-- ========== Info from phpDoc block ========= -->
|
||||
<p class="short-description">backward compatibility: the DIR_SEP constant isn't used anymore</p>
|
||||
|
||||
|
||||
</div>
|
||||
<a name="defineKRUMO_DIR"><!-- --></a>
|
||||
<div class="evenrow">
|
||||
|
||||
<div>
|
||||
<img src="../media/images/Constant.png"/>
|
||||
<span class="const-title">
|
||||
<span class="const-name">KRUMO_DIR</span> = dirname(__FILE__).DIRECTORY_SEPARATOR
|
||||
(line <span class="line-number">39</span>)
|
||||
</span>
|
||||
</div>
|
||||
|
||||
<!-- ========== Info from phpDoc block ========= -->
|
||||
<p class="short-description">Set the KRUMO_DIR constant up with the absolute path to Krumo files. If it is not defined, include_path will be used. Set KRUMO_DIR only if any other module or application has not already set it up.</p>
|
||||
|
||||
|
||||
</div>
|
||||
<a name="defineKRUMO_TRUNCATE_LENGTH"><!-- --></a>
|
||||
<div class="oddrow">
|
||||
|
||||
<div>
|
||||
<img src="../media/images/Constant.png"/>
|
||||
<span class="const-title">
|
||||
<span class="const-name">KRUMO_TRUNCATE_LENGTH</span> = 50
|
||||
(line <span class="line-number">48</span>)
|
||||
</span>
|
||||
</div>
|
||||
|
||||
<!-- ========== Info from phpDoc block ========= -->
|
||||
<p class="short-description">This constant sets the maximum strings of strings that will be shown as they are. Longer strings will be truncated with this length, and their `full form` will be shown in a child node.</p>
|
||||
|
||||
|
||||
</div>
|
||||
<a name="definePATH_SEPARATOR"><!-- --></a>
|
||||
<div class="evenrow">
|
||||
|
||||
<div>
|
||||
<img src="../media/images/Constant.png"/>
|
||||
<span class="const-title">
|
||||
<span class="const-name">PATH_SEPARATOR</span> = OS_WINDOWS?';':':'
|
||||
(line <span class="line-number">28</span>)
|
||||
</span>
|
||||
</div>
|
||||
|
||||
<!-- ========== Info from phpDoc block ========= -->
|
||||
<p class="short-description">backward compatibility: the PATH_SEPARATOR constant is availble since 4.3.0RC2</p>
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<a name="sec-functions"></a>
|
||||
<div class="info-box">
|
||||
<div class="info-box-title">Functions</div>
|
||||
<div class="nav-bar">
|
||||
<a href="#sec-description">Description</a> |
|
||||
<a href="#sec-classes">Classes</a>
|
||||
| <a href="#sec-constants">Constants</a>
|
||||
| <span class="disabled">Functions</span>
|
||||
</div>
|
||||
<div class="info-box-body">
|
||||
<a name="functionkrumo" id="functionkrumo"><!-- --></a>
|
||||
<div class="oddrow">
|
||||
|
||||
<div>
|
||||
<img src="../media/images/Function.png"/>
|
||||
<span class="method-title">krumo</span> (line <span class="line-number">1295</span>)
|
||||
</div>
|
||||
|
||||
<!-- ========== Info from phpDoc block ========= -->
|
||||
<p class="short-description">Alias of <a href="../Krumo/krumo.html#methoddump">krumo::dump()</a></p>
|
||||
<ul class="tags">
|
||||
<li><span class="field">see:</span> <a href="../Krumo/krumo.html#methoddump">krumo::dump()</a></li>
|
||||
</ul>
|
||||
<div class="method-signature">
|
||||
<span class="method-result">void</span>
|
||||
<span class="method-name">
|
||||
krumo
|
||||
</span>
|
||||
([<span class="var-type">mixed</span> <span class="var-name">$data,...</span> = <span class="var-default"></span>])
|
||||
</div>
|
||||
|
||||
<ul class="parameters">
|
||||
<li>
|
||||
<span class="var-type">mixed</span>
|
||||
<span class="var-name">$data,...</span></li>
|
||||
</ul>
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<p class="notes" id="credit">
|
||||
Documentation generated on Sun, 02 Dec 2007 09:43:24 +0200 by <a href="http://www.phpdoc.org" target="_blank">phpDocumentor 1.4.0a2</a>
|
||||
</p>
|
||||
</div></body>
|
||||
</html>
|
||||
|
||||
@@ -1,13 +1,13 @@
|
||||
<html>
|
||||
<head>
|
||||
<title>Krumo</title>
|
||||
<link rel="stylesheet" href="media/stylesheet.css" />
|
||||
<meta http-equiv='Content-Type' content='text/html; charset=iso-8859-1'/>
|
||||
</head>
|
||||
<body>
|
||||
<div align="center"><h1>Krumo</h1></div>
|
||||
<b>Welcome to Krumo!</b><br />
|
||||
<br />
|
||||
This documentation was generated by <a href="http://www.phpdoc.org">phpDocumentor v1.4.0a2</a><br />
|
||||
</body>
|
||||
</html>
|
||||
<html>
|
||||
<head>
|
||||
<title>Krumo</title>
|
||||
<link rel="stylesheet" href="media/stylesheet.css" />
|
||||
<meta http-equiv='Content-Type' content='text/html; charset=iso-8859-1'/>
|
||||
</head>
|
||||
<body>
|
||||
<div align="center"><h1>Krumo</h1></div>
|
||||
<b>Welcome to Krumo!</b><br />
|
||||
<br />
|
||||
This documentation was generated by <a href="http://www.phpdoc.org">phpDocumentor v1.4.0a2</a><br />
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -1,23 +1,24 @@
|
||||
<?xml version="1.0" encoding="iso-8859-1"?>
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<!-- template designed by Marco Von Ballmoos -->
|
||||
<title></title>
|
||||
<link rel="stylesheet" href="media/stylesheet.css" />
|
||||
</head>
|
||||
<body>
|
||||
␍
|
||||
<!-- Start of Class Data -->
|
||||
<H2>
|
||||
|
||||
</H2>
|
||||
<h2>Root class krumo</h2>
|
||||
<?xml version="1.0" encoding="iso-8859-1"?>
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<!-- template designed by Marco Von Ballmoos -->
|
||||
<title></title>
|
||||
<link rel="stylesheet" href="media/stylesheet.css"/>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
|
||||
<!-- Start of Class Data -->
|
||||
<H2>
|
||||
|
||||
</H2>
|
||||
<h2>Root class krumo</h2>
|
||||
<ul>
|
||||
<li><a href="Krumo/krumo.html">krumo</a></li></ul>
|
||||
|
||||
<p class="notes" id="credit">
|
||||
Documentation generated on Sun, 02 Dec 2007 09:43:24 +0200 by <a href="http://www.phpdoc.org" target="_blank">phpDocumentor 1.4.0a2</a>
|
||||
</p>
|
||||
</body>
|
||||
</html>␍
|
||||
|
||||
<p class="notes" id="credit">
|
||||
Documentation generated on Sun, 02 Dec 2007 09:43:24 +0200 by <a href="http://www.phpdoc.org" target="_blank">phpDocumentor 1.4.0a2</a>
|
||||
</p>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -1,392 +1,394 @@
|
||||
<?xml version="1.0" encoding="iso-8859-1"?>
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<!-- template designed by Marco Von Ballmoos -->
|
||||
<title></title>
|
||||
<link rel="stylesheet" href="media/stylesheet.css" />
|
||||
</head>
|
||||
<body>
|
||||
␍<a name="top"></a>
|
||||
<h2>Full index</h2>
|
||||
<h3>Package indexes</h3>
|
||||
<ul>
|
||||
<li><a href="elementindex_Krumo.html">Krumo</a></li>
|
||||
</ul>
|
||||
<br />
|
||||
<div class="index-letter-menu">
|
||||
<a class="index-letter" href="elementindex.html#b">b</a>
|
||||
<a class="index-letter" href="elementindex.html#c">c</a>
|
||||
<a class="index-letter" href="elementindex.html#d">d</a>
|
||||
<a class="index-letter" href="elementindex.html#e">e</a>
|
||||
<a class="index-letter" href="elementindex.html#f">f</a>
|
||||
<a class="index-letter" href="elementindex.html#g">g</a>
|
||||
<a class="index-letter" href="elementindex.html#h">h</a>
|
||||
<a class="index-letter" href="elementindex.html#i">i</a>
|
||||
<a class="index-letter" href="elementindex.html#k">k</a>
|
||||
<a class="index-letter" href="elementindex.html#p">p</a>
|
||||
<a class="index-letter" href="elementindex.html#r">r</a>
|
||||
<a class="index-letter" href="elementindex.html#s">s</a>
|
||||
<a class="index-letter" href="elementindex.html#v">v</a>
|
||||
</div>
|
||||
|
||||
<a name="b"></a>
|
||||
<div class="index-letter-section">
|
||||
<div style="float: left" class="index-letter-title">b</div>
|
||||
<div style="float: right"><a href="#top">top</a></div>
|
||||
<div style="clear: both"></div>
|
||||
</div>
|
||||
<dl>
|
||||
<dt class="field">
|
||||
<img src="media/images/Method.png" alt="Method" title="Method" /></title>
|
||||
<span class="method-title">backtrace</span>
|
||||
</dt>
|
||||
<dd class="index-item-body">
|
||||
<div class="index-item-details"><a href="Krumo/krumo.html#methodbacktrace">krumo::backtrace()</a> in class.krumo.php</div>
|
||||
<div class="index-item-description">Prints a debug backtrace</div>
|
||||
</dd>
|
||||
</dl>
|
||||
<a name="c"></a>
|
||||
<div class="index-letter-section">
|
||||
<div style="float: left" class="index-letter-title">c</div>
|
||||
<div style="float: right"><a href="#top">top</a></div>
|
||||
<div style="clear: both"></div>
|
||||
</div>
|
||||
<dl>
|
||||
<dt class="field">
|
||||
<img src="media/images/Page.png" alt="Page" title="Page" /></title>
|
||||
<span class="include-title">class.krumo.php</span>
|
||||
</dt>
|
||||
<dd class="index-item-body">
|
||||
<div class="index-item-details"><a href="Krumo/_class.krumo.php.html">class.krumo.php</a> in class.krumo.php</div>
|
||||
</dd>
|
||||
<dt class="field">
|
||||
<img src="media/images/Method.png" alt="Method" title="Method" /></title>
|
||||
<span class="method-title">classes</span>
|
||||
</dt>
|
||||
<dd class="index-item-body">
|
||||
<div class="index-item-details"><a href="Krumo/krumo.html#methodclasses">krumo::classes()</a> in class.krumo.php</div>
|
||||
<div class="index-item-description">Prints a list of all currently declared classes.</div>
|
||||
</dd>
|
||||
<dt class="field">
|
||||
<img src="media/images/Method.png" alt="Method" title="Method" /></title>
|
||||
<span class="method-title">conf</span>
|
||||
</dt>
|
||||
<dd class="index-item-body">
|
||||
<div class="index-item-details"><a href="Krumo/krumo.html#methodconf">krumo::conf()</a> in class.krumo.php</div>
|
||||
<div class="index-item-description">Prints a list of all your configuration settings.</div>
|
||||
</dd>
|
||||
<dt class="field">
|
||||
<img src="media/images/Method.png" alt="Method" title="Method" /></title>
|
||||
<span class="method-title">cookie</span>
|
||||
</dt>
|
||||
<dd class="index-item-body">
|
||||
<div class="index-item-details"><a href="Krumo/krumo.html#methodcookie">krumo::cookie()</a> in class.krumo.php</div>
|
||||
<div class="index-item-description">Prints a list of all the values from the <em>$_COOKIE</em> array.</div>
|
||||
</dd>
|
||||
</dl>
|
||||
<a name="d"></a>
|
||||
<div class="index-letter-section">
|
||||
<div style="float: left" class="index-letter-title">d</div>
|
||||
<div style="float: right"><a href="#top">top</a></div>
|
||||
<div style="clear: both"></div>
|
||||
</div>
|
||||
<dl>
|
||||
<dt class="field">
|
||||
<img src="media/images/Method.png" alt="Method" title="Method" /></title>
|
||||
<span class="method-title">defines</span>
|
||||
</dt>
|
||||
<dd class="index-item-body">
|
||||
<div class="index-item-details"><a href="Krumo/krumo.html#methoddefines">krumo::defines()</a> in class.krumo.php</div>
|
||||
<div class="index-item-description">Prints a list of all currently declared constants.</div>
|
||||
</dd>
|
||||
<dt class="field">
|
||||
<img src="media/images/Constant.png" alt="Constant" title="Constant" /></title>
|
||||
<span class="const-title">DIR_SEP</span>
|
||||
</dt>
|
||||
<dd class="index-item-body">
|
||||
<div class="index-item-details"><a href="Krumo/_class.krumo.php.html#defineDIR_SEP">DIR_SEP</a> in class.krumo.php</div>
|
||||
<div class="index-item-description">backward compatibility: the DIR_SEP constant isn't used anymore</div>
|
||||
</dd>
|
||||
<dt class="field">
|
||||
<img src="media/images/Method.png" alt="Method" title="Method" /></title>
|
||||
<span class="method-title">disable</span>
|
||||
</dt>
|
||||
<dd class="index-item-body">
|
||||
<div class="index-item-details"><a href="Krumo/krumo.html#methoddisable">krumo::disable()</a> in class.krumo.php</div>
|
||||
<div class="index-item-description">Disable Krumo</div>
|
||||
</dd>
|
||||
<dt class="field">
|
||||
<img src="media/images/Method.png" alt="Method" title="Method" /></title>
|
||||
<span class="method-title">dump</span>
|
||||
</dt>
|
||||
<dd class="index-item-body">
|
||||
<div class="index-item-details"><a href="Krumo/krumo.html#methoddump">krumo::dump()</a> in class.krumo.php</div>
|
||||
<div class="index-item-description">Dump information about a variable</div>
|
||||
</dd>
|
||||
</dl>
|
||||
<a name="e"></a>
|
||||
<div class="index-letter-section">
|
||||
<div style="float: left" class="index-letter-title">e</div>
|
||||
<div style="float: right"><a href="#top">top</a></div>
|
||||
<div style="clear: both"></div>
|
||||
</div>
|
||||
<dl>
|
||||
<dt class="field">
|
||||
<img src="media/images/Method.png" alt="Method" title="Method" /></title>
|
||||
<span class="method-title">enable</span>
|
||||
</dt>
|
||||
<dd class="index-item-body">
|
||||
<div class="index-item-details"><a href="Krumo/krumo.html#methodenable">krumo::enable()</a> in class.krumo.php</div>
|
||||
<div class="index-item-description">Enable Krumo</div>
|
||||
</dd>
|
||||
<dt class="field">
|
||||
<img src="media/images/Method.png" alt="Method" title="Method" /></title>
|
||||
<span class="method-title">env</span>
|
||||
</dt>
|
||||
<dd class="index-item-body">
|
||||
<div class="index-item-details"><a href="Krumo/krumo.html#methodenv">krumo::env()</a> in class.krumo.php</div>
|
||||
<div class="index-item-description">Prints a list of all the values from the <em>$_ENV</em> array.</div>
|
||||
</dd>
|
||||
<dt class="field">
|
||||
<img src="media/images/Method.png" alt="Method" title="Method" /></title>
|
||||
<span class="method-title">extensions</span>
|
||||
</dt>
|
||||
<dd class="index-item-body">
|
||||
<div class="index-item-details"><a href="Krumo/krumo.html#methodextensions">krumo::extensions()</a> in class.krumo.php</div>
|
||||
<div class="index-item-description">Prints a list of all currently loaded PHP extensions.</div>
|
||||
</dd>
|
||||
</dl>
|
||||
<a name="f"></a>
|
||||
<div class="index-letter-section">
|
||||
<div style="float: left" class="index-letter-title">f</div>
|
||||
<div style="float: right"><a href="#top">top</a></div>
|
||||
<div style="clear: both"></div>
|
||||
</div>
|
||||
<dl>
|
||||
<dt class="field">
|
||||
<img src="media/images/Method.png" alt="Method" title="Method" /></title>
|
||||
<span class="method-title">functions</span>
|
||||
</dt>
|
||||
<dd class="index-item-body">
|
||||
<div class="index-item-details"><a href="Krumo/krumo.html#methodfunctions">krumo::functions()</a> in class.krumo.php</div>
|
||||
<div class="index-item-description">Prints a list of all currently declared functions.</div>
|
||||
</dd>
|
||||
</dl>
|
||||
<a name="g"></a>
|
||||
<div class="index-letter-section">
|
||||
<div style="float: left" class="index-letter-title">g</div>
|
||||
<div style="float: right"><a href="#top">top</a></div>
|
||||
<div style="clear: both"></div>
|
||||
</div>
|
||||
<dl>
|
||||
<dt class="field">
|
||||
<img src="media/images/Method.png" alt="Method" title="Method" /></title>
|
||||
<span class="method-title">get</span>
|
||||
</dt>
|
||||
<dd class="index-item-body">
|
||||
<div class="index-item-details"><a href="Krumo/krumo.html#methodget">krumo::get()</a> in class.krumo.php</div>
|
||||
<div class="index-item-description">Prints a list of all the values from the <em>$_GET</em> array.</div>
|
||||
</dd>
|
||||
</dl>
|
||||
<a name="h"></a>
|
||||
<div class="index-letter-section">
|
||||
<div style="float: left" class="index-letter-title">h</div>
|
||||
<div style="float: right"><a href="#top">top</a></div>
|
||||
<div style="clear: both"></div>
|
||||
</div>
|
||||
<dl>
|
||||
<dt class="field">
|
||||
<img src="media/images/Method.png" alt="Method" title="Method" /></title>
|
||||
<span class="method-title">headers</span>
|
||||
</dt>
|
||||
<dd class="index-item-body">
|
||||
<div class="index-item-details"><a href="Krumo/krumo.html#methodheaders">krumo::headers()</a> in class.krumo.php</div>
|
||||
<div class="index-item-description">Prints a list of all HTTP request headers.</div>
|
||||
</dd>
|
||||
</dl>
|
||||
<a name="i"></a>
|
||||
<div class="index-letter-section">
|
||||
<div style="float: left" class="index-letter-title">i</div>
|
||||
<div style="float: right"><a href="#top">top</a></div>
|
||||
<div style="clear: both"></div>
|
||||
</div>
|
||||
<dl>
|
||||
<dt class="field">
|
||||
<img src="media/images/Method.png" alt="Method" title="Method" /></title>
|
||||
<span class="method-title">includes</span>
|
||||
</dt>
|
||||
<dd class="index-item-body">
|
||||
<div class="index-item-details"><a href="Krumo/krumo.html#methodincludes">krumo::includes()</a> in class.krumo.php</div>
|
||||
<div class="index-item-description">Prints a list of all currently included (or required) files.</div>
|
||||
</dd>
|
||||
<dt class="field">
|
||||
<img src="media/images/Method.png" alt="Method" title="Method" /></title>
|
||||
<span class="method-title">ini</span>
|
||||
</dt>
|
||||
<dd class="index-item-body">
|
||||
<div class="index-item-details"><a href="Krumo/krumo.html#methodini">krumo::ini()</a> in class.krumo.php</div>
|
||||
<div class="index-item-description">Prints a list of all the values from an INI file.</div>
|
||||
</dd>
|
||||
<dt class="field">
|
||||
<img src="media/images/Method.png" alt="Method" title="Method" /></title>
|
||||
<span class="method-title">interfaces</span>
|
||||
</dt>
|
||||
<dd class="index-item-body">
|
||||
<div class="index-item-details"><a href="Krumo/krumo.html#methodinterfaces">krumo::interfaces()</a> in class.krumo.php</div>
|
||||
<div class="index-item-description">Prints a list of all currently declared interfaces (PHP5 only).</div>
|
||||
</dd>
|
||||
</dl>
|
||||
<a name="k"></a>
|
||||
<div class="index-letter-section">
|
||||
<div style="float: left" class="index-letter-title">k</div>
|
||||
<div style="float: right"><a href="#top">top</a></div>
|
||||
<div style="clear: both"></div>
|
||||
</div>
|
||||
<dl>
|
||||
<dt class="field">
|
||||
<img src="media/images/Function.png" alt="Function" title="Function" /></title>
|
||||
<span class="method-title">krumo</span>
|
||||
</dt>
|
||||
<dd class="index-item-body">
|
||||
<div class="index-item-details"><a href="Krumo/_class.krumo.php.html#functionkrumo">krumo()</a> in class.krumo.php</div>
|
||||
<div class="index-item-description">Alias of <a href="Krumo/krumo.html#methoddump">krumo::dump()</a></div>
|
||||
</dd>
|
||||
<dt class="field">
|
||||
<img src="media/images/Class.png" alt="Class" title="Class" /></title>
|
||||
krumo
|
||||
</dt>
|
||||
<dd class="index-item-body">
|
||||
<div class="index-item-details"><a href="Krumo/krumo.html">krumo</a> in class.krumo.php</div>
|
||||
<div class="index-item-description">Krumo API</div>
|
||||
</dd>
|
||||
<dt class="field">
|
||||
<img src="media/images/Constant.png" alt="Constant" title="Constant" /></title>
|
||||
<span class="const-title">KRUMO_DIR</span>
|
||||
</dt>
|
||||
<dd class="index-item-body">
|
||||
<div class="index-item-details"><a href="Krumo/_class.krumo.php.html#defineKRUMO_DIR">KRUMO_DIR</a> in class.krumo.php</div>
|
||||
<div class="index-item-description">Set the KRUMO_DIR constant up with the absolute path to Krumo files. If it is not defined, include_path will be used. Set KRUMO_DIR only if any other module or application has not already set it up.</div>
|
||||
</dd>
|
||||
<dt class="field">
|
||||
<img src="media/images/Constant.png" alt="Constant" title="Constant" /></title>
|
||||
<span class="const-title">KRUMO_TRUNCATE_LENGTH</span>
|
||||
</dt>
|
||||
<dd class="index-item-body">
|
||||
<div class="index-item-details"><a href="Krumo/_class.krumo.php.html#defineKRUMO_TRUNCATE_LENGTH">KRUMO_TRUNCATE_LENGTH</a> in class.krumo.php</div>
|
||||
<div class="index-item-description">This constant sets the maximum strings of strings that will be shown as they are. Longer strings will be truncated with this length, and their `full form` will be shown in a child node.</div>
|
||||
</dd>
|
||||
</dl>
|
||||
<a name="p"></a>
|
||||
<div class="index-letter-section">
|
||||
<div style="float: left" class="index-letter-title">p</div>
|
||||
<div style="float: right"><a href="#top">top</a></div>
|
||||
<div style="clear: both"></div>
|
||||
</div>
|
||||
<dl>
|
||||
<dt class="field">
|
||||
<img src="media/images/Method.png" alt="Method" title="Method" /></title>
|
||||
<span class="method-title">path</span>
|
||||
</dt>
|
||||
<dd class="index-item-body">
|
||||
<div class="index-item-details"><a href="Krumo/krumo.html#methodpath">krumo::path()</a> in class.krumo.php</div>
|
||||
<div class="index-item-description">Prints a list of the specified directories under your <em>include_path</em> option.</div>
|
||||
</dd>
|
||||
<dt class="field">
|
||||
<img src="media/images/Constant.png" alt="Constant" title="Constant" /></title>
|
||||
<span class="const-title">PATH_SEPARATOR</span>
|
||||
</dt>
|
||||
<dd class="index-item-body">
|
||||
<div class="index-item-details"><a href="Krumo/_class.krumo.php.html#definePATH_SEPARATOR">PATH_SEPARATOR</a> in class.krumo.php</div>
|
||||
<div class="index-item-description">backward compatibility: the PATH_SEPARATOR constant is availble since 4.3.0RC2</div>
|
||||
</dd>
|
||||
<dt class="field">
|
||||
<img src="media/images/Method.png" alt="Method" title="Method" /></title>
|
||||
<span class="method-title">phpini</span>
|
||||
</dt>
|
||||
<dd class="index-item-body">
|
||||
<div class="index-item-details"><a href="Krumo/krumo.html#methodphpini">krumo::phpini()</a> in class.krumo.php</div>
|
||||
<div class="index-item-description">Prints a list of the configuration settings read from <em>php.ini</em></div>
|
||||
</dd>
|
||||
<dt class="field">
|
||||
<img src="media/images/Method.png" alt="Method" title="Method" /></title>
|
||||
<span class="method-title">post</span>
|
||||
</dt>
|
||||
<dd class="index-item-body">
|
||||
<div class="index-item-details"><a href="Krumo/krumo.html#methodpost">krumo::post()</a> in class.krumo.php</div>
|
||||
<div class="index-item-description">Prints a list of all the values from the <em>$_POST</em> array.</div>
|
||||
</dd>
|
||||
</dl>
|
||||
<a name="r"></a>
|
||||
<div class="index-letter-section">
|
||||
<div style="float: left" class="index-letter-title">r</div>
|
||||
<div style="float: right"><a href="#top">top</a></div>
|
||||
<div style="clear: both"></div>
|
||||
</div>
|
||||
<dl>
|
||||
<dt class="field">
|
||||
<img src="media/images/Method.png" alt="Method" title="Method" /></title>
|
||||
<span class="method-title">request</span>
|
||||
</dt>
|
||||
<dd class="index-item-body">
|
||||
<div class="index-item-details"><a href="Krumo/krumo.html#methodrequest">krumo::request()</a> in class.krumo.php</div>
|
||||
<div class="index-item-description">Prints a list of all the values from the <em>$_REQUEST</em> array.</div>
|
||||
</dd>
|
||||
</dl>
|
||||
<a name="s"></a>
|
||||
<div class="index-letter-section">
|
||||
<div style="float: left" class="index-letter-title">s</div>
|
||||
<div style="float: right"><a href="#top">top</a></div>
|
||||
<div style="clear: both"></div>
|
||||
</div>
|
||||
<dl>
|
||||
<dt class="field">
|
||||
<img src="media/images/Method.png" alt="Method" title="Method" /></title>
|
||||
<span class="method-title">server</span>
|
||||
</dt>
|
||||
<dd class="index-item-body">
|
||||
<div class="index-item-details"><a href="Krumo/krumo.html#methodserver">krumo::server()</a> in class.krumo.php</div>
|
||||
<div class="index-item-description">Prints a list of all the values from the <em>$_SERVER</em> array.</div>
|
||||
</dd>
|
||||
<dt class="field">
|
||||
<img src="media/images/Method.png" alt="Method" title="Method" /></title>
|
||||
<span class="method-title">session</span>
|
||||
</dt>
|
||||
<dd class="index-item-body">
|
||||
<div class="index-item-details"><a href="Krumo/krumo.html#methodsession">krumo::session()</a> in class.krumo.php</div>
|
||||
<div class="index-item-description">Prints a list of all the values from the <em>$_SESSION</em> array.</div>
|
||||
</dd>
|
||||
</dl>
|
||||
<a name="v"></a>
|
||||
<div class="index-letter-section">
|
||||
<div style="float: left" class="index-letter-title">v</div>
|
||||
<div style="float: right"><a href="#top">top</a></div>
|
||||
<div style="clear: both"></div>
|
||||
</div>
|
||||
<dl>
|
||||
<dt class="field">
|
||||
<img src="media/images/Method.png" alt="Method" title="Method" /></title>
|
||||
<span class="method-title">version</span>
|
||||
</dt>
|
||||
<dd class="index-item-body">
|
||||
<div class="index-item-details"><a href="Krumo/krumo.html#methodversion">krumo::version()</a> in class.krumo.php</div>
|
||||
<div class="index-item-description">Return Krumo version</div>
|
||||
</dd>
|
||||
</dl>
|
||||
|
||||
<div class="index-letter-menu">
|
||||
<a class="index-letter" href="elementindex.html#b">b</a>
|
||||
<a class="index-letter" href="elementindex.html#c">c</a>
|
||||
<a class="index-letter" href="elementindex.html#d">d</a>
|
||||
<a class="index-letter" href="elementindex.html#e">e</a>
|
||||
<a class="index-letter" href="elementindex.html#f">f</a>
|
||||
<a class="index-letter" href="elementindex.html#g">g</a>
|
||||
<a class="index-letter" href="elementindex.html#h">h</a>
|
||||
<a class="index-letter" href="elementindex.html#i">i</a>
|
||||
<a class="index-letter" href="elementindex.html#k">k</a>
|
||||
<a class="index-letter" href="elementindex.html#p">p</a>
|
||||
<a class="index-letter" href="elementindex.html#r">r</a>
|
||||
<a class="index-letter" href="elementindex.html#s">s</a>
|
||||
<a class="index-letter" href="elementindex.html#v">v</a>
|
||||
</div>␍ </body>
|
||||
</html>␍
|
||||
<?xml version="1.0" encoding="iso-8859-1"?>
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<!-- template designed by Marco Von Ballmoos -->
|
||||
<title></title>
|
||||
<link rel="stylesheet" href="media/stylesheet.css"/>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<a name="top"></a>
|
||||
<h2>Full index</h2>
|
||||
<h3>Package indexes</h3>
|
||||
<ul>
|
||||
<li><a href="elementindex_Krumo.html">Krumo</a></li>
|
||||
</ul>
|
||||
<br/>
|
||||
<div class="index-letter-menu">
|
||||
<a class="index-letter" href="elementindex.html#b">b</a>
|
||||
<a class="index-letter" href="elementindex.html#c">c</a>
|
||||
<a class="index-letter" href="elementindex.html#d">d</a>
|
||||
<a class="index-letter" href="elementindex.html#e">e</a>
|
||||
<a class="index-letter" href="elementindex.html#f">f</a>
|
||||
<a class="index-letter" href="elementindex.html#g">g</a>
|
||||
<a class="index-letter" href="elementindex.html#h">h</a>
|
||||
<a class="index-letter" href="elementindex.html#i">i</a>
|
||||
<a class="index-letter" href="elementindex.html#k">k</a>
|
||||
<a class="index-letter" href="elementindex.html#p">p</a>
|
||||
<a class="index-letter" href="elementindex.html#r">r</a>
|
||||
<a class="index-letter" href="elementindex.html#s">s</a>
|
||||
<a class="index-letter" href="elementindex.html#v">v</a>
|
||||
</div>
|
||||
|
||||
<a name="b"></a>
|
||||
<div class="index-letter-section">
|
||||
<div style="float: left" class="index-letter-title">b</div>
|
||||
<div style="float: right"><a href="#top">top</a></div>
|
||||
<div style="clear: both"></div>
|
||||
</div>
|
||||
<dl>
|
||||
<dt class="field">
|
||||
<img src="media/images/Method.png" alt="Method" title="Method"/></title>
|
||||
<span class="method-title">backtrace</span>
|
||||
</dt>
|
||||
<dd class="index-item-body">
|
||||
<div class="index-item-details"><a href="Krumo/krumo.html#methodbacktrace">krumo::backtrace()</a> in class.krumo.php </div>
|
||||
<div class="index-item-description">Prints a debug backtrace</div>
|
||||
</dd>
|
||||
</dl>
|
||||
<a name="c"></a>
|
||||
<div class="index-letter-section">
|
||||
<div style="float: left" class="index-letter-title">c</div>
|
||||
<div style="float: right"><a href="#top">top</a></div>
|
||||
<div style="clear: both"></div>
|
||||
</div>
|
||||
<dl>
|
||||
<dt class="field">
|
||||
<img src="media/images/Page.png" alt="Page" title="Page"/></title>
|
||||
<span class="include-title">class.krumo.php</span>
|
||||
</dt>
|
||||
<dd class="index-item-body">
|
||||
<div class="index-item-details"><a href="Krumo/_class.krumo.php.html">class.krumo.php</a> in class.krumo.php </div>
|
||||
</dd>
|
||||
<dt class="field">
|
||||
<img src="media/images/Method.png" alt="Method" title="Method"/></title>
|
||||
<span class="method-title">classes</span>
|
||||
</dt>
|
||||
<dd class="index-item-body">
|
||||
<div class="index-item-details"><a href="Krumo/krumo.html#methodclasses">krumo::classes()</a> in class.krumo.php </div>
|
||||
<div class="index-item-description">Prints a list of all currently declared classes. </div>
|
||||
</dd>
|
||||
<dt class="field">
|
||||
<img src="media/images/Method.png" alt="Method" title="Method"/></title>
|
||||
<span class="method-title">conf</span>
|
||||
</dt>
|
||||
<dd class="index-item-body">
|
||||
<div class="index-item-details"><a href="Krumo/krumo.html#methodconf">krumo::conf()</a> in class.krumo.php </div>
|
||||
<div class="index-item-description">Prints a list of all your configuration settings. </div>
|
||||
</dd>
|
||||
<dt class="field">
|
||||
<img src="media/images/Method.png" alt="Method" title="Method"/></title>
|
||||
<span class="method-title">cookie</span>
|
||||
</dt>
|
||||
<dd class="index-item-body">
|
||||
<div class="index-item-details"><a href="Krumo/krumo.html#methodcookie">krumo::cookie()</a> in class.krumo.php </div>
|
||||
<div class="index-item-description">Prints a list of all the values from the <em>$_COOKIE</em> array. </div>
|
||||
</dd>
|
||||
</dl>
|
||||
<a name="d"></a>
|
||||
<div class="index-letter-section">
|
||||
<div style="float: left" class="index-letter-title">d</div>
|
||||
<div style="float: right"><a href="#top">top</a></div>
|
||||
<div style="clear: both"></div>
|
||||
</div>
|
||||
<dl>
|
||||
<dt class="field">
|
||||
<img src="media/images/Method.png" alt="Method" title="Method"/></title>
|
||||
<span class="method-title">defines</span>
|
||||
</dt>
|
||||
<dd class="index-item-body">
|
||||
<div class="index-item-details"><a href="Krumo/krumo.html#methoddefines">krumo::defines()</a> in class.krumo.php </div>
|
||||
<div class="index-item-description">Prints a list of all currently declared constants. </div>
|
||||
</dd>
|
||||
<dt class="field">
|
||||
<img src="media/images/Constant.png" alt="Constant" title="Constant"/></title>
|
||||
<span class="const-title">DIR_SEP</span>
|
||||
</dt>
|
||||
<dd class="index-item-body">
|
||||
<div class="index-item-details"><a href="Krumo/_class.krumo.php.html#defineDIR_SEP">DIR_SEP</a> in class.krumo.php </div>
|
||||
<div class="index-item-description">backward compatibility: the DIR_SEP constant isn't used anymore </div>
|
||||
</dd>
|
||||
<dt class="field">
|
||||
<img src="media/images/Method.png" alt="Method" title="Method"/></title>
|
||||
<span class="method-title">disable</span>
|
||||
</dt>
|
||||
<dd class="index-item-body">
|
||||
<div class="index-item-details"><a href="Krumo/krumo.html#methoddisable">krumo::disable()</a> in class.krumo.php </div>
|
||||
<div class="index-item-description">Disable Krumo</div>
|
||||
</dd>
|
||||
<dt class="field">
|
||||
<img src="media/images/Method.png" alt="Method" title="Method"/></title>
|
||||
<span class="method-title">dump</span>
|
||||
</dt>
|
||||
<dd class="index-item-body">
|
||||
<div class="index-item-details"><a href="Krumo/krumo.html#methoddump">krumo::dump()</a> in class.krumo.php </div>
|
||||
<div class="index-item-description">Dump information about a variable</div>
|
||||
</dd>
|
||||
</dl>
|
||||
<a name="e"></a>
|
||||
<div class="index-letter-section">
|
||||
<div style="float: left" class="index-letter-title">e</div>
|
||||
<div style="float: right"><a href="#top">top</a></div>
|
||||
<div style="clear: both"></div>
|
||||
</div>
|
||||
<dl>
|
||||
<dt class="field">
|
||||
<img src="media/images/Method.png" alt="Method" title="Method"/></title>
|
||||
<span class="method-title">enable</span>
|
||||
</dt>
|
||||
<dd class="index-item-body">
|
||||
<div class="index-item-details"><a href="Krumo/krumo.html#methodenable">krumo::enable()</a> in class.krumo.php </div>
|
||||
<div class="index-item-description">Enable Krumo</div>
|
||||
</dd>
|
||||
<dt class="field">
|
||||
<img src="media/images/Method.png" alt="Method" title="Method"/></title>
|
||||
<span class="method-title">env</span>
|
||||
</dt>
|
||||
<dd class="index-item-body">
|
||||
<div class="index-item-details"><a href="Krumo/krumo.html#methodenv">krumo::env()</a> in class.krumo.php </div>
|
||||
<div class="index-item-description">Prints a list of all the values from the <em>$_ENV</em> array. </div>
|
||||
</dd>
|
||||
<dt class="field">
|
||||
<img src="media/images/Method.png" alt="Method" title="Method"/></title>
|
||||
<span class="method-title">extensions</span>
|
||||
</dt>
|
||||
<dd class="index-item-body">
|
||||
<div class="index-item-details"><a href="Krumo/krumo.html#methodextensions">krumo::extensions()</a> in class.krumo.php </div>
|
||||
<div class="index-item-description">Prints a list of all currently loaded PHP extensions. </div>
|
||||
</dd>
|
||||
</dl>
|
||||
<a name="f"></a>
|
||||
<div class="index-letter-section">
|
||||
<div style="float: left" class="index-letter-title">f</div>
|
||||
<div style="float: right"><a href="#top">top</a></div>
|
||||
<div style="clear: both"></div>
|
||||
</div>
|
||||
<dl>
|
||||
<dt class="field">
|
||||
<img src="media/images/Method.png" alt="Method" title="Method"/></title>
|
||||
<span class="method-title">functions</span>
|
||||
</dt>
|
||||
<dd class="index-item-body">
|
||||
<div class="index-item-details"><a href="Krumo/krumo.html#methodfunctions">krumo::functions()</a> in class.krumo.php </div>
|
||||
<div class="index-item-description">Prints a list of all currently declared functions. </div>
|
||||
</dd>
|
||||
</dl>
|
||||
<a name="g"></a>
|
||||
<div class="index-letter-section">
|
||||
<div style="float: left" class="index-letter-title">g</div>
|
||||
<div style="float: right"><a href="#top">top</a></div>
|
||||
<div style="clear: both"></div>
|
||||
</div>
|
||||
<dl>
|
||||
<dt class="field">
|
||||
<img src="media/images/Method.png" alt="Method" title="Method"/></title>
|
||||
<span class="method-title">get</span>
|
||||
</dt>
|
||||
<dd class="index-item-body">
|
||||
<div class="index-item-details"><a href="Krumo/krumo.html#methodget">krumo::get()</a> in class.krumo.php </div>
|
||||
<div class="index-item-description">Prints a list of all the values from the <em>$_GET</em> array. </div>
|
||||
</dd>
|
||||
</dl>
|
||||
<a name="h"></a>
|
||||
<div class="index-letter-section">
|
||||
<div style="float: left" class="index-letter-title">h</div>
|
||||
<div style="float: right"><a href="#top">top</a></div>
|
||||
<div style="clear: both"></div>
|
||||
</div>
|
||||
<dl>
|
||||
<dt class="field">
|
||||
<img src="media/images/Method.png" alt="Method" title="Method"/></title>
|
||||
<span class="method-title">headers</span>
|
||||
</dt>
|
||||
<dd class="index-item-body">
|
||||
<div class="index-item-details"><a href="Krumo/krumo.html#methodheaders">krumo::headers()</a> in class.krumo.php </div>
|
||||
<div class="index-item-description">Prints a list of all HTTP request headers. </div>
|
||||
</dd>
|
||||
</dl>
|
||||
<a name="i"></a>
|
||||
<div class="index-letter-section">
|
||||
<div style="float: left" class="index-letter-title">i</div>
|
||||
<div style="float: right"><a href="#top">top</a></div>
|
||||
<div style="clear: both"></div>
|
||||
</div>
|
||||
<dl>
|
||||
<dt class="field">
|
||||
<img src="media/images/Method.png" alt="Method" title="Method"/></title>
|
||||
<span class="method-title">includes</span>
|
||||
</dt>
|
||||
<dd class="index-item-body">
|
||||
<div class="index-item-details"><a href="Krumo/krumo.html#methodincludes">krumo::includes()</a> in class.krumo.php </div>
|
||||
<div class="index-item-description">Prints a list of all currently included (or required) files. </div>
|
||||
</dd>
|
||||
<dt class="field">
|
||||
<img src="media/images/Method.png" alt="Method" title="Method"/></title>
|
||||
<span class="method-title">ini</span>
|
||||
</dt>
|
||||
<dd class="index-item-body">
|
||||
<div class="index-item-details"><a href="Krumo/krumo.html#methodini">krumo::ini()</a> in class.krumo.php </div>
|
||||
<div class="index-item-description">Prints a list of all the values from an INI file. </div>
|
||||
</dd>
|
||||
<dt class="field">
|
||||
<img src="media/images/Method.png" alt="Method" title="Method"/></title>
|
||||
<span class="method-title">interfaces</span>
|
||||
</dt>
|
||||
<dd class="index-item-body">
|
||||
<div class="index-item-details"><a href="Krumo/krumo.html#methodinterfaces">krumo::interfaces()</a> in class.krumo.php </div>
|
||||
<div class="index-item-description">Prints a list of all currently declared interfaces (PHP5 only). </div>
|
||||
</dd>
|
||||
</dl>
|
||||
<a name="k"></a>
|
||||
<div class="index-letter-section">
|
||||
<div style="float: left" class="index-letter-title">k</div>
|
||||
<div style="float: right"><a href="#top">top</a></div>
|
||||
<div style="clear: both"></div>
|
||||
</div>
|
||||
<dl>
|
||||
<dt class="field">
|
||||
<img src="media/images/Function.png" alt="Function" title="Function"/></title>
|
||||
<span class="method-title">krumo</span>
|
||||
</dt>
|
||||
<dd class="index-item-body">
|
||||
<div class="index-item-details"><a href="Krumo/_class.krumo.php.html#functionkrumo">krumo()</a> in class.krumo.php </div>
|
||||
<div class="index-item-description">Alias of <a href="Krumo/krumo.html#methoddump">krumo::dump()</a></div>
|
||||
</dd>
|
||||
<dt class="field">
|
||||
<img src="media/images/Class.png" alt="Class" title="Class"/></title>
|
||||
krumo
|
||||
</dt>
|
||||
<dd class="index-item-body">
|
||||
<div class="index-item-details"><a href="Krumo/krumo.html">krumo</a> in class.krumo.php </div>
|
||||
<div class="index-item-description">Krumo API</div>
|
||||
</dd>
|
||||
<dt class="field">
|
||||
<img src="media/images/Constant.png" alt="Constant" title="Constant"/></title>
|
||||
<span class="const-title">KRUMO_DIR</span>
|
||||
</dt>
|
||||
<dd class="index-item-body">
|
||||
<div class="index-item-details"><a href="Krumo/_class.krumo.php.html#defineKRUMO_DIR">KRUMO_DIR</a> in class.krumo.php </div>
|
||||
<div class="index-item-description">Set the KRUMO_DIR constant up with the absolute path to Krumo files. If it is not defined, include_path will be used. Set KRUMO_DIR only if any other module or application has not already set it up. </div>
|
||||
</dd>
|
||||
<dt class="field">
|
||||
<img src="media/images/Constant.png" alt="Constant" title="Constant"/></title>
|
||||
<span class="const-title">KRUMO_TRUNCATE_LENGTH</span>
|
||||
</dt>
|
||||
<dd class="index-item-body">
|
||||
<div class="index-item-details"><a href="Krumo/_class.krumo.php.html#defineKRUMO_TRUNCATE_LENGTH">KRUMO_TRUNCATE_LENGTH</a> in class.krumo.php </div>
|
||||
<div class="index-item-description">This constant sets the maximum strings of strings that will be shown as they are. Longer strings will be truncated with this length, and their `full form` will be shown in a child node. </div>
|
||||
</dd>
|
||||
</dl>
|
||||
<a name="p"></a>
|
||||
<div class="index-letter-section">
|
||||
<div style="float: left" class="index-letter-title">p</div>
|
||||
<div style="float: right"><a href="#top">top</a></div>
|
||||
<div style="clear: both"></div>
|
||||
</div>
|
||||
<dl>
|
||||
<dt class="field">
|
||||
<img src="media/images/Method.png" alt="Method" title="Method"/></title>
|
||||
<span class="method-title">path</span>
|
||||
</dt>
|
||||
<dd class="index-item-body">
|
||||
<div class="index-item-details"><a href="Krumo/krumo.html#methodpath">krumo::path()</a> in class.krumo.php </div>
|
||||
<div class="index-item-description">Prints a list of the specified directories under your <em>include_path</em> option. </div>
|
||||
</dd>
|
||||
<dt class="field">
|
||||
<img src="media/images/Constant.png" alt="Constant" title="Constant"/></title>
|
||||
<span class="const-title">PATH_SEPARATOR</span>
|
||||
</dt>
|
||||
<dd class="index-item-body">
|
||||
<div class="index-item-details"><a href="Krumo/_class.krumo.php.html#definePATH_SEPARATOR">PATH_SEPARATOR</a> in class.krumo.php </div>
|
||||
<div class="index-item-description">backward compatibility: the PATH_SEPARATOR constant is availble since 4.3.0RC2 </div>
|
||||
</dd>
|
||||
<dt class="field">
|
||||
<img src="media/images/Method.png" alt="Method" title="Method"/></title>
|
||||
<span class="method-title">phpini</span>
|
||||
</dt>
|
||||
<dd class="index-item-body">
|
||||
<div class="index-item-details"><a href="Krumo/krumo.html#methodphpini">krumo::phpini()</a> in class.krumo.php </div>
|
||||
<div class="index-item-description">Prints a list of the configuration settings read from <em>php.ini</em></div>
|
||||
</dd>
|
||||
<dt class="field">
|
||||
<img src="media/images/Method.png" alt="Method" title="Method"/></title>
|
||||
<span class="method-title">post</span>
|
||||
</dt>
|
||||
<dd class="index-item-body">
|
||||
<div class="index-item-details"><a href="Krumo/krumo.html#methodpost">krumo::post()</a> in class.krumo.php </div>
|
||||
<div class="index-item-description">Prints a list of all the values from the <em>$_POST</em> array. </div>
|
||||
</dd>
|
||||
</dl>
|
||||
<a name="r"></a>
|
||||
<div class="index-letter-section">
|
||||
<div style="float: left" class="index-letter-title">r</div>
|
||||
<div style="float: right"><a href="#top">top</a></div>
|
||||
<div style="clear: both"></div>
|
||||
</div>
|
||||
<dl>
|
||||
<dt class="field">
|
||||
<img src="media/images/Method.png" alt="Method" title="Method"/></title>
|
||||
<span class="method-title">request</span>
|
||||
</dt>
|
||||
<dd class="index-item-body">
|
||||
<div class="index-item-details"><a href="Krumo/krumo.html#methodrequest">krumo::request()</a> in class.krumo.php </div>
|
||||
<div class="index-item-description">Prints a list of all the values from the <em>$_REQUEST</em> array. </div>
|
||||
</dd>
|
||||
</dl>
|
||||
<a name="s"></a>
|
||||
<div class="index-letter-section">
|
||||
<div style="float: left" class="index-letter-title">s</div>
|
||||
<div style="float: right"><a href="#top">top</a></div>
|
||||
<div style="clear: both"></div>
|
||||
</div>
|
||||
<dl>
|
||||
<dt class="field">
|
||||
<img src="media/images/Method.png" alt="Method" title="Method"/></title>
|
||||
<span class="method-title">server</span>
|
||||
</dt>
|
||||
<dd class="index-item-body">
|
||||
<div class="index-item-details"><a href="Krumo/krumo.html#methodserver">krumo::server()</a> in class.krumo.php </div>
|
||||
<div class="index-item-description">Prints a list of all the values from the <em>$_SERVER</em> array. </div>
|
||||
</dd>
|
||||
<dt class="field">
|
||||
<img src="media/images/Method.png" alt="Method" title="Method"/></title>
|
||||
<span class="method-title">session</span>
|
||||
</dt>
|
||||
<dd class="index-item-body">
|
||||
<div class="index-item-details"><a href="Krumo/krumo.html#methodsession">krumo::session()</a> in class.krumo.php </div>
|
||||
<div class="index-item-description">Prints a list of all the values from the <em>$_SESSION</em> array. </div>
|
||||
</dd>
|
||||
</dl>
|
||||
<a name="v"></a>
|
||||
<div class="index-letter-section">
|
||||
<div style="float: left" class="index-letter-title">v</div>
|
||||
<div style="float: right"><a href="#top">top</a></div>
|
||||
<div style="clear: both"></div>
|
||||
</div>
|
||||
<dl>
|
||||
<dt class="field">
|
||||
<img src="media/images/Method.png" alt="Method" title="Method"/></title>
|
||||
<span class="method-title">version</span>
|
||||
</dt>
|
||||
<dd class="index-item-body">
|
||||
<div class="index-item-details"><a href="Krumo/krumo.html#methodversion">krumo::version()</a> in class.krumo.php </div>
|
||||
<div class="index-item-description">Return Krumo version</div>
|
||||
</dd>
|
||||
</dl>
|
||||
|
||||
<div class="index-letter-menu">
|
||||
<a class="index-letter" href="elementindex.html#b">b</a>
|
||||
<a class="index-letter" href="elementindex.html#c">c</a>
|
||||
<a class="index-letter" href="elementindex.html#d">d</a>
|
||||
<a class="index-letter" href="elementindex.html#e">e</a>
|
||||
<a class="index-letter" href="elementindex.html#f">f</a>
|
||||
<a class="index-letter" href="elementindex.html#g">g</a>
|
||||
<a class="index-letter" href="elementindex.html#h">h</a>
|
||||
<a class="index-letter" href="elementindex.html#i">i</a>
|
||||
<a class="index-letter" href="elementindex.html#k">k</a>
|
||||
<a class="index-letter" href="elementindex.html#p">p</a>
|
||||
<a class="index-letter" href="elementindex.html#r">r</a>
|
||||
<a class="index-letter" href="elementindex.html#s">s</a>
|
||||
<a class="index-letter" href="elementindex.html#v">v</a>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -1,389 +1,391 @@
|
||||
<?xml version="1.0" encoding="iso-8859-1"?>
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<!-- template designed by Marco Von Ballmoos -->
|
||||
<title></title>
|
||||
<link rel="stylesheet" href="media/stylesheet.css" />
|
||||
</head>
|
||||
<body>
|
||||
␍<a name="top"></a>
|
||||
<h2>[Krumo] element index</h2>
|
||||
<a href="elementindex.html">All elements</a>
|
||||
<br />
|
||||
<div class="index-letter-menu">
|
||||
<a class="index-letter" href="elementindex_Krumo.html#b">b</a>
|
||||
<a class="index-letter" href="elementindex_Krumo.html#c">c</a>
|
||||
<a class="index-letter" href="elementindex_Krumo.html#d">d</a>
|
||||
<a class="index-letter" href="elementindex_Krumo.html#e">e</a>
|
||||
<a class="index-letter" href="elementindex_Krumo.html#f">f</a>
|
||||
<a class="index-letter" href="elementindex_Krumo.html#g">g</a>
|
||||
<a class="index-letter" href="elementindex_Krumo.html#h">h</a>
|
||||
<a class="index-letter" href="elementindex_Krumo.html#i">i</a>
|
||||
<a class="index-letter" href="elementindex_Krumo.html#k">k</a>
|
||||
<a class="index-letter" href="elementindex_Krumo.html#p">p</a>
|
||||
<a class="index-letter" href="elementindex_Krumo.html#r">r</a>
|
||||
<a class="index-letter" href="elementindex_Krumo.html#s">s</a>
|
||||
<a class="index-letter" href="elementindex_Krumo.html#v">v</a>
|
||||
</div>
|
||||
|
||||
<a name="b"></a>
|
||||
<div class="index-letter-section">
|
||||
<div style="float: left" class="index-letter-title">b</div>
|
||||
<div style="float: right"><a href="#top">top</a></div>
|
||||
<div style="clear: both"></div>
|
||||
</div>
|
||||
<dl>
|
||||
<dt class="field">
|
||||
<img src="media/images/Method.png" alt="Method" title="Method" /></title>
|
||||
<span class="method-title">backtrace</span>
|
||||
</dt>
|
||||
<dd class="index-item-body">
|
||||
<div class="index-item-details"><a href="Krumo/krumo.html#methodbacktrace">krumo::backtrace()</a> in class.krumo.php</div>
|
||||
<div class="index-item-description">Prints a debug backtrace</div>
|
||||
</dd>
|
||||
</dl>
|
||||
<a name="c"></a>
|
||||
<div class="index-letter-section">
|
||||
<div style="float: left" class="index-letter-title">c</div>
|
||||
<div style="float: right"><a href="#top">top</a></div>
|
||||
<div style="clear: both"></div>
|
||||
</div>
|
||||
<dl>
|
||||
<dt class="field">
|
||||
<img src="media/images/Page.png" alt="Page" title="Page" /></title>
|
||||
<span class="include-title">class.krumo.php</span>
|
||||
</dt>
|
||||
<dd class="index-item-body">
|
||||
<div class="index-item-details"><a href="Krumo/_class.krumo.php.html">class.krumo.php</a> in class.krumo.php</div>
|
||||
</dd>
|
||||
<dt class="field">
|
||||
<img src="media/images/Method.png" alt="Method" title="Method" /></title>
|
||||
<span class="method-title">classes</span>
|
||||
</dt>
|
||||
<dd class="index-item-body">
|
||||
<div class="index-item-details"><a href="Krumo/krumo.html#methodclasses">krumo::classes()</a> in class.krumo.php</div>
|
||||
<div class="index-item-description">Prints a list of all currently declared classes.</div>
|
||||
</dd>
|
||||
<dt class="field">
|
||||
<img src="media/images/Method.png" alt="Method" title="Method" /></title>
|
||||
<span class="method-title">conf</span>
|
||||
</dt>
|
||||
<dd class="index-item-body">
|
||||
<div class="index-item-details"><a href="Krumo/krumo.html#methodconf">krumo::conf()</a> in class.krumo.php</div>
|
||||
<div class="index-item-description">Prints a list of all your configuration settings.</div>
|
||||
</dd>
|
||||
<dt class="field">
|
||||
<img src="media/images/Method.png" alt="Method" title="Method" /></title>
|
||||
<span class="method-title">cookie</span>
|
||||
</dt>
|
||||
<dd class="index-item-body">
|
||||
<div class="index-item-details"><a href="Krumo/krumo.html#methodcookie">krumo::cookie()</a> in class.krumo.php</div>
|
||||
<div class="index-item-description">Prints a list of all the values from the <em>$_COOKIE</em> array.</div>
|
||||
</dd>
|
||||
</dl>
|
||||
<a name="d"></a>
|
||||
<div class="index-letter-section">
|
||||
<div style="float: left" class="index-letter-title">d</div>
|
||||
<div style="float: right"><a href="#top">top</a></div>
|
||||
<div style="clear: both"></div>
|
||||
</div>
|
||||
<dl>
|
||||
<dt class="field">
|
||||
<img src="media/images/Method.png" alt="Method" title="Method" /></title>
|
||||
<span class="method-title">defines</span>
|
||||
</dt>
|
||||
<dd class="index-item-body">
|
||||
<div class="index-item-details"><a href="Krumo/krumo.html#methoddefines">krumo::defines()</a> in class.krumo.php</div>
|
||||
<div class="index-item-description">Prints a list of all currently declared constants.</div>
|
||||
</dd>
|
||||
<dt class="field">
|
||||
<img src="media/images/Constant.png" alt="Constant" title="Constant" /></title>
|
||||
<span class="const-title">DIR_SEP</span>
|
||||
</dt>
|
||||
<dd class="index-item-body">
|
||||
<div class="index-item-details"><a href="Krumo/_class.krumo.php.html#defineDIR_SEP">DIR_SEP</a> in class.krumo.php</div>
|
||||
<div class="index-item-description">backward compatibility: the DIR_SEP constant isn't used anymore</div>
|
||||
</dd>
|
||||
<dt class="field">
|
||||
<img src="media/images/Method.png" alt="Method" title="Method" /></title>
|
||||
<span class="method-title">disable</span>
|
||||
</dt>
|
||||
<dd class="index-item-body">
|
||||
<div class="index-item-details"><a href="Krumo/krumo.html#methoddisable">krumo::disable()</a> in class.krumo.php</div>
|
||||
<div class="index-item-description">Disable Krumo</div>
|
||||
</dd>
|
||||
<dt class="field">
|
||||
<img src="media/images/Method.png" alt="Method" title="Method" /></title>
|
||||
<span class="method-title">dump</span>
|
||||
</dt>
|
||||
<dd class="index-item-body">
|
||||
<div class="index-item-details"><a href="Krumo/krumo.html#methoddump">krumo::dump()</a> in class.krumo.php</div>
|
||||
<div class="index-item-description">Dump information about a variable</div>
|
||||
</dd>
|
||||
</dl>
|
||||
<a name="e"></a>
|
||||
<div class="index-letter-section">
|
||||
<div style="float: left" class="index-letter-title">e</div>
|
||||
<div style="float: right"><a href="#top">top</a></div>
|
||||
<div style="clear: both"></div>
|
||||
</div>
|
||||
<dl>
|
||||
<dt class="field">
|
||||
<img src="media/images/Method.png" alt="Method" title="Method" /></title>
|
||||
<span class="method-title">enable</span>
|
||||
</dt>
|
||||
<dd class="index-item-body">
|
||||
<div class="index-item-details"><a href="Krumo/krumo.html#methodenable">krumo::enable()</a> in class.krumo.php</div>
|
||||
<div class="index-item-description">Enable Krumo</div>
|
||||
</dd>
|
||||
<dt class="field">
|
||||
<img src="media/images/Method.png" alt="Method" title="Method" /></title>
|
||||
<span class="method-title">env</span>
|
||||
</dt>
|
||||
<dd class="index-item-body">
|
||||
<div class="index-item-details"><a href="Krumo/krumo.html#methodenv">krumo::env()</a> in class.krumo.php</div>
|
||||
<div class="index-item-description">Prints a list of all the values from the <em>$_ENV</em> array.</div>
|
||||
</dd>
|
||||
<dt class="field">
|
||||
<img src="media/images/Method.png" alt="Method" title="Method" /></title>
|
||||
<span class="method-title">extensions</span>
|
||||
</dt>
|
||||
<dd class="index-item-body">
|
||||
<div class="index-item-details"><a href="Krumo/krumo.html#methodextensions">krumo::extensions()</a> in class.krumo.php</div>
|
||||
<div class="index-item-description">Prints a list of all currently loaded PHP extensions.</div>
|
||||
</dd>
|
||||
</dl>
|
||||
<a name="f"></a>
|
||||
<div class="index-letter-section">
|
||||
<div style="float: left" class="index-letter-title">f</div>
|
||||
<div style="float: right"><a href="#top">top</a></div>
|
||||
<div style="clear: both"></div>
|
||||
</div>
|
||||
<dl>
|
||||
<dt class="field">
|
||||
<img src="media/images/Method.png" alt="Method" title="Method" /></title>
|
||||
<span class="method-title">functions</span>
|
||||
</dt>
|
||||
<dd class="index-item-body">
|
||||
<div class="index-item-details"><a href="Krumo/krumo.html#methodfunctions">krumo::functions()</a> in class.krumo.php</div>
|
||||
<div class="index-item-description">Prints a list of all currently declared functions.</div>
|
||||
</dd>
|
||||
</dl>
|
||||
<a name="g"></a>
|
||||
<div class="index-letter-section">
|
||||
<div style="float: left" class="index-letter-title">g</div>
|
||||
<div style="float: right"><a href="#top">top</a></div>
|
||||
<div style="clear: both"></div>
|
||||
</div>
|
||||
<dl>
|
||||
<dt class="field">
|
||||
<img src="media/images/Method.png" alt="Method" title="Method" /></title>
|
||||
<span class="method-title">get</span>
|
||||
</dt>
|
||||
<dd class="index-item-body">
|
||||
<div class="index-item-details"><a href="Krumo/krumo.html#methodget">krumo::get()</a> in class.krumo.php</div>
|
||||
<div class="index-item-description">Prints a list of all the values from the <em>$_GET</em> array.</div>
|
||||
</dd>
|
||||
</dl>
|
||||
<a name="h"></a>
|
||||
<div class="index-letter-section">
|
||||
<div style="float: left" class="index-letter-title">h</div>
|
||||
<div style="float: right"><a href="#top">top</a></div>
|
||||
<div style="clear: both"></div>
|
||||
</div>
|
||||
<dl>
|
||||
<dt class="field">
|
||||
<img src="media/images/Method.png" alt="Method" title="Method" /></title>
|
||||
<span class="method-title">headers</span>
|
||||
</dt>
|
||||
<dd class="index-item-body">
|
||||
<div class="index-item-details"><a href="Krumo/krumo.html#methodheaders">krumo::headers()</a> in class.krumo.php</div>
|
||||
<div class="index-item-description">Prints a list of all HTTP request headers.</div>
|
||||
</dd>
|
||||
</dl>
|
||||
<a name="i"></a>
|
||||
<div class="index-letter-section">
|
||||
<div style="float: left" class="index-letter-title">i</div>
|
||||
<div style="float: right"><a href="#top">top</a></div>
|
||||
<div style="clear: both"></div>
|
||||
</div>
|
||||
<dl>
|
||||
<dt class="field">
|
||||
<img src="media/images/Method.png" alt="Method" title="Method" /></title>
|
||||
<span class="method-title">includes</span>
|
||||
</dt>
|
||||
<dd class="index-item-body">
|
||||
<div class="index-item-details"><a href="Krumo/krumo.html#methodincludes">krumo::includes()</a> in class.krumo.php</div>
|
||||
<div class="index-item-description">Prints a list of all currently included (or required) files.</div>
|
||||
</dd>
|
||||
<dt class="field">
|
||||
<img src="media/images/Method.png" alt="Method" title="Method" /></title>
|
||||
<span class="method-title">ini</span>
|
||||
</dt>
|
||||
<dd class="index-item-body">
|
||||
<div class="index-item-details"><a href="Krumo/krumo.html#methodini">krumo::ini()</a> in class.krumo.php</div>
|
||||
<div class="index-item-description">Prints a list of all the values from an INI file.</div>
|
||||
</dd>
|
||||
<dt class="field">
|
||||
<img src="media/images/Method.png" alt="Method" title="Method" /></title>
|
||||
<span class="method-title">interfaces</span>
|
||||
</dt>
|
||||
<dd class="index-item-body">
|
||||
<div class="index-item-details"><a href="Krumo/krumo.html#methodinterfaces">krumo::interfaces()</a> in class.krumo.php</div>
|
||||
<div class="index-item-description">Prints a list of all currently declared interfaces (PHP5 only).</div>
|
||||
</dd>
|
||||
</dl>
|
||||
<a name="k"></a>
|
||||
<div class="index-letter-section">
|
||||
<div style="float: left" class="index-letter-title">k</div>
|
||||
<div style="float: right"><a href="#top">top</a></div>
|
||||
<div style="clear: both"></div>
|
||||
</div>
|
||||
<dl>
|
||||
<dt class="field">
|
||||
<img src="media/images/Function.png" alt="Function" title="Function" /></title>
|
||||
<span class="method-title">krumo</span>
|
||||
</dt>
|
||||
<dd class="index-item-body">
|
||||
<div class="index-item-details"><a href="Krumo/_class.krumo.php.html#functionkrumo">krumo()</a> in class.krumo.php</div>
|
||||
<div class="index-item-description">Alias of <a href="Krumo/krumo.html#methoddump">krumo::dump()</a></div>
|
||||
</dd>
|
||||
<dt class="field">
|
||||
<img src="media/images/Class.png" alt="Class" title="Class" /></title>
|
||||
krumo
|
||||
</dt>
|
||||
<dd class="index-item-body">
|
||||
<div class="index-item-details"><a href="Krumo/krumo.html">krumo</a> in class.krumo.php</div>
|
||||
<div class="index-item-description">Krumo API</div>
|
||||
</dd>
|
||||
<dt class="field">
|
||||
<img src="media/images/Constant.png" alt="Constant" title="Constant" /></title>
|
||||
<span class="const-title">KRUMO_DIR</span>
|
||||
</dt>
|
||||
<dd class="index-item-body">
|
||||
<div class="index-item-details"><a href="Krumo/_class.krumo.php.html#defineKRUMO_DIR">KRUMO_DIR</a> in class.krumo.php</div>
|
||||
<div class="index-item-description">Set the KRUMO_DIR constant up with the absolute path to Krumo files. If it is not defined, include_path will be used. Set KRUMO_DIR only if any other module or application has not already set it up.</div>
|
||||
</dd>
|
||||
<dt class="field">
|
||||
<img src="media/images/Constant.png" alt="Constant" title="Constant" /></title>
|
||||
<span class="const-title">KRUMO_TRUNCATE_LENGTH</span>
|
||||
</dt>
|
||||
<dd class="index-item-body">
|
||||
<div class="index-item-details"><a href="Krumo/_class.krumo.php.html#defineKRUMO_TRUNCATE_LENGTH">KRUMO_TRUNCATE_LENGTH</a> in class.krumo.php</div>
|
||||
<div class="index-item-description">This constant sets the maximum strings of strings that will be shown as they are. Longer strings will be truncated with this length, and their `full form` will be shown in a child node.</div>
|
||||
</dd>
|
||||
</dl>
|
||||
<a name="p"></a>
|
||||
<div class="index-letter-section">
|
||||
<div style="float: left" class="index-letter-title">p</div>
|
||||
<div style="float: right"><a href="#top">top</a></div>
|
||||
<div style="clear: both"></div>
|
||||
</div>
|
||||
<dl>
|
||||
<dt class="field">
|
||||
<img src="media/images/Method.png" alt="Method" title="Method" /></title>
|
||||
<span class="method-title">path</span>
|
||||
</dt>
|
||||
<dd class="index-item-body">
|
||||
<div class="index-item-details"><a href="Krumo/krumo.html#methodpath">krumo::path()</a> in class.krumo.php</div>
|
||||
<div class="index-item-description">Prints a list of the specified directories under your <em>include_path</em> option.</div>
|
||||
</dd>
|
||||
<dt class="field">
|
||||
<img src="media/images/Constant.png" alt="Constant" title="Constant" /></title>
|
||||
<span class="const-title">PATH_SEPARATOR</span>
|
||||
</dt>
|
||||
<dd class="index-item-body">
|
||||
<div class="index-item-details"><a href="Krumo/_class.krumo.php.html#definePATH_SEPARATOR">PATH_SEPARATOR</a> in class.krumo.php</div>
|
||||
<div class="index-item-description">backward compatibility: the PATH_SEPARATOR constant is availble since 4.3.0RC2</div>
|
||||
</dd>
|
||||
<dt class="field">
|
||||
<img src="media/images/Method.png" alt="Method" title="Method" /></title>
|
||||
<span class="method-title">phpini</span>
|
||||
</dt>
|
||||
<dd class="index-item-body">
|
||||
<div class="index-item-details"><a href="Krumo/krumo.html#methodphpini">krumo::phpini()</a> in class.krumo.php</div>
|
||||
<div class="index-item-description">Prints a list of the configuration settings read from <em>php.ini</em></div>
|
||||
</dd>
|
||||
<dt class="field">
|
||||
<img src="media/images/Method.png" alt="Method" title="Method" /></title>
|
||||
<span class="method-title">post</span>
|
||||
</dt>
|
||||
<dd class="index-item-body">
|
||||
<div class="index-item-details"><a href="Krumo/krumo.html#methodpost">krumo::post()</a> in class.krumo.php</div>
|
||||
<div class="index-item-description">Prints a list of all the values from the <em>$_POST</em> array.</div>
|
||||
</dd>
|
||||
</dl>
|
||||
<a name="r"></a>
|
||||
<div class="index-letter-section">
|
||||
<div style="float: left" class="index-letter-title">r</div>
|
||||
<div style="float: right"><a href="#top">top</a></div>
|
||||
<div style="clear: both"></div>
|
||||
</div>
|
||||
<dl>
|
||||
<dt class="field">
|
||||
<img src="media/images/Method.png" alt="Method" title="Method" /></title>
|
||||
<span class="method-title">request</span>
|
||||
</dt>
|
||||
<dd class="index-item-body">
|
||||
<div class="index-item-details"><a href="Krumo/krumo.html#methodrequest">krumo::request()</a> in class.krumo.php</div>
|
||||
<div class="index-item-description">Prints a list of all the values from the <em>$_REQUEST</em> array.</div>
|
||||
</dd>
|
||||
</dl>
|
||||
<a name="s"></a>
|
||||
<div class="index-letter-section">
|
||||
<div style="float: left" class="index-letter-title">s</div>
|
||||
<div style="float: right"><a href="#top">top</a></div>
|
||||
<div style="clear: both"></div>
|
||||
</div>
|
||||
<dl>
|
||||
<dt class="field">
|
||||
<img src="media/images/Method.png" alt="Method" title="Method" /></title>
|
||||
<span class="method-title">server</span>
|
||||
</dt>
|
||||
<dd class="index-item-body">
|
||||
<div class="index-item-details"><a href="Krumo/krumo.html#methodserver">krumo::server()</a> in class.krumo.php</div>
|
||||
<div class="index-item-description">Prints a list of all the values from the <em>$_SERVER</em> array.</div>
|
||||
</dd>
|
||||
<dt class="field">
|
||||
<img src="media/images/Method.png" alt="Method" title="Method" /></title>
|
||||
<span class="method-title">session</span>
|
||||
</dt>
|
||||
<dd class="index-item-body">
|
||||
<div class="index-item-details"><a href="Krumo/krumo.html#methodsession">krumo::session()</a> in class.krumo.php</div>
|
||||
<div class="index-item-description">Prints a list of all the values from the <em>$_SESSION</em> array.</div>
|
||||
</dd>
|
||||
</dl>
|
||||
<a name="v"></a>
|
||||
<div class="index-letter-section">
|
||||
<div style="float: left" class="index-letter-title">v</div>
|
||||
<div style="float: right"><a href="#top">top</a></div>
|
||||
<div style="clear: both"></div>
|
||||
</div>
|
||||
<dl>
|
||||
<dt class="field">
|
||||
<img src="media/images/Method.png" alt="Method" title="Method" /></title>
|
||||
<span class="method-title">version</span>
|
||||
</dt>
|
||||
<dd class="index-item-body">
|
||||
<div class="index-item-details"><a href="Krumo/krumo.html#methodversion">krumo::version()</a> in class.krumo.php</div>
|
||||
<div class="index-item-description">Return Krumo version</div>
|
||||
</dd>
|
||||
</dl>
|
||||
|
||||
<div class="index-letter-menu">
|
||||
<a class="index-letter" href="elementindex_Krumo.html#b">b</a>
|
||||
<a class="index-letter" href="elementindex_Krumo.html#c">c</a>
|
||||
<a class="index-letter" href="elementindex_Krumo.html#d">d</a>
|
||||
<a class="index-letter" href="elementindex_Krumo.html#e">e</a>
|
||||
<a class="index-letter" href="elementindex_Krumo.html#f">f</a>
|
||||
<a class="index-letter" href="elementindex_Krumo.html#g">g</a>
|
||||
<a class="index-letter" href="elementindex_Krumo.html#h">h</a>
|
||||
<a class="index-letter" href="elementindex_Krumo.html#i">i</a>
|
||||
<a class="index-letter" href="elementindex_Krumo.html#k">k</a>
|
||||
<a class="index-letter" href="elementindex_Krumo.html#p">p</a>
|
||||
<a class="index-letter" href="elementindex_Krumo.html#r">r</a>
|
||||
<a class="index-letter" href="elementindex_Krumo.html#s">s</a>
|
||||
<a class="index-letter" href="elementindex_Krumo.html#v">v</a>
|
||||
</div>␍ </body>
|
||||
</html>␍
|
||||
<?xml version="1.0" encoding="iso-8859-1"?>
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<!-- template designed by Marco Von Ballmoos -->
|
||||
<title></title>
|
||||
<link rel="stylesheet" href="media/stylesheet.css"/>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<a name="top"></a>
|
||||
<h2>[Krumo] element index</h2>
|
||||
<a href="elementindex.html">All elements</a>
|
||||
<br/>
|
||||
<div class="index-letter-menu">
|
||||
<a class="index-letter" href="elementindex_Krumo.html#b">b</a>
|
||||
<a class="index-letter" href="elementindex_Krumo.html#c">c</a>
|
||||
<a class="index-letter" href="elementindex_Krumo.html#d">d</a>
|
||||
<a class="index-letter" href="elementindex_Krumo.html#e">e</a>
|
||||
<a class="index-letter" href="elementindex_Krumo.html#f">f</a>
|
||||
<a class="index-letter" href="elementindex_Krumo.html#g">g</a>
|
||||
<a class="index-letter" href="elementindex_Krumo.html#h">h</a>
|
||||
<a class="index-letter" href="elementindex_Krumo.html#i">i</a>
|
||||
<a class="index-letter" href="elementindex_Krumo.html#k">k</a>
|
||||
<a class="index-letter" href="elementindex_Krumo.html#p">p</a>
|
||||
<a class="index-letter" href="elementindex_Krumo.html#r">r</a>
|
||||
<a class="index-letter" href="elementindex_Krumo.html#s">s</a>
|
||||
<a class="index-letter" href="elementindex_Krumo.html#v">v</a>
|
||||
</div>
|
||||
|
||||
<a name="b"></a>
|
||||
<div class="index-letter-section">
|
||||
<div style="float: left" class="index-letter-title">b</div>
|
||||
<div style="float: right"><a href="#top">top</a></div>
|
||||
<div style="clear: both"></div>
|
||||
</div>
|
||||
<dl>
|
||||
<dt class="field">
|
||||
<img src="media/images/Method.png" alt="Method" title="Method"/></title>
|
||||
<span class="method-title">backtrace</span>
|
||||
</dt>
|
||||
<dd class="index-item-body">
|
||||
<div class="index-item-details"><a href="Krumo/krumo.html#methodbacktrace">krumo::backtrace()</a> in class.krumo.php </div>
|
||||
<div class="index-item-description">Prints a debug backtrace</div>
|
||||
</dd>
|
||||
</dl>
|
||||
<a name="c"></a>
|
||||
<div class="index-letter-section">
|
||||
<div style="float: left" class="index-letter-title">c</div>
|
||||
<div style="float: right"><a href="#top">top</a></div>
|
||||
<div style="clear: both"></div>
|
||||
</div>
|
||||
<dl>
|
||||
<dt class="field">
|
||||
<img src="media/images/Page.png" alt="Page" title="Page"/></title>
|
||||
<span class="include-title">class.krumo.php</span>
|
||||
</dt>
|
||||
<dd class="index-item-body">
|
||||
<div class="index-item-details"><a href="Krumo/_class.krumo.php.html">class.krumo.php</a> in class.krumo.php </div>
|
||||
</dd>
|
||||
<dt class="field">
|
||||
<img src="media/images/Method.png" alt="Method" title="Method"/></title>
|
||||
<span class="method-title">classes</span>
|
||||
</dt>
|
||||
<dd class="index-item-body">
|
||||
<div class="index-item-details"><a href="Krumo/krumo.html#methodclasses">krumo::classes()</a> in class.krumo.php </div>
|
||||
<div class="index-item-description">Prints a list of all currently declared classes. </div>
|
||||
</dd>
|
||||
<dt class="field">
|
||||
<img src="media/images/Method.png" alt="Method" title="Method"/></title>
|
||||
<span class="method-title">conf</span>
|
||||
</dt>
|
||||
<dd class="index-item-body">
|
||||
<div class="index-item-details"><a href="Krumo/krumo.html#methodconf">krumo::conf()</a> in class.krumo.php </div>
|
||||
<div class="index-item-description">Prints a list of all your configuration settings. </div>
|
||||
</dd>
|
||||
<dt class="field">
|
||||
<img src="media/images/Method.png" alt="Method" title="Method"/></title>
|
||||
<span class="method-title">cookie</span>
|
||||
</dt>
|
||||
<dd class="index-item-body">
|
||||
<div class="index-item-details"><a href="Krumo/krumo.html#methodcookie">krumo::cookie()</a> in class.krumo.php </div>
|
||||
<div class="index-item-description">Prints a list of all the values from the <em>$_COOKIE</em> array. </div>
|
||||
</dd>
|
||||
</dl>
|
||||
<a name="d"></a>
|
||||
<div class="index-letter-section">
|
||||
<div style="float: left" class="index-letter-title">d</div>
|
||||
<div style="float: right"><a href="#top">top</a></div>
|
||||
<div style="clear: both"></div>
|
||||
</div>
|
||||
<dl>
|
||||
<dt class="field">
|
||||
<img src="media/images/Method.png" alt="Method" title="Method"/></title>
|
||||
<span class="method-title">defines</span>
|
||||
</dt>
|
||||
<dd class="index-item-body">
|
||||
<div class="index-item-details"><a href="Krumo/krumo.html#methoddefines">krumo::defines()</a> in class.krumo.php </div>
|
||||
<div class="index-item-description">Prints a list of all currently declared constants. </div>
|
||||
</dd>
|
||||
<dt class="field">
|
||||
<img src="media/images/Constant.png" alt="Constant" title="Constant"/></title>
|
||||
<span class="const-title">DIR_SEP</span>
|
||||
</dt>
|
||||
<dd class="index-item-body">
|
||||
<div class="index-item-details"><a href="Krumo/_class.krumo.php.html#defineDIR_SEP">DIR_SEP</a> in class.krumo.php </div>
|
||||
<div class="index-item-description">backward compatibility: the DIR_SEP constant isn't used anymore </div>
|
||||
</dd>
|
||||
<dt class="field">
|
||||
<img src="media/images/Method.png" alt="Method" title="Method"/></title>
|
||||
<span class="method-title">disable</span>
|
||||
</dt>
|
||||
<dd class="index-item-body">
|
||||
<div class="index-item-details"><a href="Krumo/krumo.html#methoddisable">krumo::disable()</a> in class.krumo.php </div>
|
||||
<div class="index-item-description">Disable Krumo</div>
|
||||
</dd>
|
||||
<dt class="field">
|
||||
<img src="media/images/Method.png" alt="Method" title="Method"/></title>
|
||||
<span class="method-title">dump</span>
|
||||
</dt>
|
||||
<dd class="index-item-body">
|
||||
<div class="index-item-details"><a href="Krumo/krumo.html#methoddump">krumo::dump()</a> in class.krumo.php </div>
|
||||
<div class="index-item-description">Dump information about a variable</div>
|
||||
</dd>
|
||||
</dl>
|
||||
<a name="e"></a>
|
||||
<div class="index-letter-section">
|
||||
<div style="float: left" class="index-letter-title">e</div>
|
||||
<div style="float: right"><a href="#top">top</a></div>
|
||||
<div style="clear: both"></div>
|
||||
</div>
|
||||
<dl>
|
||||
<dt class="field">
|
||||
<img src="media/images/Method.png" alt="Method" title="Method"/></title>
|
||||
<span class="method-title">enable</span>
|
||||
</dt>
|
||||
<dd class="index-item-body">
|
||||
<div class="index-item-details"><a href="Krumo/krumo.html#methodenable">krumo::enable()</a> in class.krumo.php </div>
|
||||
<div class="index-item-description">Enable Krumo</div>
|
||||
</dd>
|
||||
<dt class="field">
|
||||
<img src="media/images/Method.png" alt="Method" title="Method"/></title>
|
||||
<span class="method-title">env</span>
|
||||
</dt>
|
||||
<dd class="index-item-body">
|
||||
<div class="index-item-details"><a href="Krumo/krumo.html#methodenv">krumo::env()</a> in class.krumo.php </div>
|
||||
<div class="index-item-description">Prints a list of all the values from the <em>$_ENV</em> array. </div>
|
||||
</dd>
|
||||
<dt class="field">
|
||||
<img src="media/images/Method.png" alt="Method" title="Method"/></title>
|
||||
<span class="method-title">extensions</span>
|
||||
</dt>
|
||||
<dd class="index-item-body">
|
||||
<div class="index-item-details"><a href="Krumo/krumo.html#methodextensions">krumo::extensions()</a> in class.krumo.php </div>
|
||||
<div class="index-item-description">Prints a list of all currently loaded PHP extensions. </div>
|
||||
</dd>
|
||||
</dl>
|
||||
<a name="f"></a>
|
||||
<div class="index-letter-section">
|
||||
<div style="float: left" class="index-letter-title">f</div>
|
||||
<div style="float: right"><a href="#top">top</a></div>
|
||||
<div style="clear: both"></div>
|
||||
</div>
|
||||
<dl>
|
||||
<dt class="field">
|
||||
<img src="media/images/Method.png" alt="Method" title="Method"/></title>
|
||||
<span class="method-title">functions</span>
|
||||
</dt>
|
||||
<dd class="index-item-body">
|
||||
<div class="index-item-details"><a href="Krumo/krumo.html#methodfunctions">krumo::functions()</a> in class.krumo.php </div>
|
||||
<div class="index-item-description">Prints a list of all currently declared functions. </div>
|
||||
</dd>
|
||||
</dl>
|
||||
<a name="g"></a>
|
||||
<div class="index-letter-section">
|
||||
<div style="float: left" class="index-letter-title">g</div>
|
||||
<div style="float: right"><a href="#top">top</a></div>
|
||||
<div style="clear: both"></div>
|
||||
</div>
|
||||
<dl>
|
||||
<dt class="field">
|
||||
<img src="media/images/Method.png" alt="Method" title="Method"/></title>
|
||||
<span class="method-title">get</span>
|
||||
</dt>
|
||||
<dd class="index-item-body">
|
||||
<div class="index-item-details"><a href="Krumo/krumo.html#methodget">krumo::get()</a> in class.krumo.php </div>
|
||||
<div class="index-item-description">Prints a list of all the values from the <em>$_GET</em> array. </div>
|
||||
</dd>
|
||||
</dl>
|
||||
<a name="h"></a>
|
||||
<div class="index-letter-section">
|
||||
<div style="float: left" class="index-letter-title">h</div>
|
||||
<div style="float: right"><a href="#top">top</a></div>
|
||||
<div style="clear: both"></div>
|
||||
</div>
|
||||
<dl>
|
||||
<dt class="field">
|
||||
<img src="media/images/Method.png" alt="Method" title="Method"/></title>
|
||||
<span class="method-title">headers</span>
|
||||
</dt>
|
||||
<dd class="index-item-body">
|
||||
<div class="index-item-details"><a href="Krumo/krumo.html#methodheaders">krumo::headers()</a> in class.krumo.php </div>
|
||||
<div class="index-item-description">Prints a list of all HTTP request headers. </div>
|
||||
</dd>
|
||||
</dl>
|
||||
<a name="i"></a>
|
||||
<div class="index-letter-section">
|
||||
<div style="float: left" class="index-letter-title">i</div>
|
||||
<div style="float: right"><a href="#top">top</a></div>
|
||||
<div style="clear: both"></div>
|
||||
</div>
|
||||
<dl>
|
||||
<dt class="field">
|
||||
<img src="media/images/Method.png" alt="Method" title="Method"/></title>
|
||||
<span class="method-title">includes</span>
|
||||
</dt>
|
||||
<dd class="index-item-body">
|
||||
<div class="index-item-details"><a href="Krumo/krumo.html#methodincludes">krumo::includes()</a> in class.krumo.php </div>
|
||||
<div class="index-item-description">Prints a list of all currently included (or required) files. </div>
|
||||
</dd>
|
||||
<dt class="field">
|
||||
<img src="media/images/Method.png" alt="Method" title="Method"/></title>
|
||||
<span class="method-title">ini</span>
|
||||
</dt>
|
||||
<dd class="index-item-body">
|
||||
<div class="index-item-details"><a href="Krumo/krumo.html#methodini">krumo::ini()</a> in class.krumo.php </div>
|
||||
<div class="index-item-description">Prints a list of all the values from an INI file. </div>
|
||||
</dd>
|
||||
<dt class="field">
|
||||
<img src="media/images/Method.png" alt="Method" title="Method"/></title>
|
||||
<span class="method-title">interfaces</span>
|
||||
</dt>
|
||||
<dd class="index-item-body">
|
||||
<div class="index-item-details"><a href="Krumo/krumo.html#methodinterfaces">krumo::interfaces()</a> in class.krumo.php </div>
|
||||
<div class="index-item-description">Prints a list of all currently declared interfaces (PHP5 only). </div>
|
||||
</dd>
|
||||
</dl>
|
||||
<a name="k"></a>
|
||||
<div class="index-letter-section">
|
||||
<div style="float: left" class="index-letter-title">k</div>
|
||||
<div style="float: right"><a href="#top">top</a></div>
|
||||
<div style="clear: both"></div>
|
||||
</div>
|
||||
<dl>
|
||||
<dt class="field">
|
||||
<img src="media/images/Function.png" alt="Function" title="Function"/></title>
|
||||
<span class="method-title">krumo</span>
|
||||
</dt>
|
||||
<dd class="index-item-body">
|
||||
<div class="index-item-details"><a href="Krumo/_class.krumo.php.html#functionkrumo">krumo()</a> in class.krumo.php </div>
|
||||
<div class="index-item-description">Alias of <a href="Krumo/krumo.html#methoddump">krumo::dump()</a></div>
|
||||
</dd>
|
||||
<dt class="field">
|
||||
<img src="media/images/Class.png" alt="Class" title="Class"/></title>
|
||||
krumo
|
||||
</dt>
|
||||
<dd class="index-item-body">
|
||||
<div class="index-item-details"><a href="Krumo/krumo.html">krumo</a> in class.krumo.php </div>
|
||||
<div class="index-item-description">Krumo API</div>
|
||||
</dd>
|
||||
<dt class="field">
|
||||
<img src="media/images/Constant.png" alt="Constant" title="Constant"/></title>
|
||||
<span class="const-title">KRUMO_DIR</span>
|
||||
</dt>
|
||||
<dd class="index-item-body">
|
||||
<div class="index-item-details"><a href="Krumo/_class.krumo.php.html#defineKRUMO_DIR">KRUMO_DIR</a> in class.krumo.php </div>
|
||||
<div class="index-item-description">Set the KRUMO_DIR constant up with the absolute path to Krumo files. If it is not defined, include_path will be used. Set KRUMO_DIR only if any other module or application has not already set it up. </div>
|
||||
</dd>
|
||||
<dt class="field">
|
||||
<img src="media/images/Constant.png" alt="Constant" title="Constant"/></title>
|
||||
<span class="const-title">KRUMO_TRUNCATE_LENGTH</span>
|
||||
</dt>
|
||||
<dd class="index-item-body">
|
||||
<div class="index-item-details"><a href="Krumo/_class.krumo.php.html#defineKRUMO_TRUNCATE_LENGTH">KRUMO_TRUNCATE_LENGTH</a> in class.krumo.php </div>
|
||||
<div class="index-item-description">This constant sets the maximum strings of strings that will be shown as they are. Longer strings will be truncated with this length, and their `full form` will be shown in a child node. </div>
|
||||
</dd>
|
||||
</dl>
|
||||
<a name="p"></a>
|
||||
<div class="index-letter-section">
|
||||
<div style="float: left" class="index-letter-title">p</div>
|
||||
<div style="float: right"><a href="#top">top</a></div>
|
||||
<div style="clear: both"></div>
|
||||
</div>
|
||||
<dl>
|
||||
<dt class="field">
|
||||
<img src="media/images/Method.png" alt="Method" title="Method"/></title>
|
||||
<span class="method-title">path</span>
|
||||
</dt>
|
||||
<dd class="index-item-body">
|
||||
<div class="index-item-details"><a href="Krumo/krumo.html#methodpath">krumo::path()</a> in class.krumo.php </div>
|
||||
<div class="index-item-description">Prints a list of the specified directories under your <em>include_path</em> option. </div>
|
||||
</dd>
|
||||
<dt class="field">
|
||||
<img src="media/images/Constant.png" alt="Constant" title="Constant"/></title>
|
||||
<span class="const-title">PATH_SEPARATOR</span>
|
||||
</dt>
|
||||
<dd class="index-item-body">
|
||||
<div class="index-item-details"><a href="Krumo/_class.krumo.php.html#definePATH_SEPARATOR">PATH_SEPARATOR</a> in class.krumo.php </div>
|
||||
<div class="index-item-description">backward compatibility: the PATH_SEPARATOR constant is availble since 4.3.0RC2 </div>
|
||||
</dd>
|
||||
<dt class="field">
|
||||
<img src="media/images/Method.png" alt="Method" title="Method"/></title>
|
||||
<span class="method-title">phpini</span>
|
||||
</dt>
|
||||
<dd class="index-item-body">
|
||||
<div class="index-item-details"><a href="Krumo/krumo.html#methodphpini">krumo::phpini()</a> in class.krumo.php </div>
|
||||
<div class="index-item-description">Prints a list of the configuration settings read from <em>php.ini</em></div>
|
||||
</dd>
|
||||
<dt class="field">
|
||||
<img src="media/images/Method.png" alt="Method" title="Method"/></title>
|
||||
<span class="method-title">post</span>
|
||||
</dt>
|
||||
<dd class="index-item-body">
|
||||
<div class="index-item-details"><a href="Krumo/krumo.html#methodpost">krumo::post()</a> in class.krumo.php </div>
|
||||
<div class="index-item-description">Prints a list of all the values from the <em>$_POST</em> array. </div>
|
||||
</dd>
|
||||
</dl>
|
||||
<a name="r"></a>
|
||||
<div class="index-letter-section">
|
||||
<div style="float: left" class="index-letter-title">r</div>
|
||||
<div style="float: right"><a href="#top">top</a></div>
|
||||
<div style="clear: both"></div>
|
||||
</div>
|
||||
<dl>
|
||||
<dt class="field">
|
||||
<img src="media/images/Method.png" alt="Method" title="Method"/></title>
|
||||
<span class="method-title">request</span>
|
||||
</dt>
|
||||
<dd class="index-item-body">
|
||||
<div class="index-item-details"><a href="Krumo/krumo.html#methodrequest">krumo::request()</a> in class.krumo.php </div>
|
||||
<div class="index-item-description">Prints a list of all the values from the <em>$_REQUEST</em> array. </div>
|
||||
</dd>
|
||||
</dl>
|
||||
<a name="s"></a>
|
||||
<div class="index-letter-section">
|
||||
<div style="float: left" class="index-letter-title">s</div>
|
||||
<div style="float: right"><a href="#top">top</a></div>
|
||||
<div style="clear: both"></div>
|
||||
</div>
|
||||
<dl>
|
||||
<dt class="field">
|
||||
<img src="media/images/Method.png" alt="Method" title="Method"/></title>
|
||||
<span class="method-title">server</span>
|
||||
</dt>
|
||||
<dd class="index-item-body">
|
||||
<div class="index-item-details"><a href="Krumo/krumo.html#methodserver">krumo::server()</a> in class.krumo.php </div>
|
||||
<div class="index-item-description">Prints a list of all the values from the <em>$_SERVER</em> array. </div>
|
||||
</dd>
|
||||
<dt class="field">
|
||||
<img src="media/images/Method.png" alt="Method" title="Method"/></title>
|
||||
<span class="method-title">session</span>
|
||||
</dt>
|
||||
<dd class="index-item-body">
|
||||
<div class="index-item-details"><a href="Krumo/krumo.html#methodsession">krumo::session()</a> in class.krumo.php </div>
|
||||
<div class="index-item-description">Prints a list of all the values from the <em>$_SESSION</em> array. </div>
|
||||
</dd>
|
||||
</dl>
|
||||
<a name="v"></a>
|
||||
<div class="index-letter-section">
|
||||
<div style="float: left" class="index-letter-title">v</div>
|
||||
<div style="float: right"><a href="#top">top</a></div>
|
||||
<div style="clear: both"></div>
|
||||
</div>
|
||||
<dl>
|
||||
<dt class="field">
|
||||
<img src="media/images/Method.png" alt="Method" title="Method"/></title>
|
||||
<span class="method-title">version</span>
|
||||
</dt>
|
||||
<dd class="index-item-body">
|
||||
<div class="index-item-details"><a href="Krumo/krumo.html#methodversion">krumo::version()</a> in class.krumo.php </div>
|
||||
<div class="index-item-description">Return Krumo version</div>
|
||||
</dd>
|
||||
</dl>
|
||||
|
||||
<div class="index-letter-menu">
|
||||
<a class="index-letter" href="elementindex_Krumo.html#b">b</a>
|
||||
<a class="index-letter" href="elementindex_Krumo.html#c">c</a>
|
||||
<a class="index-letter" href="elementindex_Krumo.html#d">d</a>
|
||||
<a class="index-letter" href="elementindex_Krumo.html#e">e</a>
|
||||
<a class="index-letter" href="elementindex_Krumo.html#f">f</a>
|
||||
<a class="index-letter" href="elementindex_Krumo.html#g">g</a>
|
||||
<a class="index-letter" href="elementindex_Krumo.html#h">h</a>
|
||||
<a class="index-letter" href="elementindex_Krumo.html#i">i</a>
|
||||
<a class="index-letter" href="elementindex_Krumo.html#k">k</a>
|
||||
<a class="index-letter" href="elementindex_Krumo.html#p">p</a>
|
||||
<a class="index-letter" href="elementindex_Krumo.html#r">r</a>
|
||||
<a class="index-letter" href="elementindex_Krumo.html#s">s</a>
|
||||
<a class="index-letter" href="elementindex_Krumo.html#v">v</a>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -1,15 +1,16 @@
|
||||
<?xml version="1.0" encoding="iso-8859-1"?>
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<!-- template designed by Marco Von Ballmoos -->
|
||||
<title>phpDocumentor Parser Errors and Warnings</title>
|
||||
<link rel="stylesheet" href="media/stylesheet.css" />
|
||||
</head>
|
||||
<body>
|
||||
␍<a href="#Post-parsing">Post-parsing</a><br>
|
||||
<p class="notes" id="credit">
|
||||
Documentation generated on Sun, 02 Dec 2007 09:43:25 +0200 by <a href="http://www.phpdoc.org" target="_blank">phpDocumentor 1.4.0a2</a>
|
||||
</p>
|
||||
</body>
|
||||
</html>␍
|
||||
<?xml version="1.0" encoding="iso-8859-1"?>
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<!-- template designed by Marco Von Ballmoos -->
|
||||
<title>phpDocumentor Parser Errors and Warnings</title>
|
||||
<link rel="stylesheet" href="media/stylesheet.css"/>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<a href="#Post-parsing">Post-parsing</a><br>
|
||||
<p class="notes" id="credit">
|
||||
Documentation generated on Sun, 02 Dec 2007 09:43:25 +0200 by <a href="http://www.phpdoc.org" target="_blank">phpDocumentor 1.4.0a2</a>
|
||||
</p>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -1,24 +1,24 @@
|
||||
<?xml version="1.0" encoding="iso-8859-1"?>
|
||||
<!DOCTYPE html
|
||||
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//FR"
|
||||
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<!-- Generated by phpDocumentor on Sun, 02 Dec 2007 09:43:23 +0200 -->
|
||||
<title>Krumo</title>
|
||||
<meta http-equiv='Content-Type' content='text/html; charset=iso-8859-1'/>
|
||||
</head>
|
||||
|
||||
<FRAMESET rows='120,*'>
|
||||
<FRAME src='packages.html' name='left_top' frameborder="1" bordercolor="#999999">
|
||||
<FRAMESET cols='25%,*'>
|
||||
<FRAME src='li_Krumo.html' name='left_bottom' frameborder="1" bordercolor="#999999">
|
||||
<FRAME src='blank.html' name='right' frameborder="1" bordercolor="#999999">
|
||||
</FRAMESET>
|
||||
<NOFRAMES>
|
||||
<H2>Frame Alert</H2>
|
||||
<P>This document is designed to be viewed using the frames feature.
|
||||
If you see this message, you are using a non-frame-capable web client.</P>
|
||||
</NOFRAMES>
|
||||
</FRAMESET>
|
||||
</HTML>␍
|
||||
<?xml version="1.0" encoding="iso-8859-1"?>
|
||||
<!DOCTYPE html
|
||||
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//FR"
|
||||
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<!-- Generated by phpDocumentor on Sun, 02 Dec 2007 09:43:23 +0200 -->
|
||||
<title>Krumo</title>
|
||||
<meta http-equiv='Content-Type' content='text/html; charset=iso-8859-1'/>
|
||||
</head>
|
||||
|
||||
<FRAMESET rows='120,*'>
|
||||
<FRAME src='packages.html' name='left_top' frameborder="1" bordercolor="#999999">
|
||||
<FRAMESET cols='25%,*'>
|
||||
<FRAME src='li_Krumo.html' name='left_bottom' frameborder="1" bordercolor="#999999">
|
||||
<FRAME src='blank.html' name='right' frameborder="1" bordercolor="#999999">
|
||||
</FRAMESET>
|
||||
<NOFRAMES>
|
||||
<H2>Frame Alert</H2>
|
||||
<P>This document is designed to be viewed using the frames feature.
|
||||
If you see this message, you are using a non-frame-capable web client.</P>
|
||||
</NOFRAMES>
|
||||
</FRAMESET>
|
||||
</HTML>
|
||||
|
||||
@@ -1,155 +1,156 @@
|
||||
<?xml version="1.0" encoding="iso-8859-1"?>
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<!-- template designed by Marco Von Ballmoos -->
|
||||
<title></title>
|
||||
<link rel="stylesheet" href="media/stylesheet.css" />
|
||||
<script src="media/lib/classTree.js"></script>
|
||||
<meta http-equiv='Content-Type' content='text/html; charset=iso-8859-1'/>
|
||||
<script language="javascript" type="text/javascript">
|
||||
var imgPlus = new Image();
|
||||
var imgMinus = new Image();
|
||||
imgPlus.src = "media/images/plus.png";
|
||||
imgMinus.src = "media/images/minus.png";
|
||||
|
||||
function showNode(Node){
|
||||
switch(navigator.family){
|
||||
case 'nn4':
|
||||
// Nav 4.x code fork...
|
||||
var oTable = document.layers["span" + Node];
|
||||
var oImg = document.layers["img" + Node];
|
||||
break;
|
||||
case 'ie4':
|
||||
// IE 4/5 code fork...
|
||||
var oTable = document.all["span" + Node];
|
||||
var oImg = document.all["img" + Node];
|
||||
break;
|
||||
case 'gecko':
|
||||
// Standards Compliant code fork...
|
||||
var oTable = document.getElementById("span" + Node);
|
||||
var oImg = document.getElementById("img" + Node);
|
||||
break;
|
||||
}
|
||||
oImg.src = imgMinus.src;
|
||||
oTable.style.display = "block";
|
||||
}
|
||||
|
||||
function hideNode(Node){
|
||||
switch(navigator.family){
|
||||
case 'nn4':
|
||||
// Nav 4.x code fork...
|
||||
var oTable = document.layers["span" + Node];
|
||||
var oImg = document.layers["img" + Node];
|
||||
break;
|
||||
case 'ie4':
|
||||
// IE 4/5 code fork...
|
||||
var oTable = document.all["span" + Node];
|
||||
var oImg = document.all["img" + Node];
|
||||
break;
|
||||
case 'gecko':
|
||||
// Standards Compliant code fork...
|
||||
var oTable = document.getElementById("span" + Node);
|
||||
var oImg = document.getElementById("img" + Node);
|
||||
break;
|
||||
}
|
||||
oImg.src = imgPlus.src;
|
||||
oTable.style.display = "none";
|
||||
}
|
||||
|
||||
function nodeIsVisible(Node){
|
||||
switch(navigator.family){
|
||||
case 'nn4':
|
||||
// Nav 4.x code fork...
|
||||
var oTable = document.layers["span" + Node];
|
||||
break;
|
||||
case 'ie4':
|
||||
// IE 4/5 code fork...
|
||||
var oTable = document.all["span" + Node];
|
||||
break;
|
||||
case 'gecko':
|
||||
// Standards Compliant code fork...
|
||||
var oTable = document.getElementById("span" + Node);
|
||||
break;
|
||||
}
|
||||
return (oTable && oTable.style.display == "block");
|
||||
}
|
||||
|
||||
function toggleNodeVisibility(Node){
|
||||
if (nodeIsVisible(Node)){
|
||||
hideNode(Node);
|
||||
}else{
|
||||
showNode(Node);
|
||||
}
|
||||
}
|
||||
</script>
|
||||
</head>
|
||||
<body>
|
||||
␍<h3 class="package-title">Krumo</h3>
|
||||
<div class="tree">
|
||||
<script language="Javascript">
|
||||
if (document.getElementById) {
|
||||
var tree = new WebFXTree('<span class="package">Krumo</span>');
|
||||
tree.setBehavior('classic');
|
||||
tree.openIcon = 'media/images/package.png';
|
||||
tree.icon = 'media/images/package.png';
|
||||
|
||||
|
||||
var class_trees = new WebFXTreeItem('Class trees', 'classtrees_Krumo.html');
|
||||
class_trees.openIcon = 'media/images/Index.png';
|
||||
class_trees.icon = 'media/images/Index.png';
|
||||
tree.add(class_trees);
|
||||
|
||||
var elements = new WebFXTreeItem('Index of elements', 'elementindex_Krumo.html');
|
||||
elements.openIcon = 'media/images/Index.png';
|
||||
elements.icon = 'media/images/Index.png';
|
||||
tree.add(elements);
|
||||
|
||||
var parent_node;
|
||||
|
||||
|
||||
|
||||
var tree_classe = new WebFXTreeItem('Class(es)', '');
|
||||
tree_classe.openIcon = 'media/images/class_folder.png';
|
||||
tree_classe.icon = 'media/images/class_folder.png';
|
||||
|
||||
var classe = new WebFXTreeItem('krumo', 'Krumo/krumo.html');
|
||||
classe.openIcon = 'media/images/Class.png';
|
||||
classe.icon = 'media/images/Class.png';
|
||||
tree_classe.add(classe);
|
||||
|
||||
tree.add(tree_classe);
|
||||
|
||||
var tree_function = new WebFXTreeItem('Function(s)', '');
|
||||
tree_function.openIcon = 'media/images/function_folder.png';
|
||||
tree_function.icon = 'media/images/function_folder.png';
|
||||
|
||||
var fic = new WebFXTreeItem('krumo', 'Krumo/_class.krumo.php.html#functionkrumo');
|
||||
fic.openIcon = 'media/images/Function.png';
|
||||
fic.icon = 'media/images/Function.png';
|
||||
tree_function.add(fic);
|
||||
|
||||
tree.add(tree_function);
|
||||
|
||||
var tree_file = new WebFXTreeItem('File(s)', '');
|
||||
tree_file.openIcon = 'media/images/folder.png';
|
||||
tree_file.icon = 'media/images/folder.png';
|
||||
|
||||
var file = new WebFXTreeItem('class.krumo.php', 'Krumo/_class.krumo.php.html');
|
||||
file.openIcon = 'media/images/Page.png';
|
||||
file.icon = 'media/images/Page.png';
|
||||
tree_file.add(file);
|
||||
|
||||
tree.add(tree_file);
|
||||
|
||||
|
||||
document.write(tree);
|
||||
}
|
||||
</script>
|
||||
</div>
|
||||
<p class="notes">
|
||||
Generated by
|
||||
<a href="http://www.phpdoc.org" target="_blank">phpDocumentor <span class="field">1.4.0a2</span></a>
|
||||
</p>
|
||||
</body>
|
||||
</html>␍
|
||||
<?xml version="1.0" encoding="iso-8859-1"?>
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<!-- template designed by Marco Von Ballmoos -->
|
||||
<title></title>
|
||||
<link rel="stylesheet" href="media/stylesheet.css"/>
|
||||
<script src="media/lib/classTree.js"></script>
|
||||
<meta http-equiv='Content-Type' content='text/html; charset=iso-8859-1'/>
|
||||
<script language="javascript" type="text/javascript">
|
||||
var imgPlus = new Image();
|
||||
var imgMinus = new Image();
|
||||
imgPlus.src = "media/images/plus.png";
|
||||
imgMinus.src = "media/images/minus.png";
|
||||
|
||||
function showNode(Node) {
|
||||
switch (navigator.family) {
|
||||
case 'nn4':
|
||||
// Nav 4.x code fork...
|
||||
var oTable = document.layers["span" + Node];
|
||||
var oImg = document.layers["img" + Node];
|
||||
break;
|
||||
case 'ie4':
|
||||
// IE 4/5 code fork...
|
||||
var oTable = document.all["span" + Node];
|
||||
var oImg = document.all["img" + Node];
|
||||
break;
|
||||
case 'gecko':
|
||||
// Standards Compliant code fork...
|
||||
var oTable = document.getElementById("span" + Node);
|
||||
var oImg = document.getElementById("img" + Node);
|
||||
break;
|
||||
}
|
||||
oImg.src = imgMinus.src;
|
||||
oTable.style.display = "block";
|
||||
}
|
||||
|
||||
function hideNode(Node) {
|
||||
switch (navigator.family) {
|
||||
case 'nn4':
|
||||
// Nav 4.x code fork...
|
||||
var oTable = document.layers["span" + Node];
|
||||
var oImg = document.layers["img" + Node];
|
||||
break;
|
||||
case 'ie4':
|
||||
// IE 4/5 code fork...
|
||||
var oTable = document.all["span" + Node];
|
||||
var oImg = document.all["img" + Node];
|
||||
break;
|
||||
case 'gecko':
|
||||
// Standards Compliant code fork...
|
||||
var oTable = document.getElementById("span" + Node);
|
||||
var oImg = document.getElementById("img" + Node);
|
||||
break;
|
||||
}
|
||||
oImg.src = imgPlus.src;
|
||||
oTable.style.display = "none";
|
||||
}
|
||||
|
||||
function nodeIsVisible(Node) {
|
||||
switch (navigator.family) {
|
||||
case 'nn4':
|
||||
// Nav 4.x code fork...
|
||||
var oTable = document.layers["span" + Node];
|
||||
break;
|
||||
case 'ie4':
|
||||
// IE 4/5 code fork...
|
||||
var oTable = document.all["span" + Node];
|
||||
break;
|
||||
case 'gecko':
|
||||
// Standards Compliant code fork...
|
||||
var oTable = document.getElementById("span" + Node);
|
||||
break;
|
||||
}
|
||||
return (oTable && oTable.style.display == "block");
|
||||
}
|
||||
|
||||
function toggleNodeVisibility(Node) {
|
||||
if (nodeIsVisible(Node)) {
|
||||
hideNode(Node);
|
||||
} else {
|
||||
showNode(Node);
|
||||
}
|
||||
}
|
||||
</script>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<h3 class="package-title">Krumo</h3>
|
||||
<div class="tree">
|
||||
<script language="Javascript">
|
||||
if (document.getElementById) {
|
||||
var tree = new WebFXTree('<span class="package">Krumo</span>');
|
||||
tree.setBehavior('classic');
|
||||
tree.openIcon = 'media/images/package.png';
|
||||
tree.icon = 'media/images/package.png';
|
||||
|
||||
|
||||
var class_trees = new WebFXTreeItem('Class trees', 'classtrees_Krumo.html');
|
||||
class_trees.openIcon = 'media/images/Index.png';
|
||||
class_trees.icon = 'media/images/Index.png';
|
||||
tree.add(class_trees);
|
||||
|
||||
var elements = new WebFXTreeItem('Index of elements', 'elementindex_Krumo.html');
|
||||
elements.openIcon = 'media/images/Index.png';
|
||||
elements.icon = 'media/images/Index.png';
|
||||
tree.add(elements);
|
||||
|
||||
var parent_node;
|
||||
|
||||
|
||||
|
||||
var tree_classe = new WebFXTreeItem('Class(es)', '');
|
||||
tree_classe.openIcon = 'media/images/class_folder.png';
|
||||
tree_classe.icon = 'media/images/class_folder.png';
|
||||
|
||||
var classe = new WebFXTreeItem('krumo', 'Krumo/krumo.html');
|
||||
classe.openIcon = 'media/images/Class.png';
|
||||
classe.icon = 'media/images/Class.png';
|
||||
tree_classe.add(classe);
|
||||
|
||||
tree.add(tree_classe);
|
||||
|
||||
var tree_function = new WebFXTreeItem('Function(s)', '');
|
||||
tree_function.openIcon = 'media/images/function_folder.png';
|
||||
tree_function.icon = 'media/images/function_folder.png';
|
||||
|
||||
var fic = new WebFXTreeItem('krumo', 'Krumo/_class.krumo.php.html#functionkrumo');
|
||||
fic.openIcon = 'media/images/Function.png';
|
||||
fic.icon = 'media/images/Function.png';
|
||||
tree_function.add(fic);
|
||||
|
||||
tree.add(tree_function);
|
||||
|
||||
var tree_file = new WebFXTreeItem('File(s)', '');
|
||||
tree_file.openIcon = 'media/images/folder.png';
|
||||
tree_file.icon = 'media/images/folder.png';
|
||||
|
||||
var file = new WebFXTreeItem('class.krumo.php', 'Krumo/_class.krumo.php.html');
|
||||
file.openIcon = 'media/images/Page.png';
|
||||
file.icon = 'media/images/Page.png';
|
||||
tree_file.add(file);
|
||||
|
||||
tree.add(tree_file);
|
||||
|
||||
|
||||
document.write(tree);
|
||||
}
|
||||
</script>
|
||||
</div>
|
||||
<p class="notes">
|
||||
Generated by
|
||||
<a href="http://www.phpdoc.org" target="_blank">phpDocumentor <span class="field">1.4.0a2</span></a>
|
||||
</p>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -1,32 +1,32 @@
|
||||
body
|
||||
{
|
||||
background-color: #EEEEEE;
|
||||
margin: 0px;
|
||||
padding: 0px;
|
||||
}
|
||||
|
||||
/* Banner (top bar) classes */
|
||||
|
||||
.banner { }
|
||||
|
||||
.banner-menu
|
||||
{
|
||||
clear: both;
|
||||
padding: .5em;
|
||||
border-top: 2px solid #AAAAAA;
|
||||
}
|
||||
|
||||
.banner-title
|
||||
{
|
||||
text-align: right;
|
||||
font-size: 20pt;
|
||||
font-weight: bold;
|
||||
margin: .2em;
|
||||
}
|
||||
|
||||
.package-selector
|
||||
{
|
||||
background-color: #DDDDDD;
|
||||
border: 1px solid #AAAAAA;
|
||||
color: #000090;
|
||||
}
|
||||
body
|
||||
{
|
||||
background-color: #EEEEEE;
|
||||
margin: 0px;
|
||||
padding: 0px;
|
||||
}
|
||||
|
||||
/* Banner (top bar) classes */
|
||||
|
||||
.banner { }
|
||||
|
||||
.banner-menu
|
||||
{
|
||||
clear: both;
|
||||
padding: .5em;
|
||||
border-top: 2px solid #AAAAAA;
|
||||
}
|
||||
|
||||
.banner-title
|
||||
{
|
||||
text-align: right;
|
||||
font-size: 20pt;
|
||||
font-weight: bold;
|
||||
margin: .2em;
|
||||
}
|
||||
|
||||
.package-selector
|
||||
{
|
||||
background-color: #DDDDDD;
|
||||
border: 1px solid #AAAAAA;
|
||||
color: #000090;
|
||||
}
|
||||
|
||||
|
Before Width: | Height: | Size: 620 B After Width: | Height: | Size: 620 B |
|
Before Width: | Height: | Size: 1.2 KiB After Width: | Height: | Size: 1.2 KiB |
|
Before Width: | Height: | Size: 696 B After Width: | Height: | Size: 696 B |
|
Before Width: | Height: | Size: 848 B After Width: | Height: | Size: 848 B |
|
Before Width: | Height: | Size: 1.6 KiB After Width: | Height: | Size: 1.6 KiB |
|
Before Width: | Height: | Size: 874 B After Width: | Height: | Size: 874 B |
|
Before Width: | Height: | Size: 570 B After Width: | Height: | Size: 570 B |
|
Before Width: | Height: | Size: 1.6 KiB After Width: | Height: | Size: 1.6 KiB |
|
Before Width: | Height: | Size: 752 B After Width: | Height: | Size: 752 B |
|
Before Width: | Height: | Size: 865 B After Width: | Height: | Size: 865 B |
|
Before Width: | Height: | Size: 956 B After Width: | Height: | Size: 956 B |
|
Before Width: | Height: | Size: 596 B After Width: | Height: | Size: 596 B |
|
Before Width: | Height: | Size: 712 B After Width: | Height: | Size: 712 B |
|
Before Width: | Height: | Size: 148 B After Width: | Height: | Size: 148 B |
|
Before Width: | Height: | Size: 584 B After Width: | Height: | Size: 584 B |
|
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 1.1 KiB |
|
Before Width: | Height: | Size: 153 B After Width: | Height: | Size: 153 B |
|
Before Width: | Height: | Size: 219 B After Width: | Height: | Size: 219 B |
|
Before Width: | Height: | Size: 224 B After Width: | Height: | Size: 224 B |
|
Before Width: | Height: | Size: 661 B After Width: | Height: | Size: 661 B |
|
Before Width: | Height: | Size: 592 B After Width: | Height: | Size: 592 B |
|
Before Width: | Height: | Size: 1.3 KiB After Width: | Height: | Size: 1.3 KiB |
|
Before Width: | Height: | Size: 790 B After Width: | Height: | Size: 790 B |
|
Before Width: | Height: | Size: 1.8 KiB After Width: | Height: | Size: 1.8 KiB |
|
Before Width: | Height: | Size: 918 B After Width: | Height: | Size: 918 B |
|
Before Width: | Height: | Size: 772 B After Width: | Height: | Size: 772 B |
|
Before Width: | Height: | Size: 152 B After Width: | Height: | Size: 152 B |
|
Before Width: | Height: | Size: 207 B After Width: | Height: | Size: 207 B |
|
Before Width: | Height: | Size: 222 B After Width: | Height: | Size: 222 B |
|
Before Width: | Height: | Size: 688 B After Width: | Height: | Size: 688 B |
|
Before Width: | Height: | Size: 144 B After Width: | Height: | Size: 144 B |
|
Before Width: | Height: | Size: 633 B After Width: | Height: | Size: 633 B |
|
Before Width: | Height: | Size: 90 B After Width: | Height: | Size: 90 B |
|
Before Width: | Height: | Size: 462 B After Width: | Height: | Size: 462 B |
|
Before Width: | Height: | Size: 492 B After Width: | Height: | Size: 492 B |
|
Before Width: | Height: | Size: 605 B After Width: | Height: | Size: 605 B |
|
Before Width: | Height: | Size: 54 B After Width: | Height: | Size: 54 B |
|
Before Width: | Height: | Size: 657 B After Width: | Height: | Size: 657 B |
|
Before Width: | Height: | Size: 543 B After Width: | Height: | Size: 543 B |
|
Before Width: | Height: | Size: 668 B After Width: | Height: | Size: 668 B |
|
Before Width: | Height: | Size: 564 B After Width: | Height: | Size: 564 B |
|
Before Width: | Height: | Size: 56 B After Width: | Height: | Size: 56 B |
|
Before Width: | Height: | Size: 644 B After Width: | Height: | Size: 644 B |
|
Before Width: | Height: | Size: 541 B After Width: | Height: | Size: 541 B |
|
Before Width: | Height: | Size: 1.8 KiB After Width: | Height: | Size: 1.8 KiB |
|
Before Width: | Height: | Size: 431 B After Width: | Height: | Size: 431 B |
|
Before Width: | Height: | Size: 572 B After Width: | Height: | Size: 572 B |
|
Before Width: | Height: | Size: 668 B After Width: | Height: | Size: 668 B |
@@ -1,454 +1,454 @@
|
||||
/*----------------------------------------\
|
||||
| Cross Browser Tree Widget 1.1 |
|
||||
|-----------------------------------------|
|
||||
| Created by Emil A. Eklund (eae@eae.net) |
|
||||
| For WebFX (http://webfx.eae.net/) |
|
||||
|-----------------------------------------|
|
||||
| This script is provided as is without |
|
||||
| any warranty whatsoever. It may be used |
|
||||
| free of charge for non commerical sites |
|
||||
| For commerical use contact the author |
|
||||
| of this script for further details. |
|
||||
|-----------------------------------------|
|
||||
| Created 2000-12-11 | Updated 2001-09-06 |
|
||||
\----------------------------------------*/
|
||||
|
||||
var webFXTreeConfig = {
|
||||
rootIcon : 'media/images/empty.png',
|
||||
openRootIcon : 'media/images/empty.png',
|
||||
folderIcon : 'media/images/empty.png',
|
||||
openFolderIcon : 'media/images/empty.png',
|
||||
fileIcon : 'media/images/empty.png',
|
||||
iIcon : 'media/images/I.png',
|
||||
lIcon : 'media/images/L.png',
|
||||
lMinusIcon : 'media/images/Lminus.png',
|
||||
lPlusIcon : 'media/images/Lplus.png',
|
||||
tIcon : 'media/images/T.png',
|
||||
tMinusIcon : 'media/images/Tminus.png',
|
||||
tPlusIcon : 'media/images/Tplus.png',
|
||||
blankIcon : 'media/images/blank.png',
|
||||
defaultText : 'Tree Item',
|
||||
defaultAction : 'javascript:void(0);',
|
||||
defaultTarget : 'right',
|
||||
defaultBehavior : 'classic'
|
||||
};
|
||||
|
||||
var webFXTreeHandler = {
|
||||
idCounter : 0,
|
||||
idPrefix : "webfx-tree-object-",
|
||||
all : {},
|
||||
behavior : null,
|
||||
selected : null,
|
||||
getId : function() { return this.idPrefix + this.idCounter++; },
|
||||
toggle : function (oItem) { this.all[oItem.id.replace('-plus','')].toggle(); },
|
||||
select : function (oItem) { this.all[oItem.id.replace('-icon','')].select(); },
|
||||
focus : function (oItem) { this.all[oItem.id.replace('-anchor','')].focus(); },
|
||||
blur : function (oItem) { this.all[oItem.id.replace('-anchor','')].blur(); },
|
||||
keydown : function (oItem) { return this.all[oItem.id].keydown(window.event.keyCode); },
|
||||
cookies : new WebFXCookie()
|
||||
};
|
||||
|
||||
/*
|
||||
* WebFXCookie class
|
||||
*/
|
||||
|
||||
function WebFXCookie() {
|
||||
if (document.cookie.length) { this.cookies = ' ' + document.cookie; }
|
||||
}
|
||||
|
||||
WebFXCookie.prototype.setCookie = function (key, value) {
|
||||
document.cookie = key + "=" + escape(value);
|
||||
}
|
||||
|
||||
WebFXCookie.prototype.getCookie = function (key) {
|
||||
if (this.cookies) {
|
||||
var start = this.cookies.indexOf(' ' + key + '=');
|
||||
if (start == -1) { return null; }
|
||||
var end = this.cookies.indexOf(";", start);
|
||||
if (end == -1) { end = this.cookies.length; }
|
||||
end -= start;
|
||||
var cookie = this.cookies.substr(start,end);
|
||||
return unescape(cookie.substr(cookie.indexOf('=') + 1, cookie.length - cookie.indexOf('=') + 1));
|
||||
}
|
||||
else { return null; }
|
||||
}
|
||||
|
||||
/*
|
||||
* WebFXTreeAbstractNode class
|
||||
*/
|
||||
|
||||
function WebFXTreeAbstractNode(sText, sAction, sTarget) {
|
||||
this.childNodes = [];
|
||||
this.id = webFXTreeHandler.getId();
|
||||
this.text = sText || webFXTreeConfig.defaultText;
|
||||
this.action = sAction || webFXTreeConfig.defaultAction;
|
||||
this.targetWindow = sTarget || webFXTreeConfig.defaultTarget;
|
||||
this._last = false;
|
||||
webFXTreeHandler.all[this.id] = this;
|
||||
}
|
||||
|
||||
WebFXTreeAbstractNode.prototype.add = function (node) {
|
||||
node.parentNode = this;
|
||||
this.childNodes[this.childNodes.length] = node;
|
||||
var root = this;
|
||||
if (this.childNodes.length >=2) {
|
||||
this.childNodes[this.childNodes.length -2]._last = false;
|
||||
}
|
||||
while (root.parentNode) { root = root.parentNode; }
|
||||
if (root.rendered) {
|
||||
if (this.childNodes.length >= 2) {
|
||||
document.getElementById(this.childNodes[this.childNodes.length -2].id + '-plus').src = ((this.childNodes[this.childNodes.length -2].folder)?webFXTreeConfig.tMinusIcon:webFXTreeConfig.tIcon);
|
||||
if (this.childNodes[this.childNodes.length -2].folder) {
|
||||
this.childNodes[this.childNodes.length -2].plusIcon = webFXTreeConfig.tPlusIcon;
|
||||
this.childNodes[this.childNodes.length -2].minusIcon = webFXTreeConfig.tMinusIcon;
|
||||
}
|
||||
this.childNodes[this.childNodes.length -2]._last = false;
|
||||
}
|
||||
this._last = true;
|
||||
var foo = this;
|
||||
while (foo.parentNode) {
|
||||
for (var i = 0; i < foo.parentNode.childNodes.length; i++) {
|
||||
if (foo.id == foo.parentNode.childNodes[i].id) { break; }
|
||||
}
|
||||
if (++i == foo.parentNode.childNodes.length) { foo.parentNode._last = true; }
|
||||
else { foo.parentNode._last = false; }
|
||||
foo = foo.parentNode;
|
||||
}
|
||||
document.getElementById(this.id + '-cont').insertAdjacentHTML("beforeEnd", node.toString());
|
||||
if ((!this.folder) && (!this.openIcon)) {
|
||||
this.icon = webFXTreeConfig.folderIcon;
|
||||
this.openIcon = webFXTreeConfig.openFolderIcon;
|
||||
}
|
||||
this.folder = true;
|
||||
this.indent();
|
||||
this.expand();
|
||||
}
|
||||
return node;
|
||||
}
|
||||
|
||||
WebFXTreeAbstractNode.prototype.toggle = function() {
|
||||
if (this.folder) {
|
||||
if (this.open) { this.collapse(); }
|
||||
else { this.expand(); }
|
||||
}
|
||||
}
|
||||
|
||||
WebFXTreeAbstractNode.prototype.select = function() {
|
||||
document.getElementById(this.id + '-anchor').focus();
|
||||
}
|
||||
|
||||
WebFXTreeAbstractNode.prototype.focus = function() {
|
||||
webFXTreeHandler.selected = this;
|
||||
if ((this.openIcon) && (webFXTreeHandler.behavior != 'classic')) { document.getElementById(this.id + '-icon').src = this.openIcon; }
|
||||
document.getElementById(this.id + '-anchor').style.backgroundColor = 'highlight';
|
||||
document.getElementById(this.id + '-anchor').style.color = 'highlighttext';
|
||||
document.getElementById(this.id + '-anchor').focus();
|
||||
}
|
||||
|
||||
WebFXTreeAbstractNode.prototype.blur = function() {
|
||||
if ((this.openIcon) && (webFXTreeHandler.behavior != 'classic')) { document.getElementById(this.id + '-icon').src = this.icon; }
|
||||
document.getElementById(this.id + '-anchor').style.backgroundColor = 'transparent';
|
||||
document.getElementById(this.id + '-anchor').style.color = 'menutext';
|
||||
}
|
||||
|
||||
WebFXTreeAbstractNode.prototype.doExpand = function() {
|
||||
if (webFXTreeHandler.behavior == 'classic') { document.getElementById(this.id + '-icon').src = this.openIcon; }
|
||||
if (this.childNodes.length) { document.getElementById(this.id + '-cont').style.display = 'block'; }
|
||||
this.open = true;
|
||||
webFXTreeHandler.cookies.setCookie(this.id.substr(18,this.id.length - 18), '1');
|
||||
}
|
||||
|
||||
WebFXTreeAbstractNode.prototype.doCollapse = function() {
|
||||
if (webFXTreeHandler.behavior == 'classic') { document.getElementById(this.id + '-icon').src = this.icon; }
|
||||
if (this.childNodes.length) { document.getElementById(this.id + '-cont').style.display = 'none'; }
|
||||
this.open = false;
|
||||
webFXTreeHandler.cookies.setCookie(this.id.substr(18,this.id.length - 18), '0');
|
||||
}
|
||||
|
||||
WebFXTreeAbstractNode.prototype.expandAll = function() {
|
||||
this.expandChildren();
|
||||
if ((this.folder) && (!this.open)) { this.expand(); }
|
||||
}
|
||||
|
||||
WebFXTreeAbstractNode.prototype.expandChildren = function() {
|
||||
for (var i = 0; i < this.childNodes.length; i++) {
|
||||
this.childNodes[i].expandAll();
|
||||
} }
|
||||
|
||||
WebFXTreeAbstractNode.prototype.collapseAll = function() {
|
||||
if ((this.folder) && (this.open)) { this.collapse(); }
|
||||
this.collapseChildren();
|
||||
}
|
||||
|
||||
WebFXTreeAbstractNode.prototype.collapseChildren = function() {
|
||||
for (var i = 0; i < this.childNodes.length; i++) {
|
||||
this.childNodes[i].collapseAll();
|
||||
} }
|
||||
|
||||
WebFXTreeAbstractNode.prototype.indent = function(lvl, del, last, level) {
|
||||
/*
|
||||
* Since we only want to modify items one level below ourself,
|
||||
* and since the rightmost indentation position is occupied by
|
||||
* the plus icon we set this to -2
|
||||
*/
|
||||
if (lvl == null) { lvl = -2; }
|
||||
var state = 0;
|
||||
for (var i = this.childNodes.length - 1; i >= 0 ; i--) {
|
||||
state = this.childNodes[i].indent(lvl + 1, del, last, level);
|
||||
if (state) { return; }
|
||||
}
|
||||
if (del) {
|
||||
if (level >= this._level) {
|
||||
if (this.folder) {
|
||||
document.getElementById(this.id + '-plus').src = (this.open)?webFXTreeConfig.lMinusIcon:webFXTreeConfig.lPlusIcon;
|
||||
this.plusIcon = webFXTreeConfig.lPlusIcon;
|
||||
this.minusIcon = webFXTreeConfig.lMinusIcon;
|
||||
}
|
||||
else { document.getElementById(this.id + '-plus').src = webFXTreeConfig.lIcon; }
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
var foo = document.getElementById(this.id + '-indent-' + lvl);
|
||||
if (foo) {
|
||||
if ((del) && (last)) { foo._last = true; }
|
||||
if (foo._last) { foo.src = webFXTreeConfig.blankIcon; }
|
||||
else { foo.src = webFXTreeConfig.iIcon; }
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
/*
|
||||
* WebFXTree class
|
||||
*/
|
||||
|
||||
function WebFXTree(sText, sAction, sBehavior, sIcon, sOpenIcon) {
|
||||
this.base = WebFXTreeAbstractNode;
|
||||
this.base(sText, sAction);
|
||||
this.icon = sIcon || webFXTreeConfig.rootIcon;
|
||||
this.openIcon = sOpenIcon || webFXTreeConfig.openRootIcon;
|
||||
/* Defaults to open */
|
||||
this.open = (webFXTreeHandler.cookies.getCookie(this.id.substr(18,this.id.length - 18)) == '0')?false:true;
|
||||
this.folder = true;
|
||||
this.rendered = false;
|
||||
if (!webFXTreeHandler.behavior) { webFXTreeHandler.behavior = sBehavior || webFXTreeConfig.defaultBehavior; }
|
||||
this.targetWindow = 'right';
|
||||
}
|
||||
|
||||
WebFXTree.prototype = new WebFXTreeAbstractNode;
|
||||
|
||||
WebFXTree.prototype.setBehavior = function (sBehavior) {
|
||||
webFXTreeHandler.behavior = sBehavior;
|
||||
};
|
||||
|
||||
WebFXTree.prototype.getBehavior = function (sBehavior) {
|
||||
return webFXTreeHandler.behavior;
|
||||
};
|
||||
|
||||
WebFXTree.prototype.getSelected = function() {
|
||||
if (webFXTreeHandler.selected) { return webFXTreeHandler.selected; }
|
||||
else { return null; }
|
||||
}
|
||||
|
||||
WebFXTree.prototype.remove = function() { }
|
||||
|
||||
WebFXTree.prototype.expand = function() {
|
||||
this.doExpand();
|
||||
}
|
||||
|
||||
WebFXTree.prototype.collapse = function() {
|
||||
this.focus();
|
||||
this.doCollapse();
|
||||
}
|
||||
|
||||
WebFXTree.prototype.getFirst = function() {
|
||||
return null;
|
||||
}
|
||||
|
||||
WebFXTree.prototype.getLast = function() {
|
||||
return null;
|
||||
}
|
||||
|
||||
WebFXTree.prototype.getNextSibling = function() {
|
||||
return null;
|
||||
}
|
||||
|
||||
WebFXTree.prototype.getPreviousSibling = function() {
|
||||
return null;
|
||||
}
|
||||
|
||||
WebFXTree.prototype.keydown = function(key) {
|
||||
if (key == 39) { this.expand(); return false; }
|
||||
if (key == 37) { this.collapse(); return false; }
|
||||
if ((key == 40) && (this.open)) { this.childNodes[0].select(); return false; }
|
||||
return true;
|
||||
}
|
||||
|
||||
WebFXTree.prototype.toString = function() {
|
||||
var str = "<div id=\"" + this.id + "\" ondblclick=\"webFXTreeHandler.toggle(this);\" class=\"webfx-tree-item\" onkeydown=\"return webFXTreeHandler.keydown(this)\">";
|
||||
str += "<img id=\"" + this.id + "-icon\" class=\"webfx-tree-icon\" src=\"" + ((webFXTreeHandler.behavior == 'classic' && this.open)?this.openIcon:this.icon) + "\" onclick=\"webFXTreeHandler.select(this);\"><a href=\"" + this.action + "\" id=\"" + this.id + "-anchor\" target=\"" + this.targetWindow + "\" onfocus=\"webFXTreeHandler.focus(this);\" onblur=\"webFXTreeHandler.blur(this);\">" + this.text + "</a></div>";
|
||||
str += "<div id=\"" + this.id + "-cont\" class=\"webfx-tree-container\" style=\"display: " + ((this.open)?'block':'none') + ";\">";
|
||||
for (var i = 0; i < this.childNodes.length; i++) {
|
||||
str += this.childNodes[i].toString(i, this.childNodes.length);
|
||||
}
|
||||
str += "</div>";
|
||||
this.rendered = true;
|
||||
return str;
|
||||
};
|
||||
|
||||
/*
|
||||
* WebFXTreeItem class
|
||||
*/
|
||||
|
||||
function WebFXTreeItem(sText, sAction, eParent, sIcon, sOpenIcon) {
|
||||
this.base = WebFXTreeAbstractNode;
|
||||
this.base(sText, sAction);
|
||||
/* Defaults to close */
|
||||
this.open = (webFXTreeHandler.cookies.getCookie(this.id.substr(18,this.id.length - 18)) == '1')?true:false;
|
||||
if (eParent) { eParent.add(this); }
|
||||
if (sIcon) { this.icon = sIcon; }
|
||||
if (sOpenIcon) { this.openIcon = sOpenIcon; }
|
||||
}
|
||||
|
||||
WebFXTreeItem.prototype = new WebFXTreeAbstractNode;
|
||||
|
||||
WebFXTreeItem.prototype.remove = function() {
|
||||
var parentNode = this.parentNode;
|
||||
var prevSibling = this.getPreviousSibling(true);
|
||||
var nextSibling = this.getNextSibling(true);
|
||||
var folder = this.parentNode.folder;
|
||||
var last = ((nextSibling) && (nextSibling.parentNode) && (nextSibling.parentNode.id == parentNode.id))?false:true;
|
||||
this.getPreviousSibling().focus();
|
||||
this._remove();
|
||||
if (parentNode.childNodes.length == 0) {
|
||||
parentNode.folder = false;
|
||||
parentNode.open = false;
|
||||
}
|
||||
if (last) {
|
||||
if (parentNode.id == prevSibling.id) {
|
||||
document.getElementById(parentNode.id + '-icon').src = webFXTreeConfig.fileIcon;
|
||||
}
|
||||
else { }
|
||||
}
|
||||
if ((!prevSibling.parentNode) || (prevSibling.parentNode != parentNode)) {
|
||||
parentNode.indent(null, true, last, this._level);
|
||||
}
|
||||
if (document.getElementById(prevSibling.id + '-plus')) {
|
||||
if (nextSibling) {
|
||||
if ((parentNode == prevSibling) && (parentNode.getNextSibling)) { document.getElementById(prevSibling.id + '-plus').src = webFXTreeConfig.tIcon; }
|
||||
else if (nextSibling.parentNode != prevSibling) { document.getElementById(prevSibling.id + '-plus').src = webFXTreeConfig.lIcon; }
|
||||
}
|
||||
else { document.getElementById(prevSibling.id + '-plus').src = webFXTreeConfig.lIcon; }
|
||||
}
|
||||
}
|
||||
|
||||
WebFXTreeItem.prototype._remove = function() {
|
||||
for (var i = this.childNodes.length - 1; i >= 0; i--) {
|
||||
this.childNodes[i]._remove();
|
||||
}
|
||||
for (var i = 0; i < this.parentNode.childNodes.length; i++) {
|
||||
if (this.id == this.parentNode.childNodes[i].id) {
|
||||
for (var j = i; j < this.parentNode.childNodes.length; j++) {
|
||||
this.parentNode.childNodes[i] = this.parentNode.childNodes[i+1]
|
||||
}
|
||||
this.parentNode.childNodes.length = this.parentNode.childNodes.length - 1;
|
||||
if (i + 1 == this.parentNode.childNodes.length) { this.parentNode._last = true; }
|
||||
}
|
||||
}
|
||||
webFXTreeHandler.all[this.id] = null;
|
||||
if (document.getElementById(this.id)) {
|
||||
document.getElementById(this.id).innerHTML = "";
|
||||
document.getElementById(this.id).removeNode();
|
||||
}
|
||||
}
|
||||
|
||||
WebFXTreeItem.prototype.expand = function() {
|
||||
this.doExpand();
|
||||
document.getElementById(this.id + '-plus').src = this.minusIcon;
|
||||
}
|
||||
|
||||
WebFXTreeItem.prototype.collapse = function() {
|
||||
this.focus();
|
||||
this.doCollapse();
|
||||
document.getElementById(this.id + '-plus').src = this.plusIcon;
|
||||
}
|
||||
|
||||
WebFXTreeItem.prototype.getFirst = function() {
|
||||
return this.childNodes[0];
|
||||
}
|
||||
|
||||
WebFXTreeItem.prototype.getLast = function() {
|
||||
if (this.childNodes[this.childNodes.length - 1].open) { return this.childNodes[this.childNodes.length - 1].getLast(); }
|
||||
else { return this.childNodes[this.childNodes.length - 1]; }
|
||||
}
|
||||
|
||||
WebFXTreeItem.prototype.getNextSibling = function() {
|
||||
for (var i = 0; i < this.parentNode.childNodes.length; i++) {
|
||||
if (this == this.parentNode.childNodes[i]) { break; }
|
||||
}
|
||||
if (++i == this.parentNode.childNodes.length) { return this.parentNode.getNextSibling(); }
|
||||
else { return this.parentNode.childNodes[i]; }
|
||||
}
|
||||
|
||||
WebFXTreeItem.prototype.getPreviousSibling = function(b) {
|
||||
for (var i = 0; i < this.parentNode.childNodes.length; i++) {
|
||||
if (this == this.parentNode.childNodes[i]) { break; }
|
||||
}
|
||||
if (i == 0) { return this.parentNode; }
|
||||
else {
|
||||
if ((this.parentNode.childNodes[--i].open) || (b && this.parentNode.childNodes[i].folder)) { return this.parentNode.childNodes[i].getLast(); }
|
||||
else { return this.parentNode.childNodes[i]; }
|
||||
} }
|
||||
|
||||
WebFXTreeItem.prototype.keydown = function(key) {
|
||||
if ((key == 39) && (this.folder)) {
|
||||
if (!this.open) { this.expand(); return false; }
|
||||
else { this.getFirst().select(); return false; }
|
||||
}
|
||||
else if (key == 37) {
|
||||
if (this.open) { this.collapse(); return false; }
|
||||
else { this.parentNode.select(); return false; }
|
||||
}
|
||||
else if (key == 40) {
|
||||
if (this.open) { this.getFirst().select(); return false; }
|
||||
else {
|
||||
var sib = this.getNextSibling();
|
||||
if (sib) { sib.select(); return false; }
|
||||
} }
|
||||
else if (key == 38) { this.getPreviousSibling().select(); return false; }
|
||||
return true;
|
||||
}
|
||||
|
||||
WebFXTreeItem.prototype.toString = function (nItem, nItemCount) {
|
||||
var foo = this.parentNode;
|
||||
var indent = '';
|
||||
if (nItem + 1 == nItemCount) { this.parentNode._last = true; }
|
||||
var i = 0;
|
||||
while (foo.parentNode) {
|
||||
foo = foo.parentNode;
|
||||
indent = "<img id=\"" + this.id + "-indent-" + i + "\" src=\"" + ((foo._last)?webFXTreeConfig.blankIcon:webFXTreeConfig.iIcon) + "\">" + indent;
|
||||
i++;
|
||||
}
|
||||
this._level = i;
|
||||
if (this.childNodes.length) { this.folder = 1; }
|
||||
else { this.open = false; }
|
||||
if ((this.folder) || (webFXTreeHandler.behavior != 'classic')) {
|
||||
if (!this.icon) { this.icon = webFXTreeConfig.folderIcon; }
|
||||
if (!this.openIcon) { this.openIcon = webFXTreeConfig.openFolderIcon; }
|
||||
}
|
||||
else if (!this.icon) { this.icon = webFXTreeConfig.fileIcon; }
|
||||
var label = this.text;
|
||||
label = label.replace('<', '<');
|
||||
label = label.replace('>', '>');
|
||||
var str = "<div id=\"" + this.id + "\" ondblclick=\"webFXTreeHandler.toggle(this);\" class=\"webfx-tree-item\" onkeydown=\"return webFXTreeHandler.keydown(this)\">";
|
||||
str += indent;
|
||||
str += "<img id=\"" + this.id + "-plus\" src=\"" + ((this.folder)?((this.open)?((this.parentNode._last)?webFXTreeConfig.lMinusIcon:webFXTreeConfig.tMinusIcon):((this.parentNode._last)?webFXTreeConfig.lPlusIcon:webFXTreeConfig.tPlusIcon)):((this.parentNode._last)?webFXTreeConfig.lIcon:webFXTreeConfig.tIcon)) + "\" onclick=\"webFXTreeHandler.toggle(this);\">"
|
||||
str += "<img id=\"" + this.id + "-icon\" src=\"" + ((webFXTreeHandler.behavior == 'classic' && this.open)?this.openIcon:this.icon) + "\" onclick=\"webFXTreeHandler.select(this);\"><a href=\"" + this.action + "\" id=\"" + this.id + "-anchor\" target=\"" + this.targetWindow + "\" onfocus=\"webFXTreeHandler.focus(this);\" onblur=\"webFXTreeHandler.blur(this);\">" + label + "</a></div>";
|
||||
str += "<div id=\"" + this.id + "-cont\" class=\"webfx-tree-container\" style=\"display: " + ((this.open)?'block':'none') + ";\">";
|
||||
for (var i = 0; i < this.childNodes.length; i++) {
|
||||
str += this.childNodes[i].toString(i,this.childNodes.length);
|
||||
}
|
||||
str += "</div>";
|
||||
this.plusIcon = ((this.parentNode._last)?webFXTreeConfig.lPlusIcon:webFXTreeConfig.tPlusIcon);
|
||||
this.minusIcon = ((this.parentNode._last)?webFXTreeConfig.lMinusIcon:webFXTreeConfig.tMinusIcon);
|
||||
return str;
|
||||
}
|
||||
/*----------------------------------------\
|
||||
| Cross Browser Tree Widget 1.1 |
|
||||
|-----------------------------------------|
|
||||
| Created by Emil A. Eklund (eae@eae.net) |
|
||||
| For WebFX (http://webfx.eae.net/) |
|
||||
|-----------------------------------------|
|
||||
| This script is provided as is without |
|
||||
| any warranty whatsoever. It may be used |
|
||||
| free of charge for non commerical sites |
|
||||
| For commerical use contact the author |
|
||||
| of this script for further details. |
|
||||
|-----------------------------------------|
|
||||
| Created 2000-12-11 | Updated 2001-09-06 |
|
||||
\----------------------------------------*/
|
||||
|
||||
var webFXTreeConfig = {
|
||||
rootIcon : 'media/images/empty.png',
|
||||
openRootIcon : 'media/images/empty.png',
|
||||
folderIcon : 'media/images/empty.png',
|
||||
openFolderIcon : 'media/images/empty.png',
|
||||
fileIcon : 'media/images/empty.png',
|
||||
iIcon : 'media/images/I.png',
|
||||
lIcon : 'media/images/L.png',
|
||||
lMinusIcon : 'media/images/Lminus.png',
|
||||
lPlusIcon : 'media/images/Lplus.png',
|
||||
tIcon : 'media/images/T.png',
|
||||
tMinusIcon : 'media/images/Tminus.png',
|
||||
tPlusIcon : 'media/images/Tplus.png',
|
||||
blankIcon : 'media/images/blank.png',
|
||||
defaultText : 'Tree Item',
|
||||
defaultAction : 'javascript:void(0);',
|
||||
defaultTarget : 'right',
|
||||
defaultBehavior : 'classic'
|
||||
};
|
||||
|
||||
var webFXTreeHandler = {
|
||||
idCounter : 0,
|
||||
idPrefix : "webfx-tree-object-",
|
||||
all : {},
|
||||
behavior : null,
|
||||
selected : null,
|
||||
getId : function() { return this.idPrefix + this.idCounter++; },
|
||||
toggle : function (oItem) { this.all[oItem.id.replace('-plus','')].toggle(); },
|
||||
select : function (oItem) { this.all[oItem.id.replace('-icon','')].select(); },
|
||||
focus : function (oItem) { this.all[oItem.id.replace('-anchor','')].focus(); },
|
||||
blur : function (oItem) { this.all[oItem.id.replace('-anchor','')].blur(); },
|
||||
keydown : function (oItem) { return this.all[oItem.id].keydown(window.event.keyCode); },
|
||||
cookies : new WebFXCookie()
|
||||
};
|
||||
|
||||
/*
|
||||
* WebFXCookie class
|
||||
*/
|
||||
|
||||
function WebFXCookie() {
|
||||
if (document.cookie.length) { this.cookies = ' ' + document.cookie; }
|
||||
}
|
||||
|
||||
WebFXCookie.prototype.setCookie = function (key, value) {
|
||||
document.cookie = key + "=" + escape(value);
|
||||
}
|
||||
|
||||
WebFXCookie.prototype.getCookie = function (key) {
|
||||
if (this.cookies) {
|
||||
var start = this.cookies.indexOf(' ' + key + '=');
|
||||
if (start == -1) { return null; }
|
||||
var end = this.cookies.indexOf(";", start);
|
||||
if (end == -1) { end = this.cookies.length; }
|
||||
end -= start;
|
||||
var cookie = this.cookies.substr(start,end);
|
||||
return unescape(cookie.substr(cookie.indexOf('=') + 1, cookie.length - cookie.indexOf('=') + 1));
|
||||
}
|
||||
else { return null; }
|
||||
}
|
||||
|
||||
/*
|
||||
* WebFXTreeAbstractNode class
|
||||
*/
|
||||
|
||||
function WebFXTreeAbstractNode(sText, sAction, sTarget) {
|
||||
this.childNodes = [];
|
||||
this.id = webFXTreeHandler.getId();
|
||||
this.text = sText || webFXTreeConfig.defaultText;
|
||||
this.action = sAction || webFXTreeConfig.defaultAction;
|
||||
this.targetWindow = sTarget || webFXTreeConfig.defaultTarget;
|
||||
this._last = false;
|
||||
webFXTreeHandler.all[this.id] = this;
|
||||
}
|
||||
|
||||
WebFXTreeAbstractNode.prototype.add = function (node) {
|
||||
node.parentNode = this;
|
||||
this.childNodes[this.childNodes.length] = node;
|
||||
var root = this;
|
||||
if (this.childNodes.length >=2) {
|
||||
this.childNodes[this.childNodes.length -2]._last = false;
|
||||
}
|
||||
while (root.parentNode) { root = root.parentNode; }
|
||||
if (root.rendered) {
|
||||
if (this.childNodes.length >= 2) {
|
||||
document.getElementById(this.childNodes[this.childNodes.length -2].id + '-plus').src = ((this.childNodes[this.childNodes.length -2].folder)?webFXTreeConfig.tMinusIcon:webFXTreeConfig.tIcon);
|
||||
if (this.childNodes[this.childNodes.length -2].folder) {
|
||||
this.childNodes[this.childNodes.length -2].plusIcon = webFXTreeConfig.tPlusIcon;
|
||||
this.childNodes[this.childNodes.length -2].minusIcon = webFXTreeConfig.tMinusIcon;
|
||||
}
|
||||
this.childNodes[this.childNodes.length -2]._last = false;
|
||||
}
|
||||
this._last = true;
|
||||
var foo = this;
|
||||
while (foo.parentNode) {
|
||||
for (var i = 0; i < foo.parentNode.childNodes.length; i++) {
|
||||
if (foo.id == foo.parentNode.childNodes[i].id) { break; }
|
||||
}
|
||||
if (++i == foo.parentNode.childNodes.length) { foo.parentNode._last = true; }
|
||||
else { foo.parentNode._last = false; }
|
||||
foo = foo.parentNode;
|
||||
}
|
||||
document.getElementById(this.id + '-cont').insertAdjacentHTML("beforeEnd", node.toString());
|
||||
if ((!this.folder) && (!this.openIcon)) {
|
||||
this.icon = webFXTreeConfig.folderIcon;
|
||||
this.openIcon = webFXTreeConfig.openFolderIcon;
|
||||
}
|
||||
this.folder = true;
|
||||
this.indent();
|
||||
this.expand();
|
||||
}
|
||||
return node;
|
||||
}
|
||||
|
||||
WebFXTreeAbstractNode.prototype.toggle = function() {
|
||||
if (this.folder) {
|
||||
if (this.open) { this.collapse(); }
|
||||
else { this.expand(); }
|
||||
}
|
||||
}
|
||||
|
||||
WebFXTreeAbstractNode.prototype.select = function() {
|
||||
document.getElementById(this.id + '-anchor').focus();
|
||||
}
|
||||
|
||||
WebFXTreeAbstractNode.prototype.focus = function() {
|
||||
webFXTreeHandler.selected = this;
|
||||
if ((this.openIcon) && (webFXTreeHandler.behavior != 'classic')) { document.getElementById(this.id + '-icon').src = this.openIcon; }
|
||||
document.getElementById(this.id + '-anchor').style.backgroundColor = 'highlight';
|
||||
document.getElementById(this.id + '-anchor').style.color = 'highlighttext';
|
||||
document.getElementById(this.id + '-anchor').focus();
|
||||
}
|
||||
|
||||
WebFXTreeAbstractNode.prototype.blur = function() {
|
||||
if ((this.openIcon) && (webFXTreeHandler.behavior != 'classic')) { document.getElementById(this.id + '-icon').src = this.icon; }
|
||||
document.getElementById(this.id + '-anchor').style.backgroundColor = 'transparent';
|
||||
document.getElementById(this.id + '-anchor').style.color = 'menutext';
|
||||
}
|
||||
|
||||
WebFXTreeAbstractNode.prototype.doExpand = function() {
|
||||
if (webFXTreeHandler.behavior == 'classic') { document.getElementById(this.id + '-icon').src = this.openIcon; }
|
||||
if (this.childNodes.length) { document.getElementById(this.id + '-cont').style.display = 'block'; }
|
||||
this.open = true;
|
||||
webFXTreeHandler.cookies.setCookie(this.id.substr(18,this.id.length - 18), '1');
|
||||
}
|
||||
|
||||
WebFXTreeAbstractNode.prototype.doCollapse = function() {
|
||||
if (webFXTreeHandler.behavior == 'classic') { document.getElementById(this.id + '-icon').src = this.icon; }
|
||||
if (this.childNodes.length) { document.getElementById(this.id + '-cont').style.display = 'none'; }
|
||||
this.open = false;
|
||||
webFXTreeHandler.cookies.setCookie(this.id.substr(18,this.id.length - 18), '0');
|
||||
}
|
||||
|
||||
WebFXTreeAbstractNode.prototype.expandAll = function() {
|
||||
this.expandChildren();
|
||||
if ((this.folder) && (!this.open)) { this.expand(); }
|
||||
}
|
||||
|
||||
WebFXTreeAbstractNode.prototype.expandChildren = function() {
|
||||
for (var i = 0; i < this.childNodes.length; i++) {
|
||||
this.childNodes[i].expandAll();
|
||||
} }
|
||||
|
||||
WebFXTreeAbstractNode.prototype.collapseAll = function() {
|
||||
if ((this.folder) && (this.open)) { this.collapse(); }
|
||||
this.collapseChildren();
|
||||
}
|
||||
|
||||
WebFXTreeAbstractNode.prototype.collapseChildren = function() {
|
||||
for (var i = 0; i < this.childNodes.length; i++) {
|
||||
this.childNodes[i].collapseAll();
|
||||
} }
|
||||
|
||||
WebFXTreeAbstractNode.prototype.indent = function(lvl, del, last, level) {
|
||||
/*
|
||||
* Since we only want to modify items one level below ourself,
|
||||
* and since the rightmost indentation position is occupied by
|
||||
* the plus icon we set this to -2
|
||||
*/
|
||||
if (lvl == null) { lvl = -2; }
|
||||
var state = 0;
|
||||
for (var i = this.childNodes.length - 1; i >= 0 ; i--) {
|
||||
state = this.childNodes[i].indent(lvl + 1, del, last, level);
|
||||
if (state) { return; }
|
||||
}
|
||||
if (del) {
|
||||
if (level >= this._level) {
|
||||
if (this.folder) {
|
||||
document.getElementById(this.id + '-plus').src = (this.open)?webFXTreeConfig.lMinusIcon:webFXTreeConfig.lPlusIcon;
|
||||
this.plusIcon = webFXTreeConfig.lPlusIcon;
|
||||
this.minusIcon = webFXTreeConfig.lMinusIcon;
|
||||
}
|
||||
else { document.getElementById(this.id + '-plus').src = webFXTreeConfig.lIcon; }
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
var foo = document.getElementById(this.id + '-indent-' + lvl);
|
||||
if (foo) {
|
||||
if ((del) && (last)) { foo._last = true; }
|
||||
if (foo._last) { foo.src = webFXTreeConfig.blankIcon; }
|
||||
else { foo.src = webFXTreeConfig.iIcon; }
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
/*
|
||||
* WebFXTree class
|
||||
*/
|
||||
|
||||
function WebFXTree(sText, sAction, sBehavior, sIcon, sOpenIcon) {
|
||||
this.base = WebFXTreeAbstractNode;
|
||||
this.base(sText, sAction);
|
||||
this.icon = sIcon || webFXTreeConfig.rootIcon;
|
||||
this.openIcon = sOpenIcon || webFXTreeConfig.openRootIcon;
|
||||
/* Defaults to open */
|
||||
this.open = (webFXTreeHandler.cookies.getCookie(this.id.substr(18,this.id.length - 18)) == '0')?false:true;
|
||||
this.folder = true;
|
||||
this.rendered = false;
|
||||
if (!webFXTreeHandler.behavior) { webFXTreeHandler.behavior = sBehavior || webFXTreeConfig.defaultBehavior; }
|
||||
this.targetWindow = 'right';
|
||||
}
|
||||
|
||||
WebFXTree.prototype = new WebFXTreeAbstractNode;
|
||||
|
||||
WebFXTree.prototype.setBehavior = function (sBehavior) {
|
||||
webFXTreeHandler.behavior = sBehavior;
|
||||
};
|
||||
|
||||
WebFXTree.prototype.getBehavior = function (sBehavior) {
|
||||
return webFXTreeHandler.behavior;
|
||||
};
|
||||
|
||||
WebFXTree.prototype.getSelected = function() {
|
||||
if (webFXTreeHandler.selected) { return webFXTreeHandler.selected; }
|
||||
else { return null; }
|
||||
}
|
||||
|
||||
WebFXTree.prototype.remove = function() { }
|
||||
|
||||
WebFXTree.prototype.expand = function() {
|
||||
this.doExpand();
|
||||
}
|
||||
|
||||
WebFXTree.prototype.collapse = function() {
|
||||
this.focus();
|
||||
this.doCollapse();
|
||||
}
|
||||
|
||||
WebFXTree.prototype.getFirst = function() {
|
||||
return null;
|
||||
}
|
||||
|
||||
WebFXTree.prototype.getLast = function() {
|
||||
return null;
|
||||
}
|
||||
|
||||
WebFXTree.prototype.getNextSibling = function() {
|
||||
return null;
|
||||
}
|
||||
|
||||
WebFXTree.prototype.getPreviousSibling = function() {
|
||||
return null;
|
||||
}
|
||||
|
||||
WebFXTree.prototype.keydown = function(key) {
|
||||
if (key == 39) { this.expand(); return false; }
|
||||
if (key == 37) { this.collapse(); return false; }
|
||||
if ((key == 40) && (this.open)) { this.childNodes[0].select(); return false; }
|
||||
return true;
|
||||
}
|
||||
|
||||
WebFXTree.prototype.toString = function() {
|
||||
var str = "<div id=\"" + this.id + "\" ondblclick=\"webFXTreeHandler.toggle(this);\" class=\"webfx-tree-item\" onkeydown=\"return webFXTreeHandler.keydown(this)\">";
|
||||
str += "<img id=\"" + this.id + "-icon\" class=\"webfx-tree-icon\" src=\"" + ((webFXTreeHandler.behavior == 'classic' && this.open)?this.openIcon:this.icon) + "\" onclick=\"webFXTreeHandler.select(this);\"><a href=\"" + this.action + "\" id=\"" + this.id + "-anchor\" target=\"" + this.targetWindow + "\" onfocus=\"webFXTreeHandler.focus(this);\" onblur=\"webFXTreeHandler.blur(this);\">" + this.text + "</a></div>";
|
||||
str += "<div id=\"" + this.id + "-cont\" class=\"webfx-tree-container\" style=\"display: " + ((this.open)?'block':'none') + ";\">";
|
||||
for (var i = 0; i < this.childNodes.length; i++) {
|
||||
str += this.childNodes[i].toString(i, this.childNodes.length);
|
||||
}
|
||||
str += "</div>";
|
||||
this.rendered = true;
|
||||
return str;
|
||||
};
|
||||
|
||||
/*
|
||||
* WebFXTreeItem class
|
||||
*/
|
||||
|
||||
function WebFXTreeItem(sText, sAction, eParent, sIcon, sOpenIcon) {
|
||||
this.base = WebFXTreeAbstractNode;
|
||||
this.base(sText, sAction);
|
||||
/* Defaults to close */
|
||||
this.open = (webFXTreeHandler.cookies.getCookie(this.id.substr(18,this.id.length - 18)) == '1')?true:false;
|
||||
if (eParent) { eParent.add(this); }
|
||||
if (sIcon) { this.icon = sIcon; }
|
||||
if (sOpenIcon) { this.openIcon = sOpenIcon; }
|
||||
}
|
||||
|
||||
WebFXTreeItem.prototype = new WebFXTreeAbstractNode;
|
||||
|
||||
WebFXTreeItem.prototype.remove = function() {
|
||||
var parentNode = this.parentNode;
|
||||
var prevSibling = this.getPreviousSibling(true);
|
||||
var nextSibling = this.getNextSibling(true);
|
||||
var folder = this.parentNode.folder;
|
||||
var last = ((nextSibling) && (nextSibling.parentNode) && (nextSibling.parentNode.id == parentNode.id))?false:true;
|
||||
this.getPreviousSibling().focus();
|
||||
this._remove();
|
||||
if (parentNode.childNodes.length == 0) {
|
||||
parentNode.folder = false;
|
||||
parentNode.open = false;
|
||||
}
|
||||
if (last) {
|
||||
if (parentNode.id == prevSibling.id) {
|
||||
document.getElementById(parentNode.id + '-icon').src = webFXTreeConfig.fileIcon;
|
||||
}
|
||||
else { }
|
||||
}
|
||||
if ((!prevSibling.parentNode) || (prevSibling.parentNode != parentNode)) {
|
||||
parentNode.indent(null, true, last, this._level);
|
||||
}
|
||||
if (document.getElementById(prevSibling.id + '-plus')) {
|
||||
if (nextSibling) {
|
||||
if ((parentNode == prevSibling) && (parentNode.getNextSibling)) { document.getElementById(prevSibling.id + '-plus').src = webFXTreeConfig.tIcon; }
|
||||
else if (nextSibling.parentNode != prevSibling) { document.getElementById(prevSibling.id + '-plus').src = webFXTreeConfig.lIcon; }
|
||||
}
|
||||
else { document.getElementById(prevSibling.id + '-plus').src = webFXTreeConfig.lIcon; }
|
||||
}
|
||||
}
|
||||
|
||||
WebFXTreeItem.prototype._remove = function() {
|
||||
for (var i = this.childNodes.length - 1; i >= 0; i--) {
|
||||
this.childNodes[i]._remove();
|
||||
}
|
||||
for (var i = 0; i < this.parentNode.childNodes.length; i++) {
|
||||
if (this.id == this.parentNode.childNodes[i].id) {
|
||||
for (var j = i; j < this.parentNode.childNodes.length; j++) {
|
||||
this.parentNode.childNodes[i] = this.parentNode.childNodes[i+1]
|
||||
}
|
||||
this.parentNode.childNodes.length = this.parentNode.childNodes.length - 1;
|
||||
if (i + 1 == this.parentNode.childNodes.length) { this.parentNode._last = true; }
|
||||
}
|
||||
}
|
||||
webFXTreeHandler.all[this.id] = null;
|
||||
if (document.getElementById(this.id)) {
|
||||
document.getElementById(this.id).innerHTML = "";
|
||||
document.getElementById(this.id).removeNode();
|
||||
}
|
||||
}
|
||||
|
||||
WebFXTreeItem.prototype.expand = function() {
|
||||
this.doExpand();
|
||||
document.getElementById(this.id + '-plus').src = this.minusIcon;
|
||||
}
|
||||
|
||||
WebFXTreeItem.prototype.collapse = function() {
|
||||
this.focus();
|
||||
this.doCollapse();
|
||||
document.getElementById(this.id + '-plus').src = this.plusIcon;
|
||||
}
|
||||
|
||||
WebFXTreeItem.prototype.getFirst = function() {
|
||||
return this.childNodes[0];
|
||||
}
|
||||
|
||||
WebFXTreeItem.prototype.getLast = function() {
|
||||
if (this.childNodes[this.childNodes.length - 1].open) { return this.childNodes[this.childNodes.length - 1].getLast(); }
|
||||
else { return this.childNodes[this.childNodes.length - 1]; }
|
||||
}
|
||||
|
||||
WebFXTreeItem.prototype.getNextSibling = function() {
|
||||
for (var i = 0; i < this.parentNode.childNodes.length; i++) {
|
||||
if (this == this.parentNode.childNodes[i]) { break; }
|
||||
}
|
||||
if (++i == this.parentNode.childNodes.length) { return this.parentNode.getNextSibling(); }
|
||||
else { return this.parentNode.childNodes[i]; }
|
||||
}
|
||||
|
||||
WebFXTreeItem.prototype.getPreviousSibling = function(b) {
|
||||
for (var i = 0; i < this.parentNode.childNodes.length; i++) {
|
||||
if (this == this.parentNode.childNodes[i]) { break; }
|
||||
}
|
||||
if (i == 0) { return this.parentNode; }
|
||||
else {
|
||||
if ((this.parentNode.childNodes[--i].open) || (b && this.parentNode.childNodes[i].folder)) { return this.parentNode.childNodes[i].getLast(); }
|
||||
else { return this.parentNode.childNodes[i]; }
|
||||
} }
|
||||
|
||||
WebFXTreeItem.prototype.keydown = function(key) {
|
||||
if ((key == 39) && (this.folder)) {
|
||||
if (!this.open) { this.expand(); return false; }
|
||||
else { this.getFirst().select(); return false; }
|
||||
}
|
||||
else if (key == 37) {
|
||||
if (this.open) { this.collapse(); return false; }
|
||||
else { this.parentNode.select(); return false; }
|
||||
}
|
||||
else if (key == 40) {
|
||||
if (this.open) { this.getFirst().select(); return false; }
|
||||
else {
|
||||
var sib = this.getNextSibling();
|
||||
if (sib) { sib.select(); return false; }
|
||||
} }
|
||||
else if (key == 38) { this.getPreviousSibling().select(); return false; }
|
||||
return true;
|
||||
}
|
||||
|
||||
WebFXTreeItem.prototype.toString = function (nItem, nItemCount) {
|
||||
var foo = this.parentNode;
|
||||
var indent = '';
|
||||
if (nItem + 1 == nItemCount) { this.parentNode._last = true; }
|
||||
var i = 0;
|
||||
while (foo.parentNode) {
|
||||
foo = foo.parentNode;
|
||||
indent = "<img id=\"" + this.id + "-indent-" + i + "\" src=\"" + ((foo._last)?webFXTreeConfig.blankIcon:webFXTreeConfig.iIcon) + "\">" + indent;
|
||||
i++;
|
||||
}
|
||||
this._level = i;
|
||||
if (this.childNodes.length) { this.folder = 1; }
|
||||
else { this.open = false; }
|
||||
if ((this.folder) || (webFXTreeHandler.behavior != 'classic')) {
|
||||
if (!this.icon) { this.icon = webFXTreeConfig.folderIcon; }
|
||||
if (!this.openIcon) { this.openIcon = webFXTreeConfig.openFolderIcon; }
|
||||
}
|
||||
else if (!this.icon) { this.icon = webFXTreeConfig.fileIcon; }
|
||||
var label = this.text;
|
||||
label = label.replace('<', '<');
|
||||
label = label.replace('>', '>');
|
||||
var str = "<div id=\"" + this.id + "\" ondblclick=\"webFXTreeHandler.toggle(this);\" class=\"webfx-tree-item\" onkeydown=\"return webFXTreeHandler.keydown(this)\">";
|
||||
str += indent;
|
||||
str += "<img id=\"" + this.id + "-plus\" src=\"" + ((this.folder)?((this.open)?((this.parentNode._last)?webFXTreeConfig.lMinusIcon:webFXTreeConfig.tMinusIcon):((this.parentNode._last)?webFXTreeConfig.lPlusIcon:webFXTreeConfig.tPlusIcon)):((this.parentNode._last)?webFXTreeConfig.lIcon:webFXTreeConfig.tIcon)) + "\" onclick=\"webFXTreeHandler.toggle(this);\">"
|
||||
str += "<img id=\"" + this.id + "-icon\" src=\"" + ((webFXTreeHandler.behavior == 'classic' && this.open)?this.openIcon:this.icon) + "\" onclick=\"webFXTreeHandler.select(this);\"><a href=\"" + this.action + "\" id=\"" + this.id + "-anchor\" target=\"" + this.targetWindow + "\" onfocus=\"webFXTreeHandler.focus(this);\" onblur=\"webFXTreeHandler.blur(this);\">" + label + "</a></div>";
|
||||
str += "<div id=\"" + this.id + "-cont\" class=\"webfx-tree-container\" style=\"display: " + ((this.open)?'block':'none') + ";\">";
|
||||
for (var i = 0; i < this.childNodes.length; i++) {
|
||||
str += this.childNodes[i].toString(i,this.childNodes.length);
|
||||
}
|
||||
str += "</div>";
|
||||
this.plusIcon = ((this.parentNode._last)?webFXTreeConfig.lPlusIcon:webFXTreeConfig.tPlusIcon);
|
||||
this.minusIcon = ((this.parentNode._last)?webFXTreeConfig.lMinusIcon:webFXTreeConfig.tMinusIcon);
|
||||
return str;
|
||||
}
|
||||
|
||||
@@ -1,181 +1,181 @@
|
||||
a { color: #000090; text-decoration: none; }
|
||||
a:hover, a:active, a:focus { color: highlighttext; background-color: highlight; text-decoration: none; }
|
||||
|
||||
body { background : #FFFFFF; }
|
||||
body, table { font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 10pt; }
|
||||
|
||||
a img { border: 0px; }
|
||||
|
||||
/* Page layout/boxes */
|
||||
|
||||
.info-box { }
|
||||
.info-box-title { margin: 1em 0em 0em 0em; font-weight: normal; font-size: 14pt; color: #999999; border-bottom: 2px solid #999999; }
|
||||
.info-box-body { border: 1px solid #999999; padding: .5em; }
|
||||
.nav-bar { font-size: 8pt; white-space: nowrap; text-align: right; padding: .2em; margin: 0em 0em 1em 0em; }
|
||||
|
||||
.oddrow { background-color: #F8F8F8; border: 1px solid #AAAAAA; padding: .5em; margin-bottom: 1em}
|
||||
.evenrow { border: 1px solid #AAAAAA; padding: .5em; margin-bottom: 1em}
|
||||
|
||||
.page-body { max-width: 800px; margin: auto; }
|
||||
.tree { }
|
||||
|
||||
/* Index formatting classes */
|
||||
|
||||
.index-item-body { margin-top: .5em; margin-bottom: .5em}
|
||||
.index-item-description { margin-top: .25em }
|
||||
.index-item-details { font-weight: normal; font-style: italic; font-size: 8pt }
|
||||
.index-letter-section { background-color: #EEEEEE; border: 1px dotted #999999; padding: .5em; margin-bottom: 1em}
|
||||
.index-letter-title { font-size: 12pt; font-weight: bold }
|
||||
.index-letter-menu { text-align: center; margin: 1em }
|
||||
.index-letter { font-size: 12pt }
|
||||
|
||||
/* Docbook classes */
|
||||
|
||||
.description {}
|
||||
.short-description { font-weight: bold; color: #666666; }
|
||||
.tags { padding-left: 0em; margin-left: 3em; color: #666666; list-style-type: square; }
|
||||
.parameters { padding-left: 0em; margin-left: 3em; color: #014fbe; list-style-type: square; }
|
||||
.redefinitions { font-size: 8pt; padding-left: 0em; margin-left: 2em; }
|
||||
.package { font-weight: bold; }
|
||||
.package-title { font-weight: bold; font-size: 14pt; border-bottom: 1px solid black }
|
||||
.sub-package { font-weight: bold; }
|
||||
.tutorial { border-width: thin; border-color: #0066ff; }
|
||||
.tutorial-nav-box { width: 100%; border: 1px solid #999999; background-color: #F8F8F8; }
|
||||
|
||||
/* Generic formatting */
|
||||
|
||||
.field { font-weight: bold; }
|
||||
.detail { font-size: 8pt; }
|
||||
.notes { font-style: italic; font-size: 8pt; }
|
||||
.separator { background-color: #999999; height: 2px; }
|
||||
.warning { color: #FF6600; }
|
||||
.disabled { font-style: italic; color: #999999; }
|
||||
|
||||
/* Code elements */
|
||||
|
||||
.line-number { }
|
||||
|
||||
.class-table { width: 100%; }
|
||||
.class-table-header { border-bottom: 1px dotted #666666; text-align: left}
|
||||
.class-name { color: #0000AA; font-weight: bold; }
|
||||
|
||||
.method-summary { color: #009000; padding-left: 1em; font-size: 8pt; }
|
||||
.method-header { }
|
||||
.method-definition { margin-bottom: .2em }
|
||||
.method-title { color: #009000; font-weight: bold; }
|
||||
.method-name { font-weight: bold; }
|
||||
.method-signature { font-size: 85%; color: #666666; margin: .5em 0em }
|
||||
.method-result { font-style: italic; }
|
||||
|
||||
.var-summary { padding-left: 1em; font-size: 8pt; }
|
||||
.var-header { }
|
||||
.var-title { color: #014fbe; margin-bottom: .3em }
|
||||
.var-type { font-style: italic; }
|
||||
.var-name { font-weight: bold; }
|
||||
.var-default {}
|
||||
.var-description { font-weight: normal; color: #000000; }
|
||||
|
||||
.include-title { color: #014fbe;}
|
||||
.include-type { font-style: italic; }
|
||||
.include-name { font-weight: bold; }
|
||||
|
||||
.const-title { color: #FF6600; }
|
||||
.const-name { font-weight: bold; }
|
||||
|
||||
/* Syntax highlighting */
|
||||
|
||||
.src-code { font-family: 'Courier New', Courier, monospace; font-weight: normal; }
|
||||
.src-line { font-family: 'Courier New', Courier, monospace; font-weight: normal; }
|
||||
|
||||
.src-code a:link { padding: 1px; text-decoration: underline; color: #0000DD; }
|
||||
.src-code a:visited { text-decoration: underline; color: #0000DD; }
|
||||
.src-code a:active { background-color: #FFFF66; color: #008000; }
|
||||
.src-code a:hover { background-color: #FFFF66; text-decoration: overline underline; color: #008000; }
|
||||
|
||||
.src-comm { color: #666666; }
|
||||
.src-id { color: #FF6600; font-style: italic; }
|
||||
.src-inc { color: #0000AA; font-weight: bold; }
|
||||
.src-key { color: #0000AA; font-weight: bold; }
|
||||
.src-num { color: #CC0000; }
|
||||
.src-str { color: #CC0000; }
|
||||
.src-sym { }
|
||||
.src-var { }
|
||||
|
||||
.src-php { font-weight: bold; }
|
||||
|
||||
.src-doc { color: #666666; }
|
||||
.src-doc-close-template { color: #666666 }
|
||||
.src-doc-coretag { color: #008000; }
|
||||
.src-doc-inlinetag {}
|
||||
.src-doc-internal {}
|
||||
.src-doc-tag { color: #0080CC; }
|
||||
.src-doc-template { color: #666666 }
|
||||
.src-doc-type { font-style: italic; color: #444444 }
|
||||
.src-doc-var { color: #444444 }
|
||||
|
||||
.tute-tag { color: #009999 }
|
||||
.tute-attribute-name { color: #0000FF }
|
||||
.tute-attribute-value { color: #0099FF }
|
||||
.tute-entity { font-weight: bold; }
|
||||
.tute-comment { font-style: italic }
|
||||
.tute-inline-tag { color: #636311; font-weight: bold }
|
||||
|
||||
/* tutorial */
|
||||
|
||||
.authors { }
|
||||
.author { font-style: italic; font-weight: bold }
|
||||
.author-blurb { margin: .5em 0em .5em 2em; font-size: 85%; font-weight: normal; font-style: normal }
|
||||
.example { border: 1px dashed #999999; background-color: #EEEEEE; padding: .5em; }
|
||||
.listing { border: 1px dashed #999999; background-color: #EEEEEE; padding: .5em; white-space: nowrap; }
|
||||
.release-info { font-size: 85%; font-style: italic; margin: 1em 0em }
|
||||
.ref-title-box { }
|
||||
.ref-title { }
|
||||
.ref-purpose { font-style: italic; color: #666666 }
|
||||
.ref-synopsis { }
|
||||
.title { font-weight: bold; border-bottom: 1px solid #999999; color: #999999; }
|
||||
.cmd-synopsis { margin: 1em 0em }
|
||||
.cmd-title { font-weight: bold }
|
||||
.toc { margin-left: 2em; padding-left: 0em }
|
||||
|
||||
/*------------------------------------------------------------------------------
|
||||
webfx-tree
|
||||
------------------------------------------------------------------------------*/
|
||||
|
||||
.webfx-tree-container {
|
||||
margin: 0px;
|
||||
padding: 0px;
|
||||
white-space: nowrap;
|
||||
font: icon;
|
||||
}
|
||||
|
||||
.webfx-tree-item {
|
||||
padding: 0px;
|
||||
margin: 0px;
|
||||
color: black;
|
||||
white-space: nowrap;
|
||||
font: icon;
|
||||
}
|
||||
|
||||
.webfx-tree-item a {
|
||||
margin-left: 3px;
|
||||
padding: 1px 2px 1px 2px;
|
||||
color: black;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
.webfx-tree-item a:hover, .webfx-tree-item a:active {
|
||||
color: highlighttext;
|
||||
background: highlight;
|
||||
text-decoration: none
|
||||
}
|
||||
|
||||
.webfx-tree-item img {
|
||||
vertical-align: middle;
|
||||
border: 0px;
|
||||
}
|
||||
|
||||
.webfx-tree-icon {
|
||||
width: 16px;
|
||||
height: 16px;
|
||||
}
|
||||
|
||||
a { color: #000090; text-decoration: none; }
|
||||
a:hover, a:active, a:focus { color: highlighttext; background-color: highlight; text-decoration: none; }
|
||||
|
||||
body { background : #FFFFFF; }
|
||||
body, table { font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 10pt; }
|
||||
|
||||
a img { border: 0px; }
|
||||
|
||||
/* Page layout/boxes */
|
||||
|
||||
.info-box { }
|
||||
.info-box-title { margin: 1em 0em 0em 0em; font-weight: normal; font-size: 14pt; color: #999999; border-bottom: 2px solid #999999; }
|
||||
.info-box-body { border: 1px solid #999999; padding: .5em; }
|
||||
.nav-bar { font-size: 8pt; white-space: nowrap; text-align: right; padding: .2em; margin: 0em 0em 1em 0em; }
|
||||
|
||||
.oddrow { background-color: #F8F8F8; border: 1px solid #AAAAAA; padding: .5em; margin-bottom: 1em}
|
||||
.evenrow { border: 1px solid #AAAAAA; padding: .5em; margin-bottom: 1em}
|
||||
|
||||
.page-body { max-width: 800px; margin: auto; }
|
||||
.tree { }
|
||||
|
||||
/* Index formatting classes */
|
||||
|
||||
.index-item-body { margin-top: .5em; margin-bottom: .5em}
|
||||
.index-item-description { margin-top: .25em }
|
||||
.index-item-details { font-weight: normal; font-style: italic; font-size: 8pt }
|
||||
.index-letter-section { background-color: #EEEEEE; border: 1px dotted #999999; padding: .5em; margin-bottom: 1em}
|
||||
.index-letter-title { font-size: 12pt; font-weight: bold }
|
||||
.index-letter-menu { text-align: center; margin: 1em }
|
||||
.index-letter { font-size: 12pt }
|
||||
|
||||
/* Docbook classes */
|
||||
|
||||
.description {}
|
||||
.short-description { font-weight: bold; color: #666666; }
|
||||
.tags { padding-left: 0em; margin-left: 3em; color: #666666; list-style-type: square; }
|
||||
.parameters { padding-left: 0em; margin-left: 3em; color: #014fbe; list-style-type: square; }
|
||||
.redefinitions { font-size: 8pt; padding-left: 0em; margin-left: 2em; }
|
||||
.package { font-weight: bold; }
|
||||
.package-title { font-weight: bold; font-size: 14pt; border-bottom: 1px solid black }
|
||||
.sub-package { font-weight: bold; }
|
||||
.tutorial { border-width: thin; border-color: #0066ff; }
|
||||
.tutorial-nav-box { width: 100%; border: 1px solid #999999; background-color: #F8F8F8; }
|
||||
|
||||
/* Generic formatting */
|
||||
|
||||
.field { font-weight: bold; }
|
||||
.detail { font-size: 8pt; }
|
||||
.notes { font-style: italic; font-size: 8pt; }
|
||||
.separator { background-color: #999999; height: 2px; }
|
||||
.warning { color: #FF6600; }
|
||||
.disabled { font-style: italic; color: #999999; }
|
||||
|
||||
/* Code elements */
|
||||
|
||||
.line-number { }
|
||||
|
||||
.class-table { width: 100%; }
|
||||
.class-table-header { border-bottom: 1px dotted #666666; text-align: left}
|
||||
.class-name { color: #0000AA; font-weight: bold; }
|
||||
|
||||
.method-summary { color: #009000; padding-left: 1em; font-size: 8pt; }
|
||||
.method-header { }
|
||||
.method-definition { margin-bottom: .2em }
|
||||
.method-title { color: #009000; font-weight: bold; }
|
||||
.method-name { font-weight: bold; }
|
||||
.method-signature { font-size: 85%; color: #666666; margin: .5em 0em }
|
||||
.method-result { font-style: italic; }
|
||||
|
||||
.var-summary { padding-left: 1em; font-size: 8pt; }
|
||||
.var-header { }
|
||||
.var-title { color: #014fbe; margin-bottom: .3em }
|
||||
.var-type { font-style: italic; }
|
||||
.var-name { font-weight: bold; }
|
||||
.var-default {}
|
||||
.var-description { font-weight: normal; color: #000000; }
|
||||
|
||||
.include-title { color: #014fbe;}
|
||||
.include-type { font-style: italic; }
|
||||
.include-name { font-weight: bold; }
|
||||
|
||||
.const-title { color: #FF6600; }
|
||||
.const-name { font-weight: bold; }
|
||||
|
||||
/* Syntax highlighting */
|
||||
|
||||
.src-code { font-family: 'Courier New', Courier, monospace; font-weight: normal; }
|
||||
.src-line { font-family: 'Courier New', Courier, monospace; font-weight: normal; }
|
||||
|
||||
.src-code a:link { padding: 1px; text-decoration: underline; color: #0000DD; }
|
||||
.src-code a:visited { text-decoration: underline; color: #0000DD; }
|
||||
.src-code a:active { background-color: #FFFF66; color: #008000; }
|
||||
.src-code a:hover { background-color: #FFFF66; text-decoration: overline underline; color: #008000; }
|
||||
|
||||
.src-comm { color: #666666; }
|
||||
.src-id { color: #FF6600; font-style: italic; }
|
||||
.src-inc { color: #0000AA; font-weight: bold; }
|
||||
.src-key { color: #0000AA; font-weight: bold; }
|
||||
.src-num { color: #CC0000; }
|
||||
.src-str { color: #CC0000; }
|
||||
.src-sym { }
|
||||
.src-var { }
|
||||
|
||||
.src-php { font-weight: bold; }
|
||||
|
||||
.src-doc { color: #666666; }
|
||||
.src-doc-close-template { color: #666666 }
|
||||
.src-doc-coretag { color: #008000; }
|
||||
.src-doc-inlinetag {}
|
||||
.src-doc-internal {}
|
||||
.src-doc-tag { color: #0080CC; }
|
||||
.src-doc-template { color: #666666 }
|
||||
.src-doc-type { font-style: italic; color: #444444 }
|
||||
.src-doc-var { color: #444444 }
|
||||
|
||||
.tute-tag { color: #009999 }
|
||||
.tute-attribute-name { color: #0000FF }
|
||||
.tute-attribute-value { color: #0099FF }
|
||||
.tute-entity { font-weight: bold; }
|
||||
.tute-comment { font-style: italic }
|
||||
.tute-inline-tag { color: #636311; font-weight: bold }
|
||||
|
||||
/* tutorial */
|
||||
|
||||
.authors { }
|
||||
.author { font-style: italic; font-weight: bold }
|
||||
.author-blurb { margin: .5em 0em .5em 2em; font-size: 85%; font-weight: normal; font-style: normal }
|
||||
.example { border: 1px dashed #999999; background-color: #EEEEEE; padding: .5em; }
|
||||
.listing { border: 1px dashed #999999; background-color: #EEEEEE; padding: .5em; white-space: nowrap; }
|
||||
.release-info { font-size: 85%; font-style: italic; margin: 1em 0em }
|
||||
.ref-title-box { }
|
||||
.ref-title { }
|
||||
.ref-purpose { font-style: italic; color: #666666 }
|
||||
.ref-synopsis { }
|
||||
.title { font-weight: bold; border-bottom: 1px solid #999999; color: #999999; }
|
||||
.cmd-synopsis { margin: 1em 0em }
|
||||
.cmd-title { font-weight: bold }
|
||||
.toc { margin-left: 2em; padding-left: 0em }
|
||||
|
||||
/*------------------------------------------------------------------------------
|
||||
webfx-tree
|
||||
------------------------------------------------------------------------------*/
|
||||
|
||||
.webfx-tree-container {
|
||||
margin: 0px;
|
||||
padding: 0px;
|
||||
white-space: nowrap;
|
||||
font: icon;
|
||||
}
|
||||
|
||||
.webfx-tree-item {
|
||||
padding: 0px;
|
||||
margin: 0px;
|
||||
color: black;
|
||||
white-space: nowrap;
|
||||
font: icon;
|
||||
}
|
||||
|
||||
.webfx-tree-item a {
|
||||
margin-left: 3px;
|
||||
padding: 1px 2px 1px 2px;
|
||||
color: black;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
.webfx-tree-item a:hover, .webfx-tree-item a:active {
|
||||
color: highlighttext;
|
||||
background: highlight;
|
||||
text-decoration: none
|
||||
}
|
||||
|
||||
.webfx-tree-item img {
|
||||
vertical-align: middle;
|
||||
border: 0px;
|
||||
}
|
||||
|
||||
.webfx-tree-icon {
|
||||
width: 16px;
|
||||
height: 16px;
|
||||
}
|
||||
|
||||
|
||||
@@ -1,40 +1,40 @@
|
||||
<?xml version="1.0" encoding="iso-8859-1"?>
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<!-- template designed by Marco Von Ballmoos -->
|
||||
<title></title>
|
||||
<link rel="stylesheet" href="media/stylesheet.css" />
|
||||
<link rel="stylesheet" href="media/banner.css" />
|
||||
<meta http-equiv='Content-Type' content='text/html; charset=iso-8859-1'/>
|
||||
</head>
|
||||
<body>
|
||||
<div class="banner">
|
||||
<div class="banner-title">Krumo</div>
|
||||
<div class="banner-menu">
|
||||
<form>
|
||||
<table cellpadding="0" cellspacing="0" style="width: 100%">
|
||||
<tr>
|
||||
<td>
|
||||
|
||||
<a href="ric_INSTALL.html" target="right">INSTALL</a>
|
||||
|
||||
| <a href="ric_LICENSE.html" target="right">LICENSE</a>
|
||||
|
||||
| <a href="ric_README.html" target="right">README</a>
|
||||
|
||||
| <a href="ric_TODO.html" target="right">TODO</a>
|
||||
|
||||
| <a href="ric_VERSION.html" target="right">VERSION</a>
|
||||
|
||||
</td>
|
||||
<td style="width: 2em"> </td>
|
||||
<td style="text-align: right">
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>␍
|
||||
<?xml version="1.0" encoding="iso-8859-1"?>
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<!-- template designed by Marco Von Ballmoos -->
|
||||
<title></title>
|
||||
<link rel="stylesheet" href="media/stylesheet.css"/>
|
||||
<link rel="stylesheet" href="media/banner.css"/>
|
||||
<meta http-equiv='Content-Type' content='text/html; charset=iso-8859-1'/>
|
||||
</head>
|
||||
<body>
|
||||
<div class="banner">
|
||||
<div class="banner-title">Krumo</div>
|
||||
<div class="banner-menu">
|
||||
<form>
|
||||
<table cellpadding="0" cellspacing="0" style="width: 100%">
|
||||
<tr>
|
||||
<td>
|
||||
|
||||
<a href="ric_INSTALL.html" target="right">INSTALL</a>
|
||||
|
||||
| <a href="ric_LICENSE.html" target="right">LICENSE</a>
|
||||
|
||||
| <a href="ric_README.html" target="right">README</a>
|
||||
|
||||
| <a href="ric_TODO.html" target="right">TODO</a>
|
||||
|
||||
| <a href="ric_VERSION.html" target="right">VERSION</a>
|
||||
|
||||
</td>
|
||||
<td style="width: 2em"> </td>
|
||||
<td style="text-align: right">
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -1,49 +1,50 @@
|
||||
<?xml version="1.0" encoding="iso-8859-1"?>
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<!-- template designed by Marco Von Ballmoos -->
|
||||
<title></title>
|
||||
<link rel="stylesheet" href="media/stylesheet.css" />
|
||||
</head>
|
||||
<body>
|
||||
␍<div align="center"><h1>INSTALL</h1></div>
|
||||
<pre>
|
||||
------------------------------------------------------------------------------
|
||||
|
||||
SETUP: How to install Krumo ?
|
||||
|
||||
------------------------------------------------------------------------------
|
||||
|
||||
In order to use Krumo you have to put it on your (development) server, and
|
||||
include it in your script. You can put it somewhere in the INCLUDE_PATH, or
|
||||
specify the full path to the "class.krumo.php" file.
|
||||
|
||||
You have to modify the "krumo.ini" file too. It is the configuration file for
|
||||
Krumo. The first option is choosing a skin:
|
||||
|
||||
[skin]
|
||||
selected = "orange"
|
||||
|
||||
The value for this setting has to be the name of one of the sub-folders from the
|
||||
"Krumo/skins/" folder. If the value provided for the skin results in not finding
|
||||
the skin, the `default` skin will be used instead.
|
||||
|
||||
The second option is used to set the correct web path to the folder where Krumo
|
||||
is installed. This is used in order to make the images from Krumo's CSS skins
|
||||
web-accessible.
|
||||
|
||||
[css]
|
||||
url = "http://www.example.com/Krumo/"
|
||||
|
||||
So far those two are the only configuration options.
|
||||
|
||||
All the CSS files ("skin.css") from the "Krumo/skins/" sub-folders must have the
|
||||
proper permissions in order to be readable from Krumo. Same applies for
|
||||
"krumo.ini" and "krumo.js" files.
|
||||
</pre>
|
||||
<p class="notes" id="credit">
|
||||
Documentation generated on Sun, 02 Dec 2007 09:43:22 +0200 by <a href="http://www.phpdoc.org" target="_blank">phpDocumentor 1.4.0a2</a>
|
||||
</p>
|
||||
</body>
|
||||
</html>␍
|
||||
<?xml version="1.0" encoding="iso-8859-1"?>
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<!-- template designed by Marco Von Ballmoos -->
|
||||
<title></title>
|
||||
<link rel="stylesheet" href="media/stylesheet.css"/>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div align="center"><h1>INSTALL</h1></div>
|
||||
<pre>
|
||||
------------------------------------------------------------------------------
|
||||
|
||||
SETUP: How to install Krumo ?
|
||||
|
||||
------------------------------------------------------------------------------
|
||||
|
||||
In order to use Krumo you have to put it on your (development) server, and
|
||||
include it in your script. You can put it somewhere in the INCLUDE_PATH, or
|
||||
specify the full path to the "class.krumo.php" file.
|
||||
|
||||
You have to modify the "krumo.ini" file too. It is the configuration file for
|
||||
Krumo. The first option is choosing a skin:
|
||||
|
||||
[skin]
|
||||
selected = "orange"
|
||||
|
||||
The value for this setting has to be the name of one of the sub-folders from the
|
||||
"Krumo/skins/" folder. If the value provided for the skin results in not finding
|
||||
the skin, the `default` skin will be used instead.
|
||||
|
||||
The second option is used to set the correct web path to the folder where Krumo
|
||||
is installed. This is used in order to make the images from Krumo's CSS skins
|
||||
web-accessible.
|
||||
|
||||
[css]
|
||||
url = "http://www.example.com/Krumo/"
|
||||
|
||||
So far those two are the only configuration options.
|
||||
|
||||
All the CSS files ("skin.css") from the "Krumo/skins/" sub-folders must have the
|
||||
proper permissions in order to be readable from Krumo. Same applies for
|
||||
"krumo.ini" and "krumo.js" files.
|
||||
</pre>
|
||||
<p class="notes" id="credit">
|
||||
Documentation generated on Sun, 02 Dec 2007 09:43:22 +0200 by <a href="http://www.phpdoc.org" target="_blank">phpDocumentor 1.4.0a2</a>
|
||||
</p>
|
||||
</body>
|
||||
</html>
|
||||
|
||||