¡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
#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


Compartir en:

Mensajes en este tema
[MOD] Ver publicidad para obtener link [actualizado] 31.03.24 - por Miguel92 - 03-29-2024, 08:57 PM
RE: [MOD] Ver publicidad para obtener link - por LordBackFlip - 03-30-2024, 02:42 PM
RE: [MOD] Ver publicidad para obtener link - por nakcho02 - 03-30-2024, 03:37 PM
RE: [MOD] Ver publicidad para obtener link - por Miguel92 - 03-30-2024, 06:18 PM
RE: [MOD] Ver publicidad para obtener link - por nakcho02 - 03-31-2024, 05:36 PM
RE: [MOD] Ver publicidad para obtener link - por Miguel92 - 03-31-2024, 09:07 PM
RE: [MOD] Ver publicidad para obtener link - por nakcho02 - 04-04-2024, 04:18 AM
RE: [MOD] Ver publicidad para obtener link - por Chctrpgo - 04-04-2024, 09:06 AM
RE: [MOD] Ver publicidad para obtener link - por Miguel92 - 04-04-2024, 02:55 PM
RE: [MOD] Ver publicidad para obtener link - por nakcho02 - 04-04-2024, 08:54 PM
RE: [MOD] Ver publicidad para obtener link - por Miguel92 - 04-05-2024, 01:24 AM
RE: [MOD] Ver publicidad para obtener link - por Miguel92 - 03-31-2024, 06:53 PM

Salto de foro:


Usuarios navegando en este tema: 1 invitado(s)