@@ -85,6 +85,108 @@ function uploadBitstream($bitstreamdao, $assetstoredao)
85
85
return true ;
86
86
} // end uploadBitstream()
87
87
88
+ /** save upload item in the DB */
89
+ public function createLinkItem ($ userDao , $ name , $ url , $ parent = null )
90
+ {
91
+ $ modelLoad = new MIDAS_ModelLoader ();
92
+ $ itemModel = $ modelLoad ->loadModel ('Item ' );
93
+ $ feedModel = $ modelLoad ->loadModel ('Feed ' );
94
+ $ folderModel = $ modelLoad ->loadModel ('Folder ' );
95
+ $ bitstreamModel = $ modelLoad ->loadModel ('Bitstream ' );
96
+ $ assetstoreModel = $ modelLoad ->loadModel ('Assetstore ' );
97
+ $ feedpolicygroupModel = $ modelLoad ->loadModel ('Feedpolicygroup ' );
98
+ $ itemRevisionModel = $ modelLoad ->loadModel ('ItemRevision ' );
99
+ $ feedpolicyuserModel = $ modelLoad ->loadModel ('Feedpolicyuser ' );
100
+ $ itempolicyuserModel = $ modelLoad ->loadModel ('Itempolicyuser ' );
101
+ $ itemKeywordModel = $ modelLoad ->loadModel ('ItemKeyword ' );
102
+
103
+ if ($ userDao == null )
104
+ {
105
+ throw new Zend_Exception ('Please log in ' );
106
+ }
107
+
108
+ if ($ parent == null )
109
+ {
110
+ $ parent = $ userDao ->getPrivateFolder ();
111
+ }
112
+ if (is_numeric ($ parent ))
113
+ {
114
+ $ parent = $ folderModel ->load ($ parent );
115
+ }
116
+
117
+ if ($ parent == false || !$ folderModel ->policyCheck ($ parent , $ userDao , MIDAS_POLICY_WRITE ))
118
+ {
119
+ throw new Zend_Exception ('Parent permissions errors ' );
120
+ }
121
+
122
+ Zend_Loader::loadClass ("ItemDao " , BASE_PATH . '/core/models/dao ' );
123
+ $ item = new ItemDao ;
124
+ $ item ->setName ($ name );
125
+ $ item ->setDate (date ('c ' ));
126
+ $ item ->setDescription ('' );
127
+ $ item ->setType (0 );
128
+ $ item ->setThumbnail ('' );
129
+ $ itemModel ->save ($ item );
130
+
131
+ $ feed = $ feedModel ->createFeed ($ userDao , MIDAS_FEED_CREATE_ITEM , $ item );
132
+
133
+ $ folderModel ->addItem ($ parent , $ item );
134
+ $ itemModel ->copyParentPolicies ($ item , $ parent , $ feed );
135
+
136
+ $ feedpolicyuserModel ->createPolicy ($ userDao , $ feed , MIDAS_POLICY_ADMIN );
137
+ $ itempolicyuserModel ->createPolicy ($ userDao , $ item , MIDAS_POLICY_ADMIN );
138
+
139
+ Zend_Loader::loadClass ("ItemRevisionDao " , BASE_PATH . '/core/models/dao ' );
140
+ $ itemRevisionDao = new ItemRevisionDao ;
141
+ $ itemRevisionDao ->setChanges ('Initial revision ' );
142
+ $ itemRevisionDao ->setUser_id ($ userDao ->getKey ());
143
+ $ itemRevisionDao ->setDate (date ('c ' ));
144
+ $ itemRevisionDao ->setLicense (null );
145
+ $ itemModel ->addRevision ($ item , $ itemRevisionDao );
146
+
147
+ // Set the keyword for the item
148
+ Zend_Loader::loadClass ("ItemKeywordDao " , BASE_PATH . '/core/models/dao ' );
149
+ $ keyword = new ItemKeywordDao ();
150
+ $ keyword ->setValue ($ name );
151
+ $ itemKeywordModel ->insertKeyword ($ keyword );
152
+ $ itemModel ->addKeyword ($ item , $ keyword );
153
+
154
+ $ tmp = str_replace ('. ' , ' ' , $ name );
155
+ $ tmp = str_replace ('_ ' , ' ' , $ tmp );
156
+ $ tmp = str_replace ('- ' , ' ' , $ tmp );
157
+
158
+ $ keywords = explode (' ' , $ tmp );
159
+ if (count ($ keywords ) > 1 )
160
+ {
161
+ foreach ($ keywords as $ key => $ value )
162
+ {
163
+ $ keyword = new ItemKeywordDao ();
164
+ $ keyword ->setValue ($ value );
165
+ $ itemKeywordModel ->insertKeyword ($ keyword );
166
+ $ itemModel ->addKeyword ($ item , $ keyword );
167
+ }
168
+ }
169
+
170
+ // Add bitstreams to the revision
171
+ Zend_Loader::loadClass ("BitstreamDao " , BASE_PATH . '/core/models/dao ' );
172
+ $ bitstreamDao = new BitstreamDao ;
173
+ $ bitstreamDao ->setName ($ url );
174
+ $ bitstreamDao ->setPath ($ url );
175
+ $ bitstreamDao ->setMimetype ('url ' );
176
+ $ bitstreamDao ->setSizebytes (0 );
177
+ $ bitstreamDao ->setChecksum (' ' );
178
+
179
+ $ defaultAssetStoreId = Zend_Registry::get ('configGlobal ' )->defaultassetstore ->id ;
180
+ $ bitstreamDao ->setAssetstoreId ($ defaultAssetStoreId );
181
+ $ assetstoreDao = $ assetstoreModel ->load ($ defaultAssetStoreId );
182
+
183
+ $ itemRevisionModel ->addBitstream ($ itemRevisionDao , $ bitstreamDao );
184
+
185
+ $ this ->getLogger ()->info (__METHOD__ ." Upload ok " );
186
+ return $ item ;
187
+ }//end createUploadedItem
188
+
189
+
88
190
/** save upload item in the DB */
89
191
public function createUploadedItem ($ userDao , $ name , $ path , $ parent = null , $ license = null )
90
192
{
0 commit comments