Subversion Repositories cheapmusic

Rev

Blame | Last modification | View Log | RSS feed

<?php
/**
 * Copyright(C) 2009-2019 www.seopanel.in. All rights reserved.
 * @author Geo Varghese 
 * 
 */
class Project extends SeoDiary {
        
        var $spTextSA;
        var $spTextPanel;
        
        function __construct() {
                parent::__construct();
                $this->spTextSA = $this->getLanguageTexts('siteauditor', $_SESSION['lang_code']);
        }
        
        /*
         * show projects list to manage
         */
        function showProjectsManager($info = '') {
                $userId = isLoggedIn();
                $info ['user_id'] = intval( $info ['user_id'] );
                $pgScriptPath = PLUGIN_SCRIPT_URL;
                $sql = "select sdp.*, w.name as website_name from sd_projects sdp, websites w where sdp.website_id=w.id";
                
                if(isAdmin()) {
                        $userCtrler = new UserController();
                        $userList = $userCtrler->__getAllUsers();
                        $this->set( 'userList', $userList );
                        
                        $webSiteCtrler = new WebsiteController();
                        $websiteList = $webSiteCtrler->__getAllWebsites();
                        $this->set( 'websiteList', $websiteList );
                        
                        if(!empty( $info ['user_id'] )) {
                                $pgScriptPath .= "&user_id=" . $info ['user_id'];
                                $sql .= " and w.user_id=" . $info ['user_id'];
                                $this->set( 'userId', $info ['user_id'] );
                        }
                        
                        $this->set( 'isAdmin', 1 );
                } else {
                        $sql .= " and w.user_id=$userId";
                        $this->set( 'isAdmin', 0 );
                }
                
                // pagination setup
                $this->db->query( $sql, true );
                $this->paging->setDivClass( 'pagingdiv' );
                $this->paging->loadPaging( $this->db->noRows, SP_PAGINGNO );
                $pagingDiv = $this->paging->printPages( $pgScriptPath, '', 'scriptDoLoad', 'content', 'layout=ajax' );
                $this->set( 'pagingDiv', $pagingDiv );
                $sql .= " limit " . $this->paging->start . "," . $this->paging->per_page;
                
                $projectList = $this->db->select( $sql );
                $this->set( 'list', $projectList );
                $this->set( 'pageNo', $_GET ['pageno'] );
                $this->set('spTextSA', $this->spTextSA);
                $this->pluginRender( 'show_projects_manager' );
        }
        
        /*
         * func to create new project
         */
        function newProject($info = '') {
                $userId = isLoggedIn();
                $webSiteCtrler = new WebsiteController();
                $websiteList = $webSiteCtrler->__getAllWebsites( $userId, true );
                $this->set( 'websiteList', $websiteList );
                $this->pluginRender( 'new_project' );
        }
        
