Added UploadNamespace and UploadedFile entities
Signed-off-by: Gergely POLONKAI (W00d5t0ck) <polesz@w00d5t0ck.info>
This commit is contained in:
		
							
								
								
									
										39
									
								
								app/DoctrineMigrations/Version20120826132126.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										39
									
								
								app/DoctrineMigrations/Version20120826132126.php
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,39 @@ | |||||||
|  | <?php | ||||||
|  |  | ||||||
|  | namespace Application\Migrations; | ||||||
|  |  | ||||||
|  | use Doctrine\DBAL\Migrations\AbstractMigration, | ||||||
|  |     Doctrine\DBAL\Schema\Schema; | ||||||
|  |  | ||||||
|  | /** | ||||||
|  |  * Auto-generated Migration: Please modify to your need! | ||||||
|  |  */ | ||||||
|  | class Version20120826132126 extends AbstractMigration | ||||||
|  | { | ||||||
|  |     public function up(Schema $schema) | ||||||
|  |     { | ||||||
|  |         // this up() migration is autogenerated, please modify it to your needs | ||||||
|  |         $this->abortIf($this->connection->getDatabasePlatform()->getName() != "mysql"); | ||||||
|  |  | ||||||
|  |         $this->addSql("CREATE TABLE upload_namespaces (id INT AUTO_INCREMENT NOT NULL, name VARCHAR(50) NOT NULL, slug VARCHAR(50) NOT NULL, UNIQUE INDEX UNIQ_32D9781A5E237E06 (name), UNIQUE INDEX UNIQ_32D9781A989D9B62 (slug), PRIMARY KEY(id)) ENGINE = InnoDB"); | ||||||
|  |         $this->addSql("CREATE TABLE uploaded_files (id INT AUTO_INCREMENT NOT NULL, upload_namespace_id INT NOT NULL, filename VARCHAR(100) NOT NULL, mimeType VARCHAR(50) NOT NULL, description LONGTEXT DEFAULT NULL, INDEX IDX_E60EFB5609DE9D8 (upload_namespace_id), UNIQUE INDEX UNIQ_E60EFB5609DE9D83C0BE965 (upload_namespace_id, filename), PRIMARY KEY(id)) ENGINE = InnoDB"); | ||||||
|  |         $this->addSql("ALTER TABLE uploaded_files ADD CONSTRAINT FK_E60EFB5609DE9D8 FOREIGN KEY (upload_namespace_id) REFERENCES upload_namespaces (id)"); | ||||||
|  |         $this->addSql("ALTER TABLE user_data ADD avatar_image_id INT DEFAULT NULL"); | ||||||
|  |         $this->addSql("ALTER TABLE user_data ADD CONSTRAINT FK_D772BFAA5C18B4B1 FOREIGN KEY (avatar_image_id) REFERENCES uploaded_files (id)"); | ||||||
|  |         $this->addSql("CREATE INDEX IDX_D772BFAA5C18B4B1 ON user_data (avatar_image_id)"); | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     public function down(Schema $schema) | ||||||
|  |     { | ||||||
|  |         // this down() migration is autogenerated, please modify it to your needs | ||||||
|  |         $this->abortIf($this->connection->getDatabasePlatform()->getName() != "mysql"); | ||||||
|  |  | ||||||
|  |         $this->addSql("ALTER TABLE uploaded_files DROP FOREIGN KEY FK_E60EFB5609DE9D8"); | ||||||
|  |         $this->addSql("ALTER TABLE user_data DROP FOREIGN KEY FK_D772BFAA5C18B4B1"); | ||||||
|  |         $this->addSql("DROP TABLE upload_namespaces"); | ||||||
|  |         $this->addSql("DROP TABLE uploaded_files"); | ||||||
|  |         $this->addSql("ALTER TABLE user_data DROP FOREIGN KEY FK_D772BFAA5C18B4B1"); | ||||||
|  |         $this->addSql("DROP INDEX IDX_D772BFAA5C18B4B1 ON user_data"); | ||||||
|  |         $this->addSql("ALTER TABLE user_data DROP avatar_image_id"); | ||||||
|  |     } | ||||||
|  | } | ||||||
| @@ -30,7 +30,7 @@ class BlogPost | |||||||
|     { |     { | ||||||
|         return $this->id; |         return $this->id; | ||||||
|     } |     } | ||||||
|      |  | ||||||
|     /** |     /** | ||||||
|      * True if the BlogPost is published. If not, only the author and the |      * True if the BlogPost is published. If not, only the author and the | ||||||
|      * administrators can see it. |      * administrators can see it. | ||||||
| @@ -63,7 +63,7 @@ class BlogPost | |||||||
|     { |     { | ||||||
|         return $this->published; |         return $this->published; | ||||||
|     } |     } | ||||||
|      |  | ||||||
|     /** |     /** | ||||||
|      * The Group which this BlogPost is associated with |      * The Group which this BlogPost is associated with | ||||||
|      * |      * | ||||||
|   | |||||||
| @@ -224,7 +224,7 @@ class News | |||||||
|         $this->sticky = $sticky; |         $this->sticky = $sticky; | ||||||
|         return $this; |         return $this; | ||||||
|     } |     } | ||||||
|      |  | ||||||
|     /** |     /** | ||||||
|      * Get sticky |      * Get sticky | ||||||
|      * |      * | ||||||
|   | |||||||
							
								
								
									
										104
									
								
								src/KekRozsak/FrontBundle/Entity/UploadNamespace.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										104
									
								
								src/KekRozsak/FrontBundle/Entity/UploadNamespace.php
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,104 @@ | |||||||
|  | <?php | ||||||
|  | namespace KekRozsak\FrontBundle\Entity; | ||||||
|  |  | ||||||
|  | use Doctrine\ORM\Mapping as ORM; | ||||||
|  | use Symfony\Component\Validator\Constraints as Assert; | ||||||
|  |  | ||||||
|  | /** | ||||||
|  |  * Namespace support for uploaded files | ||||||
|  |  * | ||||||
|  |  * @author Gergely Polonkai | ||||||
|  |  * | ||||||
|  |  * @ORM\Entity | ||||||
|  |  * @ORM\Table(name="upload_namespaces") | ||||||
|  |  */ | ||||||
|  | class UploadNamespace | ||||||
|  | { | ||||||
|  |     /** | ||||||
|  |      * The ID of the namespace | ||||||
|  |      * | ||||||
|  |      * @var integer $id | ||||||
|  |      * | ||||||
|  |      * @ORM\Id | ||||||
|  |      * @ORM\GeneratedValue(strategy="AUTO") | ||||||
|  |      * @ORM\Column(type="integer") | ||||||
|  |      */ | ||||||
|  |     protected $id; | ||||||
|  |  | ||||||
|  |     /** | ||||||
|  |      * Get id | ||||||
|  |      * | ||||||
|  |      * @return integer | ||||||
|  |      */ | ||||||
|  |     public function getId() | ||||||
|  |     { | ||||||
|  |         return $this->id; | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     /** | ||||||
|  |      * The name of the namespace. This will be used when displaying the | ||||||
|  |      * namespace list. | ||||||
|  |      * | ||||||
|  |      * @var string $name | ||||||
|  |      * | ||||||
|  |      * @ORM\Column(type="string", length=50, unique=true, nullable=false) | ||||||
|  |      * | ||||||
|  |      * @Assert\NotBlank() | ||||||
|  |      */ | ||||||
|  |     protected $name; | ||||||
|  |  | ||||||
|  |     /** | ||||||
|  |      * Set name | ||||||
|  |      * | ||||||
|  |      * @param  string $name | ||||||
|  |      * @return UploadNamespace | ||||||
|  |      */ | ||||||
|  |     public function setName($name) | ||||||
|  |     { | ||||||
|  |         // TODO: Check if not null! | ||||||
|  |         $this->name = $name; | ||||||
|  |         return $this; | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     /** | ||||||
|  |      * Get name | ||||||
|  |      * | ||||||
|  |      * @return string | ||||||
|  |      */ | ||||||
|  |     public function getName() | ||||||
|  |     { | ||||||
|  |         return $this->name; | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     /** | ||||||
|  |      * The slugified name of the namespace. This will be used in URLs | ||||||
|  |      * | ||||||
|  |      * @var string $slug | ||||||
|  |      * | ||||||
|  |      * @ORM\Column(type="string", length=50, unique=true, nullable=false) | ||||||
|  |      */ | ||||||
|  |     protected $slug; | ||||||
|  |  | ||||||
|  |     /** | ||||||
|  |      * Set slug | ||||||
|  |      * | ||||||
|  |      * @param  string $slug | ||||||
|  |      * @return UploadNamespace | ||||||
|  |      */ | ||||||
|  |     public function setSlug($slug) | ||||||
|  |     { | ||||||
|  |         // TODO: Check if not null! | ||||||
|  |         $this->slug = $slug; | ||||||
|  |         return $this; | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     /** | ||||||
|  |      * Get slug | ||||||
|  |      * | ||||||
|  |      * @return string | ||||||
|  |      */ | ||||||
|  |     public function getSlug() | ||||||
|  |     { | ||||||
|  |         return $this->slug; | ||||||
|  |     } | ||||||
|  | } | ||||||
							
								
								
									
										181
									
								
								src/KekRozsak/FrontBundle/Entity/UploadedFile.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										181
									
								
								src/KekRozsak/FrontBundle/Entity/UploadedFile.php
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,181 @@ | |||||||
|  | <?php | ||||||
|  | namespace KekRozsak\FrontBundle\Entity; | ||||||
|  |  | ||||||
|  | use Doctrine\ORM\Mapping as ORM; | ||||||
|  | use Symfony\Component\Validator\Constraints as Assert; | ||||||
|  |  | ||||||
|  | /** | ||||||
|  |  * Description of UploadedFile | ||||||
|  |  * | ||||||
|  |  * @author Gergely Polonkai | ||||||
|  |  * | ||||||
|  |  * @ORM\Entity | ||||||
|  |  * @ORM\Table(name="uploaded_files", uniqueConstraints={ | ||||||
|  |  *     @ORM\UniqueConstraint(columns={"upload_namespace_id", "filename"}) | ||||||
|  |  * }) | ||||||
|  |  */ | ||||||
|  | class UploadedFile | ||||||
|  | { | ||||||
|  |     /** | ||||||
|  |      * The ID of the file | ||||||
|  |      * | ||||||
|  |      * @var integer $id | ||||||
|  |      * | ||||||
|  |      * @ORM\Id | ||||||
|  |      * @ORM\GeneratedValue(strategy="AUTO") | ||||||
|  |      * @ORM\Column(type="integer") | ||||||
|  |      */ | ||||||
|  |     protected $id; | ||||||
|  |  | ||||||
|  |     /** | ||||||
|  |      * Get ID | ||||||
|  |      * | ||||||
|  |      * @return integer | ||||||
|  |      */ | ||||||
|  |     public function getId() | ||||||
|  |     { | ||||||
|  |         return $this->id; | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     /** | ||||||
|  |      * Namespace of the file | ||||||
|  |      * | ||||||
|  |      * @var UploadNamespace $namespace | ||||||
|  |      * | ||||||
|  |      * @ORM\ManyToOne(targetEntity="KekRozsak\FrontBundle\Entity\UploadNamespace") | ||||||
|  |      * @ORM\JoinColumn(name="upload_namespace_id", nullable=false) | ||||||
|  |      */ | ||||||
|  |     protected $namespace; | ||||||
|  |  | ||||||
|  |     /** | ||||||
|  |      * Set namespace | ||||||
|  |      * | ||||||
|  |      * @param  KekRozsak\FrontBundle\Entity\UploadNamespace $namespace | ||||||
|  |      * @return UploadedFile | ||||||
|  |      */ | ||||||
|  |     public function setNamespace(UploadNamespace $namespace) | ||||||
|  |     { | ||||||
|  |         // TODO: Check if not null! | ||||||
|  |         $this->namespace = $namespace; | ||||||
|  |         return $this; | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     /** | ||||||
|  |      * Get namespace | ||||||
|  |      * | ||||||
|  |      * @return KekRozsak\FrontBundle\Entity\UploadNamespace | ||||||
|  |      */ | ||||||
|  |     public function getNamespace() | ||||||
|  |     { | ||||||
|  |         return $this->namespace; | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     /** | ||||||
|  |      * The file name, as seen in the filesystem | ||||||
|  |      * | ||||||
|  |      * @var string $filename | ||||||
|  |      * | ||||||
|  |      * @ORM\Column(type="string", length=100, nullable=false) | ||||||
|  |      */ | ||||||
|  |     protected $filename; | ||||||
|  |  | ||||||
|  |     /** | ||||||
|  |      * Set filename | ||||||
|  |      * | ||||||
|  |      * @param  string $filename | ||||||
|  |      * @return UploadedFile | ||||||
|  |      */ | ||||||
|  |     public function setFilename($filename) | ||||||
|  |     { | ||||||
|  |         // TODO: Check if not null nor empty! | ||||||
|  |         $this->filename = $filename; | ||||||
|  |         return $this; | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     /** | ||||||
|  |      * Get filename | ||||||
|  |      * | ||||||
|  |      * @return string | ||||||
|  |      */ | ||||||
|  |     public function getFilename() | ||||||
|  |     { | ||||||
|  |         return $this->filename; | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     /** | ||||||
|  |      * Get filename with namespace | ||||||
|  |      * | ||||||
|  |      * @return string | ||||||
|  |      */ | ||||||
|  |     public function getNsFilename() | ||||||
|  |     { | ||||||
|  |         return $this->namespace->getSlug() . DIRECTORY_SEPARATOR . $this->filename; | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     /** | ||||||
|  |      * MIME type of the file | ||||||
|  |      * | ||||||
|  |      * @var string $mimetype | ||||||
|  |      * | ||||||
|  |      * @ORM\Column(type="string", length=50, nullable=false) | ||||||
|  |      */ | ||||||
|  |     protected $mimeType; | ||||||
|  |  | ||||||
|  |     /** | ||||||
|  |      * Set mimeType | ||||||
|  |      * | ||||||
|  |      * @param  string $mimeType | ||||||
|  |      * @return UploadedFile | ||||||
|  |      */ | ||||||
|  |     public function setMimeType($mimeType) | ||||||
|  |     { | ||||||
|  |         // TODO: Check if not null nor empty! | ||||||
|  |         $this->mimeType = $mimeType; | ||||||
|  |         return $this; | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     /** | ||||||
|  |      * Get mimeType | ||||||
|  |      * | ||||||
|  |      * @return string | ||||||
|  |      */ | ||||||
|  |     public function getMimeType() | ||||||
|  |     { | ||||||
|  |         return $this->mimeType; | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     /** | ||||||
|  |      * Description of the file | ||||||
|  |      * | ||||||
|  |      * @var string $description | ||||||
|  |      * | ||||||
|  |      * @ORM\Column(type="text", nullable=true) | ||||||
|  |      */ | ||||||
|  |     protected $description; | ||||||
|  |  | ||||||
|  |     /** | ||||||
|  |      * Set description | ||||||
|  |      * | ||||||
|  |      * @param  string $description | ||||||
|  |      * @return UploadedFile | ||||||
|  |      */ | ||||||
|  |     public function setDescription($description) | ||||||
|  |     { | ||||||
|  |         if ($description === '') { | ||||||
|  |             $description = null; | ||||||
|  |         } | ||||||
|  |  | ||||||
|  |         $this->description = $description; | ||||||
|  |         return $this; | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     /** | ||||||
|  |      * Get description | ||||||
|  |      * | ||||||
|  |      * @return string | ||||||
|  |      */ | ||||||
|  |     public function getDescription() | ||||||
|  |     { | ||||||
|  |         return $this->description; | ||||||
|  |     } | ||||||
|  | } | ||||||
| @@ -516,4 +516,36 @@ class UserData | |||||||
|     { |     { | ||||||
|         return $this->favouriteTopics->contains($topic); |         return $this->favouriteTopics->contains($topic); | ||||||
|     } |     } | ||||||
|  |  | ||||||
|  |     /** | ||||||
|  |      * The avatar image of the user | ||||||
|  |      * | ||||||
|  |      * @var UploadedFile $avatarImage | ||||||
|  |      * | ||||||
|  |      * @ORM\ManyToOne(targetEntity="KekRozsak\FrontBundle\Entity\UploadedFile") | ||||||
|  |      * @ORM\JoinColumn(name="avatar_image_id", nullable=true) | ||||||
|  |      */ | ||||||
|  |     protected $avatarImage; | ||||||
|  |  | ||||||
|  |     /** | ||||||
|  |      * Set avaratImage | ||||||
|  |      * | ||||||
|  |      * @param  KekRozsak\FrontBundle\Entity\UploadedFile $avatarImage | ||||||
|  |      * @return UserData | ||||||
|  |      */ | ||||||
|  |     public function setAvatarImage(UploadedFile $avatarImage) | ||||||
|  |     { | ||||||
|  |         $this->avatarImage = $avatarImage; | ||||||
|  |         return $this; | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     /** | ||||||
|  |      * Get avatarImage | ||||||
|  |      * | ||||||
|  |      * @return KekRozsak\FrontBundle\Entity\UploadedFile | ||||||
|  |      */ | ||||||
|  |     public function getAvatarImage() | ||||||
|  |     { | ||||||
|  |         return $this->avatarImage; | ||||||
|  |     } | ||||||
| } | } | ||||||
|   | |||||||
| @@ -1,4 +1,4 @@ | |||||||
| /*  | /* | ||||||
|     Document   : book.css |     Document   : book.css | ||||||
|     Created on : 2012.08.17., 18:23:37 |     Created on : 2012.08.17., 18:23:37 | ||||||
|     Author     : Gergely Polonkai |     Author     : Gergely Polonkai | ||||||
| @@ -31,4 +31,4 @@ | |||||||
|  |  | ||||||
| #book-list tbody tr.even td { | #book-list tbody tr.even td { | ||||||
|     background-color: #c6ecfe; |     background-color: #c6ecfe; | ||||||
| } | } | ||||||
|   | |||||||
| @@ -1,4 +1,4 @@ | |||||||
| /*  | /* | ||||||
|     Document   : eventbox |     Document   : eventbox | ||||||
|     Created on : 2012.08.15., 11:34:17 |     Created on : 2012.08.15., 11:34:17 | ||||||
|     Author     : Gergely Polonkai |     Author     : Gergely Polonkai | ||||||
|   | |||||||
| @@ -1,4 +1,4 @@ | |||||||
| /*  | /* | ||||||
|     Document   : forum.css |     Document   : forum.css | ||||||
|     Created on : 2012.08.15., 11:40:39 |     Created on : 2012.08.15., 11:40:39 | ||||||
|     Author     : Gergely |     Author     : Gergely | ||||||
|   | |||||||
| @@ -1,4 +1,4 @@ | |||||||
| /*  | /* | ||||||
|     Document   : books.css |     Document   : books.css | ||||||
|     Created on : 2012.08.15., 11:41:37 |     Created on : 2012.08.15., 11:41:37 | ||||||
|     Author     : Gergely Polonkai |     Author     : Gergely Polonkai | ||||||
|   | |||||||
| @@ -1,4 +1,4 @@ | |||||||
| /*  | /* | ||||||
|     Document   : loginbox |     Document   : loginbox | ||||||
|     Created on : 2012.08.15., 11:32:19 |     Created on : 2012.08.15., 11:32:19 | ||||||
|     Author     : Gergely Polonkai |     Author     : Gergely Polonkai | ||||||
|   | |||||||
| @@ -1,4 +1,4 @@ | |||||||
| /*  | /* | ||||||
|     Document   : main |     Document   : main | ||||||
|     Created on : 2012.08.15., 10:58:08 |     Created on : 2012.08.15., 10:58:08 | ||||||
|     Author     : Gergely Polonkai |     Author     : Gergely Polonkai | ||||||
| @@ -96,4 +96,4 @@ h3 a { | |||||||
| #help-button { | #help-button { | ||||||
|     display: block; |     display: block; | ||||||
|     float: right; |     float: right; | ||||||
| } | } | ||||||
|   | |||||||
| @@ -1,4 +1,4 @@ | |||||||
| /*  | /* | ||||||
|     Document   : menu.css |     Document   : menu.css | ||||||
|     Created on : 2012.08.15., 11:10:44 |     Created on : 2012.08.15., 11:10:44 | ||||||
|     Author     : Gergely Polonkai |     Author     : Gergely Polonkai | ||||||
|   | |||||||
| @@ -1,4 +1,4 @@ | |||||||
| /*  | /* | ||||||
|     Document   : news |     Document   : news | ||||||
|     Created on : 2012.08.16., 16:26:16 |     Created on : 2012.08.16., 16:26:16 | ||||||
|     Author     : Gergely Polonkai |     Author     : Gergely Polonkai | ||||||
|   | |||||||
| @@ -1,4 +1,4 @@ | |||||||
| /*  | /* | ||||||
|     Document   : popup |     Document   : popup | ||||||
|     Created on : 2012.08.15., 11:29:58 |     Created on : 2012.08.15., 11:29:58 | ||||||
|     Author     : Gergely Polonkai |     Author     : Gergely Polonkai | ||||||
|   | |||||||
| @@ -1,4 +1,4 @@ | |||||||
| /*  | /* | ||||||
|     Document   : profilebox |     Document   : profilebox | ||||||
|     Created on : 2012.08.15., 11:31:41 |     Created on : 2012.08.15., 11:31:41 | ||||||
|     Author     : Gergely Polonkai |     Author     : Gergely Polonkai | ||||||
|   | |||||||
| @@ -1,4 +1,4 @@ | |||||||
| /*  | /* | ||||||
|     Document   : statuslines |     Document   : statuslines | ||||||
|     Created on : 2012.08.16., 16:28:11 |     Created on : 2012.08.16., 16:28:11 | ||||||
|     Author     : Gergely Polonkai |     Author     : Gergely Polonkai | ||||||
|   | |||||||
| @@ -11,7 +11,7 @@ use Symfony\Component\Routing\Exception\RouteNotFoundException; | |||||||
|  * Description of HelpUrlExtension |  * Description of HelpUrlExtension | ||||||
|  * |  * | ||||||
|  * @author Gergely Polonkai |  * @author Gergely Polonkai | ||||||
|  *  |  * | ||||||
|  * @DI\Service |  * @DI\Service | ||||||
|  * @DI\Tag("twig.extension") |  * @DI\Tag("twig.extension") | ||||||
|  */ |  */ | ||||||
| @@ -33,7 +33,7 @@ class HelpUrlExtension extends \Twig_Extension | |||||||
|  |  | ||||||
|     public function getGlobals() { |     public function getGlobals() { | ||||||
|         parent::getGlobals(); |         parent::getGlobals(); | ||||||
|          |  | ||||||
|         $request = $this->container->get('request'); |         $request = $this->container->get('request'); | ||||||
|         $router = $this->container->get('router'); |         $router = $this->container->get('router'); | ||||||
|  |  | ||||||
| @@ -61,7 +61,7 @@ class HelpUrlExtension extends \Twig_Extension | |||||||
|             'helpUrl' => $helpUrl, |             'helpUrl' => $helpUrl, | ||||||
|         ); |         ); | ||||||
|     } |     } | ||||||
|      |  | ||||||
|     public function getName() |     public function getName() | ||||||
|     { |     { | ||||||
|         return 'HelpUrl'; |         return 'HelpUrl'; | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user