示例#1
0
    public function list_pages($request, $message = '')
    {
        FCore::LoadObject("security/IsMasterSecurityCheck");
        if ($request == ACTION.ACTION_UPDATE ||
                $request == ACTION.ACTION_DELETE)
        {
            try
            {
                if ($request == ACTION.ACTION_UPDATE)
                {
                    $this->load_local_object("actions/UpdateUserManualPage");
                    $message = "Successfully Updated A Usermanaul Page";
                }
                else
                {
                    $this->load_local_object("actions/DeleteUserManualPage");
                    $message = "Successfully Deleted A Usermanual Page";
                }
            }
            catch(UserActionException $e)
            {
                if ($this->logger != null)
                {
                    $this->logger->log(
                            Logger::LEVEL_WARN,
                            $e->getMessage(),
                            $e->getFile(), $e->getLine());
                }
                $message = $e->getMessage();
            }
            catch(ValidationException $e)
            {
                if ($this->logger != null)
                {
                    $this->logger->log(
                            Logger::LEVEL_WARN,
                            $e->getMessage(),
                            $e->getFile(), $e->getLine());
                }
                $message = $e->getMessage();
            }
            catch(Exception $e)
            {
                if ($this->logger != null)
                {
                    $this->logger->log(
                            Logger::LEVEL_ERROR,
                            $e->getMessage(),
                            $e->getFile(), $e->getLine());
                }
                $message = "An Unexpected Error Occurred: Please Contact The Admin";
            }
        }

        $pagelist;
        try
        {
            $pagelist = $this->load_local_object("actions/GetUserManualPageList");
            $pagelist = $pagelist->get_data();
        }
        catch(UserActionException $e)
        {
            if ($this->logger != null)
            {
                $this->logger->log(
                        Logger::LEVEL_WARN,
                        $e->getMessage(),
                        $e->getFile(), $e->getLine());
            }
            $pagelist = $e->getMessage();
        }

        $page = $this->ready_master($request);
        $page->consume_string(
                "content",
                $this->load_local_php_view(
                        "views/infolist",
                        array(
                            'pagelist'  => $pagelist,
                            'message'   => $message,
                        )));
        return $page->get_page();
    }
    public function __construct($selected = null)
    {
        parent::__construct();

        $user_factory =& FCore::LoadDBFactory(BN_DBFACTORY_USERMODEL);
        if (!$user_factory)
        {
            throw new UserActionException(
                    "could not connect to the user database", null);
        }

        try
        {
            $this->data = $user_factory->select(
                    array(
                        array(
                            DBFactory::ID_KEY   => USERS_USERNAME,
                            DBFactory::ID_SIGN  => "!=",
                            DBFactory::ID_VAL   => "system",
                        ),
                        "AND",
                        array(
                            DBFactory::ID_KEY   => USERS_USERNAME,
                            DBFactory::ID_SIGN  => "!=",
                            DBFactory::ID_VAL   => "guest",
                        ),
                        "AND",
                        array(
                            DBFactory::ID_KEY   => USERS_ISACTIVE,
                            DBFactory::ID_SIGN  => "=",
                            DBFactory::ID_VAL   => "1",
                        ),
                        "AND",
                        array(
                            DBFactory::ID_KEY   => USERS_ISFAMILY,
                            DBFactory::ID_SIGN  => "=",
                            DBFactory::ID_VAL   => "1",
                        ),
                    ),
                    array(
                        DBFactory::SELECT_GET_ONLY => array(
                            USERS_USERID, USERS_USERNAME, 
                        ),
                        DBFactory::SELECT_ORDER_BY => USERS_USERNAME
                    ));
        }
        catch(DBFactoryException $e)
        {
            throw new UserActionException(
                    "an error occurred while getting user data", $e);
        }

        if ($selected)
        {
            foreach($this->data as $key => $user)
            {
                if ($user[USERS_USERID] == $selected[USERS_USERID])
                {
                    $this->data[$key][DBForum::POSTCHILDREN] = FCore::LoadObject(
                        "pages/GetUserPageHierarchy",
                        array(
                            USERS_USERID    => $selected[USERS_USERID],
                            "extended"      => true,
                        ));
                    if (is_a($this->data[$key][DBForum::POSTCHILDREN], "DataCollection"))
                    {
                        $this->data[$key][DBForum::POSTCHILDREN] =
                                $this->data[$key][DBForum::POSTCHILDREN]->get_data();
                    }
                    break;
                }
            }
        }
    }
