[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    [ocs-webserver/dev] application/modules/default: updated registration process for "more than one ema
From:       Alexander Schmidt <2f5ed1c5 () opayq ! com>
Date:       2016-09-28 8:31:33
Message-ID: E1bpAH7-0005BO-AG () code ! kde ! org
[Download RAW message or body]

Git commit 8420c7cb13c4e751ac0f97a694dd0985c2c37521 by Alexander Schmidt.
Committed on 27/09/2016 at 10:58.
Pushed by alexanderschmidt into branch 'dev'.

updated registration process for "more than one email"

M  +11   -6    application/modules/default/controllers/AuthorizationController.php
M  +49   -44   application/modules/default/controllers/ProductController.php
M  +15   -16   application/modules/default/controllers/ProductcommentController.php
M  +1    -1    application/modules/default/controllers/SettingsController.php
M  +18   -0    application/modules/default/models/Authorization.php
M  +15   -93   application/modules/default/models/Member.php
M  +43   -0    application/modules/default/models/MemberEmail.php
M  +2    -272  application/modules/default/models/Project.php

http://commits.kde.org/ocs-webserver/8420c7cb13c4e751ac0f97a694dd0985c2c37521

diff --git a/application/modules/default/controllers/AuthorizationController.php \
b/application/modules/default/controllers/AuthorizationController.php index \
                14677a7..b32b5bd 100644
--- a/application/modules/default/controllers/AuthorizationController.php
+++ b/application/modules/default/controllers/AuthorizationController.php
@@ -289,10 +289,8 @@ class AuthorizationController extends \
Local_Controller_Action_DomainSwitch  $formRegisterValues = \
                $formRegister->getValues();
             //$resultReCaptcha = $formRegisterValues['g-recaptcha-response'];
 
-            $res = $this->validateReCaptcha($_POST['g-recaptcha-response']);
-
-            if ($res == false) {
-
+            if (false == $this->validateReCaptcha($_POST['g-recaptcha-response']))
+            {
                 $this->view->formRegister = $formRegister;
                 $this->view->error = 1;
 
@@ -365,6 +363,9 @@ class AuthorizationController extends \
Local_Controller_Action_DomainSwitch  $userTable = new Default_Model_Member();
         $userData = $userTable->createNewUser($userData);
 
+        $modelEmail = new Default_Model_MemberEmail();
+        $userEmail = $modelEmail->saveEmailAsPrimary($userData['member_id'], \
$userData['mail'], $userData['verificationVal']); +
         return $userData;
     }
 
@@ -792,13 +793,17 @@ class AuthorizationController extends \
                Local_Controller_Action_DomainSwitch
         $this->view->title = $translate->_('member.email.verification.title');
 
         $authModel = new Default_Model_Authorization();
-        $authUser = $authModel->getAuthUserData('verificationVal', $_vId);
+        $authUser = $authModel->getAuthUserDataFromUnverified($_vId);
 
         if ($authUser AND ($authUser->mail_checked == 0)) {
             Zend_Registry::get('logger')->info(__METHOD__ . ' - activate user from \
                email link : ' . print_r($authUser->member_id,
                     true) . ' - username: ' . print_r($authUser->username, true));
             $modelMember = new Default_Model_Member();
-            $modelMember->activateMemberFromVerification($authUser->member_id);
+            $result = \
$modelMember->activateMemberFromVerification($authUser->member_id, $_vId); +
+            if (false == $result) {
+                throw new Zend_Controller_Action_Exception('Your member account \
could not activated.'); +            }
 
             $this->view->member = $authUser;
             $this->view->username = $authUser->username;
diff --git a/application/modules/default/controllers/ProductController.php \
b/application/modules/default/controllers/ProductController.php index \
                8cc2b51..d958427 100644
--- a/application/modules/default/controllers/ProductController.php
+++ b/application/modules/default/controllers/ProductController.php
@@ -1,4 +1,5 @@
 <?php
+
 /**
  *  ocs-webserver
  *
@@ -60,7 +61,7 @@ class ProductController extends \
Local_Controller_Action_DomainSwitch  $this->fetchDataForIndexView();
 
         //$this->view->headTitle($this->_browserTitlePrepend . \
                $this->view->product->title, 'SET');
-        $this->view->headTitle($this->view->product->title.' - \
'.$_SERVER['HTTP_HOST'] , 'SET'); +        \
$this->view->headTitle($this->view->product->title . ' - ' . $_SERVER['HTTP_HOST'], \
'SET');  
         $this->view->cat_id = $this->view->product->project_category_id;
 
@@ -310,7 +311,7 @@ class ProductController extends \
Local_Controller_Action_DomainSwitch  
         // form was valid, so we can set status to inactive
         $values['status'] = Default_Model_DbTable_Project::PROJECT_ACTIVE;
-        
+
         // save new project
         $modelProject = new Default_Model_Project();
         if (isset($values['project_id'])) {
@@ -323,15 +324,15 @@ class ProductController extends \
Local_Controller_Action_DomainSwitch  //update the gallery pics
         $mediaServerUrls = \
                $this->saveGalleryPics($form->gallery->upload->upload_picture);
         $modelProject->updateGalleryPictures($newProject->project_id, \
                $mediaServerUrls);
-        
+
         //If there is no Logo, we take the 1. gallery pic
-        if(!isset($values['image_small']) || $values['image_small'] == '') {
-        	$values['image_small'] = $mediaServerUrls[0];
-        	$newProject = $modelProject->updateProject($newProject->project_id, \
                $values);
-        	$log->debug('**********' . __CLASS__ . '::' . __FUNCTION__ . ' - set \
image_small: '.$values['image_small'].'\n'); +        if \
(!isset($values['image_small']) || $values['image_small'] == '') { +            \
$values['image_small'] = $mediaServerUrls[0]; +            $newProject = \
$modelProject->updateProject($newProject->project_id, $values); +            \
$log->debug('**********' . __CLASS__ . '::' . __FUNCTION__ . ' - set image_small: ' . \
$values['image_small'] . '\n');  } else {
-        	$log->debug('**********' . __CLASS__ . '::' . __FUNCTION__ . ' - set \
                image_small: Not neeed. '.$values['image_small'].'\n');
-        	 
+            $log->debug('**********' . __CLASS__ . '::' . __FUNCTION__ . ' - set \
image_small: Not neeed. ' . $values['image_small'] . '\n'); +
         }
 
         /*
@@ -357,8 +358,8 @@ class ProductController extends \
                Local_Controller_Action_DomainSwitch
         //$helperBuildProductUrl = new Default_View_Helper_BuildProductUrl();
         //$urlProjectShow = \
$helperBuildProductUrl->buildProductUrl($newProject->project_id, 'preview');  \
                //$this->redirect($urlProjectShow);
-        
-        $this->redirect('/member/'.$newProject->member_id.'/products/');
+
+        $this->redirect('/member/' . $newProject->member_id . '/products/');
     }
 
     private function saveGalleryPics($form_element)
@@ -516,7 +517,8 @@ class ProductController extends \
Local_Controller_Action_DomainSwitch  
         //read the subcategories
         $tableSubCategory = new Default_Model_SubCategory();
-        $subcategories = \
$tableSubCategory->fetchAllSubCategories($projectData->project_category_id, \
$tableSubCategory::ORDERED_TITLE); +        $subcategories = \
$tableSubCategory->fetchAllSubCategories($projectData->project_category_id, +         \
                $tableSubCategory::ORDERED_TITLE);
         $selectedSubCategories = \
$tableSubCategory->fetchSelectedSubCategories($this->_projectId);  //        \
$modelSubSubCategories = new Default_Model_SubSubCategory();  //        \
$subSubCategories = $modelSubSubCategories->fetchAllSubCategories($selectedSubCategories);
 @@ -544,7 +546,8 @@ class ProductController extends \
Local_Controller_Action_DomainSwitch  }
 
                 $tableSubCategory = new Default_Model_SubCategory();
-                $subcategories = \
$tableSubCategory->fetchAllSubCategories($main_category_id, \
$tableSubCategory::ORDERED_TITLE); +                $subcategories = \
$tableSubCategory->fetchAllSubCategories($main_category_id, +                    \
                $tableSubCategory::ORDERED_TITLE);
                 $form->getElement('project_subcategory_id')->setMultiOptions($subcategories);
  
                 $form->getElement('project_category_id')->setValue($main_category_id);
 @@ -594,7 +597,7 @@ class ProductController extends \
Local_Controller_Action_DomainSwitch  // save changes
         $projectData->setFromArray($values);
         $projectData->changed_at = new Zend_Db_Expr('NOW()');
-        
+
 
         // store license data
         if ($values['cc_license'] == true) {
@@ -607,14 +610,14 @@ class ProductController extends \
                Local_Controller_Action_DomainSwitch
         $pictureSources = array_merge($values['gallery']['online_picture'],
             $this->saveGalleryPics($form->gallery->upload->upload_picture));
         $projectModel->updateGalleryPictures($this->_projectId, $pictureSources);
-        
+
         //If there is no Logo, we take the 1. gallery pic
-        if(!isset($projectData->image_small) || $projectData->image_small == '') {
-        	$projectData->image_small = $pictureSources[0];
-        	$log->debug('**********' . __CLASS__ . '::' . __FUNCTION__ . ' - set \
image_small: '.$projectData->image_small.'\n'); +        if \
(!isset($projectData->image_small) || $projectData->image_small == '') { +            \
$projectData->image_small = $pictureSources[0]; +            $log->debug('**********' \
. __CLASS__ . '::' . __FUNCTION__ . ' - set image_small: ' . \
$projectData->image_small . '\n');  } else {
-        	$log->debug('**********' . __CLASS__ . '::' . __FUNCTION__ . ' - set \
                image_small: Not neeed. '.$projectData->image_small.'\n');
-        
+            $log->debug('**********' . __CLASS__ . '::' . __FUNCTION__ . ' - set \
image_small: Not neeed. ' . $projectData->image_small . '\n'); +
         }
         $projectData->save();
 
@@ -666,8 +669,9 @@ class ProductController extends \
Local_Controller_Action_DomainSwitch  
         //Save version number
         $version = "";
-        if(isset($params['product_version']))
-        	$version = $params['product_version'];
+        if (isset($params['product_version'])) {
+            $version = $params['product_version'];
+        }
 
         $updateArray = array();
         $updateArray['version'] = $version;
@@ -1637,28 +1641,29 @@ class ProductController extends \
Local_Controller_Action_DomainSwitch  
         $this->_helper->json(array('status' => 'error', 'error_text' => \
$error_text));  }
-    
+
     public function updatepackagetypeAction()
     {
-    	$this->_helper->layout()->disableLayout();
-    
-    	$error_text = "";
-    
-    	// Update a file information in ppload collection (does not update it if in \
                finalized collection)
-    	if (!empty($_POST['file_id'])) {
-    		$typeId = null;
-    		if(isset($_POST['package_type_id']))
-				$typeId = $_POST['package_type_id'];
-			
-			$packageTypeTable = new Default_Model_DbTable_ProjectPackageType();
-			$packageTypeTable->addPackageTypeToProject($this->_projectId, $_POST['file_id'], \
                $typeId);
-			$this->_helper->json(array('status' => 'ok'));
-			return;
-    	} else {
-    		$error_text .= 'No FileId. , FileId: ' . $_POST['file_id'];
-    	}
-    	
-    	$this->_helper->json(array('status' => 'error', 'error_text' => $error_text));
+        $this->_helper->layout()->disableLayout();
+
+        $error_text = "";
+
+        // Update a file information in ppload collection (does not update it if in \
finalized collection) +        if (!empty($_POST['file_id'])) {
+            $typeId = null;
+            if (isset($_POST['package_type_id'])) {
+                $typeId = $_POST['package_type_id'];
+            }
+
+            $packageTypeTable = new Default_Model_DbTable_ProjectPackageType();
+            $packageTypeTable->addPackageTypeToProject($this->_projectId, \
$_POST['file_id'], $typeId); +            $this->_helper->json(array('status' => \
'ok')); +            return;
+        } else {
+            $error_text .= 'No FileId. , FileId: ' . $_POST['file_id'];
+        }
+
+        $this->_helper->json(array('status' => 'error', 'error_text' => \
$error_text));  }
 
     /**
@@ -1692,10 +1697,10 @@ class ProductController extends \
Local_Controller_Action_DomainSwitch  if (isset($fileResponse->status)
                     && $fileResponse->status == 'success'
                 ) {
-                    
+
                     $packageTypeTable = new \
                Default_Model_DbTable_ProjectPackageType();
                     $packageTypeTable->deletePackageTypeOnProject($this->_projectId, \
                $_POST['file_id']);
-                    
+
                     $this->_helper->json(array('status' => 'ok'));
                     return;
                 } else {
diff --git a/application/modules/default/controllers/ProductcommentController.php \
b/application/modules/default/controllers/ProductcommentController.php index \
                5fe6afa..0ac14cc 100644
--- a/application/modules/default/controllers/ProductcommentController.php
+++ b/application/modules/default/controllers/ProductcommentController.php
@@ -48,8 +48,7 @@ class ProductcommentController extends \
Local_Controller_Action_DomainSwitch  $result = $tableReplies->save($data);
         $status = count($result) > 0 ? 'ok' : 'error';
         $message = '';
-        
-        
+
 
         $this->view->comments = $this->loadComments((int)$this->getParam('page'), \
                (int)$this->getParam('p'));
         $this->view->product = $this->loadProductInfo((int)$this->getParam('p'));
@@ -60,23 +59,23 @@ class ProductcommentController extends \
Local_Controller_Action_DomainSwitch  
         //Send a notification to the owner
         //Don't send email notification on own comments
-        if($this->_authMember->mail != $this->view->product->mail) {
+        if ($this->_authMember->mail != $this->view->product->mail) {
             $this->sendNotificationToOwner($this->view->product, \
$data['comment_text']);  }
-        
+
         //Send a notification to the parent comment writer
-        if((int)$this->getParam('i')!=0) {
-            $parentCommentArray = (array) \
                $tableReplies->getComment((int)$this->getParam('i'));
-            if(count($parentCommentArray)>0) {
+        if ((int)$this->getParam('i') != 0) {
+            $parentCommentArray = \
(array)$tableReplies->getComment((int)$this->getParam('i')); +            if \
(count($parentCommentArray) > 0) {  $parentComment = $parentCommentArray[0];
 
                 $parentCommentOwner = \
                $this->loadMemberInfo($parentComment['comment_member_id']);
-                if($parentCommentOwner && $parentCommentOwner->mail != \
$this->view->product->mail && $parentCommentOwner->member_id != \
$this->_authMember->member_id) { +                if ($parentCommentOwner && \
$parentCommentOwner->mail != $this->view->product->mail && \
                $parentCommentOwner->member_id != $this->_authMember->member_id) {
                     $this->sendNotificationToParent($this->view->product, \
$parentCommentOwner, $data['comment_text']);  }
             }
         }
-        
+
 
         if ($this->_request->isXmlHttpRequest()) {
             $this->_helper->json(array('status' => $status, 'message' => $message, \
'data' => $requestResult)); @@ -101,12 +100,6 @@ class ProductcommentController \
extends Local_Controller_Action_DomainSwitch  $tableProject = new \
Default_Model_Project();  return $tableProject->fetchProductInfo($param);
     }
-    
-    private function loadMemberInfo($memberId)
-    {
-        $memberTable = new Default_Model_Member();
-        return $memberTable->fetchMemberData($memberId);
-    }
 
     private function updateActivityLog($data, $image_small)
     {
@@ -133,7 +126,13 @@ class ProductcommentController extends \
Local_Controller_Action_DomainSwitch  
         $newPasMail->send();
     }
-    
+
+    private function loadMemberInfo($memberId)
+    {
+        $memberTable = new Default_Model_Member();
+        return $memberTable->fetchMemberData($memberId);
+    }
+
     private function sendNotificationToParent($product, $parentCommentOwner, \
$comment)  {
         $newPasMail = new Default_Plugin_SendMail('tpl_user_comment_reply_note');
diff --git a/application/modules/default/controllers/SettingsController.php \
b/application/modules/default/controllers/SettingsController.php index \
                ec38952..4303635 100644
--- a/application/modules/default/controllers/SettingsController.php
+++ b/application/modules/default/controllers/SettingsController.php
@@ -1197,7 +1197,7 @@ class SettingsController extends \
Local_Controller_Action_DomainSwitch  $data = array();
         $data['email_member_id'] = $this->_authMember->member_id;
         $data['email_address'] = $filterInput->getEscaped('user_email');
-        $data['email_verification_value'] = md5($data['email_address'] . \
$this->_authMember->username . time()); +        $data['email_verification_value'] = \
Default_Model_MemberEmail::getVerificationValue($this->_authMember->username, \
$filterInput->getEscaped('user_email'));  $modelMemberEmail = new \
Default_Model_DbTable_MemberEmail();  return $modelMemberEmail->save($data);
     }
diff --git a/application/modules/default/models/Authorization.php \
b/application/modules/default/models/Authorization.php index 68067bc..c373be7 100644
--- a/application/modules/default/models/Authorization.php
+++ b/application/modules/default/models/Authorization.php
@@ -277,6 +277,24 @@ class Default_Model_Authorization
     }
 
     /**
+     * @param string $identity
+     * @return object
+     */
+    public function getAuthUserDataFromUnverified($identity)
+    {
+        Zend_Registry::get('logger')->info(__METHOD__ . ' - $identity: ' . \
print_r($identity, true)); +        $sql = "
+        SELECT member.* FROM member
+        STRAIGHT_JOIN member_email ON member.member_id = \
member_email.email_member_id AND email_deleted = 0 AND email_checked is null +        \
WHERE member_email.email_verification_value = :verification; +        ";
+        $resultRow = $this->_dataTable->getAdapter()->fetchRow($sql, \
array('verification'=>$identity)); +        \
Zend_Registry::get('logger')->info(__METHOD__ . ' - $resultRow: ' . \
print_r($resultRow, true)); +        unset($resultRow['password']);
+        return (object)$resultRow;
+    }
+
+    /**
      * ppload and OCS
      *
      * @param string $identity
diff --git a/application/modules/default/models/Member.php \
b/application/modules/default/models/Member.php index dedd1ac..7bde5c5 100644
--- a/application/modules/default/models/Member.php
+++ b/application/modules/default/models/Member.php
@@ -22,6 +22,7 @@
  **/
 class Default_Model_Member extends Default_Model_DbTable_Member
 {
+
     /**
      * @param int $count
      * @param string $orderBy
@@ -103,7 +104,6 @@ class Default_Model_Member extends Default_Model_DbTable_Member
 
             return $resultSet;
         }
-
     }
 
     /**
@@ -147,18 +147,19 @@ class Default_Model_Member extends Default_Model_DbTable_Member
 
     /**
      * @param int $member_id
-     * @return int
+     * @return boolean returns true if successful
      */
-    public function activateMemberFromVerification($member_id)
+    public function activateMemberFromVerification($member_id, $verification_value)
     {
-        $updateValues = array(
-            'mail_checked' => 1,
-            'is_active' => 1,
-            'is_deleted' => 0,
-            'changed_at' => new Zend_Db_Expr('Now()'),
-        );
+        $sql = "
+            UPDATE member
+              STRAIGHT_JOIN member_email ON member.member_id = \
member_email.email_member_id AND member_email.email_checked is null AND \
member.is_deleted = 0 AND member_email.email_deleted = 0 +            SET \
member.mail_checked = 1, member.is_active = 1, member.changed_at = NOW(), \
member_email.email_checked = NOW() +            WHERE member.member_id = :memberId \
and member_email.email_verification_value = :verificationValue; +        ";
+        $stmnt = $this->_db->query($sql, array('memberId' => $member_id, \
'verificationValue' => $verification_value));  
-        return $this->update($updateValues, $this->_db->quoteInto('member_id=?', \
$member_id, 'INTEGER')); +        return $stmnt->rowCount() > 0 ? true : false;
     }
 
     /**
@@ -314,29 +315,6 @@ class Default_Model_Member extends Default_Model_DbTable_Member
      */
     public function fetchSupportedProjects($member_id, $limit = null)
     {
-        /***
-         * $sql = "
-         * SELECT plings.project_id,
-         * plings.member_id,
-         * count(plings.member_id) AS collectPlingsFromMember,
-         * project_category.title AS catTitle,
-         * project.*,
-         * member.*,
-         * (SELECT COUNT(DISTINCT plings.member_id) FROM plings WHERE \
                plings.status_id >= 2 AND plings.project_id = project.project_id) AS \
                plingers,
-         * (SELECT SUM(amount) FROM plings WHERE \
                plings.project_id=project.project_id AND plings.status_id=2) AS \
                sumAmount,
-         * (SELECT SUM(amount) FROM plings WHERE \
plings.project_id=project.project_id AND plings.status_id IN (2,3,4)) AS \
                collectPlingsAll
-         * FROM plings
-         * LEFT JOIN project ON plings.project_id = project.project_id
-         * LEFT JOIN project_category ON project.project_category_id = \
                project_category.project_category_id
-         * LEFT JOIN member ON project.member_id = member.member_id
-         * WHERE plings.status_id in (2,3,4)
-         * AND plings.member_id = :member_id
-         * AND project.status = :project_status
-         * AND project.type_id = 1
-         * GROUP BY plings.project_id
-         * ORDER BY sumAmount DESC
-         * ";
-         **/
         $sql = "
                 SELECT plings.project_id,                       
                        project.title,
@@ -362,7 +340,6 @@ class Default_Model_Member extends Default_Model_DbTable_Member
             array('member_id' => $member_id, 'project_status' => \
Default_Model_Project::PROJECT_ACTIVE));  
         return $this->generateRowSet($result);
-
     }
 
     /**
@@ -372,28 +349,6 @@ class Default_Model_Member extends Default_Model_DbTable_Member
      */
     public function fetchFollowedProjects($member_id, $limit = null)
     {
-        /**
-         * $sql = "
-         * SELECT project_follower.project_id,
-         * project_follower.member_id,
-         * project_category.title AS catTitle,
-         * project.*,
-         * member.*,
-         * (SELECT COUNT(DISTINCT plings.member_id) FROM plings WHERE \
                plings.status_id >= 2 AND plings.project_id = project.project_id) AS \
                plingers,
-         * (SELECT SUM(amount) FROM plings WHERE \
                plings.project_id=project.project_id AND plings.status_id=2) AS \
                sumAmount,
-         * (SELECT SUM(amount) FROM plings WHERE \
plings.project_id=project.project_id AND plings.status_id IN (2,3,4)) AS \
                collectPlingsAll
-         * FROM project_follower
-         * LEFT JOIN project ON project_follower.project_id = project.project_id
-         * LEFT JOIN project_category ON project.project_category_id = \
                project_category.project_category_id
-         * LEFT JOIN member ON project.member_id = member.member_id
-         * WHERE project_follower.member_id = :member_id
-         * AND project.status = :project_status
-         * AND project.type_id = 1
-         * GROUP BY project_follower.project_id
-         * ORDER BY max(project_follower.project_follower_id) DESC
-         * ";
-         **/
-
         $sql = "
                 SELECT project_follower.project_id,
                         project.title,
@@ -414,7 +369,6 @@ class Default_Model_Member extends Default_Model_DbTable_Member
             array('member_id' => $member_id, 'project_status' => \
Default_Model_Project::PROJECT_ACTIVE));  
         return $this->generateRowSet($result);
-
     }
 
     public function fetchPlingedProjects($member_id, $limit = null)
@@ -443,7 +397,6 @@ class Default_Model_Member extends Default_Model_DbTable_Member
             array('member_id' => $member_id, 'project_status' => \
Default_Model_Project::PROJECT_ACTIVE));  
         return $this->generateRowSet($result);
-
     }
 
     public function fetchSupportedByProjects($member_id, $limit = null)
