[geeklog-cvs] geeklog: restore from test
geeklog-cvs at lists.geeklog.net
geeklog-cvs at lists.geeklog.net
Sat Jan 17 16:51:39 EST 2009
details: http://project.geeklog.net/cgi-bin/hgweb.cgi/rev/7e5123157b92
changeset: 6689:7e5123157b92
user: blaine
date: Sat Jan 17 16:51:25 2009 -0500
description:
restore from test
diffstat:
1 file changed, 526 insertions(+)
system/lib-custom.php | 526 +++++++++++++++++++++++++++++++++++++++++++++++++
diffs (truncated from 530 to 300 lines):
diff -r 084a3b8097cd -r 7e5123157b92 system/lib-custom.php
--- a/system/lib-custom.php Sat Jan 17 16:46:33 2009 -0500
+++ b/system/lib-custom.php Sat Jan 17 16:51:25 2009 -0500
@@ -0,0 +1,526 @@
+<?php
+
+/* Reminder: always indent with 4 spaces (no tabs). */
+// +---------------------------------------------------------------------------+
+// | Geeklog 1.5 |
+// +---------------------------------------------------------------------------+
+// | lib-custom.php |
+// | |
+// | Your very own custom Geeklog library. |
+// | |
+// | This is the file where you should put all of your custom code. When |
+// | possible you should not alter lib-common.php but, instead, put code here. |
+// | This will make upgrading to future versions of Geeklog easier for you |
+// | because you will always be guaranteed that the Geeklog developers will |
+// | NOT add required code to this file. |
+// | |
+// | NOTE: we have already gone through the trouble of making sure that we |
+// | always include this file when lib-common.php is included some place so |
+// | you will have access to lib-common.php. It follows then that you should |
+// | not include lib-common.php in this file. |
+// | |
+// +---------------------------------------------------------------------------+
+// | Copyright (C) 2000-2008 by the following authors: |
+// | |
+// | Authors: Tony Bibbs - tony AT tonybibbs DOT com |
+// | Blaine Lang - blaine AT portalparts DOT com |
+// | Dirk Haun - dirk AT haun-online DOT de |
+// +---------------------------------------------------------------------------+
+// | |
+// | This program is free software; you can redistribute it and/or |
+// | modify it under the terms of the GNU General Public License |
+// | as published by the Free Software Foundation; either version 2 |
+// | of the License, or (at your option) any later version. |
+// | |
+// | This program is distributed in the hope that it will be useful, |
+// | but WITHOUT ANY WARRANTY; without even the implied warranty of |
+// | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
+// | GNU General Public License for more details. |
+// | |
+// | You should have received a copy of the GNU General Public License |
+// | along with this program; if not, write to the Free Software Foundation, |
+// | Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. |
+// | |
+// +---------------------------------------------------------------------------+
+//
+// $Id: lib-custom.php,v 1.43 2008/09/21 08:37:11 dhaun Exp $
+
+if (strpos(strtolower($_SERVER['PHP_SELF']), 'lib-custom.php') !== false) {
+ die('This file can not be used on its own!');
+}
+
+// You can use this global variable to print useful messages to the errorlog
+// using COM_errorLog(). To see an example of how to do this, look in
+// lib-common.php and see how $_COM_VERBOSE was used throughout the code
+$_CST_VERBOSE = false;
+
+/**
+* Sample PHP Block function
+*
+* this is a sample function used by a PHP block. This will show the rights that
+* a user has in the "What you have access to" block.
+*
+*/
+function phpblock_showrights()
+{
+ global $_RIGHTS, $_CST_VERBOSE;
+
+ if ($_CST_VERBOSE) {
+ COM_errorLog('**** Inside phpblock_showrights in lib-custom.php ****', 1);
+ }
+
+ $retval .= ' ';
+
+ for ($i = 0; $i < count($_RIGHTS); $i++) {
+ $retval .= '<li>' . $_RIGHTS[$i] . '</li>' . LB;
+ }
+
+ if ($_CST_VERBOSE) {
+ COM_errorLog('**** Leaving phpblock_showrights in lib-custom.php ****', 1);
+ }
+
+ return $retval;
+}
+
+
+/**
+* Include any code in this function that will be called by the internal CRON API
+* The interval between runs is determined by $_CONF['cron_schedule_interval']
+*/
+function CUSTOM_runScheduledTask() {
+
+}
+
+
+/**
+* Example of custom function that can be used to handle a login error.
+* Only active with custom registration mode enabled
+* Used if you have a custom front page and need to trap and reformat any error messages
+* This example redirects to the front page with a extra passed variable plus the message
+* Note: Message could be a string but in this case maps to $MESSAGE[81] as a default - edit in language file
+*/
+function CUSTOM_loginErrorHandler($msg='') {
+ global $_CONF,$MESSAGE;
+
+ if ($msg > 0) {
+ $msg = $msg;
+ } elseif ($msg == '') {
+ $msg = 81;
+ }
+ $retval = COM_refresh($_CONF['site_url'] .'/index.php?mode=loginfail&msg='.$msg);
+ echo $retval;
+ exit;
+}
+
+
+/**
+* Include any code in this function to add custom template variables.
+* Initially, this function is only called in the COM_siteHeader function to set
+* header.thtml variables
+*/
+function CUSTOM_templateSetVars ($templatename, &$template)
+{
+ if ($templatename == 'header') {
+ // define a {hello_world} variable which displays "Hello, world!"
+ $template->set_var ('hello_world', 'Hello, world!');
+ }
+}
+
+
+/* Sample Custom Member Functions to create and update Custom Membership registration and profile
+
+ Note1: Enable CustomRegistration Feature in the configuration
+ $_CONF['custom_registration'] = true; // Set to true if you have custom code
+
+ Note2: This example requires a template file called memberdetail.thtml to be
+ located under the theme_dir/custom directory.
+ Sample is provided under /system with the distribution.
+
+ Note3: Optional parm $bulkimport added so that if your using the [Batch Add] feature,
+ you can execute different logic if required.
+
+ Functions have been provided that are called from the Core Geeklog user and admin functions
+ - This works with User Moderation as well
+ - Admin will see the new registration info when checking a member's profile only
+ - All other users will see the standard User profile with the optional extended custom information
+ - Customization requires changes to a few of the core template files to add {customfields} variables
+ - See notes below in the custom function about the template changes
+*/
+
+/* Create any new records in additional tables you may have added */
+/* Update any fields in the core GL tables for this user as needed */
+/* Called when user is first created */
+function CUSTOM_userCreate ($uid,$bulkimport=false)
+{
+ global $_CONF, $_TABLES;
+
+ // Ensure all data is prepared correctly before inserts, quotes may need to
+ // be escaped with addslashes()
+ $email = '';
+ if (isset ($_POST['email'])) {
+ $email = COM_applyFilter ($_POST['email']);
+ $email = addslashes ($email);
+ }
+
+ $homepage = '';
+ if (isset ($_POST['homepage'])) {
+ $homepage = COM_applyFilter ($_POST['homepage']);
+ $homepage = addslashes ($homepage);
+ }
+
+ $fullname = '';
+ if (isset ($_POST['fullname'])) {
+ // COM_applyFilter would strip special characters, e.g. quotes, so
+ // we only strip HTML
+ $fullname = strip_tags ($_POST['fullname']);
+ $fullname = addslashes ($fullname);
+ }
+
+ // Note: In this case, we can trust the $uid variable to contain the new
+ // account's uid.
+ DB_query("UPDATE {$_TABLES['users']} SET email = '$email', homepage = '$homepage', fullname = '$fullname' WHERE uid = $uid");
+
+ return true;
+}
+
+// Delete any records from custom tables you may have used
+function CUSTOM_userDelete($uid)
+{
+ return true;
+}
+
+/* Called from users.php - when user is displaying a member profile.
+ * This function can now return any extra fields that need to be shown.
+ * Output is then replaced in {customfields} -- This variable needs to be added
+ * to your templates
+ * Template: path_layout/users/profile/profile.thtml
+ */
+function CUSTOM_userDisplay($uid)
+{
+ global $_CONF, $_TABLES;
+
+ $var = "Value from custom table";
+ $retval .= '<tr>
+ <td align="right"><b>Custom Fields:</b></td>
+ <td>' . $var .'</td>
+ </tr>';
+
+ return $retval;
+}
+
+
+/* Function called when editing user profile. */
+/* Called from usersettings.php - when user is eding their own profile */
+/* and from admin/user.php when admin is editing a member profile */
+/* This function can now return any extra fields that need to be shown for editing */
+/* Output is then replaced in {customfields} -- This variable needs to be added to your templates */
+/* User: path_layout/preferences/profile.thtml and Admin: path_layout/admin/user/edituser.thtml */
+
+/* This example shows adding the Cookie Timeout setting and extra text field */
+/* As noted: You need to add the {customfields} template variable. */
+/* For the edituser.thtml - maybe it would be added about the {group_edit} variable. */
+
+function CUSTOM_userEdit($uid)
+{
+ global $_CONF, $_TABLES;
+
+ $var = "Value from custom table";
+ $cookietimeout = DB_getitem($_TABLES['users'], 'cookietimeout', $uid);
+ $selection = '<select name="cooktime">' . LB;
+ $selection .= COM_optionList ($_TABLES['cookiecodes'], 'cc_value,cc_descr', $cookietimeout, 0);
+ $selection .= '</select>';
+ $retval .= '<tr>
+ <td align="right">Remember user for:</td>
+ <td>' . $selection .'</td>
+ </tr>';
+ $retval .= '<tr>
+ <td align="right"><b>Custom Fields:</b></td>
+ <td><input type="text" name="custom1" size="50" value="' . $var .'"' . XHTML . '></td>
+ </tr>';
+ $retval .= '<tr><td colspan="2"><hr' . XHTML . '></td></tr>';
+
+ return $retval;
+}
+
+/* Function called when saving the user profile. */
+/* This function can now update any extra fields */
+function CUSTOM_userSave($uid)
+{
+ global $_CONF, $_TABLES;
+
+ $cooktime = 0;
+ if (isset ($_POST['cooktime'])) {
+ $cooktime = COM_applyFilter ($_POST['cooktime'], true);
+ if ($cooktime < 0) {
+ $cooktime = 0;
+ }
+
+ DB_query("UPDATE {$_TABLES['users']} SET cookietimeout = $cooktime WHERE uid = $uid");
+ }
+}
+
+
+/**
+* Main Form used for Custom membership when member is registering
+*
+* Note: Requires a file custom/memberdetail.thtml in every theme that is
+* installed on the site!
+*
+* @param string $msg an error message to display or the word 'new'
+* @return string HTML for the registration form
+*
+*/
+function CUSTOM_userForm ($msg = '')
+{
+ global $_CONF, $_TABLES, $LANG04;
+
+ if (!empty ($msg) && ($msg != 'new')) {
+ $retval .= COM_startBlock($LANG04[21]) . $msg . COM_endBlock();
+ }
+
+ $post_url = $_CONF['site_url'] . '/users.php';
+ $postmode = 'create';
+ $submitbutton = '<input type="submit" value="Register Now!"' . XHTML . '>';
+ $message = "<blockquote style=\"padding-top:10px;\"><b>Please complete the application below. Once you have completed the application, click the Register Now! button and the application will be processed immediately.</b></blockquote>";
+
+ $user_templates = new Template ($_CONF['path_layout'] . 'custom');
+ $user_templates->set_file('memberdetail', 'memberdetail.thtml');
+ $user_templates->set_var( 'xhtml', XHTML );
+ $user_templates->set_var('site_url', $_CONF['site_url']);
+ $user_templates->set_var('layout_url', $_CONF['layout_url']);
+ $user_templates->set_var('post_url', $post_url);
+ $user_templates->set_var('startblock', COM_startBlock("Custom Registration Example"));
+ $user_templates->set_var('message', $message);
+
+ $user_templates->set_var('USERNAME', $LANG04[2]);
+ $user_templates->set_var('USERNAME_HELP', "Name to be used when accessing this site");
More information about the geeklog-cvs
mailing list