-
Cómo funcionan las Mision...
Foro: Guías y Tutoriales
Último mensaje por: Tronlar
06-14-2026, 09:46 PM
» Respuestas: 0
» Vistas: 96 -
V6 Original/Dark/Memes (A...
Foro: Diseños Terminados
Último mensaje por: carlos007r
06-14-2026, 11:08 AM
» Respuestas: 26
» Vistas: 6,357 -
V5
Foro: Diseños Terminados
Último mensaje por: Aeikox
06-13-2026, 12:16 AM
» Respuestas: 8
» Vistas: 1,451 -
Risus 1.3 Actualizado jQu...
Foro: Risus 1.3
Último mensaje por: Tronlar
06-12-2026, 10:45 PM
» Respuestas: 55
» Vistas: 10,671 -
Preguntas Frecuentes y So...
Foro: Guías y Tutoriales
Último mensaje por: Tronlar
06-12-2026, 06:17 PM
» Respuestas: 0
» Vistas: 75 -
Cómo registrar tu comunid...
Foro: Guías y Tutoriales
Último mensaje por: Tronlar
06-12-2026, 05:32 PM
» Respuestas: 0
» Vistas: 62 -
Cómo monetizar tu comunid...
Foro: Guías y Tutoriales
Último mensaje por: Tronlar
06-11-2026, 07:19 PM
» Respuestas: 0
» Vistas: 57 -
Introducción al SEO para ...
Foro: Guías y Tutoriales
Último mensaje por: Tronlar
06-11-2026, 06:58 PM
» Respuestas: 0
» Vistas: 63 -
Guía completa de SEO para...
Foro: Guías y Tutoriales
Último mensaje por: Tronlar
06-11-2026, 06:48 PM
» Respuestas: 0
» Vistas: 65 -
Diccionario de términos b...
Foro: Guías y Tutoriales
Último mensaje por: Tronlar
06-11-2026, 01:41 PM
» Respuestas: 0
» Vistas: 89
- Mensajes del foro:1,957
- Temas del foro:614
- Miembros:1,036
- Último miembro:carlos007r
Tras varias investigaciones, especialistas de las universidades de Princeton y Washington encontraron la forma de hacer una cámara del mismo tamaño de un grano de sal con la capacidad de procesar imágenes de alta calidad. Eso significa un gran hallazgo y avance en el área médica y científica, ya que abrirá la puerta a exploraciones mucho más detalladas del cuerpo humano.
Si bien, ya existen algunas nano cámaras que son usadas en el ámbito médico para hacer operaciones y análisis como las que se ocupan en endoscopias o tomar imágenes cerebrales, los aspectos que captaban eran pobres.
A diferencia de las cámaras profesionales o las de teléfonos celulares que cada vez tienen mayor potencia, las más pequeñas han tenido limitaciones técnicas, propias a su tamaño.
“Diseñamos un marco de aprendizaje completamente diferenciable que aprende una estructura física de metasuperficie junto con un algoritmo de reconstrucción de imágenes basado en características neuronales”, explican en el artículo.
Con “metasuperficie” se refieren a su nuevo sistema con una superficie óptima con 1.6 millones de postes cilíndricos en tan solo medio milímetro cada uno. Dichos postes funcionan como antenas receptoras de luz, las cuales procesan en algoritmos de imagen.
De ahí que el descubrimiento de los miembros de las universidades estadounidenses haya causado revuelo, ya que con una cámara ultra pequeña y con mejor procesamiento de imágenes podrán realizar nuevos estudios médicos o emplearla en otros ámbitos donde se requiera.
Señalan que la cámara ha demostrado funcionar hasta con una apertura de diafragma a 2.0, lo que quiere decir que aunque haya pocas condiciones de luz puede capturar imágenes.
Asimismo, apuntaron que han logrado disminuir las aberraciones cromáticas que se refieren al color de la imagen, al reducir la distancia focal de la cámara. Con todo ello, pueden reproducir fotografías más claras a las ya existentes en el ramo.
“Optimizamos conjuntamente el algoritmo de metasuperficie y deconvolución con un modelo de formación de imágenes diferenciable de extremo a extremo”, explican.
Indicaron que con sus investigaciones han podido superar los métodos existentes de algunos errores de construcción fuera del rango de longitud de onda norminal en capturas experimentales, que demuestran la calidad de imagen.
Cita:“En nuestro modelo, los coeficientes polinomiales que determinan la fase metasuperficie son variables optimizables, mientras que los parámetros calibrados experimentalmente que caracterizan la lectura del sensor y la distancia sensor-metasuperficie son fijos”
Dicho de forma más simple, la cámara tiene la posibilidad de adaptarse a las variables que pudiera tener frente a ella (como si se tratase de un modo automático), mientras que los parámetros de otros modelos se calibran de acuerdo a la experiencia y son fijos.
Aunado a esto, especificaron que la construcción de su dispositivo simula las redes neuronales que facilitan el aprendizaje en un bajo y alto nivel, a la vez que permite codificar y propagar información, más allá de solo procesar y enviar.
Los investigadores de Princeton y Washington señalan que pese a haber encontrado una cámara de mínimo tamaño libre de aberraciones cromáticas, quieren extender su trabajo a imágenes flexibles con nanofotónica reconfigurable para diversas tareas que pueden ser de clasificación o detección de objetos.
Finalmente, los creadores de esta tecnología mencionaron algunos beneficios futuros y aplicaciones relacionados a su invención. “Creemos que el método propuesto da un paso esencial hacia cámaras ultrapequeñas que pueden permitir aplicaciones novedosas en endoscopia, imágenes cerebrales o de forma distribuida en superficies de objetos”.
[img]Registrate o inicia tu sesión para ver este contenido[/img]
La votación de la 65ª edición del Balón de Oro en la historia no dejó lugar a ningún tipo de dudas: Lionel Messi fue ampliamente elegido por el jurado como el mejor futbolista del año y alzó el séptimo galardón individual de estas características en su carrera.
La revista France Football, organizadora del premio, decidió publicar los resultados finales de los sufragios aunque todavía no especificó cómo fueron los votos de cada uno de los integrantes del panel. Leo obtuvo 613 adhesiones: quedó con 33 puntos más que el segundo Robert Lewandowski (580), 153 más que el tercero Jorginho (460) y a una distancia de 374 unidades de Karim Benzema (239), uno de los futbolistas más apoyados desde tierras madrileñas.
Cabe destacar que cada integrante del comité tenía cinco votos a disposición con 6 puntos para el primero, 4 para el segundo, 3 para el tercero, 2 para el cuarto y 1 para el quinto. En caso de empate en las posiciones, la tabla colocó primero al que tuvo más apoyos distintos.
Cristiano Ronaldo –que no concurrió a la fiesta y publicó un furioso descargo– finalizó en la sexta colocación (178 puntos) y Kylian Mbappé se ubicó noveno (58), por encima de Erling Haaland (11° con 33 puntos) y Neymar (16° con 9 puntos). En total, Leo obtuvo el 22,82% de los votos, Robert el 21,59% y Jorginho sumó el 17.12% de todas las elecciones.
El futbolista portugués de 36 años quedó afuera del podio por segunda vez desde que pelea por ganar un Balón de Oro. En 2007 se ubicó segundo detrás de Kaka y recién desapareció del Top 3 en 2010 cuando la terna fue absolutamente del Barcelona con Messi (1°), Andrés Iniesta (2°) y Xavi (3°). Tras permanecer entre el primer y segundo lugar en las siguientes 8 galas, Cristiano se acomodó tercero en el 2019 por detrás de Leo y Virgil van Dijk.
Más allá de que el otro argentino en la lista (Lautaro Martínez, del Inter) sumó 6 puntos, el detalle estuvo en los únicos dos jugadores del corte final que no obtuvieron apoyos: César Azpilicueta del Chelsea y Luka Modric del Real Madrid. No es menor recordar que el croata se había apropiado del reconocimiento en el 2018 cortando una hegemonía de Messi y Cristiano que se había extendido por diez años.
La gala llevada a cabo en el Teatro del Châtelet de París tuvo un “récord histórico de audiencia” en Francia, según detalló el diario L’Equipe. El canal de este medio tuvo una media de 1.6 millones de espectadores según Médiamétrie, con picos de 2 millones de personas. Fue la segunda mejor audiencia de la historia para la pantalla de L’Equipe detrás del partido Francia-Serbia (2-3) de la EuroVolley del 2019 que tuvo un promedio de 1.7 millones de espectadores.
La revista organizadora del evento eligió a los 30 finalistas y luego un jurado de 180 periodistas de distintos países del mundo debieron votar al Balón de Oro masculino en una elección que se extendió hasta el 24 de octubre. Messi venía de apropiarse del Balón de Oro en 2019 con una diferencia mínima por encima de van Dijk: sumó el 24.3% (686 votos) vs. el 24.1% del neerlandés (684 votos).
LAS POSICIONES FINALES DEL BALÓN DE ORO
1- Lionel Messi (Argentina, FC Barcelona, Paris-SG): 613 puntos
2- Robert Lewandowski (Polonia, Bayern de Múnich): 580 puntos
3- Jorginho (Italia, Chelsea): 460 puntos
4- Karim Benzema (Francia, Real Madrid): 239 puntos
5- N’Golo Kanté (Francia, Chelsea): 186 puntos
6- Cristiano Ronaldo (Portugal, Juventus de Turín, Manchester United): 178 puntos
7- Mohamed Salah (Egipto, Liverpool): 121 puntos
8- Kevin De Bruyne (Bélgica, Manchester City): 73 puntos
9- Kylian Mbappé (Francia, París-SG): 58 puntos
10- Gianluigi Donnarumma (Italia, AC Milán, París-SG): 36 puntos
11- Erling Haaland (Noruega, Borussia Dortmund): 33 puntos
12- Romelu Lukaku (Bélgica, Inter de Milán, Chelsea): 26 puntos
13- Giorgio Chiellini (Italia, Juventus de Turín): 26 puntos
14- Leonardo Bonucci (Italia, Juventus de Turín): 18 puntos
15- Raheem Sterling (Inglaterra, Manchester City): 10 puntos
16- Neymar (Brasil, París-SG): 9 puntos
17- Luis Suárez (Uruguay, Atlético de Madrid): 8 puntos
18- Simon Kjaer (Dinamarca, AC Milán): 8 puntos
19- Mason Mount (Inglaterra, Chelsea): 7 puntos
20- Riyad Mahrez (Argelia, Manchester City): 7 puntos
21- Bruno Fernandes (Portugal, Manchester United): 6 puntos
21- Lautaro Martínez (Argentina, Inter de Milán): 6 puntos
23- Harry Kane (Inglaterra, Tottenham): 4 puntos
24- Pedri (España, FC Barcelona): 3 puntos
25- Phil Foden (Inglaterra, Manchester City): 2 puntos
26- Nicolo Barella (Italia, Inter de Milán): 1 punto
26- Ruben Dias (Portugal, Manchester City): 1 punto
26- Gerard Moreno (España, Villarreal): 1 punto
29- César Azpilicueta (España, Chelsea): 0 puntos
29- Luka Modric (Croacia, Real Madrid): 0 puntos
[img]Registrate o inicia tu sesión para ver este contenido[/img]
Lionel Messi ganó el Balón de Oro 2021 este lunes en el Teatro Châtelet de París. La revista France Football se lo otorgó por séptima vez al crack argentino que ahora juega en PSG y estiró su diferencia como el máximo vencedor de la historia del premio, con dos de ventaja sobre su contemporáneo Cristiano Ronaldo, quien finalizó sexto en esta edición.
Por su parte, Robert Lewandowski y Jorginho completaron el podio y Lautaro Martínez se acomodó en el puesto número 21. ¿Y el Premio Yashin? El arquero Emiliano Dibu Martínez concluyó sexto en el galardón que quedó en manos del italiano Gianluigi Donnarumma.
Messi ganó el Balón de Oro tras un 2021 inolvidableMessi, de 34 años, vivió una temporada repleta de altibajos con dos hechos históricos: por un lado, la épica consagración en la Copa América 2021 con la Selección Argentina, en el Maracaná y ante Brasil; del otro, su triste salida del Barcelona, el club en el que había brillado por dos décadas.
Así fue como el delantero de París Saint-Germain superó al polaco Robert Lewandowski, implacable en un Bayern Múnich que no se cansa de ganar en Alemania, y al italobrasileño Jorginho, bicampeón de Europa con Chelsea y la Azzurra.
[img]Registrate o inicia tu sesión para ver este contenido[/img]
Cuando te reúnes alrededor del árbol de Navidad o te pones golosinas en un calcetín, estás participando en tradiciones que se remontan a miles de años, mucho antes de que el cristianismo entrara en la mezcla.
Las tradiciones paganas o no cristianas aparecen en esta querida fiesta de invierno, una consecuencia de que los primeros líderes de la iglesia fusionaron la celebración de la natividad de Jesús con los festivales de mediados de invierno preexistentes. Desde entonces, las tradiciones navideñas se han deformado con el tiempo, llegando a su estado actual hace poco más de un siglo.
Siga leyendo para conocer algunos de los sorprendentes orígenes de la alegría navideña y descubra por qué una vez se prohibió la Navidad en Nueva Inglaterra.
1. Los primeros cristianos tenían debilidad por los paganos
Es un error decir que nuestras tradiciones navideñas modernas provienen directamente del paganismo precristiano, dijo Ronald Hutton, historiador de la Universidad de Bristol en el Reino Unido. Sin embargo, dijo, estaría igualmente equivocado si creyera que la Navidad es un fenómeno moderno. Cuando los cristianos difundieron su religión en Europa en los primeros siglos d.C., se encontraron con personas que vivían de una variedad de credos religiosos locales y regionales.
Los misioneros cristianos agruparon a todas estas personas bajo el término general "pagano", dijo Philip Shaw, quien investiga los primeros idiomas germánicos y el inglés antiguo en la Universidad de Leicester en el Reino Unido. El término está relacionado con la palabra latina que significa "campo", dijo Shaw . El vínculo lingüístico tiene sentido, dijo, porque el cristianismo europeo temprano fue un fenómeno urbano, mientras que el paganismo persistió por más tiempo en las áreas rústicas.
Los primeros cristianos querían convertir a los paganos, dijo Shaw, pero también estaban fascinados por sus tradiciones.
"Los cristianos de ese período están bastante interesados en el paganismo", dijo. "Obviamente es algo que ellos piensan que es algo malo, pero también es algo que creen que vale la pena recordar. Es lo que hicieron sus antepasados".
Quizás es por eso que las tradiciones paganas se mantuvieron incluso cuando el cristianismo se afianzó. El árbol de Navidad es un invento alemán del siglo XVII, dijo Hutton de la Universidad de Bristol a WordsSideKick.com, pero claramente se deriva de la práctica pagana de llevar vegetación al interior para decorar en pleno invierno. El Papá Noel moderno es un descendiente directo del Papá Noel de Inglaterra, que originalmente no era un dador de regalos. Sin embargo, Papá Noel y sus otras variaciones europeas son encarnaciones modernas de viejas ideas paganas sobre los espíritus que viajaban por el cielo en pleno invierno, dijo Hutton.
2. Todos queremos ese cálido resplandor navideño
Pero, ¿por qué esta obsesión por la fiesta en pleno invierno? Según los historiadores, es un momento natural para una fiesta. En una sociedad agrícola, el trabajo de cosecha se realiza durante el año y no queda nada por hacer en los campos.
"Es un momento en el que tienes algo de tiempo para dedicarlo a tu vida religiosa", dijo Shaw. "Pero también es un período en el que, francamente, todo el mundo necesita animarse".
Los días oscuros que culminan con el día más corto del año, el solsticio de invierno, podrían aligerarse con fiestas y decoraciones, dijo Hutton.
"Si vive en una región en la que el pleno invierno trae una oscuridad sorprendente, frío y hambre, entonces la necesidad de tener una celebración en el corazón para evitar volverse loco o caer en una depresión profunda es muy, muy fuerte", dijo.
Stephen Nissenbaum, autor del finalista del Premio Pulitzer "La batalla por la Navidad" (Vintage, 1997), estuvo de acuerdo.
"Incluso ahora, cuando el solsticio no significa mucho porque puedes deshacerte de la oscuridad con solo presionar un interruptor de luz eléctrica, incluso ahora, es una temporada muy poderosa", dijo a LIveScience.
3. La Iglesia tardó en abrazar la Navidad
A pesar de la difusión del cristianismo, los festivales de invierno no se convirtieron en Navidad durante cientos de años. La Biblia no hace referencia a cuándo nació Jesús, lo que no fue un problema para los primeros cristianos, dijo Nissenbaum.
"Nunca se les ocurrió que necesitaban celebrar su cumpleaños", dijo.
Sin una directiva bíblica para hacerlo y sin ninguna mención en los evangelios de la fecha correcta, no fue hasta el siglo IV que los líderes de la iglesia en Roma abrazaron la festividad. En ese momento, dijo Nissenbaum, muchas personas habían recurrido a una creencia que la Iglesia encontraba herética: que Jesús nunca había existido como hombre, sino como una especie de entidad espiritual.
"Si quieres mostrar que Jesús fue un ser humano real como cualquier otro ser humano, no simplemente alguien que parecía un holograma, entonces, ¿qué mejor manera de pensar en él naciendo de una manera humana normal y humilde que celebrar su ¿nacimiento?" Dijo Nissenbaum.
Los festivales de invierno, con sus raíces paganas, ya se celebraban ampliamente, dijo Nissenbaum. Y la fecha tuvo un agradable ajuste filosófico con los festivales que celebran los días que se prolongan después del solsticio de invierno (que cayó el 21 de diciembre de este año). "Oh, cuán maravillosamente actuó la Providencia que en el día en que nació ese Sol ... Cristo debía nacer", decía un texto chipriota.
4. Los puritanos odiaban la festividad.
Pero si la Iglesia Católica gradualmente llegó a abrazar la Navidad, la Reforma Protestante le dio un buen golpe a la festividad. En el siglo XVI, la Navidad se convirtió en una víctima de este cisma de la iglesia, y los protestantes de mentalidad reformista lo consideraron poco mejor que el paganismo, dijo Nissenbaum. Esto probablemente tuvo algo que ver con la "moda estridente, ruidosa y, a veces, obscena" en la que se celebraba la Navidad, agregó.
En Inglaterra, bajo Oliver Cromwell, la Navidad y los días de otros santos estaban prohibidos, y en Nueva Inglaterra era ilegal celebrar la Navidad durante unos 25 años en el siglo XVII, dijo Nissenbaum. Olvídese de que la gente diga "Felices vacaciones" en lugar de "Feliz Navidad", dijo.
"Si quieres ver una verdadera 'Guerra en Navidad', tienes que mirar a los puritanos", dijo. "¡Lo prohibieron!"
5. Los regalos son una tradición nueva (y sorprendentemente controvertida)
Si bien la entrega de regalos puede parecer inextricablemente ligada a la Navidad, solía ser que la gente esperaba con ansias abrir los regalos el día de Año Nuevo.
"Fueron una bendición para la gente hacer que se sintieran bien al final del año", dijo Hutton. No fue hasta la época victoriana de 1800 que la entrega de regalos se trasladó a la Navidad. Según la Colección Real, los hijos de la reina Victoria recibieron regalos de Nochebuena en 1850, incluida una espada y una armadura. En 1841, Victoria le regaló a su esposo, el príncipe Alberto, un retrato en miniatura de ella cuando tenía 7 años; en 1859, le regaló un libro de poesía de Alfred, Lord Tennyson.
Toda esta entrega de regalos, junto con el abrazo secular de la Navidad, ahora tiene algunos grupos religiosos al vapor, dijo Nissenbaum. El consumismo de las compras navideñas parece, para algunos, contradecir el objetivo religioso de celebrar el nacimiento de Jesucristo. De alguna manera, dijo Nissenbaum, el gasto excesivo es el equivalente moderno de la juerga y la borrachera que hizo fruncir el ceño a los puritanos.
"Siempre ha habido un tira y afloja, y ha tomado diferentes formas", dijo. "Podría haber sido alcohol entonces, y ahora son estos juguetes brillantes".
[img]Registrate o inicia tu sesión para ver este contenido[/img]
Joe Gardner, un profesor de música de secundaria que vive en la ciudad de Nueva York, se siente atrapado en la vida e insatisfecho en su trabajo. Sueña con una carrera en el jazz, a lo que su madre costurera, Libba, se opone, temiendo que no tenga seguridad económica.
Soul nos lleva por la vida Jeo Gardener, un maestro de música de secundaria con sueños frustrados en la escena jazz (como todos los músicos de jazz, para ser honestos) que consigue el gig (tocada, diría tu tío) de su vida en el club nocturno de mayor renombre de Nueva York.
Mientras camina eludiendo todas las trampas que una ciudad puede tener, entre la obra pública, el tránsito y las conglomeraciones, Joe muere y pierde, ahora sí, el que era su sueño de toda la vida desde que descubrió el jazz.
Al morir, Joe descubre que existen dos planos alternativos dentro de lo que se puede considerar el “más allá”. Un lugar a donde van los muertos y otro donde están los no vivos. En su intento por regresar a tener su presentación, termina yendo a este mundo de los “pre-vivos” donde conoce a 22, un alma que no ha encontrado la forma de irse hacia la Tierra.
Esa es la premisa de Soul. Otro mundo burocratizado de algún plano existencial intangible o fantástico, como lo fue también Intensamente y Monsters Inc., curiosamente las tres dirigidas por Pete Docter.
Algunas capturas, son muchos más.
En admin.php --> inc --> php --> admin.php
Buscar:
} elseif($action == 'users'){
Arriba agregar:
} elseif($action == 'emoticones'){
include('../ext/datos.php');
$smarty->assign("tsCatsEmotis", $tsCatsEmotis);
// INICIO
if(empty($act)) {
$smarty->assign("tsEmoticones", $tsUser->getEmoticones());
// EDITAR EMOTICON
} elseif($act == 'editar'){
if(!empty($_POST['save'])){
$save = $tsAdmin->saveEmoticon();
if($save == 1) $tsCore->redirectTo($tsCore->settings['url'].'/admin/emoticones?save=true');
else {
$smarty->assign("tsError",$save);
}
}
$smarty->assign("tsEmoticon",$tsAdmin->getEmoticon());
$smarty->assign("tsImages",$tsAdmin->getExtraIcons('smiles'));
// NUEVO EMOTICON
} elseif($act == 'nuevo'){
if(!empty($_POST['save'])){
$save = $tsAdmin->newEmoticon();
if($save == 1) $tsCore->redirectTo($tsCore->settings['url'].'/admin/emoticones?save=true');
else {
$smarty->assign("tsError",$save);
}
}
$smarty->assign("tsImages",$tsAdmin->getExtraIcons('smiles'));
// BORRAR EMOTICON
} elseif($act == 'borrar'){
if(isset($_GET['eid'])){
if($tsAdmin->delEmoticon()) $tsCore->redirectTo($tsCore->settings['url'].'/admin/emoticones?save=true');
}
}
En c.admin.php --> inc --> class --> c.admin.php
Buscar:
/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
// ADMINISTRAR USUARIOS \\
Arriba agregar:
function getEmoticon() {
$query = db_exec(array(__FILE__, __LINE__), 'query', 'SELECT * FROM w_emoticones WHERE id = \''.(int)$_GET['eid'].'\' LIMIT 1');
$data = db_exec('fetch_assoc', $query);
return $data;
}
function newEmoticon() {
global $tsCore;
$e = array(
'code' => $tsCore->setSecure($_POST['code']),
'image' => $tsCore->setSecure($_POST['image']),
'cat' => $tsCore->setSecure($_POST['cat'])
);
foreach ($e as $key => $val)
if(empty($val)) return "El campo <b>$key</b> es requerido.";
if($this->existEmoticon($e['code'])) return "Ya existe un emoticono con ese <b>code</b>";
return db_exec(array(__FILE__, __LINE__), 'query', 'INSERT INTO `w_emoticones` (`code`, `image`, `cat`) VALUES (\''.$e['code'].'\', \''.$e['image'].'\', \''.(int)$e['cat'].'\')');
}
function saveEmoticon() {
global $tsCore;
$e = array(
'id' => $tsCore->setSecure($_GET['eid']),
'code' => $tsCore->setSecure($_POST['code']),
'image' => $tsCore->setSecure($_POST['image']),
'cat' => $tsCore->setSecure($_POST['cat'])
);
foreach ($e as $key => $val)
if(empty($val)) return "El campo <b>$key</b> es requerido.";
if($this->existEmoticon($e['code'], $e['id'])) return "Ya existe un emoticono con ese <b>code</b>";
return db_exec(array(__FILE__, __LINE__), 'query', 'UPDATE w_emoticones SET code = \''.$e['code'].'\', image = \''.$e['image'].'\', cat = \''.(int)$e['cat'].'\' WHERE id = \''.(int)$e['id'].'\'');
}
function existEmoticon($code, $id = 0) {
return db_exec('num_rows', db_exec(array(__FILE__, __LINE__), 'query', 'SELECT id FROM w_emoticones WHERE code = \''.$code.'\' '.($id > 0 ? 'AND id <> \''.(int)$id.'\'' : '')));
}
function delEmoticon() {
return db_exec(array(__FILE__, __LINE__), 'query', 'DELETE FROM w_emoticones WHERE id = \'' . (int)$_GET['eid'] . '\'');
}
En c.user.php --> inc --> class --> c.user.php
Buscar:
/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
// FUNCIONES EXTERNAS \\
Arriba agregar:
function getCatEmoticones() {
include('inc/ext/datos.php');
return $tsCatsEmotis;
}
function getEmoticones() {
$categorias = $this->getCatEmoticones();
$query = db_exec(array(__FILE__, __LINE__), 'query', 'SELECT * FROM w_emoticones');
$data = result_array($query);
foreach ($data as $dato)
$categorias[$dato['cat']]['data'][] = $dato;
return $categorias;
}
function getRecentEmoticones() {
global $tsCore;
$items = explode(',', $tsCore->setSecure($_COOKIE['emoticons']));
$query = db_exec(array(__FILE__, __LINE__), 'query', "SELECT * FROM w_emoticones WHERE code IN('".implode("','", $items)."') ORDER BY FIELD(CODE,'".implode("','", $items)."') DESC");
$data = result_array($query);
return $data;
}
En c.core.php --> inc --> class --> c.core.php
Buscar:
/*
parseSmiles($st)
*/
public function parseSmiles($bbcode){
return $this->parseBBCode($bbcode, 'smiles');
}
Reemplazar por:
/*
parseSmiles($st)
*/
public function parseSmiles($st, $path = ''){
// SMILEYS
$bbcode = array();
$html = array();
//
$pre = '<img src="'.$path;
$end = '" align="absmiddle"/>';
$query = db_exec(array(__FILE__, __LINE__), 'query', 'SELECT code, image FROM w_emoticones');
$data = result_array($query);
foreach ($data as $e) {
$bbcode[] = $e['code']; $html[] = $pre.$e['image'].$end;
}
// REEMPLAZAMOS SMILEYS
return str_replace($bbcode, $html, $st);
}
En datos.php --> inc --> ext --> datos.php
Al final agregar:
/*CATEGORIAS EMOTICONES*/
$tsCatsEmotis = array(
1 => array('title' => 'Clásicos', 'data' => array()),
array('title' => 'Memes', 'data' => array()),
array('title' => 'Personas', 'data' => array()),
array('title' => 'Naturaleza', 'data' => array()),
array('title' => 'Objetos', 'data' => array()),
array('title' => 'Lugares', 'data' => array()),
array('title' => 'Símbolos', 'data' => array()),
array('title' => 'Pepe', 'data' => array()),
array('title' => 'Anime', 'data' => array()),
array('title' => 'Gif', 'data' => array())
);
En m.admin_sidemenu.tpl --> themes --> default --> templates --> admin_mods --> m.admin_sidemenu.tpl
Buscar:
<li id="a_cats"><span class="cat-title"><a href="{$tsConfig.url}/admin/cats">Categorías</a></span></li>
Debajo agregar:
<li id="a_emoticones"><span class="cat-title"><a href="{$tsConfig.url}/admin/emoticones">Emoticones</a></span></li>
En t.admin.tpl --> themes --> default --> templates --> t.admin.tpl
Buscar:
{include file='admin_mods/m.admin_rangos.tpl'}
Debajo agregar:
{elseif $tsAction == 'emoticones'}
{include file='admin_mods/m.admin_emoticones.tpl'}
En extras.css --> themes --> default --> extras.css
Al final agregar:
#emoticons{overflow:hidden;border:solid 1px #ccc;position:relative;background-color:#f7f7f7}#emoticons .e_nav{position:absolute;height:80px;width:34px;background-color:#eaeaea;background-image:url(images/e_nav.png);background-repeat:no-repeat;top:0}#emoticons .e_nav.left{border-right:1px solid #ccc}#emoticons .e_nav.right{border-left:1px solid #ccc;right:0}#emoticons .e_nav a{display:block;height:40px;border-bottom:1px solid #ccc}#emoticons .e_nav a:hover{background-color:rgba(0,0,0,.05)}#emoticons .e_nav a.en_down{border-bottom:0}#emoticons .e_container{padding:0 35px;overflow:hidden;height:60px;margin:10px 0}#emoticons .e_content{display:none;overflow:hidden}#emoticons .e_content.active{display:block}#emoticons .e_content a{width:20px;height:20px;margin:5px;float:left;background-repeat:no-repeat;background-size:100%}#emoticons .e_tabs{border-top:1px solid #ccc}#emoticons .e_tabs li{float:left;padding:5px 13px;cursor:pointer;background-color:#eaeaea;border-right:1px solid #ccc;color:#666;text-shadow:1px 1px 0 #fff}#emoticons .e_tabs li.active,#emoticons .e_tabs li:hover{background-color:rgba(0,0,0,.1)}
En admin.css --> themes --> default --> css --> admin.css
Buscar:
li#a_badwords {background-image: url(../images/icons/stop.png);}
Debajo agregar:
li#a_emoticones {background-image: url(../images/icons/emoticon.png);}
En m.posts_comment_form.tpl --> themes --> default --> templates --> modules --> m.posts_comment_form.tpl
Buscar:
{include file='modules/m.global_emoticons.tpl'}
Moverlo para dejarlo debajo de:
<div class="Container">
Para el editor default markItUp
En funciones.js --> themes --> default --> js --> funciones.js
Buscar:
function moreEmoticons(margin){
var emos = $('#emoticons');
//
$('#loading').fadeIn(250);
$.ajax({
type: 'GET',
url: global_data.url + '/emoticones.php',
data: 'ts=false',
success: function(h){
if(margin) $(emos).css({marginTop : '1em'})
$(emos).append(h);
$('#moreemofn').hide();
$('#loading').fadeOut(350);
}
});
}
Reemplazar por:
function moreEmoticons(margin){
$('#emoticons').slideToggle('fast');
}
Para el editor Wysiwyg
En wysiwyg.js --> themes --> default --> js --> wysiwyg.js
Buscar:
buildSmilebox: function(container,bn,opt) {
if (this.options.smileList && this.options.smileList.length>0) {
var $btnHTML = $(this.strf(opt.buttonHTML,opt)).addClass("btn-inner");
var $btn = $('<div class="wysibb-toolbar-btn wbb-smilebox wbb-'+bn+'">').appendTo(container).append($btnHTML).append(this.strf('<span class="btn-tooltip">{title}<ins/></span>',{title:opt.title}));
var $sblock = $('<div class="wbb-list">').appendTo($btn);
if ($.isArray(this.options.smileList)) {
$.each(this.options.smileList,$.proxy(function(i,sm){
$('<span>').addClass("smile").appendTo($sblock).append($(this.strf(sm.img,this.options)).attr("title",sm.title));
},this));
}
$btn.mousedown($.proxy(function(e) {
e.preventDefault();
this.dropdownclick(".wbb-smilebox",".wbb-list",e);
},this));
$btn.find('.smile').mousedown($.proxy(function(e) {
e.preventDefault();
//this.selectLastRange();
this.insertAtCursor((this.options.bbmode) ? this.toBB($(e.currentTarget).html()):$($(e.currentTarget).html()));
},this))
}
},
Reemplazar por:
buildSmilebox: function(container,bn,opt) {
var $btnHTML = $(this.strf(opt.buttonHTML,opt)).addClass("btn-inner");
var $btn = $('<div class="wysibb-toolbar-btn wbb-smilebox wbb-'+bn+'">').appendTo(container).append($btnHTML).append(this.strf('<span class="btn-tooltip">{title}<ins/></span>',{title:opt.title}));
$btn.mousedown($.proxy(function(e) {
e.preventDefault();
$('#emoticons').slideToggle('fast');
},this));
},
Descargan esta carpeta, dentro estan los archivos a subir y las consultas para importar a la base de datos.
Mega
http://Registrate o inicia tu sesión par... contenido
Google Drive
http://Registrate o inicia tu sesión par... contenido
Mediafire
http://Registrate o inicia tu sesión par... contenido
Uptobox
http://Registrate o inicia tu sesión par... contenido
4shared
http://Registrate o inicia tu sesión par... contenido
Creditos: Kmario19
Captura
En c.cuenta.php --> inc --> class --> c.cuenta.php
Buscar:
// INFORMACION GENERAL
$query = db_exec(array(__FILE__, __LINE__), 'query', 'SELECT u.user_id, u.user_name, u.user_registro, u.user_lastactive, u.user_activo, u.user_baneado, p.user_sexo, p.user_pais, p.p_nombre, p.p_avatar, p.p_mensaje, p.p_socials, p.p_empresa, p.p_configs FROM u_miembros AS u, u_perfil AS p WHERE u.user_id = \''.(int)$user_id.'\' AND p.user_id = \''.(int)$user_id.'\'');
$data = db_exec('fetch_assoc', $query);
//
$data['p_nombre'] = $tsCore->setSecure($tsCore->parseBadWords($data['p_nombre']), true);
$data['p_mensaje'] = $tsCore->setSecure($tsCore->parseBadWords($data['p_mensaje']), true);
$data['p_socials'] = unserialize($data['p_socials']);
$data['p_socials']['f'] = $data['p_socials'][0];
$data['p_socials']['t'] = $data['p_socials'][1];
$data['p_configs'] = unserialize($data['p_configs']);
Reemplazar por:
// INFORMACION GENERAL
$query = db_exec(array(__FILE__, __LINE__), 'query', 'SELECT u.user_id, u.user_name, u.user_registro, u.user_lastactive, u.user_activo, u.user_baneado, p.user_sexo, p.user_pais, p.p_nombre, p.p_avatar, p.p_mensaje, p.p_socials, p.user_ano, p.p_empresa, p.p_configs FROM u_miembros AS u, u_perfil AS p WHERE u.user_id = \''.(int)$user_id.'\' AND p.user_id = \''.(int)$user_id.'\'');
$data = db_exec('fetch_assoc', $query);
//
$data['p_nombre'] = $tsCore->setSecure($tsCore->parseBadWords($data['p_nombre']), true);
$data['p_mensaje'] = $tsCore->setSecure($tsCore->parseBadWords($data['p_mensaje']), true);
$data['p_socials'] = unserialize($data['p_socials']);
$data['p_socials']['f'] = $data['p_socials'][0];
$data['p_socials']['t'] = $data['p_socials'][1];
$data['p_configs'] = unserialize($data['p_configs']);
$actual= date("Y",time());
$data['anos']=$actual - $data['user_ano'];
En m.perfil_headinfo.tpl --> themes --> default --> templates --> modules --> m.perfil_headinfo.tpl
Buscar:
{if $tsInfo.p_nombre != ''}{$tsInfo.p_nombre} es {else}Es {/if}{if $tsInfo.user_sexo == 1}un hombre{else}una mujer{/if}.
Al lado agregar:
Tiene {$tsInfo.anos} años.
Creditos: TRON
Capturas
Ejecutar esta consulta
ALTER TABLE `p_categorias` ADD `c_puntos` int(1) NOT NULL DEFAULT '1', ADD `c_mensaje` varchar(255) NOT NULL;
En c.admin.php --> inc --> class --> c.admin.php
Buscar:
function getCat()
{
global $tsCore;
//
//$db = $this->getDBtypes();
$cid = intval($_GET['cid']);
//
$query = db_exec(array(__FILE__, __LINE__), 'query', 'SELECT cid, c_orden, c_nombre, c_seo, c_img FROM p_categorias WHERE cid = \'' .
(int)$cid . '\' LIMIT 1');
$data = db_exec('fetch_assoc', $query);
//
return $data;
}
Reemplazar por:
function getCat()
{
global $tsCore;
//
//$db = $this->getDBtypes();
$cid = intval($_GET['cid']);
//
$query = db_exec(array(__FILE__, __LINE__), 'query', 'SELECT cid, c_orden, c_nombre, c_seo, c_img, c_puntos, c_mensaje FROM p_categorias WHERE cid = \'' .
(int)$cid . '\' LIMIT 1');
$data = db_exec('fetch_assoc', $query);
//
return $data;
}
Buscar:
$cimg = $tsCore->setSecure($tsCore->parseBadWords($_POST['c_img']));
Debajo agregar:
$cpuntos = $tsCore->setSecure($tsCore->parseBadWords($_POST['c_puntos'] == 'n') ? 0 : 1);
$c_mensaje = $tsCore->setSecure($tsCore->parseBadWords($_POST['c_mensaje']));
Buscar:
$tsCore->setSecure($cimg) .
Al lado agregar:
'\', c_puntos = \'' .$tsCore->setSecure($cpuntos) .'\',c_mensaje = \'' . $tsCore->setSecure($c_mensaje) . '
Buscar:
$cimg = $tsCore->setSecure($tsCore->parseBadWords($_POST['c_img']));
Debajo agregar:
$cpuntos = $tsCore->setSecure($tsCore->parseBadWords($_POST['c_puntos'] == 'n') ? 0 : 1);
$c_mensaje = $tsCore->setSecure($tsCore->parseBadWords($_POST['c_mensaje']));
Buscar:
`c_img`
Al lado agregar:
, `c_puntos`, `c_mensaje`
Buscar:
$cimg . '\')'))
Reemplazar por:
$cimg . '\', \'' .$cpuntos . '\', \'' .$c_mensaje . '\')'))
En c.posts.php --> inc --> class --> c.posts.php
Buscar:
// CATEGORIAS
$query = db_exec(array(__FILE__, __LINE__), 'query', 'SELECT c.c_nombre, c.c_seo FROM p_categorias AS c WHERE c.cid = \''.$postData['post_category'].'\'');
$postData['categoria'] = db_exec('fetch_assoc', $query);
Reemplazar por:
// CATEGORIAS
$query = db_exec(array(__FILE__, __LINE__), 'query', 'SELECT c.c_nombre, c.c_seo, c.c_puntos, c.c_mensaje FROM p_categorias AS c WHERE c.cid = \''.$postData['post_category'].'\'');
$postData['categoria'] = db_exec('fetch_assoc', $query);
En m.admin_cats.tpl --> themes --> default --> templates --> admin_mods --> m.admin_cats.tpl
Buscar:
<legend>Editar</legend>
<dl>
<dt><label for="cat_name">Nombre de la categoría:</label></dt>
<dd><input type="text" id="cat_name"name="c_nombre" value="{$tsCat.c_nombre}" /></dd>
</dl>
Debajo agregar:
<dl>
<dt><label for="cat_puntos">Permitir votar en la categoría:</label><br /><span>Los <b>Usuarios</b> Podran votar en esta categoría.<br class="space"/><i>Si quiere, también puede introducir un breve mensaje.</i></span></dt> <label><input type="radio" value="s" name="c_puntos" class="radio cuenta-save-1" {if $tsCat.c_puntos == '1'}checked="checked"{/if}/><b>Sí</b></label>
<label><input type="radio" value="n" name="c_puntos" class="radio cuenta-save-1" {if $tsCat.c_puntos == '0'}checked="checked"{/if}/><b>No</b></label>
<br/><br/>
<input type="text" style="width:350px;" id="cat_mensaje" name="c_mensaje" title="Escribir un Mensaje" placeholder="Escribir un Mensaje..." value="{$tsCat.c_mensaje}" />
</dl>
Buscar:
<legend>Nueva</legend>
<dl>
<dt><label for="cat_name">Nombre de la categoría:</label></dt>
<dd><input type="text" id="cat_name"name="c_nombre" value="" /></dd>
</dl>
Debajo agregar:
<dl>
<dt><label for="cat_puntos">Permitir votar en la categoría:</label><br /><span>Los <b>Usuarios</b> Podran votar en esta categoría.<br class="space"/><i>Si quiere, también puede introducir un breve mensaje.</i></span></dt>
<label><input type="radio" value="s" name="c_puntos" class="radio cuenta-save-1" {if $tsCat.c_puntos == '1'}checked="checked"{/if}/><b>Sí</b></label>
<label><input type="radio" value="n" name="c_puntos" class="radio cuenta-save-1" {if $tsCat.c_puntos == '0'}checked="checked"{/if}/><b>No</b></label>
<br/><br/>
<input type="text" style="width:350px;" id="cat_mensaje" name="c_mensaje" title="Escribir un Mensaje" placeholder="Escribir un Mensaje..." value="{$tsCat.c_mensaje}" />
</dl>
En m.posts_metadata.tpl --> themes --> default --> templates --> modules --> m.posts_metadata.tpl
Buscar:
<div style="display:none" class="mensajes"></div>
Arriba agregar:
{if $tsPost.categoria.c_puntos== '1'}
Buscar:
<div class="post-acciones">
Arriba agregar:
{else}
{if $tsPost.categoria.c_mensaje!= ''}
<hr class="divider"/>
<div class="mBtn btnOk" style="text-align:center; color:#FFF; text-shadow:none;">
{$tsPost.categoria.c_mensaje}
</div>
<hr class="divider"/>
{else}{/if}
{/if}
Buscar:
<span>Dar Puntos:</span>
{section name=puntos start=1 loop=$tsUser->info.user_puntosxdar+1 max=$tsPunteador.rango}
<a href="#" onclick="votar_post({$smarty.section.puntos.index}); return false;">{$smarty.section.puntos.index}</a> {if $smarty.section.puntos.index < $tsPunteador.rango}-{/if}
{/section}
Reemplazar por:
<div class="metadata-v"><span>Dar Puntos:</span>
{section name=puntos start=1 loop=$tsUser->info.user_puntosxdar+1 max=$tsPunteador.rango}
<a class=qtip title="{$smarty.section.puntos.index}" href="#" onclick="votar_post({$smarty.section.puntos.index}); return false;"><div class="puntos-metadata">{$smarty.section.puntos.index}</div></a> {if $smarty.section.puntos.index < $tsPunteador.rango}{/if}
{/section}</div>
En estilo.css --> themes --> default --> estilo.css
Al final agregar:
.puntos-metadata{background:#007294;display:inline-block;margin-left:-3px;padding-top:8px;width:33px;height:25px;color:#fff;transition:all .5s linear;-webkit-transition:all .5s linear;-moz-transition:all .5s linear;-o-transition:all .5s linear}.puntos-metadata:hover{background:#0cf}.puntos-metadata:active{background:#0f0}.metadata-v{background:#007294;border-radius:4px;-moz-border-radius:4px;-webkit-border-radius:4px;-o-border-radius:4px}
Creditos: Vellenger
[img]Registrate o inicia tu sesión para ver este contenido[/img]"Un hito clave en el camino hacia la computación cuántica práctica".
Así es como la compañía IBM, uno de los más antiguos fabricantes de computadoras, presentó el martes su nuevo procesador cuántico avanzado llamado Eagle.
Computadoras con estos procesadores podrían revolucionar la informática, al sacar ventaja del extraño mundo de la física cuántica, para resolver problemas que no pueden procesar las computadoras más avanzadas de la actualidad.
Podrían utilizarse para una amplia gama de desarrollos tecnológicos, desde nuevos materiales y medicamentos hasta la inteligencia artificial.
Pero hasta ahora los obstáculos en la construcción de versiones prácticas han mantenido a las computadoras cuánticas confinadas al laboratorio.
Y un experto en computación cuántica asegura que IBM necesita publicar más detalles sobre Eagle para demostrar si representa un avance significativo.
El mundo cuánticoLas computadoras cuánticas aprovechan la extraña forma en que se comporta la materia a escalas muy pequeñas.
En las computadoras clásicas, la unidad de información se llama "bit" y puede tener un valor de uno o cero. Pero su equivalente en un sistema cuántico, el "qubit" (o bit cuántico), puede ser uno y cero al mismo tiempo.
Este es el concepto de superposición, donde algo puede existir en múltiples estados a la vez.
Para aprovechar su poder, se deben vincular varios qubits, un proceso llamado entrelazamiento. Y con cada qubit adicional agregado, la potencia computacional del procesador se duplica.
Para la resolución de problemas complejos, como averiguar cómo se pliegan las proteínas en el desarrollo de medicinas, o modelar procesos físicos dentro de átomos complejos, se necesitan muchos qubits.
Para llevar la computación cuántica a un uso práctico, los fabricantes deben encontrar una manera fácil de crear procesadores con un gran número de qubits(y que sean estables).
Eso permitiría evitar los errores de cálculo que presentan las computadoras convencionales, incluso las más potentes de la actualidad.
El nuevo procesador diseñado por IBM tiene 127 qubits, el doble que la versión anterior, Hummingbird (65 qubits) presentado en 2020, y al Falcon (27 qubits) de 2019. Planea llegar a 1.121 qubits en el modelo Condor de 2023.
"La llegada del procesador Eagle es un paso importante hacia el día en que las computadoras cuánticas puedan superar a las computadoras clásicas en aplicaciones útiles", dijo el vicepresidente sénior y director de investigación de IBM, Darío Gil.
"La computación cuántica tiene el poder de transformar casi todos los sectores y ayudarnos a abordar los mayores problemas de nuestro tiempo", señaló.
Supremacía cuánticaUn paso importante es demostrar lo que se ha denominado "supremacía cuántica", para lo que hay varios competidores.
En 2019, Google dijo que su procesador cuántico Sycamore de 53 qubits había superado por primera vez el rendimiento de una computadora convencional en una tarea en particular.
Los investigadores de Google publicaron los resultados en la prestigiosa revista académica Nature.
En ese momento, los científicos de IBM cuestionaron algunas de las cifras de Google y su definición de supremacía cuántica.
Eagle también enfrenta escepticismo.
El profesor Scott Aaronson, de la Universidad de Texas en Austin, dijo que espera "ver los detalles reales" que puedan exponer su verdadero alcance.
En su blog, el experto en computación cuántica agregó que la información publicada hasta ahora por IBM carecía de los parámetros clave que usaba para evaluar su progreso.
En 2016, IBM fue la primera empresa en poner la computación cuántica en la nube, lo que abrió el acceso a las máquinas a más usuarios.
-Respuestas en comentarios.
-Citas en respuestas de otros comentarios.
-Automatizado con JS
Captura
Demo
http://Registrate o inicia tu sesión par... contenido
Ejecutar esta consulta
ALTER TABLE `p_comentarios` ADD `c_resp` INT( 11 ) NOT NULL DEFAULT '0';
En funciones.js --> themes --> default --> js --> funciones.js
Buscar:
case '1': //OK
$("#nuevos").slideUp(1);
$('#preview').remove();
/*textarea.attr('title', 'Escribir un comentario...').val('');
onblur_input(textarea);*/
$('#nuevos').html(h.substring(3)).slideDown('slow', function () {
$('#no-comments').hide('slow');
$('.miComentario').html('<div class="emptyData">Tu comentario fue agregado correctamente :)</div>');
});
// SUMAMOS
var ncomments = parseInt($('#ncomments').text());
$('#ncomments').text(ncomments + 1);
//$('#btnsComment').removeAttr('disabled');
// POR SI HABIA ERROR
//$('.miComentario .error').html('');
break;
}
$('#loading').fadeOut(350);
//
$('.miComentario #gif_cargando').hide();
mydialog.close();
}
});
},
Debajo agregar:
resp: function(id){
$('#'+id).removeAttr('style');
var textarea = $('#bodys_comm_'+cid);
textarea.focus();
},
nuevos: function(mostrar_resp, comentarionum, cid){
// EVITAR FLOOD
$('#btnssComment').attr({'disabled':'disabled'});
//
var textarea = $('#bodys_comm_'+cid);
var text = textarea.val();
// VACIO o DEFAULT
if(text == '' || text == textarea.attr('title')){
textarea.focus();
$('#btnssComment').attr({'disabled':''});
return;
}else if(text.length > 1500){
alert("Tu comentario no puede ser mayor a 1500 caracteres.");
textarea.focus();
$('#btnssComment').attr({'disabled':''});
return;
}
// IMAGEN
$('.resp #gif_cargando').show();
var auser = $('#ausers_post').val();
var respuesta = $('#respuesta_'+cid).val();
$('#loading').fadeIn(250);
$.ajax({
type: 'POST',
url: global_data.url + '/comentario-agregar.php',
data: 'comentario=' + encodeURIComponent(text) + '&postid=' + gget('postid') + '&mostrar_resp=' + mostrar_resp + '&auser=' + auser + '&respuesta=' + respuesta,
success: function(h){
switch(h.charAt(0)){
case '0': //Error
$('.resp .error').html(h.substring(3)).show('slow');
$('#btnssComment').attr({'disabled':''});
break;
case '1': //OK
$("#nuevoss_"+cid).slideUp(1);
$('#preview').remove();
/*textarea.attr('title', 'Escribir un comentario...').val('');
onblur_input(textarea);*/
$('#nuevoss_'+cid).html(h.substring(3)).slideDown('slow', function () {
$('.especial3').attr('class', 'especial1');
$('#nuevoss_'+cid+' .especial1 .comentario-post .comment-box').attr('style', 'width: 698px!important;');
$('#no-comments').hide('slow');
getUrls(gget('postid'));
$('.resp').attr("style", "margin-left: 131px!important; width: 701px!important;");
$('.resp').html('<div class="emptyData">Tu comentario fue agregado correctamente </div>');
});
// SUMAMOS
var ncomments = parseInt($('#ncomments').text());
$('#ncomments').text(ncomments + 1);
//$('#btnsComment').attr({'disabled':''});
// POR SI HABIA ERROR
//$('.miComentario .error').html('');
break;
}
$('#loading').fadeOut(350);
//
$('.resp #gif_cargando').hide();
mydialog.close();
}
});
},
En c.posts.php --> inc --> class --> c.posts.php
Buscar:
c.* FROM u_miembros AS u LEFT JOIN p_comentarios AS c ON u.user_id = c.c_user WHERE c.c_post_id = \''.(int)$post_id.'\'
Al lado agregar:
AND c.c_resp = \'0\'
Quedaría así:
c.* FROM u_miembros AS u LEFT JOIN p_comentarios AS c ON u.user_id = c.c_user WHERE c.c_post_id = \''.(int)$post_id.'\' AND c.c_resp = \'0\'
Buscar:
$return['data'][$i]['votado'] = $votado;
Debajo agregar:
$return['data'][$i]['respuestas'] = $this->getRespuestas((int)$comment['cid']);
Buscar:
function getLastComentarios(){
global $tsUser, $tsCore;
//
$query = db_exec(array(__FILE__, __LINE__), 'query', 'SELECT cm.cid, cm.c_status, u.user_name, u.user_activo, u.user_baneado, p.post_id, p.post_title, p.post_status, c.c_seo FROM p_comentarios AS cm LEFT JOIN u_miembros AS u ON cm.c_user = u.user_id LEFT JOIN p_posts AS p ON p.post_id = cm.c_post_id LEFT JOIN p_categorias AS c ON c.cid = p.post_category '.($tsUser->is_admod && $tsCore->settings['c_see_mod'] == 1 ? '' : 'WHERE p.post_status = \'0\' AND cm.c_status = \'0\' AND u.user_activo = \'1\' && u.user_baneado = \'0\'').' ORDER BY cid DESC LIMIT 10');
if(!$query) exit( show_error('Error al ejecutar la consulta de la línea '.__LINE__.' de '.__FILE__.'.', 'db') );
$data = result_array($query);
//
return $data;
}
Debajo agregar:
/*
getRespuestas()
*/
function getRespuestas($comment_id){
global $tsCore, $tsUser;
//
$start = $tsCore->setPageLimit($tsCore->settings['c_max_com']);
$query = db_exec(array(__FILE__, __LINE__), 'query', 'SELECT u.user_name, u.user_activo, u.user_baneado, c.* FROM u_miembros AS u LEFT JOIN p_comentarios AS c ON u.user_id = c.c_user WHERE c.c_resp = \''.(int)$comment_id.'\' '.($tsUser->is_admod ? '' : 'AND c.c_status = \'0\' AND u.user_activo = \'1\' && u.user_baneado = \'0\'').' ORDER BY c.cid LIMIT '.$start);
// COMENTARIOS TOTALES
$return['num'] = db_exec('num_rows', db_exec(array(__FILE__, __LINE__), 'query', 'SELECT cid FROM p_comentarios WHERE c_resp = \''.(int)$comment_id.'\' '.($tsUser->is_admod ? '' : 'AND c_status = \'0\'').''));
//
$comments = result_array($query);
// PARSEAR EL BBCODE
$i = 0;
foreach($comments as $comment){
// CON ESTE IF NOS AHORRAMOS CONSULTAS
if($comment['c_votos'] != 0){
$query = db_exec(array(__FILE__, __LINE__), 'query', 'SELECT voto_id FROM p_votos WHERE tid = \''.(int)$comment['cid'].'\' AND tuser = \''.$tsUser->uid.'\' AND type = \'2\' LIMIT 1');
$votado = db_exec('num_rows', $query);
} else $votado = 0;
// BLOQUEADO
$return['block'] = db_exec('num_rows', db_exec(array(__FILE__, __LINE__), 'query', 'SELECT bid, b_user, b_auser FROM `u_bloqueos` WHERE b_user = \''.(int)$comment['c_user'].'\' AND b_auser = \''.$tsUser->uid.'\' LIMIT 1'));
//
$return['data'][$i] = $comment;
$return['data'][$i]['votado'] = $votado;
$return['data'][$i]['c_html'] = $tsCore->parseBadWords($tsCore->parseBBCode($return['data'][$i]['c_body']), true);
$i++;
}
//
return $return;
}
Buscar:
if(db_exec(array(__FILE__, __LINE__), 'query', 'INSERT INTO `p_comentarios` (`c_post_id`, `c_user`, `c_date`, `c_body`, `c_ip`) VALUES (\''.(int)$post_id.'\', \''.$tsUser->uid.'\', \''.$fecha.'\', \''.$comentario.'\', \''.$_SERVER['REMOTE_ADDR'].'\')')) {
Reemplazar por:
if(db_exec(array(__FILE__, __LINE__), 'query', 'INSERT INTO `p_comentarios` (`c_post_id`, `c_user`, `c_date`, `c_body`, `c_ip`, `c_resp`) VALUES (\''.(int)$post_id.'\', \''.$tsUser->uid.'\', \''.$fecha.'\', \''.$comentario.'\', \''.$_SERVER['REMOTE_ADDR'].'\', \''.(int)$_POST['respuesta'].'\')')) {
Y subir esta carpeta
Mega
http://Registrate o inicia tu sesión par... contenido
Google Drive
http://Registrate o inicia tu sesión par... contenido
Mediafire
http://Registrate o inicia tu sesión par...).rar/file
Uptobox
http://Registrate o inicia tu sesión par... contenido
4shared
http://Registrate o inicia tu sesión par... contenido
Creditos: aperpen

