00001 <?php
00002
00016
00017
00018
00019 import('site.Site');
00020
00021 class SiteDAO extends DAO {
00026 function &getSite() {
00027 $site = null;
00028 $result = $this->retrieve(
00029 'SELECT * FROM site'
00030 );
00031
00032 if ($result->RecordCount() != 0) {
00033 $site = $this->_returnSiteFromRowWithData($result->GetRowAssoc(false));
00034 }
00035
00036 $result->Close();
00037 unset($result);
00038
00039 return $site;
00040 }
00041
00042 function &_returnSiteFromRowWithData(&$row) {
00043 $site =& $this->_returnSiteFromRow($row, false);
00044 $this->getDataObjectSettings('site_settings', null, null, $site);
00045
00046 HookRegistry::call('UserDAO::_returnSiteFromRowWithData', array(&$site, &$row));
00047
00048 return $site;
00049 }
00050
00057 function &_returnSiteFromRow(&$row, $callHook = true) {
00058 $site = &new Site();
00059 $site->setJournalRedirect($row['journal_redirect']);
00060 $site->setMinPasswordLength($row['min_password_length']);
00061 $site->setPrimaryLocale($row['primary_locale']);
00062 $site->setOriginalStyleFilename($row['original_style_file_name']);
00063 $site->setInstalledLocales(isset($row['installed_locales']) && !empty($row['installed_locales']) ? explode(':', $row['installed_locales']) : array());
00064 $site->setSupportedLocales(isset($row['supported_locales']) && !empty($row['supported_locales']) ? explode(':', $row['supported_locales']) : array());
00065
00066 if ($callHook) HookRegistry::call('SiteDAO::_returnSiteFromRow', array(&$site, &$row));
00067
00068 return $site;
00069 }
00070
00075 function insertSite(&$site) {
00076 $returner = $this->update(
00077 'INSERT INTO site
00078 (journal_redirect, min_password_length, primary_locale, installed_locales, supported_locales, original_style_file_name)
00079 VALUES
00080 (?, ?, ?, ?, ?, ?)',
00081 array(
00082 $site->getJournalRedirect(),
00083 $site->getMinPasswordLength(),
00084 $site->getPrimaryLocale(),
00085 join(':', $site->getInstalledLocales()),
00086 join(':', $site->getSupportedLocales()),
00087 $site->getOriginalStyleFilename()
00088 )
00089 );
00090 $this->updateLocaleFields($site);
00091 return $returner;
00092 }
00093
00094 function getLocaleFieldNames() {
00095 return array('pageHeaderTitleType', 'title', 'intro', 'about', 'contactName', 'contactEmail', 'pageHeaderTitleImage');
00096 }
00097
00098 function updateLocaleFields(&$site) {
00099 $this->updateDataObjectSettings('site_settings', $site, array());
00100 }
00101
00106 function updateSite(&$site) {
00107 $this->updateLocaleFields($site);
00108 return $this->update(
00109 'UPDATE site
00110 SET
00111 journal_redirect = ?,
00112 min_password_length = ?,
00113 primary_locale = ?,
00114 installed_locales = ?,
00115 supported_locales = ?,
00116 original_style_file_name = ?',
00117 array(
00118 $site->getJournalRedirect(),
00119 $site->getMinPasswordLength(),
00120 $site->getPrimaryLocale(),
00121 join(':', $site->getInstalledLocales()),
00122 join(':', $site->getSupportedLocales()),
00123 $site->getOriginalStyleFilename()
00124 )
00125 );
00126 }
00127 }
00128
00129 ?>