8 * This source file is subject to the new BSD license that is bundled
9 * with this package in the file LICENSE.txt.
10 * It is also available through the world-wide-web at this URL:
11 * http://framework.zend.com/license/new-bsd
12 * If you did not receive a copy of the license and are unable to
13 * obtain it through the world-wide-web, please send an email
14 * to license@zend.com so we can send you a copy immediately.
19 * @copyright Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com)
20 * @license http://framework.zend.com/license/new-bsd New BSD License
25 * @see Zend_Gdata_Entry
27 require_once 'Zend/Gdata/Entry.php';
30 * @see Zend_Gdata_Extension_FeedLink
32 require_once 'Zend/Gdata/Extension/FeedLink.php';
35 * @see Zend_Gdata_YouTube_Extension_Description
37 require_once 'Zend/Gdata/YouTube/Extension/Description.php';
40 * @see Zend_Gdata_YouTube_Extension_AboutMe
42 require_once 'Zend/Gdata/YouTube/Extension/AboutMe.php';
45 * @see Zend_Gdata_YouTube_Extension_Age
47 require_once 'Zend/Gdata/YouTube/Extension/Age.php';
50 * @see Zend_Gdata_YouTube_Extension_Username
52 require_once 'Zend/Gdata/YouTube/Extension/Username.php';
55 * @see Zend_Gdata_YouTube_Extension_Books
57 require_once 'Zend/Gdata/YouTube/Extension/Books.php';
60 * @see Zend_Gdata_YouTube_Extension_Company
62 require_once 'Zend/Gdata/YouTube/Extension/Company.php';
65 * @see Zend_Gdata_YouTube_Extension_Hobbies
67 require_once 'Zend/Gdata/YouTube/Extension/Hobbies.php';
70 * @see Zend_Gdata_YouTube_Extension_Hometown
72 require_once 'Zend/Gdata/YouTube/Extension/Hometown.php';
75 * @see Zend_Gdata_YouTube_Extension_Location
77 require_once 'Zend/Gdata/YouTube/Extension/Location.php';
80 * @see Zend_Gdata_YouTube_Extension_Movies
82 require_once 'Zend/Gdata/YouTube/Extension/Movies.php';
85 * @see Zend_Gdata_YouTube_Extension_Music
87 require_once 'Zend/Gdata/YouTube/Extension/Music.php';
90 * @see Zend_Gdata_YouTube_Extension_Occupation
92 require_once 'Zend/Gdata/YouTube/Extension/Occupation.php';
95 * @see Zend_Gdata_YouTube_Extension_School
97 require_once 'Zend/Gdata/YouTube/Extension/School.php';
100 * @see Zend_Gdata_YouTube_Extension_Gender
102 require_once 'Zend/Gdata/YouTube/Extension/Gender.php';
105 * @see Zend_Gdata_YouTube_Extension_Relationship
107 require_once 'Zend/Gdata/YouTube/Extension/Relationship.php';
110 * @see Zend_Gdata_YouTube_Extension_FirstName
112 require_once 'Zend/Gdata/YouTube/Extension/FirstName.php';
115 * @see Zend_Gdata_YouTube_Extension_LastName
117 require_once 'Zend/Gdata/YouTube/Extension/LastName.php';
120 * @see Zend_Gdata_YouTube_Extension_Statistics
122 require_once 'Zend/Gdata/YouTube/Extension/Statistics.php';
125 * @see Zend_Gdata_Media_Extension_MediaThumbnail
127 require_once 'Zend/Gdata/Media/Extension/MediaThumbnail.php';
130 * Represents the YouTube video playlist flavor of an Atom entry
133 * @package Zend_Gdata
134 * @subpackage YouTube
135 * @copyright Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com)
136 * @license http://framework.zend.com/license/new-bsd New BSD License
138 class Zend_Gdata_YouTube_UserProfileEntry extends Zend_Gdata_Entry
141 protected $_entryClassName = 'Zend_Gdata_YouTube_UserProfileEntry';
148 protected $_feedLink = array();
151 * The username for this profile entry
155 protected $_username = null;
158 * The description of the user
162 protected $_description = null;
165 * The contents of the 'About Me' field.
169 protected $_aboutMe = null;
172 * The age of the user
176 protected $_age = null;
179 * Books of interest to the user
183 protected $_books = null;
190 protected $_company = null;
197 protected $_hobbies = null;
204 protected $_hometown = null;
211 protected $_location = null;
218 protected $_movies = null;
225 protected $_music = null;
232 protected $_occupation = null;
239 protected $_school = null;
246 protected $_gender = null;
253 protected $_relationship = null;
260 protected $_firstName = null;
267 protected $_lastName = null;
272 * @var Zend_Gdata_YouTube_Extension_Statistics
274 protected $_statistics = null;
279 * @var Zend_Gdata_Media_Extension_MediaThumbnail
281 protected $_thumbnail = null;
284 * Creates a User Profile entry, representing an individual user
285 * and their attributes.
287 * @param DOMElement $element (optional) DOMElement from which this
288 * object should be constructed.
290 public function __construct($element = null)
292 $this->registerAllNamespaces(Zend_Gdata_YouTube::$namespaces);
293 parent::__construct($element);
297 * Retrieves a DOMElement which corresponds to this element and all
298 * child properties. This is used to build an entry back into a DOM
299 * and eventually XML text for sending to the server upon updates, or
300 * for application storage/persistence.
302 * @param DOMDocument $doc The DOMDocument used to construct DOMElements
303 * @return DOMElement The DOMElement representing this element and all
306 public function getDOM($doc = null, $majorVersion = 1, $minorVersion = null)
308 $element = parent::getDOM($doc, $majorVersion, $minorVersion);
309 if ($this->_description != null) {
310 $element->appendChild($this->_description->getDOM($element->ownerDocument));
312 if ($this->_aboutMe != null) {
313 $element->appendChild($this->_aboutMe->getDOM($element->ownerDocument));
315 if ($this->_age != null) {
316 $element->appendChild($this->_age->getDOM($element->ownerDocument));
318 if ($this->_username != null) {
319 $element->appendChild($this->_username->getDOM($element->ownerDocument));
321 if ($this->_books != null) {
322 $element->appendChild($this->_books->getDOM($element->ownerDocument));
324 if ($this->_company != null) {
325 $element->appendChild($this->_company->getDOM($element->ownerDocument));
327 if ($this->_hobbies != null) {
328 $element->appendChild($this->_hobbies->getDOM($element->ownerDocument));
330 if ($this->_hometown != null) {
331 $element->appendChild($this->_hometown->getDOM($element->ownerDocument));
333 if ($this->_location != null) {
334 $element->appendChild($this->_location->getDOM($element->ownerDocument));
336 if ($this->_movies != null) {
337 $element->appendChild($this->_movies->getDOM($element->ownerDocument));
339 if ($this->_music != null) {
340 $element->appendChild($this->_music->getDOM($element->ownerDocument));
342 if ($this->_occupation != null) {
343 $element->appendChild($this->_occupation->getDOM($element->ownerDocument));
345 if ($this->_school != null) {
346 $element->appendChild($this->_school->getDOM($element->ownerDocument));
348 if ($this->_gender != null) {
349 $element->appendChild($this->_gender->getDOM($element->ownerDocument));
351 if ($this->_relationship != null) {
352 $element->appendChild($this->_relationship->getDOM($element->ownerDocument));
354 if ($this->_firstName != null) {
355 $element->appendChild($this->_firstName->getDOM($element->ownerDocument));
357 if ($this->_lastName != null) {
358 $element->appendChild($this->_lastName->getDOM($element->ownerDocument));
360 if ($this->_statistics != null) {
361 $element->appendChild($this->_statistics->getDOM($element->ownerDocument));
363 if ($this->_thumbnail != null) {
364 $element->appendChild($this->_thumbnail->getDOM($element->ownerDocument));
366 if ($this->_feedLink != null) {
367 foreach ($this->_feedLink as $feedLink) {
368 $element->appendChild($feedLink->getDOM($element->ownerDocument));
375 * Creates individual Entry objects of the appropriate type and
376 * stores them in the $_entry array based upon DOM data.
378 * @param DOMNode $child The DOMNode to process
380 protected function takeChildFromDOM($child)
382 $absoluteNodeName = $child->namespaceURI . ':' . $child->localName;
383 switch ($absoluteNodeName) {
384 case $this->lookupNamespace('yt') . ':' . 'description':
385 $description = new Zend_Gdata_YouTube_Extension_Description();
386 $description->transferFromDOM($child);
387 $this->_description = $description;
389 case $this->lookupNamespace('yt') . ':' . 'aboutMe':
390 $aboutMe = new Zend_Gdata_YouTube_Extension_AboutMe();
391 $aboutMe->transferFromDOM($child);
392 $this->_aboutMe = $aboutMe;
394 case $this->lookupNamespace('yt') . ':' . 'age':
395 $age = new Zend_Gdata_YouTube_Extension_Age();
396 $age->transferFromDOM($child);
399 case $this->lookupNamespace('yt') . ':' . 'username':
400 $username = new Zend_Gdata_YouTube_Extension_Username();
401 $username->transferFromDOM($child);
402 $this->_username = $username;
404 case $this->lookupNamespace('yt') . ':' . 'books':
405 $books = new Zend_Gdata_YouTube_Extension_Books();
406 $books->transferFromDOM($child);
407 $this->_books = $books;
409 case $this->lookupNamespace('yt') . ':' . 'company':
410 $company = new Zend_Gdata_YouTube_Extension_Company();
411 $company->transferFromDOM($child);
412 $this->_company = $company;
414 case $this->lookupNamespace('yt') . ':' . 'hobbies':
415 $hobbies = new Zend_Gdata_YouTube_Extension_Hobbies();
416 $hobbies->transferFromDOM($child);
417 $this->_hobbies = $hobbies;
419 case $this->lookupNamespace('yt') . ':' . 'hometown':
420 $hometown = new Zend_Gdata_YouTube_Extension_Hometown();
421 $hometown->transferFromDOM($child);
422 $this->_hometown = $hometown;
424 case $this->lookupNamespace('yt') . ':' . 'location':
425 $location = new Zend_Gdata_YouTube_Extension_Location();
426 $location->transferFromDOM($child);
427 $this->_location = $location;
429 case $this->lookupNamespace('yt') . ':' . 'movies':
430 $movies = new Zend_Gdata_YouTube_Extension_Movies();
431 $movies->transferFromDOM($child);
432 $this->_movies = $movies;
434 case $this->lookupNamespace('yt') . ':' . 'music':
435 $music = new Zend_Gdata_YouTube_Extension_Music();
436 $music->transferFromDOM($child);
437 $this->_music = $music;
439 case $this->lookupNamespace('yt') . ':' . 'occupation':
440 $occupation = new Zend_Gdata_YouTube_Extension_Occupation();
441 $occupation->transferFromDOM($child);
442 $this->_occupation = $occupation;
444 case $this->lookupNamespace('yt') . ':' . 'school':
445 $school = new Zend_Gdata_YouTube_Extension_School();
446 $school->transferFromDOM($child);
447 $this->_school = $school;
449 case $this->lookupNamespace('yt') . ':' . 'gender':
450 $gender = new Zend_Gdata_YouTube_Extension_Gender();
451 $gender->transferFromDOM($child);
452 $this->_gender = $gender;
454 case $this->lookupNamespace('yt') . ':' . 'relationship':
455 $relationship = new Zend_Gdata_YouTube_Extension_Relationship();
456 $relationship->transferFromDOM($child);
457 $this->_relationship = $relationship;
459 case $this->lookupNamespace('yt') . ':' . 'firstName':
460 $firstName = new Zend_Gdata_YouTube_Extension_FirstName();
461 $firstName->transferFromDOM($child);
462 $this->_firstName = $firstName;
464 case $this->lookupNamespace('yt') . ':' . 'lastName':
465 $lastName = new Zend_Gdata_YouTube_Extension_LastName();
466 $lastName->transferFromDOM($child);
467 $this->_lastName = $lastName;
469 case $this->lookupNamespace('yt') . ':' . 'statistics':
470 $statistics = new Zend_Gdata_YouTube_Extension_Statistics();
471 $statistics->transferFromDOM($child);
472 $this->_statistics = $statistics;
474 case $this->lookupNamespace('media') . ':' . 'thumbnail':
475 $thumbnail = new Zend_Gdata_Media_Extension_MediaThumbnail();
476 $thumbnail->transferFromDOM($child);
477 $this->_thumbnail = $thumbnail;
479 case $this->lookupNamespace('gd') . ':' . 'feedLink':
480 $feedLink = new Zend_Gdata_Extension_FeedLink();
481 $feedLink->transferFromDOM($child);
482 $this->_feedLink[] = $feedLink;
485 parent::takeChildFromDOM($child);
491 * Sets the content of the 'about me' field.
493 * @param Zend_Gdata_YouTube_Extension_AboutMe $aboutMe The 'about me'
495 * @throws Zend_Gdata_App_VersionException
496 * @return Zend_Gdata_YouTube_UserProfileEntry Provides a fluent interface
498 public function setAboutMe($aboutMe = null)
500 if (($this->getMajorProtocolVersion() == null) ||
501 ($this->getMajorProtocolVersion() == 1)) {
502 require_once 'Zend/Gdata/App/VersionException.php';
503 throw new Zend_Gdata_App_VersionException('The setAboutMe ' .
504 ' method is only supported as of version 2 of the YouTube ' .
507 $this->_aboutMe = $aboutMe;
513 * Returns the contents of the 'about me' field.
515 * @throws Zend_Gdata_App_VersionException
516 * @return Zend_Gdata_YouTube_Extension_AboutMe The 'about me' information
518 public function getAboutMe()
520 if (($this->getMajorProtocolVersion() == null) ||
521 ($this->getMajorProtocolVersion() == 1)) {
522 require_once 'Zend/Gdata/App/VersionException.php';
523 throw new Zend_Gdata_App_VersionException('The getAboutMe ' .
524 ' method is only supported as of version 2 of the YouTube ' .
527 return $this->_aboutMe;
532 * Sets the content of the 'first name' field.
534 * @param Zend_Gdata_YouTube_Extension_FirstName $firstName The first name
535 * @throws Zend_Gdata_App_VersionException
536 * @return Zend_Gdata_YouTube_UserProfileEntry Provides a fluent interface
538 public function setFirstName($firstName = null)
540 if (($this->getMajorProtocolVersion() == null) ||
541 ($this->getMajorProtocolVersion() == 1)) {
542 require_once 'Zend/Gdata/App/VersionException.php';
543 throw new Zend_Gdata_App_VersionException('The setFirstName ' .
544 ' method is only supported as of version 2 of the YouTube ' .
547 $this->_firstName = $firstName;
553 * Returns the first name
555 * @throws Zend_Gdata_App_VersionException
556 * @return Zend_Gdata_YouTube_Extension_FirstName The first name
558 public function getFirstName()
560 if (($this->getMajorProtocolVersion() == null) ||
561 ($this->getMajorProtocolVersion() == 1)) {
562 require_once 'Zend/Gdata/App/VersionException.php';
563 throw new Zend_Gdata_App_VersionException('The getFirstName ' .
564 ' method is only supported as of version 2 of the YouTube ' .
567 return $this->_firstName;
572 * Sets the content of the 'last name' field.
574 * @param Zend_Gdata_YouTube_Extension_LastName $lastName The last name
575 * @throws Zend_Gdata_App_VersionException
576 * @return Zend_Gdata_YouTube_UserProfileEntry Provides a fluent interface
578 public function setLastName($lastName = null)
580 if (($this->getMajorProtocolVersion() == null) ||
581 ($this->getMajorProtocolVersion() == 1)) {
582 require_once 'Zend/Gdata/App/VersionException.php';
583 throw new Zend_Gdata_App_VersionException('The setLastName ' .
584 ' method is only supported as of version 2 of the YouTube ' .
587 $this->_lastName = $lastName;
593 * Returns the last name
595 * @throws Zend_Gdata_App_VersionException
596 * @return Zend_Gdata_YouTube_Extension_LastName The last name
598 public function getLastName()
600 if (($this->getMajorProtocolVersion() == null) ||
601 ($this->getMajorProtocolVersion() == 1)) {
602 require_once 'Zend/Gdata/App/VersionException.php';
603 throw new Zend_Gdata_App_VersionException('The getLastName ' .
604 ' method is only supported as of version 2 of the YouTube ' .
607 return $this->_lastName;
612 * Returns the statistics
614 * @throws Zend_Gdata_App_VersionException
615 * @return Zend_Gdata_YouTube_Extension_Statistics The profile statistics
617 public function getStatistics()
619 if (($this->getMajorProtocolVersion() == null) ||
620 ($this->getMajorProtocolVersion() == 1)) {
621 require_once 'Zend/Gdata/App/VersionException.php';
622 throw new Zend_Gdata_App_VersionException('The getStatistics ' .
623 ' method is only supported as of version 2 of the YouTube ' .
626 return $this->_statistics;
631 * Returns the thumbnail
633 * @throws Zend_Gdata_App_VersionException
634 * @return Zend_Gdata_Media_Extension_MediaThumbnail The profile thumbnail
636 public function getThumbnail()
638 if (($this->getMajorProtocolVersion() == null) ||
639 ($this->getMajorProtocolVersion() == 1)) {
640 require_once 'Zend/Gdata/App/VersionException.php';
641 throw new Zend_Gdata_App_VersionException('The getThumbnail ' .
642 ' method is only supported as of version 2 of the YouTube ' .
645 return $this->_thumbnail;
652 * @param Zend_Gdata_YouTube_Extension_Age $age The age
653 * @return Zend_Gdata_YouTube_UserProfileEntry Provides a fluent interface
655 public function setAge($age = null)
664 * @return Zend_Gdata_YouTube_Extension_Age The age
666 public function getAge()
674 * @param Zend_Gdata_YouTube_Extension_Username $username The username
675 * @return Zend_Gdata_YouTube_UserProfileEntry Provides a fluent interface
677 public function setUsername($username = null)
679 $this->_username = $username;
684 * Returns the username
686 * @return Zend_Gdata_YouTube_Extension_Username The username
688 public function getUsername()
690 return $this->_username;
696 * @param Zend_Gdata_YouTube_Extension_Books $books The books
697 * @return Zend_Gdata_YouTube_UserProfileEntry Provides a fluent interface
699 public function setBooks($books = null)
701 $this->_books = $books;
708 * @return Zend_Gdata_YouTube_Extension_Books The books
710 public function getBooks()
712 return $this->_books;
718 * @param Zend_Gdata_YouTube_Extension_Company $company The company
719 * @return Zend_Gdata_YouTube_UserProfileEntry Provides a fluent interface
721 public function setCompany($company = null)
723 $this->_company = $company;
728 * Returns the company
730 * @return Zend_Gdata_YouTube_Extension_Company The company
732 public function getCompany()
734 return $this->_company;
740 * @param Zend_Gdata_YouTube_Extension_Hobbies $hobbies The hobbies
741 * @return Zend_Gdata_YouTube_UserProfileEntry Provides a fluent interface
743 public function setHobbies($hobbies = null)
745 $this->_hobbies = $hobbies;
750 * Returns the hobbies
752 * @return Zend_Gdata_YouTube_Extension_Hobbies The hobbies
754 public function getHobbies()
756 return $this->_hobbies;
762 * @param Zend_Gdata_YouTube_Extension_Hometown $hometown The hometown
763 * @return Zend_Gdata_YouTube_UserProfileEntry Provides a fluent interface
765 public function setHometown($hometown = null)
767 $this->_hometown = $hometown;
772 * Returns the hometown
774 * @return Zend_Gdata_YouTube_Extension_Hometown The hometown
776 public function getHometown()
778 return $this->_hometown;
784 * @param Zend_Gdata_YouTube_Extension_Location $location The location
785 * @return Zend_Gdata_YouTube_UserProfileEntry Provides a fluent interface
787 public function setLocation($location = null)
789 $this->_location = $location;
794 * Returns the location
796 * @return Zend_Gdata_YouTube_Extension_Location The location
798 public function getLocation()
800 return $this->_location;
806 * @param Zend_Gdata_YouTube_Extension_Movies $movies The movies
807 * @return Zend_Gdata_YouTube_UserProfileEntry Provides a fluent interface
809 public function setMovies($movies = null)
811 $this->_movies = $movies;
818 * @return Zend_Gdata_YouTube_Extension_Movies The movies
820 public function getMovies()
822 return $this->_movies;
828 * @param Zend_Gdata_YouTube_Extension_Music $music The music
829 * @return Zend_Gdata_YouTube_UserProfileEntry Provides a fluent interface
831 public function setMusic($music = null)
833 $this->_music = $music;
840 * @return Zend_Gdata_YouTube_Extension_Music The music
842 public function getMusic()
844 return $this->_music;
848 * Sets the occupation
850 * @param Zend_Gdata_YouTube_Extension_Occupation $occupation The occupation
851 * @return Zend_Gdata_YouTube_UserProfileEntry Provides a fluent interface
853 public function setOccupation($occupation = null)
855 $this->_occupation = $occupation;
860 * Returns the occupation
862 * @return Zend_Gdata_YouTube_Extension_Occupation The occupation
864 public function getOccupation()
866 return $this->_occupation;
872 * @param Zend_Gdata_YouTube_Extension_School $school The school
873 * @return Zend_Gdata_YouTube_UserProfileEntry Provides a fluent interface
875 public function setSchool($school = null)
877 $this->_school = $school;
884 * @return Zend_Gdata_YouTube_Extension_School The school
886 public function getSchool()
888 return $this->_school;
894 * @param Zend_Gdata_YouTube_Extension_Gender $gender The gender
895 * @return Zend_Gdata_YouTube_UserProfileEntry Provides a fluent interface
897 public function setGender($gender = null)
899 $this->_gender = $gender;
906 * @return Zend_Gdata_YouTube_Extension_Gender The gender
908 public function getGender()
910 return $this->_gender;
914 * Sets the relationship
916 * @param Zend_Gdata_YouTube_Extension_Relationship $relationship The relationship
917 * @return Zend_Gdata_YouTube_UserProfileEntry Provides a fluent interface
919 public function setRelationship($relationship = null)
921 $this->_relationship = $relationship;
926 * Returns the relationship
928 * @return Zend_Gdata_YouTube_Extension_Relationship The relationship
930 public function getRelationship()
932 return $this->_relationship;
936 * Sets the array of embedded feeds related to the video
938 * @param array $feedLink The array of embedded feeds relating to the video
939 * @return Zend_Gdata_YouTube_UserProfileEntry Provides a fluent interface
941 public function setFeedLink($feedLink = null)
943 $this->_feedLink = $feedLink;
948 * Get the feed link property for this entry.
951 * @param string $rel (optional) The rel value of the link to be found.
952 * If null, the array of links is returned.
953 * @return mixed If $rel is specified, a Zend_Gdata_Extension_FeedLink
954 * object corresponding to the requested rel value is returned
955 * if found, or null if the requested value is not found. If
956 * $rel is null or not specified, an array of all available
957 * feed links for this entry is returned, or null if no feed
960 public function getFeedLink($rel = null)
963 return $this->_feedLink;
965 foreach ($this->_feedLink as $feedLink) {
966 if ($feedLink->rel == $rel) {
975 * Returns the URL in the gd:feedLink with the provided rel value
977 * @param string $rel The rel value to find
978 * @return mixed Either the URL as a string or null if a feedLink wasn't
979 * found with the provided rel value
981 public function getFeedLinkHref($rel)
983 $feedLink = $this->getFeedLink($rel);
984 if ($feedLink !== null) {
985 return $feedLink->href;
992 * Returns the URL of the playlist list feed
994 * @return string The URL of the playlist video feed
996 public function getPlaylistListFeedUrl()
998 return $this->getFeedLinkHref(Zend_Gdata_YouTube::USER_PLAYLISTS_REL);
1002 * Returns the URL of the uploads feed
1004 * @return string The URL of the uploads video feed
1006 public function getUploadsFeedUrl()
1008 return $this->getFeedLinkHref(Zend_Gdata_YouTube::USER_UPLOADS_REL);
1012 * Returns the URL of the subscriptions feed
1014 * @return string The URL of the subscriptions feed
1016 public function getSubscriptionsFeedUrl()
1018 return $this->getFeedLinkHref(Zend_Gdata_YouTube::USER_SUBSCRIPTIONS_REL);
1022 * Returns the URL of the contacts feed
1024 * @return string The URL of the contacts feed
1026 public function getContactsFeedUrl()
1028 return $this->getFeedLinkHref(Zend_Gdata_YouTube::USER_CONTACTS_REL);
1032 * Returns the URL of the favorites feed
1034 * @return string The URL of the favorites feed
1036 public function getFavoritesFeedUrl()
1038 return $this->getFeedLinkHref(Zend_Gdata_YouTube::USER_FAVORITES_REL);