WIP: Add contact_category table + fix bundle routes and template

ofaj
Julio 10 years ago
parent 66b3285895
commit 9e9930c035
  1. 3
      app/AppKernel.php
  2. 2
      app/Migrations/Schema/V111/Version111.php
  3. 5
      app/config/routing.yml
  4. 1
      app/config/sonata/sonata_admin.yml
  5. 1
      app/config/sonata/sonata_page.yml
  6. 16
      src/Chamilo/ContactBundle/Admin/CategoryAdmin.php
  7. 4
      src/Chamilo/ContactBundle/ChamiloContactBundle.php
  8. 11
      src/Chamilo/ContactBundle/Controller/ContactController.php
  9. 26
      src/Chamilo/ContactBundle/DependencyInjection/ChamiloContactExtension.php
  10. 14
      src/Chamilo/ContactBundle/Entity/Category.php
  11. 7
      src/Chamilo/ContactBundle/Form/Type/ContactType.php
  12. 4
      src/Chamilo/ContactBundle/Resources/config/admin.yml
  13. 3
      src/Chamilo/ContactBundle/Resources/config/routing.yml
  14. 4
      src/Chamilo/ContactBundle/Resources/views/index.html.twig

@ -98,10 +98,11 @@ class AppKernel extends Kernel
new Chamilo\CoreBundle\ChamiloCoreBundle(),
new Chamilo\CourseBundle\ChamiloCourseBundle(),
// new Chamilo\SettingsBundle\ChamiloSettingsBundle(),
new Chamilo\ThemeBundle\ChamiloThemeBundle(),
new Chamilo\ThemeBundle\ChamiloThemeBundle(),
//new Chamilo\NotificationBundle\ChamiloNotificationBundle(),
new Chamilo\AdminBundle\ChamiloAdminBundle(),
new Chamilo\TimelineBundle\ChamiloTimelineBundle(),
new \Chamilo\ContactBundle\ChamiloContactBundle(),
// Based in Sonata
new Chamilo\ClassificationBundle\ChamiloClassificationBundle(),