示例#3
0
    public function view_content($request, $message = "")
    {
        $page_state = false;
        try
        {
            $page_state = $this->load_local_object("content/objects/GetPageState");
            $page_state = $page_state->get_state();
        }
        catch(UserActionException $e)
        {
            $prev = $e->getPrevious();
            if ($prev != null)
            {
                DBLogger::log(
                        BN_LOGTYPE_ERROR,
                        $prev->getMessage());
                FCore::GetLogger()->log(
                        Logger::LEVEL_ERROR,
                        $e->getMessage());
            }
            $message .= $e->getMessage();
            $page_state = false;
        }

        if ($page_state)
        {
            $page_data = false;
            try
            {
                $page_data = FCore::LoadObject("pages/GetUserPage",
                        array(
                            "user_id"   => $page_state[USERS_USERID],
                            "page_id"   => $page_state[DBForum::POST_ID],
                        ));
            }
            catch(UserActionException $e)
            {
                $prev = $e->getPrevious();
                if ($prev != null)
                {
                    DBLogger::log(
                            BN_LOGTYPE_ERROR,
                            $prev->getMessage());
                    FCore::GetLogger()->log(
                            Logger::LEVEL_ERROR,
                            $e->getMessage());
                }
                $message .= $e->getMessage();
                $page_data = false;
            }
            $page_data = is_a($page_data, "DataCollection") ?
                    $page_data->get_data() : array();

            $response_list = false;
            if (array_key_exists(PAGETYPE, $page_data) &&
                $page_data[PAGETYPE] != BN_PAGETHREADTYPE_NONE)
            {
                try
                {
                    $response_list = FCore::LoadObject(
                            "responses/GetUserPageResponseList",
                            $page_state[DBForum::POST_ID]);
                    $response_list = $response_list->get_data();
                }
                catch(UserActionException $e)
                {
                    $prev = $e->getPrevious();
                    if ($prev != null)
                    {
                        DBLogger::log(
                                BN_LOGTYPE_ERROR,
                                $prev->getMessage());
                        FCore::GetLogger()->log(
                                Logger::LEVEL_ERROR,
                                $e->getMessage());
                    }
                    $message .= $e->getMessage();
                }
            }

            return $this->ready_master_common(
                "content/views/content_view",
                array(
                    'message'   => $message,
                    "user_id"   => $page_state[USERS_USERID],
                    "page_id"   => $page_state[DBForum::POST_ID],
                    'content'   => array_key_exists(DBDataType::CONTENT, $page_data) ?
                                        $page_data[DBDataType::CONTENT] : null,
                    'title'     => array_key_exists(PAGETITLE, $page_data) ?
                                        $page_data[PAGETITLE] : null,
                    'response_list' => is_array($response_list) ?
                                        $response_list : array(),
                ),
                $page_state);
        }
        else
        {
            return $this->ready_master_common(
                "content/views/content_welcome",
                array(
                    'message'   => $message
                ),
                $page_state);
        }
    }
示例#4
0
    public function content_create($request, $message = "")
    {
        $object = null;
        if ($request == ACTION.ACTION_CREATE."content")
        {
            try
            {
                $object = $this->load_local_object(
                        "content/objects/CreateUserPage");
                $object->do_action();
                return $this->content_view(
                        $request,
                        "successfully created page",
                        $object->get(DBForum::POST_ID));
            }
            catch(UserActionException $e)
            {
                $message = $e->getMessage();
                $prev = $e->getPrevious();
                if ($prev != null)
                {
                    FCore::GetLogger()->log(
                            Logger::LEVEL_ERROR,
                            $prev->getMessage());
                }
            }
        }

        $hierarchy = false;
        try
        {
            $hierarchy = FCore::LoadObject(
                    "pages/GetUserPageHierarchy",
                    array("extended" => true));
            $hierarchy = $hierarchy->get_data();
            if ($hierarchy == null)
            {
                $hierarchy = false;
            }
        }
        catch(UserActionException $e)
        {
            $prev = $e->getPrevious();
            if ($prev != null)
            {
                DBLogger::log(
                        BN_LOGTYPE_ERROR,
                        $prev->getMessage());
                FCore::GetLogger()->log(
                        Logger::LEVEL_ERROR,
                        $e->getMessage());
            }
            $message = $e->getMessage();
        }
        
        return $this->ready_master_common(
                "content/views/content_create", array(
                    'hierarchy' => $hierarchy,
                    'message'   => $message,
                    'user_id'   => BoydsnestSession::GetInstance()->get(USERS_USERID),
                    'data'      => is_a($object, "DataCollection") ? $object->get_data() : array()
                ));
    }