Apertura próxima — los autores se quedan el 100 % de su precio Hazte autor Iniciar sesión Crear cuenta
Hola, inicia sesión Cuenta y listas TuÁrea de autor

Los productos sin servidor: temas HTML, plantillas, gráficos

1.Decirlo en vez de romperlo

Para un tema o un script vendido a alguien que no es desarrollador, tumbar el sitio ante una copia sin licencia es el gesto equivocado: quien lo sufre suele ser el comprador que copió mal su clave, y lo paga tu bandeja de soporte. banniere() devuelve en su lugar un pequeño aviso fijo: nada más cambia en la página.

index.php
require_once __DIR__ . '/Licence.php';

$reglages = @include __DIR__ . '/license.php';

$licence = new Licence(
    is_array($reglages) ? $reglages['cle'] : '',
    __DIR__ . '/cache'
);

register_shutdown_function(function () use ($licence) {
    echo $licence->banniere('My theme');
});

El comprador lo quita poniendo su clave en un archivo, junto a la biblioteca. Ese archivo es lo único que tiene que tocar.

license.php
<?php

return array(
    'cle' => '',
);

Devuelve una cadena vacía cuando la licencia es válida, y también cuando la red ha fallado: un visitante nunca ve un aviso porque nuestro servidor pasara una mala noche. Con una clave de desarrollo lo dice, con discreción, que es justo lo que quieres mientras construyes.

2.Los productos sin servidor: temas HTML, plantillas, gráficos

Un tema HTML, un archivo de Figma, un juego de iconos, una tipografía: nada de eso se ejecuta en un servidor al que puedas preguntar. Todo lo que entregas lo lee, lo modifica y lo redistribuye quien tenga los archivos. No hay comprobación que añadir, y no existe ninguna versión de esta página donde eso cambie.

No finjas. Un script ofuscado que llama a casa desde una página estática, una huella oculta en un canvas, una compilación que se rompe a los treinta días: todo eso lo quita en una tarde la única persona que iba a piratearte, y todo eso acaba en un ticket de soporte de los cincuenta que pagaron. Estarías gastando tu credibilidad para no proteger nada.

Lo que existe en su lugar actúa en la entrega, no en la ejecución. Cada descarga se reempaqueta para el comprador que la pidió, y lleva tres cosas:

  • Un archivo de licencia en la raíz del ZIP, que nombra el pedido, el titular y el alcance de la licencia.
  • Una huella, en ese archivo y en el comentario del ZIP: veinte caracteres derivados de la licencia y del producto, que identifican esa descarga y ninguna otra.
  • Una frase, en dos idiomas, que dice lo que cuesta redistribuirlo: los derechos de uso y las actualizaciones, sin reembolso.

Eso es trazabilidad, no prevención, y no te la vamos a vender como otra cosa: un comprador que borre el archivo y vacíe el comentario se va con una copia limpia. Lo que sí te da es un nombre cuando una copia aparece donde no debería, un motivo para que ese comprador se lo piense dos veces, y las dos cosas que una copia pirata nunca tiene: las actualizaciones y tu soporte.

Aquí importa una distinción. Si tu tema tiene algo de PHP — un formulario de contacto, un archivo de configuración, un include — entonces se ejecuta en un servidor, la comprobación de arriba es real y el aviso funciona. Solo en el caso totalmente estático, HTML y CSS y nada más, no hay comprobación posible en ejecución.

¿Algo no queda claro?

Escríbenos desde tu área de autor. Una pregunta que hubo que hacer suele significar que a esta página le falta un párrafo.

Área de autor