summaryrefslogtreecommitdiff
path: root/ContactXref.php
diff options
context:
space:
mode:
author"Lester Caine ext:(%22) <lester@lsces.co.uk>2010-11-03 09:46:53 +0000
committer"Lester Caine ext:(%22) <lester@lsces.co.uk>2010-11-03 09:46:53 +0000
commit3261da3afcc151ebc1ddd77b1055d5bde3c70b7f (patch)
treea582efa13411b27c7a3a041a38d8afe6d42d26ff /ContactXref.php
downloadcontact-3261da3afcc151ebc1ddd77b1055d5bde3c70b7f.tar.gz
contact-3261da3afcc151ebc1ddd77b1055d5bde3c70b7f.tar.bz2
contact-3261da3afcc151ebc1ddd77b1055d5bde3c70b7f.zip
Import package again after stripping private data which should not have been commited
Diffstat (limited to 'ContactXref.php')
-rw-r--r--ContactXref.php192
1 files changed, 192 insertions, 0 deletions
diff --git a/ContactXref.php b/ContactXref.php
new file mode 100644
index 0000000..d1f109f
--- /dev/null
+++ b/ContactXref.php
@@ -0,0 +1,192 @@
+<?php
+/**
+ * @version $Header$
+ * @package articles
+ *
+ * @copyright Copyright (c) 2004-2006, bitweaver.org
+ * All Rights Reserved. See below for details and a complete list of authors.
+ * Licensed under the GNU LESSER GENERAL PUBLIC LICENSE. See http://www.gnu.org/copyleft/lesser.html for details.
+ */
+
+/**
+ * Required setup
+ */
+global $gBitSystem;
+require_once( CONTACT_PKG_PATH.'ContactXrefType.php' );
+
+/**
+ * @package contact
+ */
+class ContactXref extends BitBase {
+ var $mType;
+ var $mSource;
+ var $mXrefId;
+ var $mContentId;
+ var $mDate;
+
+ function ContactXref( $iXrefId = NULL ) {
+ $this->mXrefId = NULL;
+ $this->mSource = NULL;
+ BitBase::BitBase();
+ if( $iXrefId ) {
+ $this->load( $iXrefId );
+ }
+
+ // Date object to handle date and time display
+ $this->mDate = new BitDate();
+ $offset = $this->mDate->get_display_offset();
+ }
+
+ function isValid() {
+ return ($this->verifyId($this->mXrefId));
+ }
+
+ function load( $pXref_id = NULL ) {
+ if( @BitBase::verifyId( $pXref_id ) ) {
+ $sql = "SELECT x.*, CASE
+ WHEN x.`xorder` = 0 THEN s.`cross_ref_title`
+ ELSE s.`cross_ref_title` || '-' || x.`xorder` END
+ AS source_title, s.`source`, s.`xref_type`,
+ CASE WHEN x.`start_date` IS NULL THEN 'y' ELSE 'n' END AS `ignore_start_date`,
+ CASE WHEN x.`end_date` IS NULL THEN 'y' ELSE 'n' END AS `ignore_end_date`
+ FROM `".BIT_DB_PREFIX."contact_xref` x
+ JOIN `".BIT_DB_PREFIX."contact_xref_source` s ON s.`source` = x.`source`
+ WHERE x.`xref_id` = ?
+ ORDER BY x.`xorder`";
+ $result = $this->mDb->getRow( $sql, array( $pXref_id ) );
+ if( $result['content_id'] ) {
+ $this->mXrefId = $pXref_id;
+ $this->mContentId = $result['content_id'];
+ $this->mType = $result['xref_type'];
+ $this->mSource = $result['source'];
+ $this->mInfo['title'] = $result['source_title'];
+ unset($result['source_title']);
+ $this->mInfo['data'] = $result;
+ }
+ }
+ }
+
+ function verify( &$pParamHash ) {
+// if ( $this->isValid() ) {
+ // Validate the (optional) xref_id parameter
+ if (@$this->verifyId($pParamHash['xref_id'])) {
+ $pParamHash['xref_id'] = (int)$pParamHash['xref_id'];
+ } else {
+ $pParamHash['xref_id'] = NULL;
+ }
+
+ if ( isset ( $pParamHash['fAddXref'] ) ) {
+ if ( isset( $pParamHash['Array_xref_type_list'] )) {
+ $pParamHash['xref_store']['source'] = $pParamHash['Array_xref_type_list']['Array.source'];
+ }
+ $pParamHash['xref_store']['content_id'] = $pParamHash['content_id'];
+ $pParamHash['xref_store']['xorder'] = 0;
+ }
+
+ if ( isset ( $pParamHash['fStepXref'] ) ) {
+ $pParamHash['xref_store']['source'] = $this->mSource;
+ $pParamHash['xref_store']['xorder'] = $this->mInfo['data']['xorder'] + 1;
+ $pParamHash['xref_store']['content_id'] = $this->mContentId;
+ $pParamHash['start_date'] = $this->mDb->NOW();
+ $pParamHash['ignore_end_date'] = 'on';
+ $pParamHash['xref_store']['xkey'] = '';
+ $pParamHash['xref_store']['xkey_ext'] = '';
+ $pParamHash['xref_store']['data'] = '';
+ }
+
+ if ( isset( $pParamHash['xkey'] )) {
+ $pParamHash['xref_store']['xkey'] = $pParamHash['xkey'];
+ }
+ if ( isset( $pParamHash['xkey_ext'] )) {
+ $pParamHash['xref_store']['xkey_ext'] = $pParamHash['xkey_ext'];
+ }
+ if ( isset( $pParamHash['edit'] )) {
+ $pParamHash['xref_store']['data'] = $pParamHash['edit'];
+ }
+ $pParamHash['xref_store']['last_update_date'] = $this->mDb->NOW();
+
+ // If start and/or end dates are supplied these are updated as well
+ if( !empty( $pParamHash['start_Month'] ) ) {
+ $dateString = $this->mDate->gmmktime(
+ $pParamHash['start_Hour'],
+ $pParamHash['start_Minute'],
+ isset($pParamHash['start_Second']) ? $pParamHash['start_Second'] : 0,
+ $pParamHash['start_Month'],
+ $pParamHash['start_Day'],
+ $pParamHash['start_Year']
+ );
+
+ $timestamp = $this->mDate->getUTCFromDisplayDate( $dateString );
+ if( $timestamp !== -1 ) {
+ $pParamHash['start_date'] = $timestamp;
+ }
+ }
+ if( !empty( $pParamHash['start_date'] ) ) {
+ $pParamHash['xref_store']['start_date'] = $pParamHash['start_date'];
+ }
+ if( isset ($pParamHash['ignore_start_date']) && $pParamHash['ignore_start_date'] == 'on' ) {
+ $pParamHash['xref_store']['start_date'] = '';
+ }
+
+ if( !empty( $pParamHash['end_Month'] ) ) {
+ $dateString = $this->mDate->gmmktime(
+ $pParamHash['end_Hour'],
+ $pParamHash['end_Minute'],
+ isset($pParamHash['end_Second']) ? $pParamHash['end_Second'] : 0,
+ $pParamHash['end_Month'],
+ $pParamHash['end_Day'],
+ $pParamHash['end_Year']
+ );
+
+ $timestamp = $this->mDate->getUTCFromDisplayDate( $dateString );
+ if( $timestamp !== -1 ) {
+ $pParamHash['end_date'] = $timestamp;
+ }
+ }
+ if( !empty( $pParamHash['end_date'] ) ) {
+ $pParamHash['xref_store']['end_date'] = $pParamHash['end_date'];
+ }
+ if( isset ($pParamHash['ignore_end_date']) && $pParamHash['ignore_end_date'] == 'on' ) {
+ $pParamHash['xref_store']['end_date'] = '';
+ }
+// }
+ return(count($this->mErrors) == 0);
+ }
+
+ function store( &$pParamHash = NULL ) {
+ if( $this->verify( $pParamHash ) ) {
+ $table = BIT_DB_PREFIX."contact_xref";
+
+ $this->mDb->StartTrans();
+ if( isset( $pParamHash['xref_id'] ) ) {
+ $result = $this->mDb->associateUpdate( $table, $pParamHash['xref_store'], array( "xref_id" => $pParamHash['xref_id'] ) );
+ } else {
+ $this->mXrefId = $pParamHash['ref_id'] = $pParamHash['xref_store']['xref_id'] = $this->mDb->GenID( 'contact_xref_seq' );
+ $result = $this->mDb->associateInsert( $table, $pParamHash['xref_store'] );
+ }
+ // load before completing transaction as firebird isolates results
+ $this->load( $this->mXrefId );
+ $this->mDb->CompleteTrans();
+ return true;
+ } else {
+ return false;
+ }
+ }
+
+ function stepXref( &$pParamHash = NULL ) {
+ if ( $pParamHash["expunge"] == 2 ) {
+ $pParamHash['end_date'] = $this->mDb->NOW();
+ $this->store( $pParamHash );
+ unset($pParamHash['xref_id']);
+ $pParamHash['fStepXref'] = 1;
+ } else if ( $pParamHash["expunge"] == 1 ) {
+ $pParamHash['end_date'] = $this->mDb->NOW();
+ } else {
+ $pParamHash['ignore_end_date'] = 'on';
+ }
+ $this->store( $pParamHash );
+ return true;
+ }
+
+}
+?>