[MOD] Ver publicidad para obtener link [actualizado] 31.03.24 -
Miguel92 - 03-29-2024
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
Código PHP:
[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
Código:
function parseBBCode(...) {
... código
y dentro de esta línea en el array (es el primero que aparece)
Código:
$parser->setRestriction(array( ... ));
añaden
Paso 2:
En
bbcode.inc.php debajo de
Código:
require_once 'JBBCode/definitions/Video.php';
Añadiremos
Código:
require_once 'JBBCode/definitions/Encode.php';
más abajo buscamos
Código:
public function addBBcodes() {
y agregaremos
Código:
$tsCore = new tsCore;
// Solo para obtener la url
$url = $tsCore->settings['url'];
luego más abajo buscamos
Código:
// Tag de video independiente
if (in_array('video', $this->restriction) || !$this->restriction) {
$this->parser->addCodeDefinition(new Video());
}
y abajo agregamos
Código:
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
Código PHP:
<?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
Código PHP:
<?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']) ? 1 : 0;
/**********************************\
* (INSTRUCCIONES DE CODIGO) *
\*********************************/
// DEPENDE EL NIVEL
$tsLevelMsg = $tsCore->setLevel($tsLevel, true);
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
Código:
.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
Código:
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
Código:
const ads = {
pagina: 'ads.html', // <- nombre de la pagina html
....
}
Para añadir a wysibb.js
1 - Buscan
Código:
removeFormat: "Eliminar formato",
debajo añaden
Código:
encode: "Esconder enlace",
luego buscan
y a lado agregan
y por último buscan
Código:
img : {
title: CURLANG.img,
y arriba añaden
Código:
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]
Código:
{
"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
RE: [MOD] Ver publicidad para obtener link -
LordBackFlip - 03-30-2024
Buen aporte
RE: [MOD] Ver publicidad para obtener link -
nakcho02 - 03-30-2024
(03-29-2024, 08:57 PM)Miguel92 escribió: 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
Código PHP:
[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! 
Paso 1:
En c.core.php buscamos
Código:
function parseBBCode(...) {
... código
y dentro de esta línea en el array (es el primero que aparece)
Código:
$parser->setRestriction(array( ... ));
añaden
Paso 2:
En bbcode.inc.php debajo de
Código:
require_once 'JBBCode/definitions/Video.php';
Añadiremos
Código:
require_once 'JBBCode/definitions/Encode.php';
más abajo buscamos
Código:
public function addBBcodes() {
y agregaremos
Código:
$tsCore = new tsCore;
// Solo para obtener la url
$url = $tsCore->settings['url'];
luego más abajo buscamos
Código:
// Tag de video independiente
if (in_array('video', $this->restriction) || !$this->restriction) {
$this->parser->addCodeDefinition(new Video());
}
y abajo agregamos
Código:
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
Código PHP:
<?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
Código PHP:
<?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']) ? 1 : 0;
/**********************************\
* (INSTRUCCIONES DE CODIGO) *
\*********************************/
// DEPENDE EL NIVEL
$tsLevelMsg = $tsCore->setLevel($tsLevel, true);
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
Código:
.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
Código:
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
Código:
const ads = {
pagina: 'ads.html', // <- nombre de la pagina html
....
}
Para añadir a wysibb.js
1 - Buscan
Código:
removeFormat: "Eliminar formato",
debajo añaden
Código:
removeFormat: "Eliminar formato",
luego buscan
y a lado agregan
y por último buscan
Código:
img : {
title: CURLANG.img,
y arriba añaden
Código:
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 ?
RE: [MOD] Ver publicidad para obtener link -
Miguel92 - 03-30-2024
(03-30-2024, 03:37 PM)nakcho02 escribió: 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?
RE: [MOD] Ver publicidad para obtener link -
nakcho02 - 03-31-2024
(03-30-2024, 06:18 PM)Miguel92 escribió: (03-30-2024, 03:37 PM)nakcho02 escribió: 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
Código:
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]
imagen 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)
Código:
<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...
RE: [MOD] Ver publicidad para obtener link -
Miguel92 - 03-31-2024
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...
RE: [MOD] Ver publicidad para obtener link -
Miguel92 - 03-31-2024
Ya el topic esta actualizado..
RE: [MOD] Ver publicidad para obtener link -
nakcho02 - 04-04-2024
(03-31-2024, 09:07 PM)Miguel92 escribió: 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
RE: [MOD] Ver publicidad para obtener link -
Chctrpgo - 04-04-2024
(04-04-2024, 04:18 AM)nakcho02 escribió: (03-31-2024, 09:07 PM)Miguel92 escribió: 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
Código PHP:
<div class="publicidad">
Tu PUBLICIDAD
</div>
Código PHP:
.publicidad {
display: flex;
justify-content: center;
}
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.
RE: [MOD] Ver publicidad para obtener link -
Miguel92 - 04-04-2024
(04-04-2024, 04:18 AM)nakcho02 escribió: 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
Puedes hacer lo que menciona @
Chctrpgo#4 o hacer esto, en
.adsHtml { añades
Código PHP:
.adsHtml {
margin: 0 auto; /* 0 = Arriba-Abajo | auto = Izquierda-Derecha */
... resto de las propiedades
}
Al tener
position: relative; puedes a hacer que este centrado