1<?php
2/* Copyright (c) 1998-2010 ILIAS open source, Extended GPL, see docs/LICENSE */
3
4include_once('Services/WebServices/ECS/classes/class.ilRemoteObjectBase.php');
5
6/**
7* Remote file app class
8*
9* @author Stefan Meyer <meyer@leifos.com>
10* @version $Id$
11*
12* @ingroup ModulesRemoteFile
13*/
14
15class ilObjRemoteFile extends ilRemoteObjectBase
16{
17    const DB_TABLE_NAME = "rfil_settings";
18
19    protected $version;
20    protected $version_tstamp;
21
22    public function initType()
23    {
24        $this->type = "rfil";
25    }
26
27    protected function getTableName()
28    {
29        return self::DB_TABLE_NAME;
30    }
31
32    protected function getECSObjectType()
33    {
34        return "/campusconnect/files";
35    }
36
37    /**
38     * Set version
39     *
40     * @param int $a_version
41     */
42    public function setVersion($a_version)
43    {
44        $this->version = (int) $a_version;
45    }
46
47    /**
48     * get version
49     *
50     * @return int
51     */
52    public function getVersion()
53    {
54        return $this->version;
55    }
56
57    /**
58     * Set version timestamp
59     *
60     * @param int $a_version
61     */
62    public function setVersionDateTime($a_tstamp)
63    {
64        $this->version_tstamp = (int) $a_tstamp;
65    }
66
67    /**
68     * get version timestamp
69     *
70     * @return int
71     */
72    public function getVersionDateTime()
73    {
74        return $this->version_tstamp;
75    }
76
77    protected function doCreateCustomFields(array &$a_fields)
78    {
79        $a_fields["version"] = array("integer", 1);
80        $a_fields["version_tstamp"] = array("integer", time());
81    }
82
83    protected function doUpdateCustomFields(array &$a_fields)
84    {
85        $a_fields["version"] = array("integer", $this->getVersion());
86        $a_fields["version_tstamp"] = array("integer", $this->getVersionDateTime());
87    }
88
89    protected function doReadCustomFields($a_row)
90    {
91        $this->setVersion($a_row->version);
92        $this->setVersionDateTime($a_row->version_tstamp);
93    }
94
95    protected function updateCustomFromECSContent(ilECSSetting $a_server, $a_ecs_content)
96    {
97        $this->setVersion($a_ecs_content->version);
98        $this->setVersionDateTime($a_ecs_content->version_date);
99    }
100
101    /**
102     * Get version info
103     *
104     * used in ilRemoteFileListGUI
105     *
106     * @param int $a_obj_id
107     * @return string
108     */
109    public static function _lookupVersionInfo($a_obj_id)
110    {
111        global $ilDB;
112
113        $set = $ilDB->query("SELECT version, version_tstamp" .
114            " FROM " . self::DB_TABLE_NAME .
115            " WHERE obj_id = " . $ilDB->quote($a_obj_id, "integer"));
116        $row = $ilDB->fetchAssoc($set);
117        $res = (int) $row["version"];
118
119        if ($row["version_tstamp"]) {
120            $res .= " (" . ilDatePresentation::formatDate(new ilDateTime($row["version_tstamp"], IL_CAL_UNIX)) . ")";
121        }
122
123        return $res;
124    }
125}
126