2
0
mirror of https://github.com/boostorg/website.git synced 2026-01-23 18:12:16 +00:00
Files
website/common/code/webnotes/core/page_api.php
Rene Rivera 1d41a5cc39 *** empty log message ***
[SVN r49]
2006-01-10 07:16:17 +00:00

390 lines
10 KiB
PHP

<?php
# phpWebNotes - a php based note addition system
# Copyright (C) 2000-2002 Webnotes Team - webnotes-devel@sourceforge.net
# This program is distributed under the terms and conditions of the GPL
# See the files README and LICENSE for details
# --------------------------------------------------------
# $Id$
# --------------------------------------------------------
### --------------------
function page_where_url_exists() {
return ("(url <> '')");
}
### --------------------
function page_where_id_equals( $p_page_id ) {
$c_page_id = db_prepare_int( $p_page_id );
return ("(id=$c_page_id)");
}
### --------------------
function page_where_all() {
return ("(1=1)");
}
### --------------------
function page_where_page_equals( $p_page ) {
$c_page = db_prepare_string( $p_page );
return ("(page='$c_page')");
}
### --------------------
# $p_where is constructed by page_where* and hence does not need to be cleaned.
function page_get_info ( $p_where, $p_field = null ) {
$query = "SELECT *, UNIX_TIMESTAMP(last_updated) as last_updated
FROM " . config_get( 'phpWN_page_table' ) . "
WHERE $p_where
LIMIT 1";
$result = db_query( $query );
if ( db_num_rows( $result) > 0 ) {
$t_info = db_fetch_array( $result );
if ( null === $p_field ) {
return $t_info;
} else {
#echo "$p_field\n"; var_dump($t_info); exit;
return $t_info["$p_field"];
}
}
return false;
}
### --------------------
# $p_where is constructed by page_where* and hence does not need to be cleaned.
function page_get_array ( $p_where, $p_order = null ) {
if ( null !== $p_order ) {
$c_order = 'ORDER BY ' . db_prepare_string( $p_order );
} else {
$c_order = '';
}
$query = "SELECT *, UNIX_TIMESTAMP(last_updated) as last_updated
FROM " . config_get( 'phpWN_page_table' ) . "
WHERE $p_where
$c_order";
$t_array = array();
$result = db_query( $query );
while ( $row = db_fetch_array( $result ) ) {
$t_array[] = $row;
}
return $t_array;
}
### --------------------
function page_get_id( $p_page ) {
return ( page_get_info( page_where_page_equals( $p_page ), 'id' ) );
}
### --------------------
function page_valid_id( $p_page_id ) {
return ( false !== $p_page_id );
}
### --------------------
function page_is_indexed( $p_page ) {
return ( page_valid_id( page_get_id( $p_page ) ) );
}
### --------------------
function page_visible_notes_count( $p_page_id ) {
$c_page_id = db_prepare_int( $p_page_id );
$query = "SELECT COUNT(*)
FROM " . config_get( 'phpWN_note_table' ) . "
WHERE page_id=$c_page_id AND visible=" . NOTE_VISIBLE_ACCEPTED;
$result = db_query( $query );
return db_result( $result, 0, 0 );
}
### --------------------
function page_notes_count( $p_page_id ) {
$c_page_id = db_prepare_int( $p_page_id );
$query = "SELECT COUNT(*)
FROM " . config_get( 'phpWN_note_table' ) . "
WHERE page_id=$c_page_id";
$result = db_query( $query );
return db_result( $result, 0, 0 );
}
### --------------------
function page_get_name( $p_page_id ) {
$c_page_id = db_prepare_int( $p_page_id );
$query = "SELECT page
FROM " . config_get( 'phpWN_page_table' ) . "
WHERE id=$c_page_id
LIMIT 1";
$result = db_query( $query );
if ( db_num_rows( $result) > 0 ) {
return db_result( $result, 0, 0 );
}
return false;
}
### --------------------
function page_update_url( $p_page_id, $p_url ) {
$t_url = page_get_info( page_where_id_equals( $p_page_id ), 'url' );
if ( $t_url === $p_url ) {
return;
}
# @@@@ If the information is the same, then don't update/touch.
$c_page_id = db_prepare_int( $p_page_id );
$c_url = db_prepare_string( $p_url );
$query = "UPDATE " . config_get( 'phpWN_page_table' ) . "
SET url='$c_url'
WHERE id=$c_page_id LIMIT 1";
$result = db_query( $query );
page_touch( $p_page_id );
}
### --------------------
function page_update_neighbours( $p_page_id, $p_prev, $p_next, $p_parent ) {
if ( ( null === $p_prev ) && ( null === $p_next ) && ( null === $p_parent ) ) {
return;
}
$t_page_info = page_get_info( page_where_id_equals( $p_page_id ) );
if ( false === $t_page_info ) {
return;
}
if ( null === $p_parent ) {
$t_parent_id = $t_page_info['parent_id'];
} else {
$t_parent_id = page_get_id( $p_parent );
if ( false === page_valid_id( $t_parent_id ) ) {
$t_parent_id = 0;
}
}
if ( null === $p_prev ) {
$t_prev_id = $t_page_info['prev_id'];
} else {
$t_prev_id = page_get_id( $p_prev );
if ( false === page_valid_id( $t_prev_id ) ) {
$t_prev_id = 0;
}
}
if ( null === $p_next ) {
$t_next_id = $t_page_info['next_id'];
} else {
$t_next_id = page_get_id( $p_next );
if ( false === page_valid_id( $t_next_id ) ) {
$t_next_id = 0;
}
}
# If the information is the same, then don't update/touch.
if ( ( $t_parent_id == $t_page_info['parent_id'] ) &&
( $t_prev_id == $t_page_info['prev_id'] ) &&
( $t_next_id == $t_page_info['next_id'] ) ) {
return;
}
$c_page_id = db_prepare_int( $p_page_id );
$query = "UPDATE " . config_get( 'phpWN_page_table' ) . "
SET parent_id=$t_parent_id, prev_id=$t_prev_id, next_id=$t_next_id
WHERE id=$c_page_id LIMIT 1";
$result = db_query( $query );
page_touch( $p_page_id );
}
### --------------------
# Update the last modified time stamp for the page.
function page_touch( $p_page_id ) {
$c_page_id = db_prepare_int( $p_page_id );
$query ='UPDATE ' . config_get( 'phpWN_page_table') . ' ' .
"SET last_updated=NOW() " .
"WHERE id=$c_page_id " .
"LIMIT 1";
return ( false !== db_query( $query ) );
}
### --------------------
### Allows for path navigation to choose base dir
function print_dirs( $p_path, $p_php_self ) {
global $g_admin_index_files;
echo '<table>';
$handle = opendir( $p_path );
while ( $file = readdir( $handle ) ) {
if ( is_dir( $p_path . $file ) && ( $file != '.' ) ) {
if ( $file == '..' ) {
$t_dir = dirname( $p_path );
} else {
$t_dir = $p_path . $file;
}
$t_dir = urlencode( $t_dir );
echo "<tr><td></td><td><a href=\"$g_admin_index_files?f_dir=$t_dir\">[$file]</a></td></tr>";
}
}
closedir( $handle );
$handle = opendir( $p_path );
while ( $file = readdir( $handle ) ) {
if ( !is_dir( $p_path . $file ) ) {
$t_filename = $p_path . $file;
$t_id = page_get_id( $t_filename );
#echo "<a href=\"$g_admin_index_files?f_dir=$t_file\">$file</a><br />";
$t_add = !page_valid_id( $t_id );
if ( !$t_add ) {
$t_count = '(' . page_visible_notes_count( $t_id ) . ')';
} else {
$t_count = '';
}
echo "<tr><td>" . link_page_action( $t_filename, 'index', $p_php_self, $t_add ) . ' ' . link_page_action( $t_id, 'unindex', $p_php_self, !$t_add ). "</td><td><tt>$file$t_count</tt></td></tr>";
}
}
closedir( $handle );
echo '</table>';
}
### --------------------
function page_add( $p_page_name ) {
# if page already exists, return to avoid duplicates
if ( page_get_id( $p_page_name ) !== false ) {
return 0;
}
$c_page_name = db_prepare_string( $p_page_name );
$query = "INSERT INTO " . config_get( 'phpWN_page_table' ) . "
( id, date_indexed, last_updated, page )
VALUES
( null, NOW(), NOW(), '$c_page_name' )";
$result = db_query( $query );
return $result;
}
### --------------------
function page_add_dir( $p_path='', $p_recursive=true ) {
$dirs = array();
$files = array();
$handle = opendir( $p_path );
while ( $file = readdir( $handle ) ) {
if ( ( $file == '.' ) || ( $file == '..' ) ) {
continue;
}
if ( is_dir( $p_path . $file ) ) {
$dirs[] = $file;
} else {
$files[] = $file;
}
}
closedir( $handle );
sort( $dirs );
sort( $files );
foreach ( $files as $file ) {
$t_filename = $p_path . $file;
page_add( $t_filename );
}
# if not recursive return before processing sub-directories
if ( !$p_recursive ) {
return;
}
foreach ( $dirs as $dir ) {
page_add_dir( $p_path . $dir . DIRECTORY_SEPARATOR );
}
}
### --------------------
function page_delete_notes( $p_page_id ) {
$c_page_id = db_prepare_int( $p_page_id );
$query = "DELETE FROM " . config_get( 'phpWN_note_table' ) . "
WHERE page_id=$c_page_id";
$result = db_query( $query );
return true;
}
### --------------------
function page_delete( $p_page_id ) {
if ( !page_delete_notes( $p_page_id ) ) {
return false;
}
$c_page_id = db_prepare_int( $p_page_id );
$query = "DELETE FROM " . config_get( 'phpWN_page_table' ) . "
WHERE id=$c_page_id
LIMIT 1";
$result = db_query( $query );
return true;
}
### --------------------
function page_prepare_theme_data( $p_page_id ) {
$t_page_data = array();
$t_page_info = page_get_info( page_where_id_equals( $p_page_id ) );
if ( false === $t_page_info ) {
return (false);
}
$t_page_data['id'] = $t_page_info['id'];
$t_page_data['page'] = $t_page_info['page'];
$t_page_data['url'] = $t_page_info['url'];
$t_page_data['last_updated'] = $t_page_info['last_updated'];
$t_page_data['preview'] = false;
$t_prev_page = page_get_info( page_where_id_equals( $t_page_info['prev_id'] ) );
$t_next_page = page_get_info( page_where_id_equals( $t_page_info['next_id'] ) );
if ( false === $t_prev_page ) {
$t_page_data['prev_page'] = '';
$t_page_data['prev_url'] = '';
} else {
$t_page_data['prev_page'] = $t_prev_page['page'];
$t_page_data['prev_url'] = $t_prev_page['url'];
}
if ( false === $t_next_page ) {
$t_page_data['next_page'] = '';
$t_page_data['next_url'] = '';
} else {
$t_page_data['next_page'] = $t_next_page['page'];
$t_page_data['next_url'] = $t_next_page['url'];
}
$t_page_data['notes'] = note_get_all_visible( $p_page_id );
return( $t_page_data );
}
### --------------------
function page_visit( $p_page_id ) {
$c_page_id = db_prepare_int( $p_page_id );
$query ='UPDATE ' . config_get( 'phpWN_page_table') . ' ' .
"SET visits=visits+1 " .
"WHERE id=$c_page_id " .
"LIMIT 1";
return ( false !== db_query( $query ) );
}
### --------------------
function page_visits_count( $p_page_id ) {
$c_page_id = db_prepare_int( $p_page_id );
$query = "SELECT visits
FROM " . config_get( 'phpWN_page_table' ) . "
WHERE id=$c_page_id
LIMIT 1";
$result = db_query( $query );
if ( db_num_rows( $result) > 0 ) {
return db_result( $result, 0, 0 );
}
return false;
}
### --------------------
?>