@@ -479,7 +432,6 @@ class Default_Model_Member extends Default_Model_DbTable_Member
             array('member_id' => $member_id, 'project_status' => \
Default_Model_Project::PROJECT_ACTIVE));  
         return $this->generateRowSet($result);
-
     }
 
     public function createNewUser($userData)
@@ -503,7 +455,7 @@ class Default_Model_Member extends Default_Model_DbTable_Member
             $userData['uuid'] = $uuidMember;
         }
         if (false == isset($userData['verificationVal'])) {
-            $verificationVal = MD5($userData['mail'] . $userData['username'] . \
time()); +            $verificationVal = \
Default_Model_MemberEmail::getVerificationValue($userData['username'], \
$userData['mail']);  $userData['verificationVal'] = $verificationVal;
         }
 
@@ -591,7 +543,6 @@ class Default_Model_Member extends Default_Model_DbTable_Member
         $result = $this->_db->fetchRow($sql);
 
         return $result['total_member_count'];
-
     }
 
     /**
@@ -622,9 +573,9 @@ class Default_Model_Member extends Default_Model_DbTable_Member
                  JOIN project_category ON project.project_category_id = \
project_category.project_category_id  JOIN member ON project.member_id = \
member.member_id  WHERE plings.status_id = 2
-                  AND project.status = " . Default_Model_Project::PROJECT_ACTIVE . "
+                  AND project.status = :status
                   AND project.type_id = 1
-                  AND project.member_id = " . $member_id . "
+                  AND project.member_id = :memberId
                 ORDER BY plings.create_time DESC
                 ";
 
@@ -632,39 +583,10 @@ class Default_Model_Member extends Default_Model_DbTable_Member
             $sql .= $this->_db->quoteInto(" limit ?", $limit, 'INTEGER');
         }
 
-        $result = $this->_db->fetchAll($sql);
+        $result = $this->_db->fetchAll($sql, array('memberId' => $member_id, \
'status' => Default_Model_Project::PROJECT_ACTIVE));  return \
$this->generateRowSet($result);  }
 
-
-    /*
-        public function fetchEarnings($projectIds, $limit = null)
-        {
-            $sql = "
-                    SELECT project_category.title AS catTitle,
-                           project.*,
-                           member.*,
-                           plings.*
-                    FROM plings
-                    LEFT JOIN project ON plings.project_id = project.project_id
-                    LEFT JOIN project_category ON project.project_category_id = \
                project_category.project_category_id
-                    LEFT JOIN member ON project.member_id = member.member_id
-                    WHERE plings.status_id = 2
-                      AND project.status = " . Default_Model_Project::PROJECT_ACTIVE \
                . "
-                      AND project.type_id = 1
-                      AND plings.project_id IN (" . implode(",", $projectIds) . ")
-                    ORDER BY plings.create_time DESC
-                    ";
-
-            if (null != $limit) {
-                $sql .= $this->_db->quoteInto(" limit ?", $limit, 'INTEGER');
-            }
-
-            $result = $this->_db->fetchAll($sql);
-            return $this->generateRowSet($result);
-        }
-    */
-
     /**
      * Finds an active user by given username or email ($identity)
      *
diff --git a/application/modules/default/models/MemberEmail.php \
b/application/modules/default/models/MemberEmail.php index 04af361..95b0ae2 100644
--- a/application/modules/default/models/MemberEmail.php
+++ b/application/modules/default/models/MemberEmail.php
@@ -39,6 +39,16 @@ class Default_Model_MemberEmail
     }
 
     /**
+     * @param int $user_name
+     * @param string $member_email
+     * @return string
+     */
+    public static function getVerificationValue($user_name, $member_email)
+    {
+        return md5($user_name . $member_email . time());
+    }
+
+    /**
      * @param int $member_id
      * @param bool $email_deleted
      * @return array
@@ -76,6 +86,39 @@ class Default_Model_MemberEmail
         return $stmnt->rowCount();
     }
 
+    /**
+     * @param int $user_id
+     * @param string $user_mail
+     * @param null|string $user_verification
+     * @return Zend_Db_Table_Row_Abstract
+     */
+    public function saveEmail($user_id, $user_mail, $user_verification = null)
+    {
+        $data = array();
+        $data['email_member_id'] = $user_id;
+        $data['email_address'] = $user_mail;
+        $data['email_verification_value'] = empty($user_verification) ? \
Default_Model_MemberEmail::getVerificationValue($user_id, $user_mail) : \
$user_verification; +
+        return $this->_dataTable->save($data);
+    }
+
+    /**
+     * @param int $user_id
+     * @param string $user_mail
+     * @param null|string $user_verification
+     * @return Zend_Db_Table_Row_Abstract
+     */
+    public function saveEmailAsPrimary($user_id, $user_mail, $user_verification = \
null) +    {
+        $data = array();
+        $data['email_member_id'] = $user_id;
+        $data['email_address'] = $user_mail;
+        $data['email_verification_value'] = empty($user_verification) ? \
Default_Model_MemberEmail::getVerificationValue($user_id, $user_mail) : \
$user_verification; +        $data['email_primary'] = \
Default_Model_DbTable_MemberEmail::EMAIL_PRIMARY; +
+        return $this->_dataTable->save($data);
+    }
+
     private function updateMemberData($member_id)
     {
         $sql = "select * from {$this->_dataTable->info('name')} where \
                email_member_id = :member_id and email_primary = 1";
diff --git a/application/modules/default/models/Project.php \
b/application/modules/default/models/Project.php index c644af4..bbc8ace 100644
--- a/application/modules/default/models/Project.php
+++ b/application/modules/default/models/Project.php
@@ -353,7 +353,7 @@ class Default_Model_Project extends Default_Model_DbTable_Project
                 FROM project AS p
                   JOIN member AS m ON p.member_id = m.member_id AND m.is_active = 1 \
                AND m.is_deleted = 0
                   JOIN project_category AS pc ON p.project_category_id = \
                pc.project_category_id
-                  LEFT JOIN stat_plings as sp ON p.project_id = sp.project_id
+                  LEFT JOIN stat_plings AS sp ON p.project_id = sp.project_id
                 WHERE 
                   p.project_id = :projectId
                   AND p.status >= :projectStatus AND p.type_id = :typeId
@@ -472,7 +472,6 @@ class Default_Model_Project extends Default_Model_DbTable_Project
      */
     public function fetchAllProjectUpdates($project_id)
     {
-
         $projectSel = $this->select()->setIntegrityCheck(false)
             ->from($this->_name)
             ->where('project.pid=?', $project_id, 'INTEGER')
@@ -480,7 +479,6 @@ class Default_Model_Project extends Default_Model_DbTable_Project
             ->where('project.type_id=?', self::PROJECT_TYPE_UPDATE);
 
         return $this->fetchAll($projectSel);
-
     }
 
     /**
@@ -768,43 +766,6 @@ class Default_Model_Project extends \
Default_Model_DbTable_Project  }
     }
 
-
-    /**
-     * /**
-     * @param $member
-     * @param $project
-     * @param int $count
-     * @return Zend_Db_Table_Rowset_Abstract
-    public function fetchMoreProjects($project, $count = 6)
-     * {
-     * $q = $this->select()->from($this, array(
-     * '*',
-     * 'project_validated' => 'project.validated',
-     * 'project_uuid' => 'project.uuid',
-     * 'project_status' => 'project.status',
-     * 'project_created_at' => 'project.created_at',
-     * 'member_type' => 'member.type',
-     * 'project_member_id' => 'member_id',
-     * 'collectPlings' => new Zend_Db_Expr('(SELECT COUNT(1) FROM plings WHERE \
                plings.project_id=project.project_id AND plings.status_id=2)'),
-     * 'collectPlingsAll' => new Zend_Db_Expr('(SELECT COUNT(1) FROM plings WHERE \
                plings.project_id=project.project_id AND plings.status_id in \
                (2,3,4))'),
-     * 'sumAmount' => new Zend_Db_Expr('(SELECT SUM(amount) FROM plings WHERE \
                plings.project_id=project.project_id AND plings.status_id=2)'),
-     * 'sumAmountDollar' => new Zend_Db_Expr('(SELECT ROUND(SUM(amount),0) FROM \
                plings WHERE plings.project_id=project.project_id AND \
                plings.status_id=2)'),
-     * 'sumAmountCent' => new Zend_Db_Expr('(SELECT round(mod(sum(amount), \
truncate(sum(amount),0)),2)*100 FROM plings WHERE \
                plings.project_id=project.project_id AND plings.status_id=2)'),
-     * 'plingers' => new Zend_Db_Expr('(select count(distinct plings.member_id) FROM \
                plings WHERE plings.status_id >= 2 and plings.project_id = \
                project.project_id)'),
-     * 'catTitle' => new Zend_Db_Expr('(SELECT title FROM project_category WHERE \
                project_category_id = project.project_category_id)')
-     * ))->setIntegrityCheck(false)
-     * ->join('member', 'project.member_id = member.member_id', array('username'))
-     * ->where('project.status = ?', self::PROJECT_ACTIVE)
-     * ->where('project.member_id = ?', $project->member_id, 'INTEGER')
-     * ->where('project.project_id != ?', $project->project_id, 'INTEGER')
-     * ->where('project.type_id = ?', 1)
-     * ->where('project.project_category_id = ?', $project->project_category_id, \
                'INTEGER')
-     * ->limit($count)
-     * ->order('sumAmount DESC');
-     * return $this->generateRowSet($q->query()->fetchAll());
-     * }
-     **/
-
     /**
      * @param Zend_Db_Table_Row $project
      * @param int $count
@@ -833,69 +794,6 @@ class Default_Model_Project extends \
                Default_Model_DbTable_Project
      * @param int $count
      * @return Zend_Db_Table_Rowset_Abstract
      */
-    public function fetchMoreProjectsOfOtherUsr_($project, $count = 6)
-    {
-        $q = $this->select()->from($this, array(
-            'project_id',
-            'image_small',
-            'title',
-            'catTitle' => new Zend_Db_Expr('(SELECT title FROM project_category \
                WHERE project_category_id = project.project_category_id)')
-        ))->setIntegrityCheck(false)
-            ->where('project.status = ?', self::PROJECT_ACTIVE)
-            ->where('project.member_id != ?', $project->member_id, 'INTEGER')
-            ->where('project.type_id = ?', 1)
-            ->where('project.project_category_id = ?', \
                $project->project_category_id, 'INTEGER')
-            ->limit($count)
-            ->order('project.created_at DESC');;
-        return $this->generateRowSet($q->query()->fetchAll());
-    }
-
-
-    /**
-     * /**
-     * @param $member
-     * @param $project
-     * @param int $count
-     * @return Zend_Db_Table_Rowset_Abstract
-
-    public function fetchMoreProjectsOfOtherUsr($project, $count = 6)
-     * {
-     * $q = $this->select()->from($this, array(
-     * '*',
-     * 'project_validated' => 'project.validated',
-     * 'project_uuid' => 'project.uuid',
-     * 'project_status' => 'project.status',
-     * 'project_created_at' => 'project.created_at',
-     * 'member_type' => 'member.type',
-     * 'project_member_id' => 'member_id',
-     * 'collectPlings' => new Zend_Db_Expr('(SELECT COUNT(1) FROM plings WHERE \
                plings.project_id=project.project_id AND plings.status_id=2)'),
-     * 'collectPlingsAll' => new Zend_Db_Expr('(SELECT COUNT(1) FROM plings WHERE \
                plings.project_id=project.project_id AND plings.status_id in \
                (2,3,4))'),
-     * 'sumAmount' => new Zend_Db_Expr('(SELECT SUM(amount) FROM plings WHERE \
                plings.project_id=project.project_id AND plings.status_id=2)'),
-     * 'sumAmountDollar' => new Zend_Db_Expr('(SELECT ROUND(SUM(amount),0) FROM \
                plings WHERE plings.project_id=project.project_id AND \
                plings.status_id=2)'),
-     * 'sumAmountCent' => new Zend_Db_Expr('(SELECT round(mod(sum(amount), \
truncate(sum(amount),0)),2)*100 FROM plings WHERE \
                plings.project_id=project.project_id AND plings.status_id=2)'),
-     * 'plingers' => new Zend_Db_Expr('(select count(distinct plings.member_id) FROM \
                plings WHERE plings.status_id >= 2 and plings.project_id = \
                project.project_id)'),
-     * 'catTitle' => new Zend_Db_Expr('(SELECT title FROM project_category WHERE \
                project_category_id = project.project_category_id)')
-     * ))->setIntegrityCheck(false)
-     * ->join('member', 'project.member_id = member.member_id', array('username'))
-     * ->where('project.status = ?', self::PROJECT_ACTIVE)
-     * ->where('project.member_id != ?', $project->member_id, 'INTEGER')
-     * ->where('project.type_id = ?', 1)
-     * ->where('project.project_category_id = ?', $project->project_category_id, \
                'INTEGER')
-     * ->limit($count)
-     * ->order('sumAmount DESC');
-     * //->order('RAND()')
-     * ;
-     *
-     *
-     * return $this->generateRowSet($q->query()->fetchAll());
-     * }
-     **/
-
-    /**
-     * @param $project
-     * @param int $count
-     * @return Zend_Db_Table_Rowset_Abstract
-     */
     public function fetchMoreProjectsOfOtherUsr($project, $count = 8)
     {
         $sql = 'select count(1) count from project where project.status = ' . \
self::PROJECT_ACTIVE . ' and member_id  <> ' . $project->member_id . ' and \
project_category_id=' . $project->project_category_id . ' and type_id=1'; @@ -950,33 \
+848,6 @@ class Default_Model_Project extends Default_Model_DbTable_Project  }
 
     /**
-     * @param int $member_id
-     * @return Zend_Db_Table_Rowset_Abstract
-     * @deprecated
-     */
-    public function fetchProjectInfoForGroup($member_id)
-    {
-        $sel = $this->select()->setIntegrityCheck(false)->from($this, array(
-            '*',
-            'project_member_id' => 'member_id',
-            'creator_name' => 'group_member.username',
-            'owner_name' => 'member.username',
-            'collectPlings' => '(SELECT COUNT(1) FROM plings WHERE \
                plings.project_id=project.project_id AND plings.status_id=2)',
-            'collectPlingsAll' => '(SELECT COUNT(1) FROM plings WHERE \
                plings.project_id=project.project_id AND plings.status_id in \
                (2,3,4))',
-            'backers' => '(SELECT count(*) FROM plings WHERE \
                plings.project_id=project.project_id AND plings.status_id=2)',
-            'plingers' => '(select count(distinct plings.member_id) FROM plings \
                WHERE plings.status_id >= 2 and plings.project_id = \
                project.project_id)',
-            'catTitle' => '(SELECT title FROM project_category WHERE \
                project_category_id = project.project_category_id)'
-        ))
-            ->join('member', 'project.member_id=member.member_id')
-            ->join('member as group_member', \
                'project.creator_id=group_member.member_id')
-            ->where('project.member_id=?', $member_id, 'INTEGER')
-            ->where(' project.type_id=?', 1)
-            ->where('project.status>?', self::PROJECT_INACTIVE);
-
-        return $this->fetchAll($sel);
-    }
-
-    /**
      * @param int $project_id
      * @return Zend_Db_Table_Rowset_Abstract
      */
@@ -1632,7 +1503,7 @@ class Default_Model_Project extends \
Default_Model_DbTable_Project  FROM project AS p
                   JOIN member AS m ON p.member_id = m.member_id AND m.is_active = 1 \
                AND m.is_deleted = 0
                   JOIN project_category AS pc ON p.project_category_id = \
                pc.project_category_id
-                  LEFT JOIN stat_plings as sp ON p.project_id = sp.project_id
+                  LEFT JOIN stat_plings AS sp ON p.project_id = sp.project_id
                 WHERE p.project_category_id IN (" . implode(',', $storeCategories) . \
")  AND p.status >= 100
         ";
@@ -1647,145 +1518,4 @@ class Default_Model_Project extends \
Default_Model_DbTable_Project  return $result;
     }
 
