Changeset 1490
- Timestamp:
- 12/23/07 22:25:28 (7 months ago)
- Files:
-
- releases/0.9/doc/INSTALL (modified) (1 diff)
- releases/0.9/doc/install.doc (modified) (previous)
- releases/0.9/doc/install.pdf (modified) (previous)
- releases/0.9/install.php (modified) (1 diff)
- releases/0.9/mod/blog/lib.php (modified) (1 diff)
- releases/0.9/mod/community/lib.php (modified) (1 diff)
- releases/0.9/mod/community/lib/community_member_add.php (modified) (3 diffs)
- releases/0.9/mod/contenttoolbar/contenttoolbar_video_wizard.php (modified) (1 diff)
- releases/0.9/mod/contenttoolbar/js/edit.js (modified) (1 diff)
- releases/0.9/mod/contenttoolbar/lib.php (modified) (2 diffs)
- releases/0.9/mod/contenttoolbar/templates/video_widget.html (modified) (1 diff)
- releases/0.9/mod/contenttoolbar/templates/video_wizard.html (modified) (1 diff)
- releases/0.9/mod/elggadmin/index.php (modified) (1 diff)
- releases/0.9/mod/elggadmin/lib/elggadmin.inc.php (modified) (3 diffs)
- releases/0.9/mod/invite/lib.php (modified) (2 diffs)
- releases/0.9/mod/invite/lib/invite_actions.php (modified) (1 diff)
- releases/0.9/mod/pages/index.php (modified) (2 diffs)
- releases/0.9/mod/pages/lib.php (modified) (2 diffs)
- releases/0.9/mod/pages/lib/pages.inc.php (modified) (6 diffs)
- releases/0.9/mod/users/lib.php (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
releases/0.9/doc/INSTALL
r1425 r1490 1 Please read install.pdf for 0.9 installation and upgrading instructions. 1 For the latest version of these instructions, please check the wiki at: 2 http://elgg.org/mod/mediawiki/wiki/index.php/Installation_guide 3 4 1. Before You Begin 5 1.1 Requirements 6 Elgg currently requires the Apache web server with mod_rewrite installed and the ability to send emails, plus PHP 4.3+ and MySQL 4.1+ (Postgres can also be used, though plugin support is limited). 7 Your Apache configuration must have AllowOverride set to All for the directory where Elgg is installed. 8 You must have the GD library installed. 9 For internationalization, you must have gettext support installed on your server and compiled into PHP. If this is not found, Elgg will revert to English. 10 You must have a database on the database server ready for use by Elgg. A mySQL database and user can be created in a number of ways. If you are unfamiliar with setting up mySQL, this tutorial (based on cpanel hosting from a popular hosting company, but applicable to many hosting services) may help: 11 http://pluto3.lunarpages.com/tutorials/tutorial_files/cpanel_xv2_mysql.htm 12 During the setup process, be sure to write down your database name, database user name, and password. They will be needed during the elgg setup. 13 If you have any problems installing, please consider joining http://elgg.org/ and viewing the installation support community there. 14 15 Note that if URLs like /username/weblog/ are not working for you, this is an issue with mod_rewrite, and is an error in your Apache installation rather than Elgg. A mod_rewrite primer (written by a third party) is available here: 16 http://www.kuro5hin.org/story/2003/7/31/2335/08552#setup 17 18 19 1.2 Recommendations 20 21 For this release, it is recommended that MySQL has cacheing enabled. Please see the MySQL documentation for instructions, or ask your system administrator. 22 23 1.3 Time estimate 24 25 Assuming you have satisfied the requirements in 1.1, the installation should not take longer than 20 minutes. This may vary depending on the connection speed to your web server. 26 1.4 Upgrading 27 Elgg 0.9 marks some changes in the file structure and initial setup. For a first time installation all should work well via the installer which will guide you through the process. Users upgrading their installation from 0.8.* should take care since the main configuration file (config.php) and .htaccess will get overwritten. Make sure to create appropriate backups. 28 Steps: 29 Backup your existing Elgg home directory 30 Backup your Elgg mySQL database 31 Remove all your existing Elgg files. If you have installed Elgg in a sub-directory (e.g. /elgg/) then this can be as simple as renaming /elgg/ to /elgg_old/. If elgg has been installed to the root of your web server, consider creating an /elgg_old/ directory and moving all the files from your root folder into it. This step is important as it ensures that your directory is clean for Elgg and that no legacy files from Elgg 0.8 are left behind 32 Install Elgg as though it were a new installation (see steps below). Use the same database and username/password that your previous version of Elgg used (you can check your old config.php which you just moved into /elgg_old/ to be sure) 33 Once the install is complete (and you get to the front page of your new Elgg install), you still have some steps to complete: 34 It is likely that if you are upgrading from an Elgg version 0.8 or less, your dataroot will need to be changed to point to where you set it up in your previous version. To do this, open your old config.php file (/elgg_old/config.php) and find out the path to your dataroot. Copy this setting and enter it into your new config.php file 35 (e.g. $CFG->dataroot = '/home/yourdomain/user_data/';) 36 37 Configuration options for dataroot and other settings can also be managed via the Administrative interface (which has moved in Elgg 0.9 from being at /_elggadmin to where it is now login as news user and find the Administration link, then choose Site Administration) 38 39 Reinstalling plugins: If you had installed 3rd party plugins in your previous version of Elgg, they will have to be reinstalled/configured. As structures have changed since v0.8, it is highly recommended that you check for the latest versions of any plugins you use and consult with the plugin author to be certain they have been updated for 0.9+. 40 Any customization you made to .htaccess (e.g. to override custom php settings, or setup rewrite rules for plugins will also have to be redone) 41 42 43 2. INSTALLING FILES 44 WARNING IF YOU ARE UPGRADING AN EXISTING ELGG INSTALLATION, YOU SHOULD FOLLOW THE UPGRADING INSTRUCTIONS (1.4) 45 TO ENSURE YOU DO NOT LOOSE DATA. 46 47 48 2.1 Deploy Elgg framework 49 Move all files from the distribution package to your web server root directory. This is normally called 'public_html', 'httpdocs' or 'www'. If you like, you can place Elgg in a subdirectory of this; commonly, people will place it in one called 'elgg'. 50 2.2 Set Permissions 51 In order to continue your setup, you must first adjust permissions of the file config.php and the 'data' folder to allow the web server to write information from the visual installer. 52 Begin with your 'data' directory and assign the correct privileges. To do this you may be able to right click on the folder and set the "CHMOD" value, or you may have to use your command line terminal, navigate to the folder, and type: 53 chmod 777 data 54 55 56 Next will be adjusting the permissions of the main configuration file 'config.php': 57 chmod 666 config.php 58 59 A beginners guide to CHMOD is available here: 60 http://www.stadtaus.com/en/tutorials/chmod-ftp-file-permissions.php 61 62 If you have not yet completed this step, the visual installer will prompt you to correct it before going on. 63 64 65 66 3. SETTING UP ELGG 67 3.1 Configuring the Elgg framework 68 The main configuration Ellg is stored in a file called config.php. Elgg now includes a Visual installer to help you setup this config file quickly and easily. 69 To begin, navigate with your browser to where people will access your site (e.g. http://www.mysite.com/elgg/). You will be greeted by a welcome message telling you that some additional steps are required. This page will let you edit the required settings for the Elgg framework. 70 Take time to read each requested item carefully, as an error in any field could create difficulty with your site. 71 When you are finished, click save (make sure you wrote down all the username/password information!). The installer will try to save the settings to config.php (if it cant, it will instruct you on what to do). 72 Typical Settings 73 74 75 A series of prompts may be displayed (indicating various sub-components were setup successfully). 76 77 Congratulations. You should now be able to visit your Elgg site 78 79 80 81 3.3 Customize your default homepage and other settings 82 Once you've completed the visual installer, you can complete your installation via the 'Administration' link and choose the 'Site administration' option. 83 84 3.4 Log in 85 By default, the first user in your Elgg instance is named News. You should now be ready to login (username: news, password is what you set it to in the visual installer). You should log in and change this as soon as possible. All new users will automatically list the news account as a friend, so you should not delete it. This user owns all the public custom templates. 86 The news account comes with full administrator access, whether you've upgraded or installed fresh. To change this (we recommend that you do as a matter of urgency for security reasons), create a second account, and give that account administrator privileges using the administrator panel. 87 88 3.5 Elgg in a subdirectory and 404 errors 89 If you are running Elgg in a subdirectory of your web site, and when browsing around it pages seem to be missing, you may also need to edit the .htaccess file. Below the "RewriteEngine on" line, add a line: 90 RewriteBase /subdirectory/ 91 changing subdirectory to the location of Elgg relative to your overall web 92 For example, if your site is http://example.com/ and Elgg is in http://example.com/sites/elgg/ try adding the line: RewriteBase /sites/elgg/ 93 If you're not running Elgg in a subdirectory on your site, but still getting lots of 404 errors beyond the front page, you could instead try: 94 RewriteBase / 95 3.6 Tell us about it! 96 Because Elgg is free and open source, we often don't hear about new installations. You don't have to, but we'd love it if you'd tell us what you're doing with it. Consider joining the community of Elgg users at http://elgg.org and sharing your experiences. 97 98 4. FURTHER CUSTOMISATION AND DEVELOPMENTS 99 Please keep an eye on http://elgg.org/ for forthcoming developments within Elgg, including documentation on how to alter your default templates and writing new functionality into the system. 100 Elgg has a rich API for developing enhancements and a strong community of users that contribute to its development. Numerous plugins are available to extend and refine your Elgg installation. To find out what plugins already exist, or to get involved with the development community (coders, designers, and documenters are all welcome), head over to http://elgg.org and find out how you can get involved. 101 releases/0.9/install.php
r1473 r1490 541 541 require_once($CFG->dirroot.'lib/adodb/adodb.inc.php'); 542 542 543 $db = &ADONewConnection($CFG->dbtype); 544 $ADODB_FETCH_MODE = ADODB_FETCH_ASSOC; 545 546 $result = @$db->Connect($CFG->dbhost, $CFG->dbuser, $CFG->dbpass, $CFG->dbname); 547 548 if (!$result) { 549 unset($db); 543 if (empty($CFG->dbhost) || empty($CFG->dbuser) || empty($CFG->dbname)) { 544 $result = false; 545 } else { 546 $db = &ADONewConnection($CFG->dbtype); 547 $ADODB_FETCH_MODE = ADODB_FETCH_ASSOC; 548 549 $result = @$db->Connect($CFG->dbhost, $CFG->dbuser, $CFG->dbpass, $CFG->dbname); 550 551 if (!$result) { 552 unset($db); 553 } 550 554 } 551 555 releases/0.9/mod/blog/lib.php
r1453 r1490 338 338 339 339 if (is_array($posts) && !empty ($posts)) { 340 foreach ($posts as $post) { 341 //$body .= run("weblogs:posts:view", $post); 342 343 $postedby = __gettext("Posted by"); 344 $commentsStr = __gettext("Comments"); 345 $date = gmdate("H:i",$post->posted); 346 $username = user_info('username', $post->owner); 347 $anyComments = __gettext("comment(s)"); 348 349 $body .= '<h3><a href="' . $CFG->wwwroot . user_info('username', $post->weblog) . '/weblog/' . $post->ident . '.html">' . $post->title . '</a></h3>'; 350 $body .= $postedby . ' ' . $username . ' (' . $date . ')<br><br>'; 351 $body .= $post->body . '<br>'; 352 353 if (!isset($_SESSION['comment_cache'][$post->ident]) || (time() - $_SESSION['comment_cache'][$post->ident]->created > 120)) { 354 $numcomments = count_records('weblog_comments','post_id',$post->ident); 355 $_SESSION['comment_cache'][$post->ident]->created = time(); 356 $_SESSION['comment_cache'][$post->ident]->data = $numcomments; 357 } 358 $numcomments = $_SESSION['comment_cache'][$post->ident]->data; 359 $comments = "<a href=\"".url.$username."/weblog/{$post->ident}.html\">$numcomments $anyComments</a>"; 360 361 $body .= $comments; 362 } 340 foreach ($posts as $post) { 341 $body .= run("weblogs:posts:view", $post); 342 } 363 343 } 364 344 $body .= '</div>'; releases/0.9/mod/community/lib.php
r1453 r1490 142 142 143 143 // Add membership requests to the personal network page 144 if (defined("context") && context == "network" && $page_owner == $_SESSION['userid']) {144 if (defined("context") && context == "network" && isloggedin() && $page_owner == $_SESSION['userid']) { 145 145 $PAGE->menu_sub[] = array( 'name' => 'membership:invites', 146 146 'html' => a_href( "{$CFG->wwwroot}{$username}/communities/invitations", releases/0.9/mod/community/lib/community_member_add.php
r1248 r1490 7 7 * Created on May 7, 2007 8 8 * 9 * @author Diego Andr és Ramírez Aragón <diego@somosmas.org>10 * @copyright Corporaci ón Somos más - 20079 * @author Diego Andrᅵs Ramᅵrez Aragᅵn <diego@somosmas.org> 10 * @copyright Corporaciᅵn Somos mᅵs - 2007 11 11 */ 12 12 global $USER; … … 29 29 if (user_flag_get("emailnotifications", $owner->ident)) { 30 30 $message_body= sprintf(__gettext("%s has joined %s!\n\nTo visit this user's profile, click on the following link:\n\n\t" . 31 "%s\n\nTo view all community members, click here:\n\n\t%s\n\nRegards,\n\nThe %s team."), $_SESSION['name'], $friend->name, $CFG->wwwroot . user_info("username", $USER->ident) . "/", $CFG->wwwroot . "_communities/members.php?owner=" . $friend_id, $CFG->sitename);31 "%s\n\nTo view all community members, click here:\n\n\t%s\n\nRegards,\n\nThe %s team."), $_SESSION['name'], $friend->name, $CFG->wwwroot . user_info("username", $USER->ident) . "/", $CFG->wwwroot . $friend->username . "/community/members", $CFG->sitename); 32 32 $title= sprintf(__gettext("New %s member"), $friend->name); 33 33 notify_user($owner->ident, $title, $message_body); … … 38 38 if (user_flag_get("emailnotifications", $owner->ident)) { 39 39 $message_body= sprintf(__gettext("%s has applied to join %s!\n\nTo visit this user's profile, click on the following link:\n\n\t" . 40 "%s\n\nTo view all membership requests and approve or deny this user, click here:\n\n\t%s\n\nRegards,\n\nThe %s team."), $_SESSION['name'], $friend->name, $CFG->wwwroot . user_info("username", $USER->ident) . "/", $CFG->wwwroot . "_communities/members.php?owner=" . $friend_id, $CFG->sitename);40 "%s\n\nTo view all membership requests and approve or deny this user, click here:\n\n\t%s\n\nRegards,\n\nThe %s team."), $_SESSION['name'], $friend->name, $CFG->wwwroot . user_info("username", $USER->ident) . "/", $CFG->wwwroot . $friend->username . "/community/members", $CFG->sitename); 41 41 $title= sprintf(__gettext("New %s member request"), $friend->name); 42 42 notify_user($owner->ident, $title, $message_body); releases/0.9/mod/contenttoolbar/contenttoolbar_video_wizard.php
r1081 r1490 26 26 27 27 $explanation = __gettext("To embed videos from popular sites like Google Video and Youtube, obtain the embed HTML, paste it in the following form and configure your preferred size:"); 28 $video_url_label = __gettext("Video URL");28 $video_url_label = __gettext("Video embed code"); 29 29 $video_size_label = __gettext("Video size"); 30 30 $video_button_label = __gettext("Insert video"); releases/0.9/mod/contenttoolbar/js/edit.js
r1248 r1490 338 338 339 339 /** 340 * Auto detect embed object size 341 * @author Rolando Espinoza La fuente <rho@prosoftpeople.com> 342 */ 343 function parseSize(text, wid, hid) { 344 var embedpattern = /<(embed|object)[\w\s\"=;:.&\?\/-]*>.*<\/(embed|object)>/; 345 var sizew = /width=\"(\d+)\"/; 346 var sizeh = /height=\"(\d+)\"/; 347 var embed = text.match(embedpattern); 348 349 if(embed==null) return null; 350 351 width = sizew.exec(embed[0]); 352 height = sizeh.exec(embed[0]); 353 354 if (width!=null) {document.getElementById(wid).value=width[1];} 355 if (height!=null) {document.getElementById(hid).value=height[1];} 356 357 } 358 359 /** 340 360 * Called by to insert a new video string 341 361 * @param string edid input_field id releases/0.9/mod/contenttoolbar/lib.php
r1147 r1490 49 49 50 50 function contenttoolbar_widget_edit($widget) { 51 global $CFG, $page_owner; 51 global $CFG, $page_owner, $metatags; 52 53 $metatags .= '<script type="text/javascript" src="'.$CFG->wwwroot.'mod/contenttoolbar/js/edit.js"><!-- edit.js --></script>'; 52 54 53 55 $video_url = widget_get_data("video_url",$widget->ident); … … 60 62 $body = "<h2>" . __gettext("Video widget") . "</h2>"; 61 63 $explanation = __gettext("To embed videos from popular sites like Google Video and Youtube, obtain the embed HTML, paste it in the following form and configure your preferred size:"); 62 $video_url_label = __gettext("Video URL");64 $video_url_label = __gettext("Video embed code"); 63 65 $video_size_label = __gettext("Video size"); 64 66 $video_button_label = __gettext("Insert Video"); releases/0.9/mod/contenttoolbar/templates/video_widget.html
r1081 r1490 6 6 <tr> 7 7 <td><label>{{video_url_label}}:</label></td> 8 <td><textarea id="video_url" name="widget_data[video_url]" cols="50" rows="6" >{{video_url}}</textarea></td>8 <td><textarea id="video_url" name="widget_data[video_url]" cols="50" rows="6" onblur="parseSize(this.value,'video_width','video_height');" >{{video_url}}</textarea></td> 9 9 </tr> 10 10 <tr> releases/0.9/mod/contenttoolbar/templates/video_wizard.html
r1081 r1490 16 16 <tr> 17 17 <td><label>{{video_url_label}}:</label></td> 18 <td><textarea id="video_url" cols="40" rows="5" ></textarea></td>18 <td><textarea id="video_url" cols="40" rows="5" onblur="parseSize(this.value,'video_width','video_height');"></textarea></td> 19 19 </tr> 20 20 <tr> releases/0.9/mod/elggadmin/index.php
r1418 r1490 9 9 10 10 define('context', 'elggadmin'); 11 require( './../../includes.php');11 require(dirname(dirname(dirname(__FILE__))) . '/includes.php'); 12 12 13 13 $request = elggadmin_parse_request(); releases/0.9/mod/elggadmin/lib/elggadmin.inc.php
r1473 r1490 442 442 require($CFG->dirroot . 'mod/elggadmin/lib/configdef.php'); 443 443 444 $current = elggadmin_get_currentconfig( );444 $current = elggadmin_get_currentconfig($CFG->dirroot); 445 445 $defined = get_object_vars($current); 446 446 foreach ($defined as $name => $value) { … … 453 453 } 454 454 455 function elggadmin_get_currentconfig( ) {455 function elggadmin_get_currentconfig($dirroot) { 456 456 $CFG = new StdClass; 457 @include( '../../../config.php');457 @include($dirroot.'config.php'); 458 458 459 459 return $CFG; … … 472 472 } 473 473 474 if ( $is_array($attrs)) {474 if (is_array($attrs)) { 475 475 $_attrs = array_merge($attrs, $_attrs); 476 476 } releases/0.9/mod/invite/lib.php
r1438 r1490 5 5 * Created on Apr 18, 2007 6 6 * 7 * @author Diego Andr és Ramírez Aragón <diego@somosmas.org>7 * @author Diego Andrᅵs Ramᅵrez Aragᅵn <diego@somosmas.org> 8 8 */ 9 9 … … 40 40 global $PAGE; 41 41 42 if (defined('context') && context == 'network' ) {42 if (defined('context') && context == 'network' && isloggedin()) { 43 43 if (!maxusers_limit()) { 44 44 $PAGE->menu_sub[] = array( 'name' => 'invite:friend', releases/0.9/mod/invite/lib/invite_actions.php
r1438 r1490 52 52 } 53 53 } else { 54 $user_url = "<a href=\"".$CFG->wwwroot.$account->username."\">".$account->username."</a>"; 55 $messages[] = sprintf(__gettext("User %s already has that email address. Invitation not sent."),$user_url); 54 $messages[] = __gettext("The email address is already in use. Invitation not sent."); 56 55 } 57 56 } else { releases/0.9/mod/pages/index.php
r1473 r1490 8 8 */ 9 9 10 //FIXME: workaround for walledgarden 11 if (isset($_GET['owner']) && $_GET['owner'] == -1) { 12 define('context', 'external'); 13 define('pages_external', true); 14 } 10 15 11 16 include(dirname(dirname(dirname(__FILE__))) . '/includes.php'); … … 14 19 if (page_owner() > 0) { 15 20 define('context', 'pages'); 16 } else {17 define('context', 'external');18 define('pages_external', true);19 21 } 20 22 releases/0.9/mod/pages/lib.php
r1473 r1490 325 325 if (is_array($elements)) { 326 326 foreach ($elements as $e) { 327 //FIXME: fix parent 328 if ($e->ident == $e->parent) { 329 $e->parent = 0; 330 } 331 327 332 if ($e->parent == 0) { 328 333 if (!isset($menu[$e->weight])) { … … 354 359 $parent = $li[0]; 355 360 $childs = isset($li[1]) ? $li[1] : null; 361 362 // workaround 363 if (!$parent) { 364 // this never should happen 365 trigger_error(__FUNCTION__.": invalid menu element", E_USER_NOTICE); 366 continue; 367 } 356 368 357 369 // set owner releases/0.9/mod/pages/lib/pages.inc.php
r1473 r1490 102 102 $rs = true; 103 103 } else { 104 $oldparent = get_field('pages', 'parent', 'ident', $page->ident); 104 105 $rs = update_record('pages', $page); 105 106 if ($rs) { 106 107 $messages[] = __gettext('Page updated successfully'); 108 109 // check parent menu changes 110 // If it's top menu, update childs 111 if ($page->parent != $oldparent && $oldparent == 0) { 112 // set childs' parent to 0 (top menu) 113 execute_sql("UPDATE {$CFG->prefix}pages SET parent=0 WHERE parent={$page->ident} AND owner={$owner}", false); 114 } 107 115 } else { 108 116 $messages[] = __gettext('Error updating the page. Please try again.'); … … 137 145 pages_header_redirect(pages_url($owner, 'pages::')); 138 146 } else { 139 trigger_error(__FUNCTION__.": Trying to delete an non-existent page (page id: $page_id, owner: $owner)" );147 trigger_error(__FUNCTION__.": Trying to delete an non-existent page (page id: $page_id, owner: $owner)", E_USER_NOTICE); 140 148 } 141 149 } … … 157 165 $content = trim(optional_param('page-content')); 158 166 } 159 $content = html_entity_decode($content);160 167 $name = trim(optional_param('page-name')); 161 168 $parent = optional_param('menu-parent', 0, PARAM_INT); … … 279 286 $page = get_record('pages', 'uri', $page_name, 'owner', $owner); 280 287 288 //FIXME: auto correct parent 289 if ($page->ident == $page->parent) { 290 $_page = new StdClass; 291 $_page->ident = $page->ident; 292 $_page->parent = 0; 293 update_record('pages', $_page); 294 unset($_page); 295 } 296 281 297 if (isset($page->ident) && permissions_check('pages::access', $page->ident) || permissions_check('pages::edit', $owner)) { 282 298 if (isset($page->content)) { … … 427 443 $input_content = pages_html_wrap('label', __gettext('Content:'), array('for' => 'page-content')); 428 444 $input_content .= pages_html_wrap( 429 'textarea', html entities($page->content),445 'textarea', htmlspecialchars($page->content, ENT_NOQUOTES, 'utf-8'), // prevent parsing html tags like <textarea> 430 446 array( 431 447 'id' => 'page-content', … … 471 487 472 488 if (isset($page->ident)) { 473 //$menu_parents = get_records_sql("SELECT ident,name FROM {$CFG->prefix}pages WHERE parent=? AND ident<>?", array(0, $page->ident)); 474 $menu_parents = get_records_select('pages', 'parent=? AND ident=? AND owner=?', array(0, $page->ident, $owner)); 489 $menu_parents = get_records_select('pages', 'parent=? AND ident<>? AND owner=?', array(0, $page->ident, $owner)); 475 490 } else { 476 //$menu_parents = get_records_sql("SELECT ident,name FROM {$CFG->prefix}pages WHERE parent=?", array(0));477 491 $menu_parents = get_records_select('pages', 'parent=? AND owner=?', array(0, $owner)); 478 492 } releases/0.9/mod/users/lib.php
r1397 r1490 33 33 // $function['display:log_on_pane'][] = dirname(__FILE__) . "/lib/current_user_info.php"; 34 34 $function['display:log_on_pane'][] = dirname(__FILE__) . "/lib/function_number_of_users.php"; 35 // $function['display:sidebar'][] = dirname(__FILE__) . "/lib/current_user_info.php";36 $function['display:sidebar'][] = dirname(__FILE__) . "/lib/function_number_of_users.php";35 //$function['display:sidebar'][] = dirname(__FILE__) . "/lib/current_user_info.php"; 36 //$function['display:sidebar'][] = dirname(__FILE__) . "/lib/function_number_of_users.php"; 37 37 38 38 // Access level select
