Quantcast
Channel: Grafikart | Derniers Sujets du forum
Viewing all 1542 articles
Browse latest View live

Editeur de texte php ?

$
0
0

Bonjour,

Je n'ai pas forcément de problème avec mon code, mais je cherche une solution

Mon projet

Alors voilà, je travail sur un projet pour un particullié qui ne connait pas grand chose au niveau de l'informatique.
Je souhaite lui offrir une possibilité de modifier les pages du site internet (notament changer le texte de l'historique,...
Mon projet fonctionne sous Symfony 4

Ce que je recherche

Je recherche donc une possibilité d'intégrer un editeur de texte où il y a la possibilité de mettre des titres, gras,... sans trop de soucis, mais surtout de pouvoir l'enregistrer en BDD et de le retrenscrire à l'identique sur le site internet.

J'aimerais aussi savoir si il y a la possibilité de faire ce genre de chose, mais en intégrant un document Word à la place, notamment faire la mise en page sur Word, l'upload sur le site, mettre le tout en base de donner, et l'afficher sur le site sans problème, un peu comme du php to xls, mais avec Word.

Merci d'avance pour vos conseils et vos réponses !


Editeur de texte php

$
0
0

Bonjour,

Je n'ai pas forcément de problème avec mon code, mais je cherche une solution

Mon projet

Alors voilà, je travail sur un projet pour un particullié qui ne connait pas grand chose au niveau de l'informatique.
Je souhaite lui offrir une possibilité de modifier les pages du site internet (notament changer le texte de l'historique,...
Mon projet fonctionne so

Ce que je recherche

Je recherche donc une possibilité d'intégrer un editeur de texte où il y a la possibilité de mettre des titres, gras,... sans trop de soucis, mais surtout de pouvoir l'enregistrer en BDD et de le retrenscrire à l'identique sur le site internet.

J'aimerais aussi savoir si il y a la possibilité de faire ce genre de chose, mais en intégrant un document Word à la place, notamment faire la mise en page sur Word, l'upload sur le site, mettre le tout en base de donner, et l'afficher sur le site sans problème, un peu comme du php to xls, mais avec Word.

Merci d'avance pour vos conseils et vos réponses !

Ce que j'obtiens

--

Tuto Gos Web Socket Bundle

$
0
0

Bonjour les amis,

Quelqu'un saurai où est-ce que je peux trouver en Français de préférence qui explique comment faire un tchat avec symfony et Gos Web Socket Bundle ?

Problème d'affichage avec Stripe et Twig

$
0
0

Bonjour à toutes et à tous

Je suis en cous de développement d'un projet symfony et j'aimerai intégrer Stripe. J'ai suivi la doc pour Stripe Elements.

En html simple j'arrive à obtenir le formulaire de saisie de la carte bancaire. Mais dès que je passe dans un mode Twig (avec les balises de type Block) je perd l'affichage des champs.

Voici le code de mon template de base

<!DOCTYPE html>
<html lang="fr">
<head>
    <meta charset="UTF-8">
    <meta name="viewport"
          content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">

    <title>{% block title %}Billetterie du Musée du Louvre{% endblock %}</title>

    {% block stylesheets %}

        <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T" crossorigin="anonymous">


    {% endblock %}

</head>
<body>

<nav class="navbar navbar-expand-lg navbar-dark bg-primary">
    <a class="navbar-brand" href="#">Navbar</a>
    <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation">
        <span class="navbar-toggler-icon"></span>
    </button>

    <div class="collapse navbar-collapse" id="navbarSupportedContent">
        <ul class="navbar-nav mr-auto">
            <li class="nav-item active">
                <a class="nav-link" href="{{ path('home') }}">Accueil <span class="sr-only">(current)</span></a>
            </li>
            <li class="nav-item">
                <a class="nav-link" href="{{ path('tickets') }}">billets</a>
            </li>
            <li class="nav-item">
                <a class="nav-link" href="{{ path('visitors') }}">visiteurs</a>
            </li>
            <li class="nav-item">
                <a class="nav-link" href="{{ path('billing_details') }}">facturation</a>
            </li>
            <li class="nav-item">
                <a class="nav-link" href="{{ path('order_summary') }}">récap</a>
            </li>
            <li class="nav-item">
                <a class="nav-link" href="{{ path('payment') }}">paiement</a>
            </li>
            <li class="nav-item">
                <a class="nav-link" href="{{ path('payment_confirmation') }}">confirmation de paiement</a>
            </li>
            <li class="nav-item">
                <a class="nav-link" href="{{ path('contact') }}">contact</a>
            </li>

        </ul>
        <form class="form-inline my-2 my-lg-0">
            <input class="form-control mr-sm-2" type="search" placeholder="Search" aria-label="Search">
            <button class="btn btn-outline-success my-2 my-sm-0" type="submit">Search</button>
        </form>
    </div>
</nav>

<div class="container">

    <div class="jumbotron">
        <div id="header">

            <h1>Bienvenue sur la billeterie du musée du Louvre</h1>

        </div>
    </div>




    <div id="content" class="col-lg-12">
            {% block body %}


            {% endblock %}
    </div>

    </div>
        <hr>

    <footer>

        <div class="container">
            <p>Copyright musée du Louvre 2019</p>
        </div>

    </footer>
</div>

{% block javascripts %}
    <script src="https://js.stripe.com/v3/"></script>

    <script src="https://code.jquery.com/jquery-3.3.1.slim.min.js" integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo" crossorigin="anonymous"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js" integrity="sha384-UO2eT0CpHqdSJQ6hJty5KVphtPhzWj9WO1clHTMGa3JDZwrnQq4sF86dIHNDz0W1" crossorigin="anonymous"></script>
    <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js" integrity="sha384-JjSmVgyd0p3pXB1rRibZUAYoIIy6OrQ6VrjIEaFf/nJGzIxFDsf4x0xIM+B07jRM" crossorigin="anonymous"></script>

{% endblock %}
</body>
</html>

et celui de la page pour le paiement

{% extends "base.html.twig" %}

{% block title %}
    Paiement
{% endblock %}


{% block body %}
    <div >
        <h2>Paiement</h2>
        <br/>

        <form action="/confirmation_du_paiement" method="post" id="payment-form">
            <div class="form-row">
                <label for="card-element">
                    Carte de paiement
                </label>

                <div id="card-element">
                    <!-- A Stripe Element will be inserted here. -->
                </div>

                <!-- Used to display form errors. -->
                <div id="card-errors" role="alert"></div>
            </div>

            <button>Submit Payment</button>
        </form>


    </div>

{% endblock %}

{% block javascripts %}
    {{ parent() }}

<script src="https://js.stripe.com/v3/"></script>
    <script>
        // Create a Stripe client.
        var stripe = Stripe('pk_test_Uszqz9OBUHXeD3RqmeEjCt5O00sC6IRWXN');

        // Create an instance of Elements.
        var elements = stripe.elements();

        // Custom styling can be passed to options when creating an Element.
        // (Note that this demo uses a wider set of styles than the guide below.)
        var style = {
            base: {
                color: '#32325d',
                fontFamily: '"Helvetica Neue", Helvetica, sans-serif',
                fontSmoothing: 'antialiased',
                fontSize: '16px',
                '::placeholder': {
                    color: '#aab7c4'
                }
            },
            invalid: {
                color: '#fa755a',
                iconColor: '#fa755a'
            }
        };

        // Create an instance of the card Element.
        var card = elements.create('card', {style: style});

        // Add an instance of the card Element into the `card-element` <div>.
        card.mount('#card-element');

        // Handle real-time validation errors from the card Element.
        card.addEventListener('change', function(event) {
            var displayError = document.getElementById('card-errors');
            if (event.error) {
                displayError.textContent = event.error.message;
            } else {
                displayError.textContent = '';
            }
        });

        // Handle form submission.
        var form = document.getElementById('payment-form');
        form.addEventListener('submit', function(event) {
            event.preventDefault();

            stripe.createToken(card).then(function(result) {
                if (result.error) {
                    // Inform the user if there was an error.
                    var errorElement = document.getElementById('card-errors');
                    errorElement.textContent = result.error.message;
                } else {
                    // Send the token to your server.
                    stripeTokenHandler(result.token);
                }
            });
        });

        // Submit the form with the token ID.
        function stripeTokenHandler(token) {
            // Insert the token ID into the form so it gets submitted to the server
            var form = document.getElementById('payment-form');
            var hiddenInput = document.createElement('input');
            hiddenInput.setAttribute('type', 'hidden');
            hiddenInput.setAttribute('name', 'stripeToken');
            hiddenInput.setAttribute('value', token.id);
            form.appendChild(hiddenInput);

            // Submit the form
            form.submit();
        }
    </script>
{% endblock %}

Je suis un peu un rookie dans le domaine donc si qqn peut me mettre sur la voie pour debuger ce problème je lui en serais reconnaissant.

Bonne journée.

Jeff

Concaténer deux objets CollectionPersistent symfony 4

$
0
0

Bonjour,

Voila je rencontre un petit problème avec mon code.

Ce que je fais

Je récupere les clients d'un utilisateur, puis les véhicules de chaque client. Puis j'essayes de mettre tous les véhicules dans la varable $véhicules.

/**
     * @Route("/", name="accueil")
     */
    public function index()
    {
      //récuperation des clients de l'utilisateur
      $clients = $this->getUser()->getClients();
      //récupération de entitymanager
      $entityManager = $this->getDoctrine()->getManager();
      //nouvelle instance de PsersistentCollection
      $vehicules = new PersistentCollection($entityManager, Vehicule::class, $vehicules = new Collection()); //erreur ici
      foreach($clients as $client)
      {
        // on ajoute toutes les vehicules de tous les clients dans l $vehicules
        $vehicules->add($client->getVehicules());
      }
        return $this->render('follo_car_service/index.html.twig', [
            'vehicules' => $vehicules,
        ]);
    }

Ce que je veux

Je recherche un moyen de concaténer 2 objets PersistantCollection mais Symfony me jete une erreur comme quoi je ne peux pas car il y a une erreur dans l'instance Collection.

Ce que j'obtiens

J'obtiens une erreur me disant que je ne peux pas instancier une Collection car il manque un statement.

Stockage données utilisateurs sans BDD

$
0
0

Bonjour,

Je suis à la recherche d'une solution car je suis sur un projet symfony 4, c'est un questionnaire (Les questions et les réponses sont stockés en bdd), à la fin de celui ça génère un pdf et un envoi de mail. Les réponses utilisateurs ne sont pas sotckés en bdd. Après quelques recherche je suis tombé là-dessus https://github.com/craue/CraueFormFlowBundle et j'aimerai savoir ce que vous pensez de cette solution ou si vous avez mieux.

rafraichir le calendrier google api selon le user connecté

$
0
0

Bonjour,

Voila je rencontre un petit problème avec mon code.

je fais en ce moment une application me demandant d'acceder au calendrier google de l'utilisateur connecté

Je fais le login à l'aide de hwio, et j'utiliser l'api google calendar

$path = $this->get('kernel')->getRootDir() . '\..\src\AppBundle\Resources\credentials.json';
        $client = new Google_Client();
        $client->setApplicationName('socialPlanningV2');
        $client->setScopes(Google_Service_Calendar::CALENDAR_READONLY);
        try {
            $client->setAuthConfig($path);
        } catch (\Google_Exception $e) {
        }

        // Load previously authorized token from a file, if it exists.
        // The file token.json stores the user's access and refresh tokens, and is
        // created automatically when the authorization flow completes for the first
        // time.
        $pathJson = $this->get('kernel')->getRootDir() . '\..\app\.credentials\calendar.json';
        $tokenPath = $pathJson;
        if (file_exists($tokenPath)) {
            $accessToken = json_decode(file_get_contents($tokenPath), true);
            $client->setAccessToken($accessToken);
        }

        // If there is no previous token or it's expired.
        if ($client->isAccessTokenExpired()) {
            // Refresh the token if possible, else fetch a new one.
            if ($client->getRefreshToken()) {
                $client->fetchAccessTokenWithRefreshToken($client->getRefreshToken());
            } else {
                // Request authorization from the user.
                $authUrl = $client->createAuthUrl();
                printf("Open the following link in your browser:\n%s\n", $authUrl);
                print 'Enter verification code: ';
                $authCode = trim(fgets(STDIN));

                // Exchange authorization code for an access token.
                $accessToken = $client->fetchAccessTokenWithAuthCode($authCode);
                $client->setAccessToken($accessToken);

                // Check to see if there was an error.
                if (array_key_exists('error', $accessToken)) {
                    throw new Exception(join(', ', $accessToken));
                }
            }
            // Save the token to a file.
            if (!file_exists(dirname($tokenPath))) {
                mkdir(dirname($tokenPath), 0700, true);
            }
            file_put_contents($tokenPath, json_encode($client->getAccessToken()));
        }

        // Get the API client and construct the service object.
        $service = new Google_Service_Calendar($client);

// Print the next 10 events on the user's calendar.
        $calendarId = 'primary';
        $optParams = array(
            'maxResults' => 10,
            'orderBy' => 'startTime',
            'singleEvents' => true,
            'timeMin' => date('c'),
        );
        $results = $service->events->listEvents($calendarId, $optParams);
        $events = $results->getItems();

Je recupère les events toujours pour le meme user, même après avoir login avec un autre

Demande de Conseil sur un hébérgeur

$
0
0

Bonjour à tous, j'ai un site en symfony 4 qui fais tourné des millions de données et une fois en ligne c'est sur ces millions deviendrons des milliards vu les données dans les fichiers d'import.Alors j'aimerai un conseil si quelqu'un si connais.
Quel est le meilleur hébergeur web qui pourrais acceullir un tel site web ?
Merci d'avance


commande composer require orm-fixtures --dev ne passe pas

$
0
0

Bonjour,

ma commande de création de fixtures ne passe pas

composer require orm-fixtures --dev
j'ai une fenêtre ouvrir avec, et message erreur : The "--dev" option does not exist
merci de votre aide

probleme modifier de fenetre modal

$
0
0

Salut,
je suis un débutant en symfony et je veut faire un CRUD avec modale j'arrive a faire l'ajout mais pour la modifier j'ai un probleme.il me semble qu'il faut de javascript pour faire la redirection je sais pas !!!!

voici le code de mon controleur

<?php

namespace App\Controller;

use App\Entity\LangueMatiere;
use App\Form\LangueMatiereType;
use App\Repository\LangueMatiereRepository;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Annotation\Route;

/**
 * @Route("/langue")
 */
class LangueMatiereController extends AbstractController
{
    /**
     * @Route("/", name="langue_matiere_index", methods={"GET"})
     */
    public function index(LangueMatiereRepository $langueMatiereRepository): Response
    {
             return $this->render('langue_matiere/index.html.twig', [
            'langue_matieres' => $langueMatiereRepository->findAll(),
        ]);
    }

    /**
     * @Route("/new", name="langue_matiere_new", methods={"GET","POST"})
     */
    public function new(Request $request): Response
    {
        $langueMatiere = new LangueMatiere();
        $form = $this->createForm(LangueMatiereType::class, $langueMatiere);
        $form->handleRequest($request);

        if ($form->isSubmitted() && $form->isValid()) {
            $entityManager = $this->getDoctrine()->getManager();
            $entityManager->persist($langueMatiere);
            $entityManager->flush();
            return new Response('success');
            return $this->redirectToRoute('langue_matiere_index');
        }

        return $this->render('langue_matiere/new.html.twig', [
            'langue_matiere' => $langueMatiere,
            'form' => $form->createView(),
        ]);
    }

    /**
     * @Route("/{id}", name="langue_matiere_show", methods={"GET"})
     */
    public function show(LangueMatiere $langueMatiere): Response
    {
        return $this->render('langue_matiere/show.html.twig', [
            'langue_matiere' => $langueMatiere,
        ]);
    }

    /**
     * @Route("/{id}/edit", name="langue_matiere_edit", methods={"GET","POST"})
     */
    public function edit(Request $request, LangueMatiere $langueMatiere): Response
    {
        $form = $this->createForm(LangueMatiereType::class, $langueMatiere);
        $form->handleRequest($request);

        if ($form->isSubmitted() && $form->isValid()) {
            $this->getDoctrine()->getManager()->flush();

            return $this->redirectToRoute('langue_matiere_index');
        }

        return $this->render('langue_matiere/edit.html.twig', [
            'langue_matiere' => $langueMatiere,
            'form' => $form->createView(),
        ]);
    }

    /**
     * @Route("/{id}", name="langue_matiere_delete", methods={"DELETE"})
     */
    public function delete(Request $request, LangueMatiere $langueMatiere): Response
    {
        if ($this->isCsrfTokenValid('delete'.$langueMatiere->getId(), $request->request->get('_token'))) {
            $entityManager = $this->getDoctrine()->getManager();
            $entityManager->remove($langueMatiere);
            $entityManager->flush();
        }

        return $this->redirectToRoute('langue_matiere_index');
    }
}

voici le code de template index.html.twig

{% extends 'base.html.twig' %}

{% block title %}Liste Langue Matiere {% endblock %}

{% block body %}
    <h1>Liste Langue Matiere </h1>
    {% for message in app.flashes('info') %}
        <div class="alert alert-success">{{ message }}</div>
    {% endfor %}
    {{ render(controller(
        'App\\Controller\\LangueMatiereController::new'))}}
    {#<td><a>
            <button class="btn btn-success" data-toggle="modal" data-target="#modalAjoutForm"><span
                        class="glyphicon glyphicon-plus"></span></button>
        </a></td>#}

    <table class="table">
        <thead>
        <tr>

            <th>Langue Matière en Français</th>
            <th>Langue Matière en Arabe</th>
            <th>Action</th>


        </tr>
        </thead>
        <tbody>
        {% for langue_matiere in langue_matieres %}
            <tr>

                <td>{{ langue_matiere.libelleLangueFe }}</td>
                <td>{{ langue_matiere.libelleLangueAr }}</td>


                <td><a>
                        <button class="btn btn-primary" data-toggle="modal" data-target="#myModal{{ langue_matiere.id }}"><span
                                    class="glyphicon glyphicon-info-sign"></span></button>
                    </a></td>                {#<td><a href="{{ path('langue_matiere_edit', {'id': langue_matiere.id}) }}">
                        <button class="btn btn-success"><span class="glyphicon glyphicon-pencil"></span></button>
                    </a>
                </td>#}

                <a href="" class="tooltip-test" name="_method" value="DELETE" data-placement="top" title="" data-original-title="Supprimer"  data-toggle="modal" data-target="#deleteModal{{ langue_matiere.id }}"><span class="glyphicon glyphicon-trash" aria-hidden="true"></span>    </a>



                <td>
                    {{ render(controller(
                    'App\\Controller\\LangueMatiereController::edit',{'id':langue_matiere.id}))}}


                </td>

                <td> {{ include('langue_matiere/_delete_form.html.twig') }} </td>
            </tr>
            <td>


                <div class="modal fade" id="deleteModal{{ langue_matiere.id }}" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
                    <div class="modal-dialog">
                        <br><br><br><br>
                        <div class="modal-content">
                            <div class="modal-header">
                                <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
                                <h4 class="modal-title">Comfirmation de suppression :</h4>
                            </div>
                            <div class="modal-body" >
                                <p><span>Voulez-vous vraiment supprimer <a href="#"></a>  {{ langue_matiere.libelleLangueAr }}? </span></p>

                            </div>
                            <div class="modal-footer">
                                <button type="button" class="btn btn-default " data-dismiss="modal">Annuler</button>
                                <a href="{{ path('langue_matiere_delete', {'id': langue_matiere.id}) }}" data-toggle="modal" class="btn btn-danger"  id="DELETE" >Supprimer</a>
                            </div>
                        </div>
                    </div>
                </div>

            </td>

            <div class="modal fade" id="myModal{{ langue_matiere.id }}" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
                <div class="modal-dialog">
                    <br><br><br><br>
                    <div class="modal-content">
                        <div class="modal-header">
                            <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
                            <h4 class="modal-title" id="myModalLabel"> Détail :</h4>
                        </div>
                        <div class="modal-body">
                            <div class="row">

                                <div class="col-lg-6">

                                    <ul>
                                        <li><strong>Langue matière en Français: </strong>  {{ langue_matiere.libelleLangueFe }}</li> <br>
                                        <li><strong>Langue matière en Arabe: </strong>     {{ langue_matiere.libelleLangueAr }}</li> <br>

                                    </ul>

                                </div>
                                <div class="col-lg-6">
                                </div>
                            </div>
                        </div>
                        <div class="modal-footer">
                            <button type="button" class="btn btn-danger" data-dismiss="modal">Fermer</button>

                        </div>

                    </div>
                </div>
            </div>
        {% else %}
            <tr>
                <td colspan="4">Pas d'enregistrement</td>
            </tr>

        {% endfor %}

        </tbody>

    </table>




{% endblock %}

quand j'appuis sur modifier la formulaire sera bien rempli mais quand je confirme la modification j'ai l'erreur suivant:
No route found for "POST /langue/": Method Not Allowed (Allow: GET)

Aidez moi SVP

Redimension des images avec LiipImagineBundle

$
0
0

Bonjour,
Il semble que LiipImagineBundle ne crée pas l'image mise en cache et il y a une "résolution" dans le chemin renvoyé par imagine_filter.

Voici le code twig:
Et le chemin retourné: http: // localhost:8000/media / cache / ** resolve ** / thumb / imgages / properties / test.jpg

Comment puis-je générer automatiquement l'image? Merci

Envoyer variable dans un fichier .yaml

$
0
0

Bonjour,

je cherche a envoyer une variable dans mon fichier .yaml.

Je sais pas si c'est possible :/

Mon but serait d'envoyer une variable de type code couleur (ex : #fff) , pour qu'il me créer des backgrounds de la couleur que je souhaite.

Merci par avance pour vos réponse.

Erreur lors de l'installation de EasyAdminBundle !

$
0
0

Bonjour
J'ai installer EasyAdminBundle sur Symfony 4 et j'ai cette erreur que je ne comprend pas alors que je n'ai pas touché le fichier EasyAdminExtension.php car il est généré lors de l'installation de EasyAdminBundle :

In EasyAdminExtension.php line 62:

aroundWarning: Invalid argument supplied for foreach()

Voici la ligne 62 de EasyAdminExtension.php:
foreach ($config['entities'] as $key => $value) {

Je vous remercie de votre aide !

comment ajouter un champ à une table deja créée

$
0
0

Bonjour,

Je cherche desesperement sur le net à ajouter un champs à ma table dejà créée.

Ce que je fais

Je n'arrive même pas à trouver un code de création.

Entourez votre code pour bien le mettre en forme

Ce que je veux

Décrivez ici ce que vous cherchez à obtenir

Ce que j'obtiens

Décrivez ici vos erreurs ou ce que vous obtenez à la place de ce que vous attendez :(

SQLSTATE[42S01]: Base table or view already exists

$
0
0

Bonjour,

je rencontre l'erreur suivante

Ce que je fais

lorsque je tape cette commande j'ai cette commande

php bin/console doctrine:migrations:migrate

Ce que je veux

je souhaite mettre à jour ma base de données

Ce que j'obtiens

SQLSTATE[42S01]: Base table or view already exists: 1050 La table 'rs_car'
existe déjà


Synfo par l'exemple / Crud des bien immobiliers

$
0
0

Bonjour,

Voila je rencontre un petit problème avec mon code.

Ce que je fais

Je bloque sur une erreur quand je veux la vue new (environ 24ème minute) pour la création d'un nouveau formulaire. J'ai bien cherché dans la synthaxe si j'avais une erreur mais je n'ai pas trouvé.

Entourez votre code pour bien le mettre en forme
Ma fonction new dans le AdminPropertyController
/*
        * @Route("/admin/property/create", name="admin.property.new")
        */

        public function new(Request $request)
        {
            $property = new Property();
            $form = $this->createForm(PropertyType::class, $property);
            $form->handleRequest($request);
            if($form->isSubmitted() && $form->isValid())
                {
                    $this->em->persist($property);
                    $this->em->flush();
                    return $this->redirectToRoute('admin.property.index');
                }
                return $this->render('admin/property/new.html.twig', [
                    'property' => $property,
                    'form' => $form->createView()
                ]);
        }

Ma vue : Le fichier index.html.twig qui renvoie vers le chemin admin.property.new et qui se trouve dans templates/admin/property

{% extends 'base.html.twig' %}

{% block title 'Gérer les biens' %}

{% block body %}

<div class="container mt-4">
    <h1>Gérer les biens</h1>

    <table class="table table striped">

        <thead>
        <tr>
            <td>Titre</td>
            <td>Actions</td>
        </tr>   
        </head>
        <tbody>
        {% for property in properties %}
        <tr>
            <td>{{ property.title }}</td>
            <td>
            <a href="{{ path('admin.property.edit', {id: property.id}) }}" class="btn btn-secondary">Editer</a>
            </td>
        </tr>
        {% endfor %}
        </tbody>
    </table>

    <div class="text-right">
    <a href="{{ path('admin.property.new') }}" class="btn btn-primary">Créer un nouveau bien</a>
    </div>
</div>

{% endblock %}

Le fichier new.html.twig qui se trouve dans templates/admin/property

{% extends 'base.html.twig' %}
{% block body %}
{% endblock %}
{% title body %}
{% endblock %}

Ce que je veux

Décrivez ici ce que vous cherchez à obtenir

Ce que j'obtiens

Décrivez ici vos erreurs ou ce que vous obtenez à la place de ce que vous attendez :(
Voici mon le message d'erreur :
An exception has been thrown during the rendering of a template ("Unable to generate a URL for the named route "admin.property.new" as such route does not exist.").

Merci par avance

Synfony 4 par l'exemple / Crud des bien immobiliers

$
0
0

Bonjour,

Voila je rencontre un petit problème avec mon code.

Ce que je fais

Décrivez ici votre code ou ce que vous cherchez à faire
Je bloque sur une erreur quand je veux la vue new (environ 24ème minute) pour la création d'un nouveau formulaire. J'ai bien cherché dans la synthaxe si j'avais une erreur mais je n'ai pas trouvé.

Entourez votre code pour bien le mettre en forme
Ma fonction new dans le AdminPropertyController
/*
        * @Route("/admin/property/create", name="admin.property.new")
        */

        public function new(Request $request)
        {
            $property = new Property();
            $form = $this->createForm(PropertyType::class, $property);
            $form->handleRequest($request);
            if($form->isSubmitted() && $form->isValid())
                {
                    $this->em->persist($property);
                    $this->em->flush();
                    return $this->redirectToRoute('admin.property.index');
                }
                return $this->render('admin/property/new.html.twig', [
                    'property' => $property,
                    'form' => $form->createView()
                ]);
        }

Ma vue : Le fichier index.html.twig qui renvoie vers le chemin admin.property.new et qui se trouve dans templates/admin/property

{% extends 'base.html.twig' %}

{% block title 'Gérer les biens' %}

{% block body %}

<div class="container mt-4">
    <h1>Gérer les biens</h1>

    <table class="table table striped">

        <thead>
        <tr>
            <td>Titre</td>
            <td>Actions</td>
        </tr>   
        </head>
        <tbody>
        {% for property in properties %}
        <tr>
            <td>{{ property.title }}</td>
            <td>
            <a href="{{ path('admin.property.edit', {id: property.id}) }}" class="btn btn-secondary">Editer</a>
            </td>
        </tr>
        {% endfor %}
        </tbody>
    </table>

    <div class="text-right">
    <a href="{{ path('admin.property.new') }}" class="btn btn-primary">Créer un nouveau bien</a>
    </div>
</div>

{% endblock %}

Le fichier new.html.twig qui se trouve dans templates/admin/property

{% extends 'base.html.twig' %}
{% block body %}
{% endblock %}
{% title body %}
{% endblock %}

Ce que je veux

Décrivez ici ce que vous cherchez à obtenir

Ce que j'obtiens

Voici mon le message d'erreur :
An exception has been thrown during the rendering of a template ("Unable to generate a URL for the named route "admin.property.new" as such route does not exist.").

Merci par avance

l'image du slideschow disparaît après 1 seconde

$
0
0

Bonjour,
je travail sur un projet sous symfony 3.2 afin de comprendre le framework et je voulais ajouter un slideschow statique juste pour avoir du contenu dans ma page alors pour avancer plus vite j'ai utilisé le code dans ce lien : https://www.w3schools.com/howto/tryit.asp?filename=tryhow_js_slideshow
mais le probleme c'est que l'image courante du slidschow disparaît aprés presque 1s
notant que le code fonctionne bien avec php sans framework

ma page default.html.twig

{% extends '::base.html.twig' %}
 {% block title %}Welcome!{% endblock %}
{% block body %}
<nav class="navbar navbar-expand-lg navbar-light bg-light" id="nav">
        <a href="default"><img src="{{ asset('logo.png')  }}" alt="INDH" id="logo" /></a>  
  <div class="collapse navbar-collapse" id="navbarColor03">  
    <a href="login"><button type="button" class="btn btn-outline-primary" id="cnx">Signe in</button></a>
    <a href="register"><button type="button" class="btn btn-link" id="insc" >Signe up</button></a>
  </div>
</nav>
<div class="slideshow-container">

<div class="mySlides fade">
  <div class="numbertext">1 / 3</div>
  <img src="{{ asset('images/img_1.jpg')  }}" style="width:100%">

</div>

<div class="mySlides fade">
  <div class="numbertext">2 / 3</div>
  <img src="{{ asset('images/img_2.jpg')  }}" style="width:100%">

</div>

<div class="mySlides fade">
  <div class="numbertext">3 / 3</div>
  <img src="{{ asset('images/img_3.jpg')  }}" style="width:100%">

</div>

<a class="prev" onclick="plusSlides(-1)">&#10094;</a>
<a class="next" onclick="plusSlides(1)">&#10095;</a>

</div>
<br>

<div style="text-align:center">
  <span class="dot" onclick="currentSlide(1)"></span> 
  <span class="dot" onclick="currentSlide(2)"></span> 
  <span class="dot" onclick="currentSlide(3)"></span> 
</div>
{% include '@FullCalendar/Calendar/calendar.html.twig' %}
{% endblock %}


le code css copié du lien déjà cité:

/**** SLIDESHOW STYLES ****/

* {box-sizing: border-box}
body {font-family: Verdana, sans-serif; margin:0}
.mySlides {display: none}
img {vertical-align: middle;}

/* Slideshow container */
.slideshow-container {
  max-width: 1000px;
  position: relative;
  margin: auto;
}

/* Next & previous buttons */
.prev, .next {
  cursor: pointer;
  position: absolute;
  top: 50%;
  width: auto;
  padding: 16px;
  margin-top: -22px;
  color: white;
  font-weight: bold;
  font-size: 18px;
  transition: 0.6s ease;
  border-radius: 0 3px 3px 0;
  user-select: none;
}

/* Position the "next button" to the right */
.next {
  right: 0;
  border-radius: 3px 0 0 3px;
}

/* On hover, add a black background color with a little bit see-through */
.prev:hover, .next:hover {
  background-color: rgba(0,0,0,0.8);
}

/* Caption text */
.text {
  color: #f2f2f2;
  font-size: 15px;
  padding: 8px 12px;
  position: absolute;
  bottom: 8px;
  width: 100%;
  text-align: center;
}

/* Number text (1/3 etc) */
.numbertext {
  color: #f2f2f2;
  font-size: 12px;
  padding: 8px 12px;
  position: absolute;
  top: 0;
}

/* The dots/bullets/indicators */
.dot {
  cursor: pointer;
  height: 15px;
  width: 15px;
  margin: 0 2px;
  background-color: #bbb;
  border-radius: 50%;
  display: inline-block;
  transition: background-color 0.6s ease;
}

.active, .dot:hover {
  background-color: #717171;
}

/* Fading animation */
.fade {
  -webkit-animation-name: fade;
  -webkit-animation-duration: 1.5s;
  animation-name: fade;
  animation-duration: 1.5s;
}

@-webkit-keyframes fade {
  from {opacity: .4} 
  to {opacity: 1}
}

@keyframes fade {
  from {opacity: .4} 
  to {opacity: 1}
}

/* On smaller screens, decrease text size */
@media only screen and (max-width: 300px) {
  .prev, .next,.text {font-size: 11px}
}

main.js script:

var slideIndex = 1;
showSlides(slideIndex);

function plusSlides(n) {
  showSlides(slideIndex += n);
}

function currentSlide(n) {
  showSlides(slideIndex = n);
}

function showSlides(n) {
  var i;
  var slides = document.getElementsByClassName("mySlides");
  var dots = document.getElementsByClassName("dot");
  if (n > slides.length) {slideIndex = 1}    
  if (n < 1) {slideIndex = slides.length}
  for (i = 0; i < slides.length; i++) {
      slides[i].style.display = "none";  
  }
  for (i = 0; i < dots.length; i++) {
      dots[i].className = dots[i].className.replace(" active", "");
  }
  slides[slideIndex-1].style.display = "block";  
  dots[slideIndex-1].className += " active";
}

EasyAdmin bloquer la modification des données

$
0
0

Bonjour,

Voila je rencontre un petit problème avec mon code.

Ce que je fais

J'ai une application de création de factures, il y a la partie administration que j'ai généré avec EasyAdmin. Dans le contenu de chaque facture, j'ai le bouton "Edit" que j'aimerais désactiver parce l'administrateur ne doit pas pouvoir modifier les factures des utilisateurs. Comment faire svp ?
Voici mon fichier easy_admin.yaml

easy_admin:

    user:
        display_name: false
        display_avatar: true

    site_name: Administration Facture & devis

    #list.page_title: Administration Facture & devis

    entities:
        # change the following to the namespaces of your own entities
        Facture:
           list:
              actions: ['-edit']
           class: App\Entity\Facture
        Devis:
           list:
              actions: ['-edit']
           class: App\Entity\Devis
        User:
           class: App\Entity\User

        Contact:
           class: App\Entity\Contact

    design:
        menu:
          - { entity: 'Facture', icon: 'file', label: 'Liste des factures' } 
          - { entity: 'Devis', icon: 'file', label: 'Liste des devis' } 
          - { entity: 'User', icon: 'user', label: 'Liste des utilisateurs' }
          - { entity: 'Contact', icon: 'envelope', label: 'Liste des messages' }
        assets:
            favicon: '/assets/backend/favicon.png'

    disabled_actions: ['delete', 'new']

    #Action à rajouter dans toutes les entités
    list:
      actions: 
        - { name: 'show', icon: 'eye', label: false, title: 'Voir' }
        #- { name: 'edit', icon: 'pencil', label: false, title: 'Modifier' }





Erreur de __toString()

$
0
0

Bonjour,
J'ai crée une application de facturation, cad un utilisateur peut créer plusieurs factures et j'ai également une administration où on peut voir la liste des utilisateurs et la liste des factures. Le problème se trouve au niveau de mon admin, c'est que quand je clique sur un utilisateur je ne peux pas voir la liste de ses factures à lui, à la place j'ai cette erreur:

Error: Method App\Entity\Facture::__toString() must not throw an exception, caught ErrorException: Notice: Undefined property: App\Entity\Facture::$facture

Ce que j'essai de comprendre c'est qu'il faut que j'ajoute la fonction toString() dans mon entité facture mais qu'est ce que je dois mettre dans cette fonction ? Aidez-moi svp

Viewing all 1542 articles
Browse latest View live