-    /**
-     * @param array $inputFilterParams
-     * @param int|null $limit
-     * @param int|null $offset
-     * @return Zend_Db_Select
-     * @throws Zend_Exception
-     */
-    protected function generateSmallStatement($inputFilterParams, $limit = null, \
                $offset = null)
-    {
-        $statement = $this->generateSmallBaseStatement($offset);
-        $statement = $this->generateCategoryFilter($statement, $inputFilterParams);
-
-        $statement->limit($limit, $offset);
-        return $statement;
-    }
-
-    /**
-     * @return Zend_Db_Select
-     */
-    protected function generateSmallBaseStatement($offset = null)
-    {
-        $statement = $this->select()->setIntegrityCheck(false);
-        $statement->from(array('project' => $this->_name), array(
-            '*',
-            'rownum' => '(' . $offset . ')',
-            'laplace_score' => new Zend_Db_Expr('(round(((count_likes + 6) / \
                ((count_likes + count_dislikes) + 12)),2) * 100)')
-        ));
-        $statement->join(array('member' => 'member'), 'project.member_id = \
                member.member_id', array(
-            'username',
-            'mail',
-            'avatar',
-            'is_active',
-            'is_deleted',
-            'agb',
-            'newsletter',
-            'paypal_mail',
-            'dwolla_id',
-            'profile_image_url',
-            'link_facebook',
-            'link_twitter',
-            'link_website',
-            'link_google',
-            'validated',
-            'main_project_id'
-        ));
-        $statement->join(array('project_category' => 'project_category'),
-            'project.project_category_id = project_category.project_category_id',
-            array('cat_title' => 'title'));
-        $statement->joinLeft(array('project_subcategory' => 'project_subcategory'),
-            'project.project_id = project_subcategory.project_id',
-            array('project_sub_category_id'));
-        $statement->where('project.status = ?', self::PROJECT_ACTIVE)
-            ->where('project.type_id=?', self::PROJECT_TYPE_STANDARD)
-            ->where('project.pid is null')
-            ->where('member.is_deleted=?', \
                Default_Model_DbTable_Member::MEMBER_NOT_DELETED)
-            ->where('member.is_active=?', Default_Model_Member::MEMBER_ACTIVE);
-        return $statement;
-    }
-
-    /**
-     * @param Zend_Db_Select $statement
-     * @param array $filterArrayValue
-     * @return Zend_Db_Select
-     * @deprecated
-     */
-    protected function getMemberFilter(Zend_Db_Select $statement, $filterArrayValue)
-    {
-        if (false == isset($filterArrayValue[self::FILTER_NAME_MEMBER])) {
-            return $statement;
-        }
-        if (false == empty($filterArrayValue['filter'])) {
-            $filterValue = $filterArrayValue['filter'];
-        } elseif (false == empty($filterArrayValue[self::FILTER_NAME_MEMBER])) {
-            $filterValue = $filterArrayValue[self::FILTER_NAME_MEMBER];
-        }
-
-        if (!empty($filterValue)) {
-            $statement->where('(project.member_id = ?)', $filterValue);
-        }
-
-        return $statement;
-    }
-
-    /**
-     * @return Zend_Db_Select
-     * @deprecated
-     */
-    protected function getBaseStatementHour()
-    {
-        $statement = $this->select()
-            ->setIntegrityCheck(false)
-            ->from(array('stat_daily' => 'stat_now'),
-                array(
-                    'count_views' => new \
                Zend_Db_Expr('SUM(stat_daily.count_views)'),
-                    'count_plings' => new \
                Zend_Db_Expr('SUM(stat_daily.count_plings)'),
-                    'count_updates' => new \
                Zend_Db_Expr('SUM(stat_daily.count_updates)'),
-                    'count_comments' => new \
                Zend_Db_Expr('SUM(stat_daily.count_comments)'),
-                    'count_followers' => new \
                Zend_Db_Expr('SUM(stat_daily.count_followers)'),
-                    'count_supporters' => new \
                Zend_Db_Expr('SUM(stat_daily.count_supporters)'),
-                    self::FILTER_NAME_RANKING => new \
                Zend_Db_Expr('SUM(stat_daily.ranking_value)')
-                ));
-        $statement->join('project', 'stat_daily.project_id=project.project_id');
-        $statement->join('member', 'project.member_id=member.member_id',
-            array(
-                'username' => 'username',
-                'profile_image_url',
-                'city',
-                'country',
-                'member_created_at' => 'created_at',
-                'paypal_mail'
-            ));
-        $statement->join('project_category', \
                'stat_daily.project_category_id=project_category.project_category_id',
                
-            array('catTitle' => 'title'));
-        $statement->where('project.status>?', self::PROJECT_INACTIVE)
-            ->where('project.type_id=?', self::PROJECT_TYPE_STANDARD)
-            ->where('project.pid is null');
-        $statement->group(array('project_id', 'project_category_id', \
                'project_type_id'));
-        return $statement;
-    }
-
-    /**
-     * @param Zend_Db_Select $statement
-     * @param array $filterArrayValue
-     * @return Zend_Db_Select
-     * @deprecated
-     */
-    protected function getLocationFilter(Zend_Db_Select $statement, \
                $filterArrayValue)
-    {
-        if (!isset($filterArrayValue[self::FILTER_NAME_LOCATION])) {
-            return $statement;
-        } else {
-            $filterValue = $filterArrayValue[self::FILTER_NAME_LOCATION];
-        }
-
-        if (!empty($filterValue)) {
-            $statement->where('city = ?', $filterValue);
-        }
-
-        return $statement;
-    }
-
 }
\ No newline at end of file


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic