Vous n'êtes pas identifié(e).
Pages :: 1
Bonjour,
Ma question est probablement simple à résoudre, mais mes connaissance en php sont très, très, très limitées...
Alors voilà : sur mon site en php, j'ai un menu en include dont un des éléments est un lien "imprimer".
J'aimerais qu'un clic sur ce lien ouvre une petite fenêtre proposant d'imprimer la page en cours.
Seulement, je ne sais comment faire pour justement identifier la page en cours, de façon à ce que la petite fenêtre propose la bonne page (en pdf) à imprimer.
Une âme charitable pourrait-elle me guider vers la solution ?
Un grand merci par avance...
Hors ligne
Bonjour
Si cela ne suffit pas, il faut passer par une fonction avec en paramètre le contexte d'appel (ici la page concernée).
++
POO PHP+Ajax en MVC avec PDO et Bases de données épaisses : What else?
Hors ligne
Saluton,
Je doute, mon cher Jc, qu'un window.print() soit capable de proposer la page en cours à imprimer en format pdf.
Mais j'ai peut-être loupé une étape.
Gloire à qui n'ayant pas d'idéal sacro-saint,
Se borne à ne pas trop emmerder ses voisins. G. Brassens Don Juan 1976.
Avĉjo MoKo kantas
La chaîne YouTube MoKo Papy
Hors ligne
Euh, ben oui, window.print, c'est pas vraiment ce que je cherche à faire...
Ce que je veux, c'est proposer d'imprimer non pas directement la page en cours, qui ne permettra pas d'obtenir un bon résultat à l'impression, mais de télécharger(?) un pdf de cette page avec une mise en page conçue pour l'impression - ou pourquoi pas de lancer une impression directe de la page en cours mais en contrôlant la mise en forme pour l'impression.
Le contrôle de la mise en forme, en proposant un pdf ou une page html adaptée, ça je sais faire.
Ce que je ne sais pas faire c'est le code - ? la fonction SERVER['REQUEST_URI'] ? - qui permettra d'identifier sur quelle page se trouve l'utilisateur qui souhaite imprimer la page en question.
Évidemment, ce code, cette fonction, serait activée en cliquant sur le lien "imprimer" du menu.
J'espère me faire comprendre...
Quelqu'un peut-il m'aider ?
Hors ligne
Tu as tout as fait raison MK.
Le problème affiché n'est pas d'imprimer en PDF mais le contexte de la page à imprimer, point sur lequel j'ai répondu.
Soit on récupère le code envoyé au spooler par print pour en faire un pdf (avec par exemple un générateur de pdf via le fichier d'impression), soit comme j'ai dit, on créé une fonction js avec en paramètre le contexte de la page à imprimer.
Le seul problème qui va arriver et je le vois arriver gros comme une maison, c'est que visiblement l'appli a été développé par un dev qui ne fait pas du js pour des "raisons de sécurité" et qui à tout développé en 100%php. Du coup comme le fichier d'impression est en include, le contexte sera absent, et la seule manière de contourner le problème sans réecrire le code, va être de passer le contexte par l'URL, ce qui est nimp dans le sens où normalement on ne doit pas charger l'URL pour ce genre de paramètres (inutile). Mais cela va quand même compliquer le code. Faudrait voir l'appli, car cela vaut peut être mieux de sortir l'include et redévelopper un bout de code pour gérer le contexte proprement^^.
++
POO PHP+Ajax en MVC avec PDO et Bases de données épaisses : What else?
Hors ligne
EDIT: Si votre contexte de page est clairement distinct dans l'URL et dans TOUS les cas de figure, alors oui votre problème est résolu relativement facilement.
Regardez plutôt du côté de __FILE__ et utilisez dirname() et basename() ou directement avec un simple strpos()>0 pour résoudre ce contexte.
++
POO PHP+Ajax en MVC avec PDO et Bases de données épaisses : What else?
Hors ligne
bonjour JC
Tout d'abord merci pour votre disponibilité, même si ce que vous développez reste dans l'ensemble obscur pour moi.
Je vous explique : j'ai un site relativement simple. Il comporte en tout et pour tout 21 pages html. J'ai fait l'effort de comprendre et utiliser du php uniquement ce qui m'était nécessaire pour adapter son fonctionnement aux standards actuels (?). J'ai donc un index.php avec en include l'en-tête DTD de mes pages, puis mes pages elles-mêmes, chacune de ces pages ayant en include le menu (en css). Le tout avec les fonctions php requises.
Donc oui, pas de js (je sais pas faire), et rien de bien compliqué en php. Mes compétences (en autodidacte) sont l'html et guère plus.
Vous dites : "Si votre contexte de page est clairement distinct dans l'URL...". C'est à dire ? Voici l'url de la page d'accueil (pour l'instant en localhost) : http://localhost/racontetapis/index.php?page=accueil. Est-ce ce que vous nommez une url simple ?
Puis vous parlez de __FILE__, dirname() et basename() ou strpos()>0. J'ai été m'informer sur ces termes et la mise en œuvre de ces fonctions est hors de ma portée.
Ne pourriez-vous me détailler la fonction requise et me dire où la mettre ?
Merci par avance.
Hors ligne
Une première piste serait peut-être de dédier une feuille de style au media print.
Tu liras utilement cet article de l'Open-Web Group : "Maîtriser l'impression CSS".
Gloire à qui n'ayant pas d'idéal sacro-saint,
Se borne à ne pas trop emmerder ses voisins. G. Brassens Don Juan 1976.
Avĉjo MoKo kantas
La chaîne YouTube MoKo Papy
Hors ligne
Bonjour,
Pour essayer de faire simple au niveau de l'URL vous avez deux contextes
Voilà, j'espère vous avoir aidé.
++
Dernière modification par Jc (15-05-2012 21:37:43)
POO PHP+Ajax en MVC avec PDO et Bases de données épaisses : What else?
Hors ligne
bonjour Jc
J'étais absent, me voici revenu...
Finalement, tel que mon menu est construit, il y a des problèmes techniques à faire ce que je souhaitais.
J'en suis donc revenu à ce que j'avais déjà prévu, à savoir que le lien "imprimer" ouvre une page avec les miniatures des pdf téléchargeables pour l'impression.
Quoiqu'il en soit, un grand merci !
Hors ligne
Pages :: 1