<?php
/**
* phpVMS - Virtual Airline Administration Software
* Copyright (c) 2008 Nabeel Shahzad
* For more information, visit www.phpvms.net
* Forums: http://www.phpvms.net/forum
* Documentation: http://www.phpvms.net/docs
*
* phpVMS is licenced under the following license:
* Creative Commons Attribution Non-commercial Share Alike (by-nc-sa)
* View license.txt in the root, or visit http://creativecommons.org/licenses/by-nc-sa/3.0/
*
* @author Nabeel Shahzad
* @copyright Copyright (c) 2008, Nabeel Shahzad
* @link http://www.phpvms.net
* @license http://creativecommons.org/licenses/by-nc-sa/3.0/
*/
class SettingsData extends CodonData
{
public static function getAllSettings()
{
$all_settings = CodonCache::read('site_settings');
if($all_settings === false)
{
$sql = 'SELECT * FROM ' . TABLE_PREFIX . 'settings';
$all_settings = DB::get_results($sql);
CodonCache::write('site_settings', $all_settings, 'long');
}
return $all_settings;
}
public static function getSetting($name)
{
return DB::get_row('SELECT * FROM '.TABLE_PREFIX.'settings
WHERE name=\.$name.'\);
}
public static function getSettingValue($name)
{
$ret = DB::get_row('SELECT value FROM '.TABLE_PREFIX.'settings
WHERE name=\.$name.'\);
return $ret->value;
}
/**
* Return all of the custom fields data
*/
public static function getAllFields()
{
$all_fields = CodonCache::read('allfields');
if($all_fields === false)
{
$all_fields = DB::get_results('SELECT * FROM '.TABLE_PREFIX.'customfields');
CodonCache::write('allfields', $all_fields, 'long');
}
return $all_fields;
}
public static function getField($fieldid)
{
$fieldid = intval($fieldid);
return DB::get_row('SELECT * FROM '.TABLE_PREFIX.'customfields WHERE fieldid='.$fieldid);
}
/**
* Edit a custom field to be used in a profile
*
* $data= array('fieldid'=>,
'title'=>,
'value'=>,
'type'=>,
'public'=>,
'showinregistration'=>);
*/
public static function addField($data)
{
$fieldname = str_replace(' ', '_', $data['title']);
$fieldname = strtoupper($fieldname);
//Check, set up like this on purpose to default "safe" values
if($data['public'] == true)
$data['public'] = 1;
else
$data['public'] = 0;
if($data['showinregistration'] == true)
$data['showinregistration'] = 1;
else
$data['showinregistration'] = 0;
$data['type'] = strtolower($data['type']);
$sql = "INSERT INTO " . TABLE_PREFIX ."customfields (title, fieldname, value, type, public, showonregister)
VALUES ('{$data['title']}', '$fieldname', '{$data['value']}', '{$data['type']}', {$data['public']}, {$data['showinregistration']})";
$res = DB::query($sql);
if(DB::errno() != 0)
return false;
CodonCache::delete('allfields');
return true;
}
/**
* Edit a custom field to be used in a profile
*
* $data= array('fieldid'=>,
'title'=>,
'value'=>,
'type'=>,
'public'=>,
'showinregistration'=>);
*/
public static function editField($data)
{
$fieldname = strtoupper(str_replace(' ', '_', $data['title']));
//Check, set up like this on purpose to default "safe" values
if($data['public'] == true)
$data['public'] = 1;
else
$data['public'] = 0;
if($data['showinregistration'] == true)
$data['showinregistration'] = 1;
else
$data['showinregistration'] = 0;
$data['type'] = strtolower($data['type']);
$sql = "UPDATE " . TABLE_PREFIX ."customfields
SET title='{$data['title']}', fieldname='{$fieldname}', value='{$data['value']}',
type='{$data['type']}', public={$data['public']},
showonregister={$data['showinregistration']}
WHERE fieldid={$data['fieldid']}";
$res = DB::query($sql);
if(DB::errno() != 0)
return false;
CodonCache::delete('allfields');
return true;
}
/**
* Save site settings
*
* @param string $name Setting name. Must be unique
* @param string $value Value of the setting
* @param boolean $core Whether it's "vital" to the engine or not. Bascially blocks deletion
*/
public static function saveSetting($name, $value, $descrip='', $core=false)
{
if(is_bool($value))
{
if($value == true)
{
$value = 'true';
}
elseif($value == false)
{
$value = 'false';
}
}
//see if it's an update
if($core == true)
$core = 't';
else
$core = 'f';
$name = strtoupper(DB::escape($name));
$value = DB::escape($value);
$descrip = DB::escape($descrip);
$sql = 'UPDATE ' . TABLE_PREFIX . 'settings
SET value=\.$value.'\' WHERE name=\.$name.'\'';
$res = DB::query($sql);
if(DB::errno() != 0)
return false;
CodonCache::delete('site_settings');
return true;
}
/**
* See if the setting is part of the core
*/
public static function isCoreSetting($setting_name)
{
$sql = 'SELECT core FROM ' . TABLE_PREFIX .'settings WHERE name=\.$setting_name.'\;
$res = DB::get_row($sql);
if(!$res)
return false;
if($res->core == 't')
{
return true;
}
return false;
}
public static function deleteField($id)
{
$sql = 'DELETE FROM '.TABLE_PREFIX.'customfields WHERE `fieldid`='.$id;
$res = DB::query($sql);
$sql = 'DELETE FROM '.TABLE_PREFIX.'fieldvalues WHERE `fieldid`='.$id;
$res = DB::query($sql);
CodonCache::delete('allfields');
}
}