2010-12-30 2 views
0

Imaginez ceci: vous créez un petit module que les gens peuvent facilement intégrer dans leur site Web, par exemple, un petit formulaire de contact. Il consisterait en un fichier PHP qui produirait du HTML, un fichier Javascript (ajax etc.), un fichier CSS et un habillage CSS. Maintenant la personne qui ne sait pas grand-chose sur le codage veut intégrer sur une page Web (site web/index.php). Nous pourrions faire cela avec trois règles de code:Ajout d'un mini administrateur à une page Web

<link rel="stylesheet" href="module/css/module.css" /> 
<script src="module/js/module.js"></script> 
<?php require_once 'module/module.php'; ?> 

Il ne fait aucun doute que cette partie est discutable, non?

Maintenant, quand nous voulons ajouter un administrateur pour ce petit module, il y a deux options:

  1. Accès l'administration via une URL supplémentaire comme site/module/admin.php et après authentification, affichage une page où la personne peut faire tous les paramètres. La personne rentre ensuite vers index.php pour voir les résultats .
  2. En activant l'administrateur via une URL supplémentaire comme site/module/admin.php et après authentification, rediriger vers index.php. Le personne peut maintenant éditer le module directement (HTML5 contenteditable) et voir changements en direct, sur la page Web où tout le monde le verra lorsque la personne enregistre les modifications.

Option 2 a deux avantages:

  • La personne ne doit pas basculer entre admin et index.php.
  • La personne peut voir directement comment il regarde la page Web, il est intégré dans.
  • La personne se sent probablement comme le module est plus une partie de la page Web/site.

de l'option de cours 2 présente quelques inconvénients aussi:

  • tout ne fonctionne pas bien l'éditer en ligne.
  • La personne aurait besoin d'avoir un navigateur compatible HTML5.
  • Probablement un peu plus que je ne peux pas penser en ce moment.

Maintenant, j'ai quelques préoccupations que je n'arrive pas à voir une réponse claire.

  1. Comment pourrions-nous laisser la personne intégrer l'administrateur sur leur page web ? Les fichiers d'administration n'ont besoin que de pour être inclus dans l'index.php si la personne a choisi d'éditer le module via l'url (website/module/admin.php). Mais comment pouvons-nous faire si nous avons un fichier de admin.css qui appartient à la section de tête , un fichier admin.php qui va dans le corps, et un autre fichier admin.js qui est inclus à la fin de le corps?
  2. Comment saurions-nous le fichier que admin.php doit rediriger vers, après authentification? index.php peut être n'importe quelle page Web avec n'importe quel nom. Réponse: <?php echo $_SERVER['PHP_SELF']; ?>

Tout site Web de la vie réelle/apps web exemples utilisant ce principe sont aussi les bienvenus. S'il y a quelque chose de flou, je suis heureux d'ajouter des informations supplémentaires.

+1

Vous pouvez probablement réduire le code requis pour ajouter le module en ajoutant du code au module qui ajoute dynamiquement les liens js et css. J'irais avec l'option 1 pour l'instant. Ils téléchargent simplement la page d'administration en même temps qu'ils téléchargent les fichiers du module. – dqhendricks

Répondre

2

Généralisation: les interfaces d'administration n'appartiennent pas à l'application principale. Intégrer les capacités d'édition dans l'interface utilisateur principale est souvent un must pour la convivialité. Mais dès qu'il est à la limite des tâches administratives, vous devez être conscient des implications en termes de sécurité. Indépendamment de la qualité du code, il peut y avoir des configurations incorrectes, qui ne devraient pas affecter les outils d'administration. Gardez-les externes pour ajouter des précautions supplémentaires (dans un projet j'utilise http auth ET un formulaire de connexion).

Dans votre cas spécifique, vous devriez éviter l'intégration pour des raisons pratiques. Vous ne pouvez pas anticiper le reste du CSS du site préexistant et comment il pourrait interagir avec vos widgets intégrés.

De même, si vous souhaitez malgré tout vous authentifier dans l'outil d'administration, cela ne serait pas facile à comprendre. Comme vous l'avez déjà noté, cela signifierait une redirection. Garder tout cela en un seul endroit le rend plus cohérent et accessible, je le proclamerais. Bien que je me base sur un outil que je prévois, qui est plus d'un outil de sécurité à usage unique, je pense que c'est conseillé pour votre cas aussi. L'interface utilisateur intégrée ne l'emporte pas sur les inconvénients.

Questions connexes