        /*
         * func to create project
         */
        function createProject($listInfo) {

                $this->set( 'post', $listInfo );
                $errMsg ['website_id'] = formatErrorMsg( $this->validate->checkBlank( $listInfo ['website_id'] ) );
                $errMsg ['name'] = formatErrorMsg( $this->validate->checkBlank( $listInfo ['name'] ) );
                $errMsg ['description'] = formatErrorMsg( $this->validate->checkBlank( $listInfo ['description'] ) );
                
                if(! $this->validate->flagErr) {                        
                        if(!$this->__checkProjectExists( $listInfo ['website_id'])) {
                                $sql = "insert into sd_projects(website_id, name,description,status)
                                        values(" . intval( $listInfo ['website_id'] ) . ", '" . addslashes( $listInfo ['name'] ) . "','" 
                                        . addslashes( $listInfo ['description'] ) . "',1)";
                                $this->db->query( $sql );
                                $this->showProjectsManager();
                                exit();
                        } else {
                                $errMsg ['name'] = formatErrorMsg( $this->spTextSA['projectalreadyexist'] );
                        }
                }
                
                $this->set( 'errMsg', $errMsg );
                $this->newProject( $listInfo );
        }
        
        /*
         * func to edit project
         */
        function editProject($projectId, $listInfo = '') {
                $userId = isLoggedIn();
                
                if(!empty( $projectId )) {
                        
                        if(empty( $listInfo )) {
                                $listInfo = $this->__getProjectInfo( $projectId );
                        }
                        
                        $this->set( 'post', $listInfo );
                        $webSiteCtrler = new WebsiteController();
                        $websiteList = $webSiteCtrler->__getAllWebsites( $userId, true );
                        $this->set( 'websiteList', $websiteList );
                        $this->pluginRender( 'edit_project' );
                }
        }
        
        /*
         * func to update project
         */
        function updateProject($listInfo) {

                $this->set( 'post', $listInfo );
                $errMsg ['website_id'] = formatErrorMsg( $this->validate->checkBlank( $listInfo ['website_id'] ) );
                $errMsg ['name'] = formatErrorMsg( $this->validate->checkBlank( $listInfo ['name'] ) );
                $errMsg ['description'] = formatErrorMsg( $this->validate->checkBlank( $listInfo ['description'] ) );
                
                if(! $this->validate->flagErr) {                        
                        
                        if($this->__checkProjectExists($listInfo['website_id'], $listInfo ['id'] )) {
                                $this->validate->flagErr = true;
                                $errMsg ['name'] = formatErrorMsg( $this->spTextSA['projectalreadyexist'] );
                        }
                        
                        if(! $this->validate->flagErr) {                                
                                $sql = "update sd_projects set
                                                                website_id = " . intval( $listInfo ['website_id'] ) . ",
                                                                name = '" . addslashes( $listInfo ['name'] ) . "',
                                                                description = '" . addslashes( $listInfo ['description'] ) . "'
                                                                where id=" . intval( $listInfo ['id'] );
                                $this->db->query( $sql );
                                $this->showProjectsManager();
                                exit();
                        }
                }
                
                $this->set( 'errMsg', $errMsg );
                $this->editProject( $listInfo ['id'], $listInfo );
        }
        
        /*
         * func to delete project
         */
        function deleteProject($projectId) {
                $projectId = intval( $projectId );
                $sql = "delete from sd_projects where id=" . intval( $projectId );
                $this->db->query( $sql );
                $this->showProjectsManager();
        }
        
        /*
         * func to change status
         */
        function __changeStatus($projectId, $status) {
                $projectId = intval( $projectId );
                $status = intval( $status );
                $sql = "update sd_projects set status=$status where id=$projectId";
                $this->db->query( $sql );
        }

        /*
         * function to check name of project already existing
         */
        function __checkProjectExists($websiteId, $projectId = 0) {
                $websiteId = intval( $websiteId );
                $projectId = intval($projectId);
                $sql = "select id from sd_projects where website_id=$websiteId";
                $sql .= !empty( $projectId ) ? " and id!=$projectId" : "";
                $listInfo = $this->db->select( $sql, true );
                return !empty( $listInfo ['id'] ) ? $listInfo ['id'] : false;
        }

        function __getAllProjects($userId = '', $isAdminCheck = false, $searchName = '') {
                $sql = "select p.*,w.name as website_name from sd_projects p,websites w where p.website_id=w.id ";
                if(!$isAdminCheck || !isAdmin() ){
                        if(!empty($userId)) $sql .= " and user_id=" . intval($userId);
                } 
                
                // if search string is not empty
                if (!empty($searchName)) {
                        $sql .= " and (name like '%".addslashes($searchName)."%' or url like '%".addslashes($searchName)."%')";
                }
                
                $sql .= " order by name";
                $websiteList = $this->db->select($sql);
                return $websiteList;
        }
        
        /*
         * func to get project info
         */
        function __getProjectInfo($projectId) {
                $sql = "select p.*,w.name as website_name from sd_projects p,websites w where p.website_id=w.id and p.id=" . intval( $projectId );
                $info = $this->db->select( $sql, true );
                return $info;
        }
}