¡Bienvenido! ¿Aún no estás registrado?, deberás registrarte antes de poder usar el Chat, Comentar y Descargar en el Foro. Usa un email válido para la activación.
Calificación:
  • 0 voto(s) - 0 Media
  • 1
  • 2
  • 3
  • 4
  • 5

COMPLEMENTOS [MOD] Ver publicidad para obtener link [actualizado] 31.03.24
#1

7
Mejor respuesta del mensaje [MOD] Ver publicidad para obtener link [actualizado] 31.03.24
Ver publicidad para ver enlace!

Bueno la instalación es un poco larga, no es administrable por el momento... Los cambios deberán ser manuales, en otro momento crear una forma de hacerlo administrable.
El modo para usarlo es
 
[encode]la url que desees esconder[/encode


Espero que sea lo que estas buscando y lamento no tener capturas de pantalla... Pero es bastante parecido a lo que hace comparado con el html que compartiste @nakcho02#402 

Exceptuando que cuando termina de contar, este cerrará la ventana emergente e insertará el enlace en la página como si fuese un enlace normal...

[font]Actualizado 31.03.2024[/font]

Paso 1:
En c.core.php buscamos
 
function parseBBCode(...) {
    ... código

y dentro de esta línea en el array (es el primero que aparece)
 
$parser->setRestriction(array( ... ));

añaden
 
, 'encode'


Paso 2:
En bbcode.inc.php debajo de
 
require_once 'JBBCode/definitions/Video.php';

Añadiremos
 
require_once 'JBBCode/definitions/Encode.php';

más abajo buscamos
 
public function addBBcodes() {

y agregaremos
 
$tsCore = new tsCore;
// Solo para obtener la url
$url = $tsCore->settings['url'];

luego más abajo buscamos
 
// Tag de video independiente
if (in_array('video', $this->restriction) || !$this->restriction) {
    $this->parser->addCodeDefinition(new Video());
}

y abajo agregamos
 
if(in_array('encode', $this->restriction) || !$this->restriction) {
    $this->parser->addCodeDefinition(new Encode());
}


Paso 3: (paso actualizado)
En inc/ext/JBBCode/definitions crearemos un archivo llamado "Encode.php" y agregamos esto
 
<?php

class Encode extends JBBCode\CodeDefinition {

   public function 
__construct() {
      
parent::__construct();
      
$this->setTagName("encode");
   }
   
/**
    * Returns true iff $input is a valid url.
    *
    * @param string $input  the string to validate
    * @return boolean
    */
   
public function asHtml(JBBCode\ElementNode $input) {
      
$content "";
      foreach (
$input->getChildren() as $child$content .= $child->getAsBBCode();

      
// Codificamos la url
      
$code base64_encode($content);

      
$tsCore = new tsCore;
      
$ads json_decode(file_get_contents($tsCore->settings['url'].'/publicidad.json'));
      
$active $ads->active;
      
$publicidades $ads->publicidades;

      
// Desde este punto, puedes hacer lo que quieras
      
$asHtml "<a class=\"adsHtml {$publicidades->$active->clase}\" href=\"javascript:ads.start('$code')\"><embed src=\"{$publicidades->$active->enlace}\" allowfullscreen></a>";
      return 
$asHtml;
   }


Paso 4:
En php/ajax crearemos un archivo llamado "ajax.publicidad.php" y agregaremos esto
 
<?php if ( ! defined('TS_HEADER')) exit('No se permite el acceso directo al script');
/**
 * Controlador AJAX
 *
 * @name    ajax.afiliado.php
 * @author  PHPost Team
*/
/**********************************\

*    (VARIABLES POR DEFAULT)        *

\*********************************/

    // NIVELES DE ACCESO Y PLANTILLAS DE CADA ACCIÓN
    $files = array(
        'publicidad' => array('n' => 0'p' => ''),
    );

/**********************************\

* (VARIABLES LOCALES ESTE ARCHIVO)    *

\*********************************/

    // REDEFINIR VARIABLES
    $tsPage 'php_files/p.publicidad.'.$files[$action]['p'];
    $tsLevel $files[$action]['n'];
    $tsAjax = empty($files[$action]['p']) ? 0;

/**********************************\

*    (INSTRUCCIONES DE CODIGO)        *

\*********************************/
    
    
// DEPENDE EL NIVEL
    $tsLevelMsg $tsCore->setLevel($tsLeveltrue);
    if($tsLevelMsg != 1) { echo '0: '.$tsLevelMsg['mensaje']; die();}

    // CODIGO
    switch($action){
      default:
          // Obtenemos el enlace codificado antes y decodificamos...
          $enlace base64_decode($tsCore->setSecure($_POST['link']));
          // Lo mostraremos con un echo
         echo $enlace;
      break;
    


Paso 5: (Paso actualizado)
En cualquier hoja de estilo como estilo.css, phpost.css, extra.css, etc añaden
 
.adsHtml {
    overflow: hidden;
    border-radius: .325rem;
    background-color: #CCC6;
    display: block;
    position: relative;
}
.adsHtml.large {
    --largo: 728px;
    --alto: 90px;
}
.adsHtml.medium {
    --largo: 300px;
    --alto: 250px;
}
.adsHtml, #temporizador {
    width: var(--largo);
    height: var(--alto);
}
.adsHtml * {
    pointer-events: none;
    padding: 0;
    margin: 0;
    height: 100%;
    width: 100%;
}
.adsHtml.finish {
    all: unset!important;
    color: #689FD2!important;
    font-weight: 600!important;
    text-decoration: underline!important;
    cursor: pointer!important;
}
.adsHmlt.withoutembed > embed {
    display: none;
}
#temporizador {
    position: absolute;
    top: 0;
    left: 0;
    z-index: 99;
   background: #F4F4F4;
}
#temporizador p {
   font-size: 1.325rem;
   font-weight: bold;
   display: flex;
   justify-content: center;
   align-items: center;
   line-height: 1.2rem;
   width: 80%;
   margin: 0 auto;
}


Paso 6: (Paso actualizado)
En acciones.js o funciones.js donde quieran al final de todo agregan
 
const ads = {
   pagina: 'Registrate o inicia tu sesión para ver este contenido // Reemplazar 00000 por tu referido
   enlace: '',
   intervalo: '',
   ventanaEmergente: '',
   cerrarVentana: false,
   mensajeMostrado: false,
   tiempo: 5,
   loadTime: function() {
      // Función para actualizar el temporizador
      $('.adsHtml').addClass('withoutembed').append(`<div id="temporizador"><p>El contenido se abrirá en ${ads.tiempo} segundos</p></div>`);
      this.intervalo = setInterval(function() {
         ads.tiempo--;
         $('#temporizador p').html(`El contenido se abrirá en ${ads.tiempo} segundos`);
         if (ads.tiempo === 0) {
            clearInterval(ads.intervalo);
            $('#temporizador p').html(`El contenido se abrirá en ${ads.tiempo} segundos`);
            this.mensajeMostrado = true;
            ads.startLink();
         }
      }, 1000);
   },
   popup: function() {
      this.loadTime();
      // Este archivo es para mostrar algo, página estatica, video, etc
      this.ventanaEmergente = window.open(`${this.pagina}`, '_blank', 'width=600,height=400');
      // Verificar si la ventana emergente se cierra
      let interval = setInterval(function() {
        if (ads.ventanaEmergente.closed) {
              clearInterval(interval);
            clearInterval(ads.intervalo);
            if (!ads.mensajeMostrado) {
                  $('#temporizador p').html(`Vuelve a presionar sobre la publicidad y espera a que termine el tiempo.`);
            }
        }
      }, 1000);
      },
   startLink: function() {
         let link = this.enlace;
         let self = this
         $.post(`${global_data.url}/publicidad.php`, { link }, response => {
            $('.adsHtml').attr({
                href: response
            }).addClass('finish').html(response);
            if(self.cerrarVentana) self.ventanaEmergente.close();
         })
   },
   start: function(link) {
       this.enlace = link;
       this.popup();
   }
}


Paso 7:
En la raíz de su sitio crean un archivo llamado "ads.html", en el caso que quieran darle otro nombre lo deberán modificar en esta parte
 
const ads = {
    pagina: 'ads.html', // <- nombre de la pagina html
    ....
}

Para añadir a wysibb.js
1 - Buscan 
 
removeFormat: "Eliminar formato",
debajo añaden
 
encode: "Esconder enlace",
luego buscan
 
,img,video,link,
y a lado agregan
 
encode,

y por último buscan
 
    img : {
        title: CURLANG.img,

y arriba añaden
 
encode : {
    title: CURLANG.linkHidden,
    buttonHTML: '<span class="fonticon ve-tlb-link1">\uE007</span>',
    modal: {
        title: CURLANG.modal_link_title,
        width: "500px",
        tabs: [
            {
                input: [
                    {param: "URL",title:CURLANG.modal_link_url,validation: '^http(s)?://'}
                ]
            }
        ]
    },
    transform : {
        '<a class="adsHtml" href="javascript:ads.start(\'{URL}\')"><embed src="Registrate o inicia tu sesión para ver este contenido" allowfullscreen></a>':"[encode]{URL}[/encode]"
    }
},

[font]Paso 8: (Nuevo paso)
En la ruta de tu sitio creas un archivo llamado "publicidad.json" y en el agregan[/font]
{
    "active": 2,
    "publicidades": {
        "1": {
            "enlace": "Registrate o inicia tu sesión para ver este contenido",
            "clase": "large"
        },
        "2": {
            "enlace": "Registrate o inicia tu sesión para ver este contenido",
            "clase": "medium"
        }
    }
}
En donde dice "active": 2, es para activar la publicidad 2 300x250, si quieren el 728x90 simplemente cambian al 1 "active": 1,

Quedaría como forma default ya que editar lo que esta en transform: { es mucho más complicado/largo de hacer, pero cuando se visualice en el post se verá el que este activo.

y eso sería todo
Responder
#2

1
Buen aporte  Smile
Responder
#3

0
(03-29-2024, 08:57 PM)Miguel92 escribió: Debes agradecer para ver el contenido...
Ver publicidad para ver enlace!

Bueno la instalación es un poco larga, no es administrable por el momento... Los cambios deberán ser manuales, en otro momento crear una forma de hacerlo administrable.
El modo para usarlo es
 
[encode]la url que desees esconder[/encode


Espero que sea lo que estas buscando y lamento no tener capturas de pantalla... Pero es bastante parecido a lo que hace comparado con el html que compartiste @nakcho02#402 

Exceptuando que cuando termina de contar, este cerrará la ventana emergente e insertará el enlace en la página como si fuese un enlace normal...

PD: Se me olvido implementarlo en wysibb!  Sad

Paso 1:
En c.core.php buscamos
 
function parseBBCode(...) {
    ... código

y dentro de esta línea en el array (es el primero que aparece)
 
$parser->setRestriction(array( ... ));

añaden
 
, 'encode'


Paso 2:
En bbcode.inc.php debajo de
 
require_once 'JBBCode/definitions/Video.php';

Añadiremos
 
require_once 'JBBCode/definitions/Encode.php';

más abajo buscamos
 
public function addBBcodes() {

y agregaremos
 
$tsCore = new tsCore;
// Solo para obtener la url
$url = $tsCore->settings['url'];

luego más abajo buscamos
 
// Tag de video independiente
if (in_array('video', $this->restriction) || !$this->restriction) {
    $this->parser->addCodeDefinition(new Video());
}

y abajo agregamos
 
if(in_array('encode', $this->restriction) || !$this->restriction) {
    $this->parser->addCodeDefinition(new Encode());
}


Paso 3:
En inc/ext/JBBCode/definitions crearemos un archivo llamado "Encode.php" y agregamos esto
 
<?php

class Encode extends JBBCode\CodeDefinition {

   public function __construct() {
      parent::__construct();
      $this->setTagName("encode");
   }
   /**
    * Returns true iff $input is a valid url.
    *
    * @param string $input  the string to validate
    * @return boolean
    */
   public function asHtml(JBBCode\ElementNode $input) {
      $content "";
      foreach ($input->getChildren() as $child$content .= $child->getAsBBCode();

      // Codificamos la url
      $code base64_encode($content);

      // Desde este punto, puedes hacer lo que quieras
      $asHtml "<a class=\"adsHtml\" href=\"javascript:ads.start('$code')\"><embed src=\"\" allowfullscreen></a>";
    
      
return $asHtml;
   }


Paso 4:
En php/ajax crearemos un archivo llamado "ajax.publicidad.php" y agregaremos esto
 
<?php if ( ! defined('TS_HEADER')) exit('No se permite el acceso directo al script');
/**
 * Controlador AJAX
 *
 * @name    ajax.afiliado.php
 * @author  PHPost Team
*/
/**********************************\

*    (VARIABLES POR DEFAULT)        *

\*********************************/

    // NIVELES DE ACCESO Y PLANTILLAS DE CADA ACCIÓN
    $files = array(
        'publicidad' => array('n' => 0'p' => ''),
    );

/**********************************\

* (VARIABLES LOCALES ESTE ARCHIVO)    *

\*********************************/

    // REDEFINIR VARIABLES
    $tsPage 'php_files/p.publicidad.'.$files[$action]['p'];
    $tsLevel $files[$action]['n'];
    $tsAjax = empty($files[$action]['p']) ? 0;

/**********************************\

*    (INSTRUCCIONES DE CODIGO)        *

\*********************************/
    
    
// DEPENDE EL NIVEL
    $tsLevelMsg $tsCore->setLevel($tsLeveltrue);
    if($tsLevelMsg != 1) { echo '0: '.$tsLevelMsg['mensaje']; die();}

    // CODIGO
    switch($action){
      default:
          // Obtenemos el enlace codificado antes y decodificamos...
          $enlace base64_decode($tsCore->setSecure($_POST['link']));
          // Lo mostraremos con un echo
         echo $enlace;
      break;
    


Paso 5: 
En cualquier hoja de estilo como estilo.css, phpost.css, extra.css, etc añaden
 
.adsHtml {
    --largo: 728px;
    --alto: 90px;
    overflow: hidden;
    border-radius: .325rem;
    background-color: #CCC6;
    display: block;
    position: relative;
}
.adsHtml, #temporizador {
    width: var(--largo);
    height: var(--alto);
}
.adsHtml * {
    pointer-events: none;
    padding: 0;
    margin: 0;
    height: 100%;
    width: 100%;
}
.adsHtml.finish {
    all: unset!important;
    color: #689FD2!important;
    font-weight: 600!important;
    text-decoration: underline!important;
    cursor: pointer!important;
}
.adsHmlt.withoutembed > embed {
    display: none;
}
#temporizador {
    position: absolute;
    top: 0;
    left: 0;
    z-index: 99;
   background: #F4F4F4;
}
#temporizador p {
   font-size: 1.325rem;
   font-weight: bold;
   display: flex;
   justify-content: center;
   align-items: center;
   line-height: 1.2rem;
   width: 80%;
   margin: 0 auto;
}


Paso 6:
En acciones.js o funciones.js donde quieran al final de todo agregan
 
const ads = {
    pagina: 'ads.html',
    enlace: '',
    intervalo: '',
    ventanaEmergente: '',
    mensajeMostrado: false,
    tiempo: 5,
    loadTime: function() {
        // Función para actualizar el temporizador
       $('.adsHtml').addClass('withoutembed').append(`<div id="temporizador"><p>El contenido se abrirá en ${ads.tiempo} segundos</p></div>`);
       this.intervalo = setInterval(function() {
           ads.tiempo--;
           $('#temporizador p').html(`El contenido se abrirá en ${ads.tiempo} segundos`);
          if (ads.tiempo === 0) {
                clearInterval(ads.intervalo);
               $('#temporizador p').html(`El contenido se abrirá en ${ads.tiempo} segundos`);
               this.mensajeMostrado = true;
              ads.startLink();
          }
       }, 1000);
    },
    popup: function() {
        this.loadTime();
        // Este archivo es para mostrar algo, página estatica, video, etc
        this.ventanaEmergente = window.open(`${global_data.url}/${this.pagina}`, '_blank', 'width=600,height=400');
        // Verificar si la ventana emergente se cierra
        let interval = setInterval(function() {
          if (this.ventanaEmergente.closed) {
                clearInterval(interval);
              clearInterval(ads.intervalo);
              if (!ads.mensajeMostrado) {
                    $('#temporizador p').html(`Vuelve a presionar sobre la publicidad y espera a que termine el tiempo.`);
              }
          }
        }, 1000);
  },
    startLink: function() {
        let link = this.enlace;
        let self = this
        $.post(`${global_data.url}/publicidad.php`, { link }, response => {
            $('.adsHtml').attr({
                href: response
            }).addClass('finish').html(response);
             self.ventanaEmergente.close();
        })
    },
    start: function(link) {
        this.enlace = link;
        this.popup();
    }
}


Paso 7:
En la raíz de su sitio crean un archivo llamado "ads.html", en el caso que quieran darle otro nombre lo deberán modificar en esta parte
 
const ads = {
    pagina: 'ads.html', // <- nombre de la pagina html
    ....
}

Para añadir a wysibb.js
1 - Buscan 
 
removeFormat: "Eliminar formato",
debajo añaden
 
removeFormat: "Eliminar formato",
luego buscan
 
,img,video,link,
y a lado agregan
 
encode,

y por último buscan
 
    img : {
        title: CURLANG.img,

y arriba añaden
 
encode : {
    title: CURLANG.linkHidden,
    buttonHTML: '<span class="fonticon ve-tlb-link1">\uE007</span>',
    modal: {
        title: CURLANG.modal_link_title,
        width: "500px",
        tabs: [
            {
                input: [
                    {param: "URL",title:CURLANG.modal_link_url,validation: '^http(s)?://'}
                ]
            }
        ]
    },
    transform : {
        '<a class="adsHtml" href="javascript:ads.start(\'{URL}\')"><embed src="" allowfullscreen></a>':"[encode]{URL}[/encode]"
    }
},

y eso sería todo

primero que todo gracias miguel por tomarte el tiempo, y en realizar el mod. ahora consulto .. eh reaizdo la instalacion todo bien aparentemente porque salio la publi. te detallo algunos inconveniente que no se si ise algo mal yo, o te olvidaste algun punto o algo
1° --- No me permite hacer click, por lo que no se ejecuta el contador.
2° ---- se podria saca las flechas  del recuadro de la publicidad ?
Responder
#4

1
(03-30-2024, 03:37 PM)nakcho02 escribió: Debes agradecer para ver el contenido...primero que todo gracias miguel por tomarte el tiempo, y en realizar el mod. ahora consulto .. eh reaizdo la instalacion todo bien aparentemente porque salio la publi. te detallo algunos inconveniente que no se si ise algo mal yo, o te olvidaste algun punto o algo
1° --- No me permite hacer click, por lo que no se ejecuta el contador.
2° ---- se podria saca las flechas  del recuadro de la publicidad ?

Hola.
1 - Puede ser que los estilos no se hayan aplicado bien, por lo que te recomiendo que presiones CTRL + SHIFT + R esto hará que recargue sin pasar por el caché, ya que el pointer-events: none; apunta al contenido del enlace 'embed' y no al enlace, la propiedad display: block; del enlace no se habrá aplicado y debe estar en un cuadro chiquito, por eso no detecta el evento clic

2 - Ya me perdí, que fechas?
Responder
#5

1
(03-30-2024, 06:18 PM)Miguel92 escribió: Debes agradecer para ver el contenido...
(03-30-2024, 03:37 PM)nakcho02 escribió: Debes agradecer para ver el contenido...primero que todo gracias miguel por tomarte el tiempo, y en realizar el mod. ahora consulto .. eh reaizdo la instalacion todo bien aparentemente porque salio la publi. te detallo algunos inconveniente que no se si ise algo mal yo, o te olvidaste algun punto o algo
1° --- No me permite hacer click, por lo que no se ejecuta el contador.
2° ---- se podria saca las flechas  del recuadro de la publicidad ?

Hola.
1 - Puede ser que los estilos no se hayan aplicado bien, por lo que te recomiendo que presiones CTRL + SHIFT + R esto hará que recargue sin pasar por el caché, ya que el pointer-events: none; apunta al contenido del enlace 'embed' y no al enlace, la propiedad display: block; del enlace no se habrá aplicado y debe estar en un cuadro chiquito, por eso no detecta el evento clic

2 - Ya me perdí, que fechas?

te voy detallando algunas cositas que se podrían pulir.. para mejorar el funcionamiento del mod

1- en el paso que hay que modificar este archivo  wysibb.js en el primer paso pusiste buscar
removeFormat: "Eliminar formato"

 y abajo añaden 
removeFormat: "Eliminar formato",  el mismo codigo , estoy suponiendo que es un error  y no te diste cuenta y pegaste dos veces  la misma linea


2- lo de las flechas   me refiero cuando la imagen es muy grande de la publicidad por ejemplo Registrate o inicia tu sesión para ver este contenido  salen al costado esas fechas y no muestra toda la publicidad por ejemplo un cuadrado  muestra solo la parte . de arriba te dejo una imagen 

[img]Registrate o inicia tu sesión para ver este contenidoítulo.png[/img]Debes agradecer para ver el contenido... de muestra
[img]Registrate o inicia tu sesión para ver este contenidoítulo.png[/img]

3- al cerrar el pop ups sigue corriendo el tiempo  y muestra el enlace , en teoria si se cierra te tiene que anular el temporizador (no lo hace)

4-la publicidad que esconde el enlace se le pude incluir el referido?.. ya que si no tiene referido no va a monetizar ese click. eh intentado poner algo asi en el archivo para que me tomara todo lo del referido y monetice pero no me funciono, osea  me genera error (osea yo te puse esta pagian de ejemplo pero supongo que la maoria es el mismo formato como la de google y otros)
<div style="position: relative;"><iframe src="Registrate o inicia tu sesión para ver este contenido" frameborder="0" height="250" width="300"></iframe><a href="Registrate o inicia tu sesión para ver este contenido" target="_blank" style="position: absolute; top: 0; bottom: 0; left: 0; right: 0;"></a></div>


5- el popups, tendría que mostrar el contenido de la publicad, ósea si hago click en la publi para ver el enlace en el popups tendria que abrir ese contenido para que monetice , de ese modo estaría cumpliendo con la regla del click y monetizaría.

son algunas cositas que pude ver dentro de toda mi ignorancia, que se podria mejorar, cabe destacar que no manejo el tema de programación jaja, razón por lo que a veces hago pruebas y por  ahi funcionan pero no lógicamente , sino por accidente jaja como el codigo de la publi que quise poner y me genero error. 
se agradece tu tiempo.. espero puedas mejorarlo amigo...
Responder
#6

0
Hola, el error de haber puesto 2 veces la misma línea, no me di cuenta, a veces me pasa... Lo de las flechas, eso se llama scroll. 
Ahora veo si lo mejoro más...
Responder
#7

1
Ya el topic esta actualizado..
Responder
#8

0
(03-31-2024, 09:07 PM)Miguel92 escribió: Debes agradecer para ver el contenido...Ya el topic esta actualizado..

como estas hno..  agradecido por tu voluntad amigo.. si Tenes algunos mod guardados por ahi jje y lo podes compartir bienvenido sea.. hay muchos mod que se perdieron en el cambio de webb.. yo los  tenia a todos pero se me formateo el disco y se me borro todo.  

te queria hacer una consulta sobre este mod de la pulbicidad como puedo centrar la publicidad en el post. por que siempre me lo tira hacia la derecha
Responder
#9

0
(04-04-2024, 04:18 AM)nakcho02 escribió: Debes agradecer para ver el contenido...
(03-31-2024, 09:07 PM)Miguel92 escribió: Debes agradecer para ver el contenido...Ya el topic esta actualizado..

como estas hno..  agradecido por tu voluntad amigo.. si Tenes algunos mod guardados por ahi jje y lo podes compartir bienvenido sea.. hay muchos mod que se perdieron en el cambio de webb.. yo los  tenia a todos pero se me formateo el disco y se me borro todo.  

te queria hacer una consulta sobre este mod de la pulbicidad como puedo centrar la publicidad en el post. por que siempre me lo tira hacia la derecha

Hola, no lo tengo instalado y no sé cómo es el código de la publicidad. Para centrar la publicidad puedes usar estas propiedades css aplicándoselas al div de la publicidad o meterlas dentro de uno.

Ejemplo
<div class="publicidad">
Tu PUBLICIDAD
</div
 
.publicidad {
displayflex;
justify-contentcenter;


Con eso todo lo que este dentro del div te lo centra.
----------------------------------------------------------------

Con los mods de Phpost.net, yo tengo una copia entera, ya he actualizado yo solo cerca de 400 mods, probados y subidos aquí en el foro, todavía tengo más, pero lo voy actualizando y subiendo cuando tengo tiempo o cuando lo piden.
Responder
#10

1
Responder


Compartir en:

Salto de foro:


Usuarios navegando en este tema: 1 invitado(s)