@ -57,6 +57,8 @@ class Version111 extends AbstractMigrationChamilo
$this->addSql("ALTER TABLE faq_category_translation ADD CONSTRAINT FK_5493B0FC2C2AC5D3 FOREIGN KEY (translatable_id) REFERENCES faq_category (id) ON DELETE CASCADE;");
$this->addSql("ALTER TABLE faq_question ADD CONSTRAINT FK_4A55B05912469DE2 FOREIGN KEY (category_id) REFERENCES faq_category (id);");
$this->addSql("CREATE TABLE contact_category (id INT AUTO_INCREMENT NOT NULL, name VARCHAR(255) NOT NULL, email VARCHAR(255) NOT NULL, PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE = InnoDB;");
$table = $schema->getTable('session_rel_user');
if (!$table->hasColumn('duration')) {
$this->addSql("ALTER TABLE session_rel_user ADD duration INT DEFAULT NULL");

@ -51,6 +51,11 @@ sonata_user_admin_security_logout:
# resource: "@ChamiloCourseBundle/Resources/config/routing.yml"
# prefix: /
chamilo_contact:
resource: "@ChamiloContactBundle/Resources/config/routing.yml"
prefix: /contact
#_courses:
# resource: routing_courses.yml
#

@ -74,6 +74,7 @@ sonata_admin:
items:
- sonata.page.admin.page
- sonata.page.admin.site
- sonata.admin.contact_category
sonata.admin.group.faq:
label: FAQ

@ -44,6 +44,7 @@ sonata_page:
- ^/faq
- ^/courses/(.*)
- ^/front/editor
- ^/contact(.*) # sonata admin
ignore_route_patterns:
- (.*)administration(.*) # ignore admin route, ie route containing 'admin' # sonata admin

@ -3,6 +3,8 @@
namespace Chamilo\ContactBundle\Admin;
use Sonata\AdminBundle\Admin\Admin;
use Sonata\AdminBundle\Datagrid\ListMapper;
use Sonata\AdminBundle\Form\FormMapper;
use Sonata\AdminBundle\Datagrid\DatagridMapper;
@ -10,8 +12,20 @@ use Sonata\AdminBundle\Datagrid\DatagridMapper;
* Class UserAdmin
* @package Chamilo\ContactBundle\Admin
*/
class CategoryAdmin
class CategoryAdmin extends Admin
{
/**
* @param ListMapper $listMapper
*/
protected function configureListFields(ListMapper $listMapper)
{
$listMapper
//->add('headline', null, array('identifier' => true))
->add('name', null, array('identifier' => true))
->add('email')
;
}
/**
* {@inheritdoc}
*/

@ -6,8 +6,8 @@ namespace Chamilo\ContactBundle;
use Symfony\Component\HttpKernel\Bundle\Bundle;
/**
* Class ChamiloClassificationBundle
* @package Chamilo\ClassificationBundle
* Class ChamiloContactBundle
* @package Chamilo\ChamiloContactBundle
*/
class ChamiloContactBundle extends Bundle
{

@ -5,18 +5,23 @@ namespace Chamilo\ContactBundle\Controller;
use Chamilo\ContactBundle\Entity\Category;
use Chamilo\ContactBundle\Form\Type\ContactType;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
/**
*
* Class ContactController
*
* @Route("/")
*
* @package Chamilo\ContactBundle\Controller
*/
class ContactController extends Controller
{
/**
* @Route("/contact")
* @Route("/")
*
* @param Request $request
* @return mixed
@ -42,7 +47,7 @@ class ContactController extends Controller
->setTo($category->getEmail())
->setBody(
$this->renderView(
'ContactBundle:contact.html.twig',
'ChamiloContact:contact.html.twig',
array(
'ip' => $request->getClientIp(),
'firstname' => $form->get('firstname')->getData(),
@ -65,7 +70,7 @@ class ContactController extends Controller
}
return $this->render(
'@ContactBundle/index.html.twig',
'@ChamiloContact/index.html.twig',
array(
'form' => $form->createView()
)

@ -0,0 +1,26 @@
<?php
/* For licensing terms, see /license.txt */
namespace Chamilo\ContactBundle\DependencyInjection;
use Symfony\Component\DependencyInjection\ContainerBuilder;
use Symfony\Component\Config\FileLocator;
use Symfony\Component\HttpKernel\DependencyInjection\Extension;
use Symfony\Component\DependencyInjection\Loader;
/**
* This is the class that loads and manages your bundle configuration
*
* To learn more see {@link http://symfony.com/doc/current/cookbook/bundles/extension.html}
*/
class ChamiloContactExtension extends Extension
{
/**
* {@inheritDoc}
*/
public function load(array $configs, ContainerBuilder $container)
{
$loader = new Loader\YamlFileLoader($container, new FileLocator(__DIR__.'/../Resources/config'));
$loader->load('admin.yml');
}
}

@ -5,6 +5,16 @@ namespace Chamilo\ContactBundle\Entity;
use Doctrine\ORM\Mapping as ORM;
/**
* Class Category
*
* @ORM\Entity
* @ORM\Table(
* name="contact_category"
* )
*
* @package Chamilo\FaqBundle\Entity
*/
class Category
{
/**
@ -18,13 +28,13 @@ class Category
/**
* @var string
* @ORM\Column(name="name", type="string", nullable=false, length="255")
* @ORM\Column(name="name", type="string", nullable=false)
*/
protected $name;
/**
* @var string
* @ORM\Column(name="email", type="string", length="255")
* @ORM\Column(name="email", type="string")
*/
protected $email;

@ -6,6 +6,11 @@ namespace Chamilo\ContactBundle\Form\Type;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\Form\Extension\Core\Type\SubmitType;
use Symfony\Component\OptionsResolver\OptionsResolverInterface;
use Symfony\Component\Validator\Constraints\Collection;
use Symfony\Component\Validator\Constraints\Email;
use Symfony\Component\Validator\Constraints\Length;
use Symfony\Component\Validator\Constraints\NotBlank;
/**
* Class ContactType
@ -20,7 +25,7 @@ class ContactType extends AbstractType
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('name', null, array('widget' => 'single_text'))
->add('name')
->add('category')
->add('firstname')
->add('lastname')

@ -2,8 +2,8 @@ services:
sonata.admin.contact_category:
class: Chamilo\ContactBundle\Admin\CategoryAdmin
tags:
- { name: sonata.admin, manager_type: orm, group: "LMS", label: "ContactCategory" }
- { name: sonata.admin, manager_type: orm, group: "LMS", label: "Contact category" }
arguments:
- ~
- Chamilo\ContactBundle\Entity\Category.php
- Chamilo\ContactBundle\Entity\Category
- ~

@ -0,0 +1,3 @@
contact:
resource: "@ChamiloContactBundle/Controller/ContactController.php"
type: annotation

@ -1,7 +1,5 @@
{% extends '@ChamiloTheme/Layout/base-layout.html.twig' %}
{% block page_content %}
{% block sonata_page_container %}
{{ form_widget(form) }}
{% endblock %}

Loading…
Cancel
Save