Jump to content

Buscar en La Comunidad

Showing results for tags 'mod'.



More search options

  • Search By Tags

    Añade tags separandolos por comas.
  • Search By Author

Tipo de Contenido


Foros

  • El núcleo de PHPost
    • Novedades e información
    • Off Topic
    • Presentaciones
  • PHPost Risus
    • Actualizaciones
    • Versión 1.1
    • Versión 1.2
  • La esquina
    • Rincón del PC
    • Rincón del móvil
  • Next [last version]'s Fix's
  • Next [last version]'s Theme
  • Next [last version]'s Notas!
  • Risus2's Tutoriales
  • Risus2's MODS
  • Risus2's Servicios
  • Next [last version]'s Bugs
  • Risus2's Webs
  • Risus2's Bugs
  • Risus2's Opinión
  • Juegos de Steam Gratis's Activos
  • Risus2's JS
  • Risus2's PHP y Smarty
  • Risus2's El Script
  • Risus2's Diseño
  • Juegos de Steam Gratis's Finalizados
  • Risus2's Off-topic
  • Risus2's Fixes

Calendars

  • Risus2's Calendario

Encontramos 130 resultados

  1. Hola gente de Phpost, hoy les traigo Social Locker para PHPost administrable, para los que no lo conocen, nos permite bloquear cierto contenido (en este caso con el bbcode [sociallocker]) y pedir como "pago" una acción social. Unas capturas: Instalación: En admin.php buscar: /** NOTICIAS **/ Agregar arriba: /** Social locker **/ } elseif($action == 'social-locker'){ if(!empty($_POST['save'])){ if($tsAdmin->saveSocialLocker()) $tsCore->redirectTo($tsCore->settings['url'].'/admin/social-locker?save=true'); } else { $smarty->assign('tsLocker', $tsAdmin->getLocker()); } En posts.php buscar: $smarty->assign("tsPages",$tsPages); Agregar abajo: // Social Locker $smarty->assign('tsLocker', $tsPosts->getLocker()); En c.admin.php buscar: /* savePConfigs() Agregar arriba: /* getLocker() */ function getLocker() { $query = db_exec(array(__FILE__, __LINE__), 'query', 'SELECT * FROM s_locker'); $data = db_exec('fetch_assoc', $query); $data['btn'] = unserialize($data['botones_data']); return $data; } /* saveLocker() */ function saveSocialLocker() { global $tsCore; // $s = array( 'titulo' => $tsCore->setSecure($_POST['locker_titulo']), 'body' => $tsCore->setSecure($_POST['locker_body']), 'tema' => empty($_POST['locker_tema']) ? 0 : $_POST['locker_tema'], 'modo' => empty($_POST['locker_modo']) ? 0 : $_POST['locker_modo'], 'cerrar_seg' => (int)$_POST['locker_cerrar_seg'], 'cerrar' => empty($_POST['locker_cerrar']) ? 0 : 1, 'obligar' => empty($_POST['locker_obligar']) ? 0 : 1, 'hide_members' => empty($_POST['locker_hide_members']) ? 0 : 1, 'fb_app_id' => $tsCore->setSecure($_POST['locker_fb_app_id']), 'g_client_id' => $tsCore->setSecure($_POST['locker_g_client_id']), 'contador' => empty($_POST['locker_contador']) ? 0 : 1 ); // $btns = array ( // like 'like' => $_POST['locker_like'], 'like_url' => $_POST['locker_like_url'], 'like_text' => $_POST['locker_like_text'], // FB Share 'fbshare' => $_POST['locker_fbshare'], 'fbshare_url' => $_POST['locker_fbshare_url'], 'fbshare_text' => $_POST['locker_fbshare_text'], // Tweet 'tweet' => $_POST['locker_tweet'], 'tweet_url' => $_POST['locker_tweet_url'], 'tweet_body' => $_POST['locker_tweet_body'], 'tweet_via' => $_POST['locker_tweet_via'], 'tweet_text' => $_POST['locker_tweet_text'], // Follow 'follow' => $_POST['locker_follow'], 'follow_user' => $_POST['locker_follow_user'], 'follow_text' => $_POST['locker_follow_text'], // G+1 'g' => $_POST['locker_g'], 'g_url' => $_POST['locker_g_url'], 'g_text' => $_POST['locker_g_text'], // G Share 'gshare' => $_POST['locker_gshare'], 'gshare_url' => $_POST['locker_gshare_url'], 'gshare_text' => $_POST['locker_gshare_text'], // Linkedin Share 'inshare' => $_POST['locker_inshare'], 'inshare_url' => $_POST['locker_inshare_url'], 'inshare_text' => $_POST['locker_inshare_text'], // Youtube Subscribe 'yt' => $_POST['locker_yt'], 'yt_id' => $_POST['locker_yt_id'], 'yt_text' => $_POST['locker_yt_text'] ); $btns = $tsCore->setSecure(serialize($btns)); // UPDATE if (db_exec(array(__FILE__, __LINE__), 'query', 'UPDATE `s_locker` SET `titulo` = \'' . $s['titulo'] . '\', `body` = \'' . $s['body'] . '\', `tema` = \'' . $s['tema'] . '\', `modo` = \'' . $s['modo'] . '\', `cerrar_seg` = \'' . $s['cerrar_seg'] . '\', `cerrar` = \'' . $s['cerrar'] . '\', `obligar` = \'' . $s['obligar'] . '\', `hide_members` = \'' . $s['hide_members'] . '\', `fb_app_id` = \'' . $s['fb_app_id'] . '\', `g_client_id` = \'' . $s['g_client_id'] . '\', `contador` = \'' . $s['contador'] . '\', `botones_data` = \'' . $btns . '\' WHERE `id` = \'1\'')) return true; else exit( show_error('Error al ejecutar la consulta de la línea '.__LINE__.' de '.__FILE__.'.', 'db') ); } En c.posts.php buscar: /* getSideData($array) */ Agregar arriba: /* getLocker() */ function getLocker() { global $tsCore; $query = db_exec(array(__FILE__, __LINE__), "query", "SELECT * FROM s_locker"); $data = db_exec("fetch_assoc", $query); $data["btn"] = unserialize($data["botones_data"]); // Datos del post $dataPost = $this->getPost(); $post_id = intval($_GET["post_id"]); // Titulo del post $titulo = $dataPost["post_title"]; // Categoria $categoria = $dataPost["categoria"]; // URL del post $urlPost = $tsCore->settings["url"] . "/posts/" . $categoria["c_seo"] . "/" . $post_id . "/" . $tsCore->setSEO($titulo) . ".html"; // Fix saltos de linea $data["body"] = preg_replace("[\n|\r|\n\r]", " ", $data["body"]); // Remplazamos BBCodes $bbcodes = array("[post_title]", "[post_url]"); $bbreturn = array($titulo, $urlPost); $count = count($data); for($i = 0; $i < $count; $i++) { $data = str_replace($bbcodes, $bbreturn, $data); $data["btn"] = str_replace($bbcodes, $bbreturn, $data["btn"]); } return $data; } En c.core.php busca: // BBCodes permitidos $parser->setRestriction(array('url', 'code', 'quote', 'font', 'size', 'color', 'img', 'b', 'i', 'u', 's', 'align', 'spoiler', 'swf', 'video', 'goear', 'hr', 'sub', 'sup', 'table', 'td', 'tr', 'ul', 'li', 'ol', 'notice', 'info', 'warning', 'error', 'success' y agrega , 'sociallocker' quedando de esta manera: // BBCodes permitidos $parser->setRestriction(array('url', 'code', 'quote', 'font', 'size', 'color', 'img', 'b', 'i', 'u', 's', 'align', 'spoiler', 'swf', 'video', 'goear', 'hr', 'sub', 'sup', 'table', 'td', 'tr', 'ul', 'li', 'ol', 'notice', 'info', 'warning', 'error', 'success', 'sociallocker')); En bbcode.inc.php busca: array('tag' => 'success', 'replace' => '<div class="bbcmsg success">{param}</div>') Y remplaza por: array('tag' => 'success', 'replace' => '<div class="bbcmsg success">{param}</div>'), array('tag' => 'sociallocker', 'replace' => '<div id="socialloker_by_Basdower">{param}</div>') (Agregamos una coma y el nuevo bbcode) En t.posts.tpl busca: {include file='sections/main_header.tpl'} Agrega abajo: <link href="{$tsConfig.tema.t_url}/css/pandalocker.css" rel="stylesheet" type="text/css" /> <script src="{$tsConfig.js}/pandalocker.js" type="text/javascript"></script> {if $tsLocker.hide_members == 1 && $tsUser->is_member == 1}{else} <script>{literal}$(function(){if($("#socialloker_by_Basdower").length) {$('#socialloker_by_Basdower').sociallocker({ text:{header: '{/literal}{$tsLocker.titulo}{literal}',message: '{/literal}{$tsLocker.body}{literal}'},{/literal}{if $tsLocker.obligar == 1}demo: true,{/if}{literal}theme: '{/literal}{if $tsLocker.tema == 0}starter{elseif $tsLocker.tema == 1}secrets{elseif $tsLocker.tema == 2}flat{elseif $tsLocker.tema == 3}dandyish{elseif $tsLocker.tema == 4}glass{/if}{literal}',overlap:{mode: '{/literal}{if $tsLocker.modo == 0}full{elseif $tsLocker.modo == 1}transparence{elseif $tsLocker.modo == 2}blurring{/if}{literal}'},locker:{{/literal}{if $tsLocker.cerrar_seg > 0}{literal}timer: '{/literal}{$tsLocker.cerrar_seg}{literal}',{/literal}{/if}{literal}close: {/literal}{if $tsLocker.cerrar == 1}true{else}false{/if}{literal}},{/literal}{if $tsLocker.btn.like == 1 || $tsLocker.btn.fbshare == 1}{literal}facebook:{{/literal}{if $tsLocker.btn.like == 1}{literal}like:{url: '{/literal}{$tsLocker.btn.like_url}{literal}',title: '{/literal}{$tsLocker.btn.like_text}{literal}'},{/literal}{/if}{literal}{/literal}{if $tsLocker.btn.fbshare == 1}{literal}share:{url: '{/literal}{$tsLocker.btn.fbshare_url}{literal}',title: '{/literal}{$tsLocker.btn.fbshare_text}{literal}'},{/literal}{/if}{literal}appId: '{/literal}{$tsLocker.fb_app_id}{literal}'},{/literal}{/if}{literal}{/literal}{if $tsLocker.btn.tweet == 1 || $tsLocker.btn.follow == 1}{literal}twitter:{{/literal}{if $tsLocker.btn.tweet == 1}{literal}tweet:{url: '{/literal}{$tsLocker.btn.tweet_url}{literal}',text: '{/literal}{$tsLocker.btn.tweet_body}{literal}',via: '{/literal}{$tsLocker.btn.tweet_via}{literal}',title: '{/literal}{$tsLocker.btn.tweet_text}{literal}'},{/literal}{/if}{literal}{/literal}{if $tsLocker.btn.follow == 1}{literal}follow:{url: '{/literal}{$tsLocker.btn.follow_user}{literal}',title: '{/literal}{$tsLocker.btn.follow_text}{literal}'}{/literal}{/if}{literal}},{/literal}{/if}{literal}{/literal}{if $tsLocker.btn.g == 1 || $tsLocker.btn.gshare == 1}{literal}google:{{/literal}{if $tsLocker.btn.g == 1}{literal}plus:{url: '{/literal}{$tsLocker.btn.g_url}{literal}',title: '{/literal}{$tsLocker.btn.g_text}{literal}'},{/literal}{/if}{literal}{/literal}{if $tsLocker.btn.gshare == 1}{literal}share:{url: '{/literal}{$tsLocker.btn.gshare_url}{literal}',title: '{/literal}{$tsLocker.btn.gshare_text}{literal}'}{/literal}{/if}{literal}},{/literal}{/if}{literal}{/literal}{if $tsLocker.btn.inshare == 1}{literal}linkedin:{share:{url: '{/literal}{$tsLocker.btn.inshare_url}{literal}',title: '{/literal}{$tsLocker.btn.inshare_text}{literal}'}},{/literal}{/if}{literal}{/literal}{if $tsLocker.btn.yt == 1}{literal}youtube:{subscribe:{channelId: '{/literal}{$tsLocker.btn.yt_id}{literal}',clientId: '{/literal}{$tsLocker.g_client_id}{literal}',title: '{/literal}{$tsLocker.btn.yt_text}{literal}'}},{/literal}{/if}{literal}buttons:{order: [{/literal}{if $tsLocker.btn.like == 1}{literal}"facebook-like",{/literal}{/if}{literal}{/literal}{if $tsLocker.btn.fbshare == 1}{literal}"facebook-share",{/literal}{/if}{literal}{/literal}{if $tsLocker.btn.tweet == 1}{literal}"twitter-tweet",{/literal}{/if}{literal}{/literal}{if $tsLocker.btn.follow == 1}{literal}"twitter-follow",{/literal}{/if}{literal}{/literal}{if $tsLocker.btn.g == 1}{literal}"google-plus",{/literal}{/if}{literal}{/literal}{if $tsLocker.btn.gshare == 1}{literal}"google-share",{/literal}{/if}{literal}{/literal}{if $tsLocker.btn.inshare == 1}{literal}"linkedin-share",{/literal}{/if}{literal}{/literal}{if $tsLocker.btn.yt == 1}{literal}"youtube-subscribe"{/literal}{/if}{literal}],counters: {/literal}{if $tsLocker.contador == 1}true{else}false{/if}{literal},lazy: true} }); }});{/literal}</script> {/if} En m.admin_sidemenu.tpl busca: <li id="a_ads"><span class="cat-title"><a href="{$tsConfig.url}/admin/ads">Publicidad</a></span></li> Y agrega abajo: <li id="a_social"><span class="cat-title"><a href="{$tsConfig.url}/admin/social-locker">Social Locker</a></span></li> En t.admin.tpl busca: {/if} Agrega arriba: {elseif $tsAction == 'social-locker'} {include file='admin_mods/m.admin_social_locker.tpl'} En admin.css busca: li#a_badwords {background-image: url(../images/icons/stop.png);} Y agrega abajo: li#a_social {background-image: url(../images/icons/social-locker.png);background-position: 0px -5px;} Realiza estas consultas SQL: CREATE TABLE IF NOT EXISTS `s_locker` ( `id` INT NOT NULL AUTO_INCREMENT , `titulo` VARCHAR(150) NOT NULL , `body` TEXT NOT NULL , `tema` INT NOT NULL , `modo` INT NOT NULL , `cerrar_seg` INT NOT NULL , `cerrar` INT NOT NULL , `obligar` INT NOT NULL , `hide_members` INT NOT NULL , `fb_app_id` VARCHAR(50) NOT NULL , `g_client_id` VARCHAR(100) NOT NULL , `contador` INT NOT NULL , `botones_data` TEXT NOT NULL , PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ; INSERT INTO `s_locker`(`titulo`, `body`, `tema`, `modo`, `cerrar_seg`, `cerrar`, `obligar`, `hide_members`, `fb_app_id`, `g_client_id`, `contador`, `botones_data`) VALUES ('¡Este contenido está bloqueado!', 'Utilice uno de los botones de abajo para desbloquear el contenido.', 0, 0, 0, 0, 0, 0, '', '', 1, 'a:26:{s:4:"like";s:1:"0";s:8:"like_url";s:0:"";s:9:"like_text";s:4:"Like";s:7:"fbshare";s:1:"0";s:11:"fbshare_url";s:0:"";s:12:"fbshare_text";s:5:"share";s:5:"tweet";s:1:"0";s:9:"tweet_url";s:0:"";s:10:"tweet_body";s:0:"";s:9:"tweet_via";s:0:"";s:10:"tweet_text";s:5:"tweet";s:6:"follow";s:1:"0";s:11:"follow_user";s:0:"";s:11:"follow_text";s:6:"follow";s:1:"g";s:1:"0";s:5:"g_url";s:0:"";s:6:"g_text";s:5:"+1 us";s:6:"gshare";s:1:"0";s:10:"gshare_url";s:0:"";s:11:"gshare_text";s:5:"share";s:7:"inshare";s:1:"0";s:11:"inshare_url";s:0:"";s:12:"inshare_text";s:5:"share";s:2:"yt";s:1:"0";s:5:"yt_id";s:0:"";s:7:"yt_text";s:9:"subscribe";}') Y finalmente sube estos archivos a sus respectivas carpetas. DEMO (No prometo que dure mucho xD) Notas: Utilizar el bbcode [sociallocker][/sociallocker] para bloquear el contenido. Debido a los límites de la API de Twitter y LinkedIn es posible desbloquear el contenido cerrando la ventana de dialogo sin compartir. Para el boton share de fb es recomendable utilizar Open Graph. Para los botones de Compartir con FB y Suscribirse a YT es necesario crear una api: Facebook App ID, Google Client ID si no los piensan usar, no es necesario. Bueno eso es todo, nos vemos en otro aporte.
  2. Hola amigos,les dejo una manera sencilla de tener el modulo,para poder descargar y convertir vídeos de youtube.Le he puesto que el resultado se abra en la misma ventana del modulo,ya ustedes lo modifican a su gusto.Saludos Instalación: 1- Suben la carpeta vídeos al raíz de la web 2- Ponen el include {include file='modules/m.descargar_videos.tpl'} donde quieran,en las imágenes esta puesto en t.home.tpl 3- Suben el archivo m.descargar_videos.tpl a themes/TUTHEME/templates/modules/ y listo. Pass:Tronlar https://mega.nz/#!MIg3xSqa!byPnLbVQkb-dtF8VomENPMyNVjVH-f-HULbS4shA4Aw
  3. Adaptar Mod Video en Perfil por rangos

    Hola amigos alguien podría ayudarme a adaptar este mod para que solo puedan utilizarlo usuarios de determinados rangos? el mod es el siguiente: Lo que quería es que en la creación de un rango esté la opción de si los usuarios de ese rango pueden publicar un vídeo en su perfil, el mod que siga siendo el mismo solo que tenga esa opción alguien podría? espero sus respuestas!!
  4. Hola Usuarios de PHPost hoy les traigo la actualización del mod Ultimos shouts en la home a la v1.2 de risus, es para la v4 pero fácilmente podrán adaptado al diseño de su theme. Versión anterior: Empecemos con la Instalación en c.posts.php buscamos: /* getRelated() */ Agregamos arriba: /* Ultimos Shouts en la home */ function getNews($start = 0, $limit = 10){ global $tsUser, $tsCore; // OBTENEMOS LAS ULTIMAS PUBLICACIONES $query = db_exec(array(__FILE__, __LINE__), 'query', 'SELECT *,u.* FROM u_muro LEFT JOIN u_miembros AS u ON p_user = u.user_id ORDER BY p_date DESC LIMIT '.$start.','.$limit.''); while($row = db_exec('fetch_array', $query)){ // MENCIONES $row['p_body'] = $tsCore->parseBadWords($tsCore->parseBBCode($tsCore->setMenciones($row['p_body'])), true); // CARGAR ADJUNTOS if($row['p_type'] != 1){ $queryDos = db_exec(array(__FILE__, __LINE__), 'query', 'SELECT * FROM u_muro_adjuntos WHERE pub_id = \''.$row['pub_id'].'\' LIMIT 1'); $adj = db_exec('fetch_assoc', $queryDos); // $data[] = array_merge($row,$adj); } else $data[] = $row; // } // RETORNAMOS return array('total' => count($data), 'data' => $data); } -Si desean cambiar la cantidad de shouts que se mostraran en la home editen la variable $limit (por defecto se mostraran 10) En post.php buscamos: // TOP POSTS $smarty->assign("tsTopPosts",$tsTops->getHomeTopPosts()); Abajo de eso agregamos: //ULTIMOS SHOUTS EN LA HOME $smarty->assign("tsMuro",$tsPosts->getNews()); En t.home.tpl agregamos el modulo donde ustedes gusten: {include file='modules/m.home_shouts.tpl'} Creamos un archivo llamado m.home_shouts.tpl (lo guardamos en la carpeta modules) <div id="ultimos_shouts"> <div class="widget clearfix"> <div class="title-w clearfix"><h3>&Uacute;ltimos Shouts</h3></div> {if $tsMuro == 0} <div class="emptyData">No hay shouts :(</div> {else} {foreach from=$tsMuro.data item=s} <div class="Story" id="pub_{$s.pub_id}"> {if $s.p_user == $tsUser->uid || $s.p_user_pub == $tsUser->uid || $tsUser->is_admod || $tsUser->permisos.moepm} <div class="Story_Hide"> <a href="#" onclick="muro.del_pub({$s.pub_id},1); return false;" title="Eliminar la publicación" class="qtip uiClose"></a> </div> {/if} {if $s.p_user_pub == $s.p_user} <a href="{$tsConfig.url}/perfil/{$s.user_name}" class="Story_Pic"><img src="{$tsConfig.url}/files/avatar/{$s.p_user}_50.jpg" alt="Avatar de {$s.user_name}" /></a> {else} <a href="{$tsConfig.url}/perfil/{$s.user_name}" class="Story_Pic"><img src="{$tsConfig.url}/files/avatar/{$s.p_user}_50.jpg" alt="Avatar de {$s.user_name}" /></a> <a href="{$tsConfig.url}/perfil/{$tsUser->getUserName($s.p_user_pub)}" class="Story_Pic_mim"><img src="{$tsConfig.url}/files/avatar/{$s.p_user_pub}_50.jpg"/></a> {/if} <div class="autor"> {if $s.user_id == $s.p_user} <a href="{$tsConfig.url}/perfil/{$tsUser->getUserName($s.p_user_pub)}" class="hovercard a_blue" uid="{$s.p_user_pub}">@{$tsUser->getUserName($s.p_user_pub)}</a><br> {if $s.p_user_pub != $s.p_user} <span>publico via @<a href="{$tsConfig.url}/perfil/{$s.user_name}" class="hovercard a_blue" uid="{$s.p_user}">{$s.user_name}</a></span> {/if} {else} <a href="{$tsConfig.url}/perfil/{$s.user_name}" class="hovercard a_blue" uid="{$s.p_user_pub}">{$s.user_name}</a> {/if} </div> <div class="Story_Content"> <div class="Story_Head"> <div class="Story_Message"> <span>{$s.p_body|quot}</span> <div class="mvm clearfix"> {if $s.p_type != 1} {if $s.p_type == 2} {if $tsUser->is_member} <a href="{$tsConfig.url}/perfil/{$s.user_name}/{$s.pub_id}" class="uiPhoto"><img src="{$s.a_img}" class="basdower"></a> {else} <img src="{$s.a_img}" class="basdower"> {/if} {elseif $s.p_type == 3} <div class="uiLink"> <div><a href="{$s.a_url}" target="_blank" class="a_blue"><strong>{$s.a_title}</strong></a></div> <a href="{$s.a_url}" target="_blank" class="h-blue">{$s.a_url}</a> </div> {elseif $s.p_type == 4} <a href="{$tsConfig.url}/perfil/{$s.user_name}/{$s.pub_id}" class="uiVideoThumb"> <span><b>{$s.a_title|truncate:35}</b></span> <img src="http://img.youtube.com/vi/{$s.a_url}/0.jpg" class="basdower"> <i></i> </a> {/if} {/if} </div> </div> </div> <div class="Story_Foot"> <div class="Story_Info"> <i class="stream w_{if $s.p_type == 1 && $s.p_user_pub == $s.p_user_pub}0{else}{$s.p_type}{/if}"></i> <span class="text">{$s.p_date|fecha}</span> · <a {if $tsUser->is_member}onclick="muro.like_this({$s.pub_id}, 'pub', this); return false;"{else}href="javascript:open_login_box('open');"{/if} class="a_blue">Me gusta</a> · <a {if $tsUser->is_member}href="{$tsConfig.url}/perfil/{$s.user_name}/{$s.pub_id}"{else}href="javascript:open_login_box('open');"{/if} class="a_blue">Abrir</a> </div> </div> </div> <div class="clearBoth"></div> </div> {/foreach} {/if} </div> </div> {literal} <script> // Eliminar publiccion y like var muro={stream:{status:0},like_this:function(a,b,c){muro.stream.status=1,$("#loading").slideDown(250),$.ajax({type:"POST",url:global_data.url+"/muro-likes.php",dataType:"json",data:"id="+a+"&type="+b,success:function(d){"ok"==d.status?($(c).text(d.link),"pub"==b?($("#lk_"+a).html(d.text),""!=d.text?($("#lk_"+a).parent().parent().show(),$("#cb_"+a).show()):$("#lk_"+a).parent().parent().hide()):($("#lk_cm_"+a).text(d.text),""==d.text?$("#lk_cm_"+a).parent().hide():$("#lk_cm_"+a).parent().show())):mydialog.alert("Error:",d.text.substring(3)),$("#loading").slideUp(350)},complete:function(){muro.stream.status=0}})},del_pub:function(a,b){var c=1==b?"publicaci&oacute;n":"comentario";var d=1==b?"esta ":"este ";mydialog.mask_close=!1,mydialog.show(!0),mydialog.title("Eliminar "+c),mydialog.body("\xbfSeguro que quieres eliminar "+d+c),mydialog.buttons(!0,!0,"Eliminar "+c,"muro.eliminar("+a+", "+b+")",!0,!0,!0,"Cancelar","close",!0,!1),mydialog.center()},eliminar:function(a,b){muro.stream.status=1;var c=1==b?"pub":"cmt";$("#loading").slideDown(250),$.ajax({type:"POST",url:global_data.url+"/muro-stream.php?do=delete",data:"id="+a+"&type="+c,success:function(b){switch(b.charAt(0)){case"0":mydialog.alert("Error:",b.substring(3));break;case"1":mydialog.close(),$("#"+c+"_"+a).hide().remove()}$("#loading").slideUp(450)},complete:function(){muro.stream.status=0,$("#loading").slideUp(350)}})}}; </script> <style> #ultimos_shouts .widget{display:block;float:none;margin-bottom:10px} #ultimos_shouts .widget .title-w{padding-bottom:5px;border-bottom:1px solid #C1c1c1;margin-bottom:5px;color:#000} #ultimos_shouts .widget .title-w h3{font-size:14px;margin:0;float:left} #ultimos_shouts .Story{padding:10px 0;border-bottom:1px solid #E9E9E9;position:relative} #ultimos_shouts .Story_Hide{position:absolute;right:0;display:none} #ultimos_shouts .Story_Hide .uiClose{background:url({/literal}{$tsConfig.tema.t_url}{literal}/images/icons/muro/fb_close_big.png) no-repeat center top;height:15px;width:15px;display:block} #ultimos_shouts .Story:hover .Story_Hide{display:block} #ultimos_shouts .Story_Pic{float:left;margin-right:10px} #ultimos_shouts .Story_Pic_mim{display:inline;float:none;position:absolute;left:20px;top:30px;border:1px solid #fff;background:#fff} #ultimos_shouts .Story_Pic_mim img{vertical-align:top;height:32px;width:32px} #ultimos_shouts .autor{float:left} #ultimos_shouts .Story_Content{float:left;margin-top:10px} #ultimos_shouts .a_blue{color:#3B5998!important;font-weight:bold} #ultimos_shouts .stream{background:url({/literal}{$tsConfig.tema.t_url}{literal}/images/icons/muro/stream.png) no-repeat left top;display:inline-block;width:16px;height:16px;top:3px;left:0;vertical-align:middle} #ultimos_shouts .w_1{background-position:left -16px} #ultimos_shouts .w_2{background-position:left -32px} #ultimos_shouts .w_3{background-position:left -48px} #ultimos_shouts .w_4{background-position:left -64px} #ultimos_shouts .Story_Foot{margin-top:10px} #ultimos_shouts .Story_Foot .Story_Info{color:#999} #ultimos_shouts .Story_Message img.basdower{width:100%} #ultimos_shouts .Story_Message .uiLink{border-left:2px solid #CCC;padding-left:10px} #ultimos_shouts .uiVideoThumb{position:relative} #ultimos_shouts .Story_Message .uiVideoThumb i{background:url({/literal}{$tsConfig.tema.t_url}{literal}/images/icons/muro/fb_video_play.png) no-repeat scroll 0 0 transparent;bottom:0;height:32px;left:0;position:absolute;width:39px} </style> {/literal} Captura: Créditos: Creación del mod: A quien correspondan. @tutan-kabron por su fix: Bueno eso es todo, nos vemos en otro aporte.
  5. Bueno les presento un complemento que lo tengo en demo32.hol.es, lo hice porque el panel de la izquierda era muy tosco y feo así que decidí cambiarlo por el de la derecha si alguien quiere este panel, se los pasaré...lo hago así porque no se si les gustará o si lo usarán o no! Para ello deben tener el conjunto de Glyphicon Halflings aunque también se los dejaré por si acaso! Si la imagen no se ve haz clic aquí Después le haré el mod para que el usuario elija la imagen del fondo desde su cuenta!...
  6. [Mod] Fondo del perfil

    Hola, este es un mod/mini-mod/complemento que aplica un background solo en el perfil... he tratado de hacerlo con home, fotos, tops, etc. desde la cuenta, en teoría lo que quería hacer es que los usuarios eligieran las imágenes que querían poner para las secciones ya mencionadas, pero solo logré para el perfil... Si el mod ya existía pido perdón, porque no lo he visto 1) Ejecutar esta consulta ALTER TABLE `u_perfil` ADD `p_fondo` VARCHAR(200) NOT NULL; 2) Ir a c.cuenta.php y buscar function loadHeadInfo($user_id){ global $tsUser, $tsCore; // INFORMACION GENERAL y dentro de esta función buscamos p.p_socials, p.p_empresa, y agregar a lado de esto p.p_fondo, Luego buscar más abajo } // COMPROBAR PORCENTAJE $total = array(5,8,9,8,9); // CAMPOS EN CADA CATEGORIA $tid = $save - 1; y arriba agregamos case 9: // IN DB $perfilData = array( 'fondo' => $tsCore->setSecure($_POST['fondo']), //Este es para el perfil ); break; 3) Vamos a estilos.css y en body dentro de las llaves {...} agregaremos esto background-position: center center; background-repeat: no-repeat; background-attachment: fixed; background-size: cover; 4) Luego buscar tuTheme/templates/t.cuenta.tpl y debajo de <li><a onclick="cuenta.chgtab(this)">Cambiar Nick</a></li> agregamos <li><a onclick="cuenta.chgtab(this)">Fondo</a></li> un poco más abajo debajo de {include file='modules/m.cuenta_nick.tpl'} agregamos {include file='modules/m.cuenta_fondo.tpl'} 5) Crearemos el archivo m.cuenta_fondo.tpl y la colocaremos en modules <div class="content-tabs fondo" style="display:none"> <fieldset> <div class="alert-cuenta cuenta-9"></div> <div class="field" style="padding: 5px 0"> <label for="fondo" style="display: inline-block;">Fondo del Perfil:</label> <input type="text" value="{$tsPerfil.p_fondo}" maxlength="200" name="fondo" id="fondo" class="text cuenta-save-9" style="width:65%; display: inline-block;"> </div> </fieldset> <div class="buttons"> <input type="button" value="Guardar" onclick="cuenta.save(9)" class="mBtn btnOk"/> </div> <div class="clearfix"></div> </div> 6) Último paso vamos a templates/sections/main_header.tpl y buscamos </head> <body> y arriba agregamos {literal} <style> body { background-image: url({/literal}{$tsInfo.p_fondo}{literal}); } </style> {/literal} RESULTADO FINAL: Para evitar las puntas blancas busquen en estilos.css /****** Bordes Redondos ******/ debajo agregan ↓ ↓ ↓ .rtop { border-radius: 11px 11px 0 0; } .rbott { border-radius: 0 0 11px 11px; } y listo quedará más lindo Para el fondo con opaco → ir a sections/main_header.tpl y buscar <body> debajo pegamos <div id="background_transparent"></div> y en estilo.css debajo de body { ... } pegamos Fondo 1 #background_transparent { background-color: rgba(255,255,255,.6); position: fixed; height: 100%; top: 0; width: 100%; z-index: -1; } Fondo 2 #background_transparent { background-color: rgba(0,0,0,.8); position: fixed; height: 100%; top: 0; width: 100%; z-index: -1; } Fondo1 Fondo2
  7. Donde agregar esto?

    Bueno antes hice un tema pidiendo si alguien podía adaptar un mod, pero ahora creo que ya se como hacer para que esto funcione, pero no se donde agregarlo. El mod es el siguiente: Lo que quiero hacer es que el icono aparte de que aparezca al lado del nombre en el perfil también aparezca dentro del post y al pasar el ratón por arriba del nombre como se muestra en estas imagenes: ASI SE VE EL MOD ORIGINAL LO QUE QUIERO ES AGREGAR ESE ICONO EN ESTAS PARTES DE LA WEB Entonces lo que creo que hay que hacer basándome en el mod original es agregar el u.user_vips, al PHP correspondiente y el {if $tsInfo.user_vips} al lado del NICK, lo que no se es en que archivos se encuentran en que php se agrega el u.user_vips, y en que parte, y en que archivo se agrega el info.user_vips, alguno podría ayudarme? gracias! @Kmario19 @Vellenger necesito su ayuda
  8. Pedido MOD Agrandar tamaño de la letra a gusto

    Bueno el mod consistiría en que el usuario pueda agrandar el tamaño de la letra a su vista, por ejemplo la fuente por default es 13px, que el usuario pueda agrandarla hasta 22px que es un tamaño que ya sin anteojos ya se podría leer fácilmente digamos, entonces a el usuario le aparezcan 2 botones por ejemplo [ - ] [ + ] y vaya subiendo y bajando el tamaño de la letra según los clicks del usuario por ejemplo cuando el usuario empiece a clieckear el botón [ + ] vaya subiendo el tamaño de la letra de esta forma: (13px por default)(16px 1 click)(18px 2 clicks)(21px 3 clicks)(24px 4 clicks), luego de bajada lo mismo hasta que se estanque en 13px que es el tamaño por default. alguien podría lograr hacerlo? espero sus respuestas!!! gracias!
  9. Adaptar MOD Verificar Usuarios

    Hola amigos quería pedir ayuda para adaptar este mod: Lo que quiero hacer es que aparte de que el icono de verificación aparezca al lado del nombre del usuario en su perfil, también aparezca al lado de su nombre en sus posts, y cuando pasas el ratón por encima de su nombre como se muestra en las siguientes imagenes: Alguno podría adaptarlo?, muchas gracias!
  10. Pedido MOD Registrados por país

    Hola busco un MOD donde se muestre una lista de países junto al numero de registrados que tiene ese país, por ejemplo: Registrados Argentina 10 México 6 Venezuela 3 Existe un mod así?, gracias por pasar
  11. Algunos Mod Theme Carbon v1

    aqui de nuevo tenia tiempo si entrar a el foro serán tan amables de pasarme algunos mod o adaptarlos seria de gran ayuda por los momentos pediré 4 mod 1: Caja de me gusta de facebook en el home y post 2: Quiero poner algunos módulos de publicidad en el home y post seria el de 300x250 y 160x600 3: adaptar el editor Whisiwyg a el tema carbon v1 4: LazyLoad en los post URL: http://zona-gamer.ml/
  12. Hola amigos, pues a pedido de Maxi(http://www.phpost.net/user/673-maxi/) os traigo este MOD de que para poder ver los links del post el usuario debe comentarlo 1º. ¿Que tiene? - Si es un visitante se le pide que se registre - Si no comentó el post se le dice que tiene que comentar para poder ver los links - Fácil instalación Asi que empecenis: Abren el c.posts.php de inc/class y buscan: // DATOS DEL POST $query = mysql_query('SELECT c.* ,m.*, u.user_id FROM `p_posts` AS c LEFT JOIN `u_miembros` AS u ON c.post_user = u.user_id LEFT JOIN `u_perfil` AS m ON c.post_user = m.user_id WHERE `post_id` = \''.(int)$post_id.'\' '.($tsUser->is_admod && $tsCore->settings['c_see_mod'] == 1 ? '' : 'AND u.user_activo = \'1\' && u.user_baneado = \'0\'').' LIMIT 1'); // $postData = mysql_fetch_assoc($query); Abajo agregan: //Comentó este post $sql_comment = mysql_query('SELECT cid FROM p_comentarios WHERE c_post_id = \''.(int)$post_id.'\' AND c_user = \''.(int)$tsUser->uid.'\' LIMIT 1'); if(!$tsUser->is_member){ $replacement = '<div class="emptyData">Para poder ver los links necesitas estar <a href="javascript:registro_load_form();"> Registrado </a> . O.. ya tienes cuenta? <a href="javascript:open_login_box();"> Logueate!</a></div>'; $postData[post_body] = preg_replace('/[url[^>]+\]\b(https?|ftp|file):\/\/[-A-Z0-9+&@#\/%?=~_|$!:,.;]*[A-Z0-9+&@#\/%=~_|$][\/url[^>]+\]/i', $replacement, $postData[post_body]); }elseif(mysql_num_rows($sql_comment) == 0){ $replacement = '<div class="emptyData">Para poder ver los links debes comentar el post</div>'; $postData[post_body] = preg_replace('/[url[^>]+\]\b(https?|ftp|file):\/\/[-A-Z0-9+&@#\/%?=~_|$!:,.;]*[A-Z0-9+&@#\/%=~_|$][\/url[^>]+\]/i', $replacement, $postData[post_body]); } Y listo!! Caps: (Deslogueado) (Logueado pero sin comentar el post): (Logueado y con el post comentado) Creditos: WiberRZ por hacer el MOD de links ocultos para visitantes Saludos y espero que les guste
  13. Pedido MOD

    hola gente, quisiera saber si hay un mod que se pueda restringir a cada rango el maximo de post permitidos por dia. Algún desarrollador audas que lo quiera hacer?
  14. mod karma

    hola amigos estoy reconstruyendo mi web despues de mucho tiempo como el sitio de taringa pero no encuentro nada al respecto sobre el mod karma por posteo o comparimiento en la comunidad agradezco su respuestas. mi web: http://www.systemarg.com
  15. Taringa V6

    Hola a todos, como saben estoy haciendo el tema v6 de taringa Necesito que me ayuden a fixear unas cosas... No Loguea No funciona facebook connect Focus del busca Etc... El desarollo lo voy a continuar ni bien esten arreglados estos problemas... Archivos V6 inc Theme Header.php https://mega.nz/#!IpZXnTJa!mBruui3R2uWXbT2MZqEr6-h0yJ0w6G1l-OHMKoJ9kgo Demo
  16. Mod puntos por comentar

    Hola amigos de nuevo, quería ver si alguien hace o ya ah hecho, ya que no creo que sea algo muy novedoso, la idea de hacer un mod en el que los usuarios ganen puntos por comentar post. Es decir si comentan 2 veces en el mismo post no se le dan dos puntos, sino 1 solo porque es 1 punto por post. En fin me ayudaría mucho a promover a que la gente se ayude y comente entre todos en mi web. Saludos!
  17. ACLARACION: este mod no es mio. Solo lo adapte a la nueva versión. Agradecimiento a los autores al final del tema. Hola amigos. Hoy no vengo con una pregunta . Vengo para mostrarles como instalar el mod de referidos + puntos por referido. Lo que hace este mod es que la gente pueda promocionar tu pagina para ganar puntos a cambio. La manera en que funciona es así: Yo soy un usuario de tu web y quiero puntos gratis. Publicito tu web y les pido a la gente que pongan mi nombre en el campo de referidos cuando se van a registrar. Una vez que se registran a mi se me dan puntos automáticamente. Bueno comencemos con la instalación: 1) Abrimos c.registro.php .Que se encuentra en inc/class, y despues de: } else $valid = '0: Faltan datos y no se puede procesar tu solicitud.'; // retornar valor return $valid; } Agregamos: /** * @name referidos by tutan-kabron * @access public * @param * @return string */ public function checkUserEmail2(){ global $tsCore; // Variables $referido = strtolower($_POST['referido']); $which = empty($referido) ? 'referido' : 'referido'; // MENSAJE $valid = '1: El '.$which.' no existe .'; // DEFAULT // if(!empty($referido)){ $query = db_exec(array(__FILE__, __LINE__), 'query', 'SELECT `user_id` FROM `u_miembros` WHERE LOWER(user_name) = \''.$tsCore->setSecure($referido).'\' LIMIT 1'); if(db_exec('num_rows', $query) > 0) $valid = '0: El '.$which.' si existe.'; // EXISTE } else $valid = '0: Este Campo no es obligatorio.'; // retornar valor return $valid; } 2) En el mismo archivo c.registro.php buscamos mas abajo: function registerUser(){ global $tsCore, $tsUser; // DATOS NECESARIOS Y debajo de eso agregamos: $referido=$_POST['referido']; if(empty($referido)){ $referido='1'; }else{ $referido= $tsCore->setSecure($_POST['referido']); } 3) En el mismo archivo c.registro.php buscamos un poquito mas abajo: 'user_email' => $_POST['email'], Y debajo de eso agregamos: 'user_referido' => $referido, 4) Mas abajo en el mismo archivo c.registro.php buscamos: // MENSAJE PARA DAR LA BIENVENIDA BIENVENIDA Antes de eso agregamos: if($referido != '1'){ db_exec(array(__FILE__, __LINE__), 'query', 'UPDATE u_miembros SET user_referidos = user_referidos + 1 WHERE user_name = \''.$tsData['user_referido'].'\''); db_exec(array(__FILE__, __LINE__), 'query', 'INSERT INTO `referidos` (`user_referido`, `user_name`, `fecha`) VALUES (\''.$tsData['user_referido'].'\', \''.$tsData['user_nick'].'\', \''.time().'\')'); } 5) Abrimos ajax.registro.php que se encuentra en la carpeta inc/php/ajax y antes de: case 'registro-geo': Agregamos: case 'registro-check-referido': //<--- echo $tsReg->checkUserEmail2(); //---> break; 6) En el mismo archivo arriba buscamos: 'registro-check-nick' => array('n' => 1, 'p' => ''), Y debajo de eso agregamos: 'registro-check-referido' => array('n' => 1, 'p' => ''), 7) Abrimos p.registro.form.tpl que esta en la carpeta themes/tutema/templates/t.php_files y debajo de: <div class="form-line"> <label for="email">E-mail</label> <input name="email" type="text" id="email" tabindex="4" title="Ingresa tu dirección de email" onfocus="registro.focus(this)" onblur="registro.blur(this)" onkeydown="registro.clear_time(this.name)" onkeyup="registro.set_time(this.name)" autocomplete="off" /> <div class="help"><span><em></em></span></div> </div> Agregamos: <div class="form-line"> <label for="referido">Ingresa tu referido (opcional)</label> <input name="referido" type="text" id="referido" tabindex="1" title="Ingrese el nick del referido" onfocus="registro.focus(this)" onblur="registro.blur(this)" onkeydown="registro.clear_time(this.name)" onkeyup="registro.set_time(this.name)" autocomplete="off" /> <div class="help"><span><em></em></span></div> </div> 8) Abrimos registro.js que esta en la carpeta themes/tutema/js y buscamos: //Un elemento pierde el foco blur: function(el){ var name = $(el).attr('name'); switch(name){ case 'nick': case 'email': this.clear_time(name); $(el).removeClass('selected'); this.check_campo(el, false, true); break; default: $(el).removeClass('selected'); this.check_campo(el, false, true); break; } }, Lo reemplazamos por: //Un elemento pierde el foco blur: function(el){ var name = $(el).attr('name'); switch(name){ case 'nick': case 'referido': case 'email': this.clear_time(name); $(el).removeClass('selected'); this.check_campo(el, false, true); break; default: $(el).removeClass('selected'); this.check_campo(el, false, true); break; } }, 9) Mas abajo buscamos: /* password */ case 'password': Y antes de eso agregamos: /* referido by tutan-kabron */ case 'referido': //Si ya paso por aca y no hubieron cambios, devuelvo el mismo status if(!force_check && this.datos[campo] === value) if(this.datos_status[campo]=='empty') return no_empty ? this.show_status(el, this.datos_status[campo], this.datos_text[campo]) : this.hide_status(el, this.datos_status[campo], this.datos_text[campo]); else return this.show_status(el, this.datos_status[campo], this.datos_text[campo]); //Almaceno el dato this.datos[campo] = value; //Caracteres validos if(/[^a-zA-Z0-9_]/.test(value)) return this.show_status(el, 'error', 'Sólo se permiten letras, nómeros y guiones(_)'); //Compruebo si ya esta en uso //Compruebo el Cache var value_lower = value.toLowerCase(); if(!this.cache[campo]){ this.cache[campo] = new Array(); this.cache[campo][value_lower] = new Array(); }else if(this.cache[campo][value_lower]){ if(this.cache[campo][value_lower]['status']) return registro.show_status(el, 'ok', this.cache[campo][value_lower]['text']); else return registro.show_status(el, 'error', this.cache[campo][value_lower]['text']); } this.show_status(el, 'loading', 'Comprobando referido...'); $('#loading').fadeIn(250); $.ajax({ type: 'POST', url: global_data.url + '/registro-check-referido.php?t=nombre de usuario', data: 'referido='+value, success: function(h){ registro.cache[campo][value_lower] = new Array(); registro.cache[campo][value_lower]['text'] = h.substring(3); switch(h.charAt(0)){ case '0': //Estaba en uso registro.cache[campo][value_lower]['status'] = true; registro.show_status(el, 'ok', h.substring(3)); break; case '1': //No esta en uso registro.cache[campo][value_lower]['status'] = false; registro.show_status(el, 'error', h.substring(3)); break; } $('#loading').fadeOut(350); }, error: function(){ registro.show_status(el, 'error', 'Hubo un error al intentar procesar lo solicitado'); registro.datos[campo] = ''; } }); break; /* termina campo referido */ 10) Ahora buscamos el archivo c.admin.php que se encuentra en la carpeta inc/class y antes de: /* getNoticias() */ function getNoticias() Agregamos: /* getReferidos() */ function getReferidos() { // $query = db_exec(array(__FILE__, __LINE__), 'query', 'SELECT u.user_id, u.user_name, r.* from referidos AS r LEFT JOIN u_miembros AS u ON r.user_referido = u.user_name ORDER BY r.id DESC'); $data = result_array($query); // return $data; } /* getReferido() */ function getReferido() { global $tsCore; // $id = $tsCore->setSecure($_GET['id']); // $query = db_exec(array(__FILE__, __LINE__), 'query', 'SELECT `id`, `user_name`, `user_referido`, `fecha` FROM referidos WHERE id = \'' . (int)$id . '\' LIMIT 1'); $data = mysql_fetch_assoc($query); // return $data; } /* deReferidos(); */ function delReferido() { $id = $_GET['id']; if (!db_exec('num_rows', db_exec(array(__FILE__, __LINE__), 'query', 'SELECT `id` FROM `referidos` WHERE `id` = \'' . (int)$id . '\' LIMIT 1'))) { return 'El id ingresado no existe.'; } $query = db_exec(array(__FILE__, __LINE__), 'query', 'DELETE FROM `referidos` WHERE `id` = \'' . (int)$id . '\''); } 11) Abrimos el archivo admin.php que se encuentra en la carpeta inc/php y antes de: /** NOTICIAS **/ } elseif($action == 'news'){ Agregamos: /** REFERIDOS by tutan-kabron**/ } elseif($action == 'referidos'){ if(empty($act)) $smarty->assign("tsReferidos",$tsAdmin->getReferidos()); elseif($act == 'borrar'){ if($tsAdmin->delReferido()) $tsCore->redirectTo($tsCore->settings['url'].'/admin/referidos?borrar=true'); } 12)Abrimos el archivo t.admin.tpl que se encuentra en la carpeta themes/tutema/templates y antes de: {/if} Agregamos: {elseif $tsAction == 'referidos'} {include file='admin_mods/referidos.tpl'} 13) Abrimos m.admin_sidemenu.tpl que se encuentra en la carpeta themes/tutema/templates/admin_mods y al final agregan: <h4>Utilidades</h4> <ul class="cat-list"> <li id="a_users"><span class="cat-title"><a href="{$tsConfig.url}/admin/referidos">Referidos</a></span></li> </ul> 14) Abrimos c.cuenta.php que se encuentra en la carpeta inc/class y buscamos: /* loadHeadInfo($user_id) */ function loadHeadInfo($user_id){ global $tsUser, $tsCore; // INFORMACION GENERAL $query = db_exec(array(__FILE__, __LINE__), 'query', 'SELECT u.user_id, u.user_name, u.user_registro, u.user_lastactive, u.user_referidos, 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); Y despues de: u.user_lastactive, Ponemos a su derecha: u.user_referidos, Quedando así: u.user_lastactive, u.user_referidos, 15) Abrimos m.perfil_headinfo.tpl que se encuentra en la carpeta themes/tutema/templates/modules y despues de: <li> <strong>{$tsInfo.stats.user_comentarios}</strong> <span>Comentarios</span> </li> Agregamos: <li> <strong>{$tsInfo.user_referidos}</strong> <span>Referidos</span> </li> 16) Suben el siguiente archivo a la carpeta themes/tutema/templates/admin_mods http://www.mediafire.com/file/x9g4xvu6a3e2zxa/referidos.tpl 17) Ahora van phpmyadmin y ponen las siguientes consultas: (Recuerden en tu phpmyadmin van a donde dice SQL para hacer las consultas) Primero hacen esta: ALTER TABLE `u_miembros` ADD `user_referidos` INT( 11 ) NOT NULL DEFAULT '0' Y luego esta: CREATE TABLE IF NOT EXISTS `referidos` ( `id` int(11) NOT NULL AUTO_INCREMENT, `user_referido` varchar(60) CHARACTER SET latin1 NOT NULL, `user_name` varchar(60) CHARACTER SET latin1 NOT NULL, `fecha` int(12) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci AUTO_INCREMENT=16 ; Eso fue todo por la parte de solamente referidos. Si quieren solamente los referidos sin puntos no sigas con los siguientes pasos. Ahora viene la parte de agregarle puntos al que reciba referidos: 1) Ahora van phpmyadmin y ponen las siguientes consultas: (Recuerden en tu phpmyadmin van a donde dice SQL para hacer las consultas) Ponen lo siguiente: ALTER TABLE w_configuracion ADD p_p_refs INT(11) NOT NULL; 2) Buscamos c.admin.php que se encuentra en la carpeta inc/class y luego de: 'offline_message' => $tsCore->setSecure($tsCore->parseBadWords($_POST['offline_message'])), Agregamos: 'p_p_refs' => $tsCore->setSecure($_POST['p_p_refs']), 3) En el mismo archivo buscamos: '\', `offline_message` = \'' . $c['offline_message'] . Y agregamos al lado (a su derecha): Fijensen que el Punto ( . ) va con un espacio a la izquierda y un espacio a la derecha. '\', `p_p_refs` = \'' . $c['p_p_refs'] . 4) Buscamos en c.registro.php que se encuentra en la carpeta inc/class: if($referido != '1'){ db_exec(array(__FILE__, __LINE__), 'query', 'UPDATE u_miembros SET user_referidos = user_referidos + 1 WHERE user_name = \''.$tsData['user_referido'].'\''); db_exec(array(__FILE__, __LINE__), 'query', 'INSERT INTO `referidos` (`user_referido`, `user_name`, `fecha`) VALUES (\''.$tsData['user_referido'].'\', \''.$tsData['user_nick'].'\', \''.time().'\')'); } Y lo reemplazamos por: if($referido != '1'){ db_exec(array(__FILE__, __LINE__), 'query', 'UPDATE u_miembros SET user_puntos = user_puntos + \''.(int)$tsCore->settings['p_p_refs'].'\' WHERE user_name = \''.$tsData['user_referido'].'\''); db_exec(array(__FILE__, __LINE__), 'query', 'UPDATE u_miembros SET user_referidos = user_referidos + 1 WHERE user_name = \''.$tsData['user_referido'].'\''); db_exec(array(__FILE__, __LINE__), 'query', 'INSERT INTO `referidos` (`user_referido`, `user_name`, `fecha`) VALUES (\''.$tsData['user_referido'].'\', \''.$tsData['user_nick'].'\', \''.time().'\')'); $aviso = 'Tu referido <a href="'.$tsCore->settings['url'].'/perfil/'.$tsData['user_nick'].'"><b>'.$tsData['user_nick'].'</b></a>se ha registrado. <br /><br/> Dale la bienvenida! <br />Obtentienes '.(int)$tsCore->settings['p_p_refs'].' puntos por tu referido'; db_exec(array(__FILE__, __LINE__), 'query', 'INSERT INTO `u_avisos` (`user_id`, `av_subject`, `av_body`, `av_date`, `av_type`) VALUES (\''.$tsUser->getUserId($tsData['user_referido']).'\', \'Nuevo referido\', \''.$aviso.'\', \''.'\', \''.time().'\', \'4\')'); } 5) Por último abrimos el archivo m.admin_configs.tpl que se encuentra en la carpeta themes/tutema/templates/admin_mods y buscamos: <dl> <dt><label for="ai_max_com">Comentarios por post:</label><br /><span>N&uacute;mero m&aacute;ximo de comentarios por p&aacute;gina en los post.</span></dt> <dd><input type="text" id="ai_max_com" name="max_com" maxlength="3" value="{$tsConfig.c_max_com}" class="searchBar" style="width: 280px;"/></dd> </dl> Y debajo ponemos: <dl> <dt><label for="p_p_refs">Puntos por referido</label><br /><span>Puntos que recibira como bonificacion un user al subir un posts.</span></dt> <dd><input type="text" id="p_p_refs" name="p_p_refs" style="width:10%" maxlength="3" value="{$tsConfig.p_p_refs}" /></dd> </dl> Y listo, terminado. Capturas: Le agradezco enormemente a: tutan-kabron por crear el mod en primer lugar. k_jupiter por modificar el mod para que tuviera puntos por referido. Vellenger por poner el fix para que el mod ande perfecto. Y a KillerJohn por pedirme si subía el tema. Espero que les sirva. Supongo que mas a los nuevos que a los usuarios viejos. Ya que los viejos, ya saben hacerlo. Saludos!
  18. PEDIDO Tags "sugeridos"

    Hola amigos, queria ver si alguien se copa en este año nuevo y hace este "mod" hace rato que en alguna pagina que entro, veo como una especie de lo que yo eh llamado "tags sugeridos" y que es eso? pues simplemente una pequeña o gran cantidad de tags, claro a eleccion del administrador, y de paso aclaro que los tags no serian de forma automatica sino que abria que ponerlos manualmente, como ya dije, tanto los tags como la cantidad de ellos a eleccion del administrados, y que al hacer clic automaticamente se agreguen en el campo "tags" cuando se crea un nuevo post, a veces y yo mismo lo reconozco, a los usuarios le da pereza poner tags, pero si tenemos los "tags sugeridos" los usuarios simplemente hacen clic y ya agregan el tag, para ser un poco mas claro dire que mi idea es mas o menos como funcionan los emoticones, solo que en vez de poner el code del emoticon y en el campo o fomr donde creamos el post, agregue el texto ejemplo "juegos" en el campo o fomr "tags" por si no quedo muy claro dejo una imagen y tambien dejo todas mis esperanzas de que alguien lo haga, algo me dice que hacer lo que pido es muy facil, pero a mi no me salio... por el estilo y demas, no importa a eso que despues lo vea cada usuario. dejo imagen! saludos y gracias. share image
  19. Hoy les traigo este mini-mod a pedido de @Rengo, lo que hace es integrar los comentarios de Facebook a nuestro sitio. Características: Moderar comentarios Si es visitante se mostraran los de FB por defecto En m.post_comments.tpl agregar arriba de todo: <script type="text/javascript"> {literal} $(document).ready(function(){ $("#comentarios_web").on( "click", function() { $('#post-comentarios_fb').hide(); $('#post-comentarios').show(); }); $("#comentarios_fb").on( "click", function() { $('#post-comentarios_fb').show(); $('#post-comentarios').hide(); }); }); {/literal} </script> <div class="commentsbas"> <button type="button" id="comentarios_web" class="basbutton">Comentarios {$tsConfig.titulo} <span >{$tsPost.post_comments}</span></button> <button type="button" id="comentarios_fb" class="basbutton">Comentarios Facebook <span class="fb-comments-count" data-href="{$tsConfig.url}/posts/{$tsPost.categoria.c_seo}/{$tsPost.post_id}/{$tsPost.post_title|seo}.html"></span></button> <div id="post-comentarios_fb" {if $tsUser->is_member}style="display:none"{/if}> <div class="fb-comments" data-href="{$tsConfig.url}/posts/{$tsPost.categoria.c_seo}/{$tsPost.post_id}/{$tsPost.post_title|seo}.html" data-numposts="10" data-width="840" data-order-by="reverse_time" data-colorscheme="light"></div> </div> </div> Abajo busca: <div id="post-comentarios"> Y lo remplazas por: <div id="post-comentarios" {if !$tsUser->is_member}style="display:none"{/if}> En una hoja de estilos (como estilo.css) agrega al final: .commentsbas { float: right; width: 835px; overflow: hidden; margin-top: 15px; } .basbutton { float: left; width: 50%; color: #FFF; display: block; font-weight: bold; line-height: 1.2; padding: 14px; text-align: center; cursor: pointer; overflow: hidden; position: relative; border-radius: 0; border-right: 0; border-bottom: 0; border-left: 0; } #comentarios_web { border-top: 6px solid #197FB3; background: #1593FF; } #comentarios_fb { border-top: 6px solid #555; background: #3B5998; } .basbutton span { border-radius: 3px; color: #ddd; display: inline; font-size: 0.9em; padding: 6px 11px; position: relative; } #comentarios_web span { background-color: #0D79D5; } #comentarios_fb span { background-color: #5872a7; padding: 6px 6px!important; } Diseñado para el tema default, es posible que tengan que editar un poco de css Para moderar los comentarios existen dos formas, elije la que sea de tu agrado. Forma 1 (Meta tag): En main_header.tpl dentro de <head> agregaremos: <meta property="fb:admins" content="TU_FACEBOOK_USER_ID"/> Remplazamos TU_FACEBOOK_USER_ID por nuestro id de usuario en facebook, el id yo lo saco del código fuente del perfil pero existen paginas como esta que solo introduces la url del perfil y te da el id. Esta etiqueta se puede repetir cuantas veces quieran y agregar a todo su staff... Ejem: <meta property="fb:admins" content="TU_FACEBOOK_USER_ID_admin"/> <meta property="fb:admins" content="TU_FACEBOOK_USER_ID_mod"/> etc... Forma 2 (Facebook App): Vamos a Iniciar sesión en Facebook | Facebook y creamos una nueva app para nuestro sitio (si ya tienes una creada solo necesitaremos el ID de la app) En main_header.tpl dentro de <head> agregaremos: <meta property="fb:app_id" content="TU_APP_ID" /> Y remplazamos TU_APP_ID por tu ID de tu app. Capturas: Demo Hasta otro aporte
  20. Mod referidos

    Hola amigos, de nuevo con dudas. Estoy intentando instalar el mod referidos: Pero no existe el archivo a.sidebar.tpl y bueno quería consultarles como hago para instalarlo en mi web. Seguro es re fácil, pero como se poco y nada, no me sale. web: www.dibujandoconestilo.esy.es Saludos.
  21. Hola hoy les traigo una modificación más + mod o como quieran llamarlo... caps.. 1) Abrimos inc/class/c.cuenta.php y buscamos $data['p_socials'] = unserialize($data['p_socials']); $data['p_socials']['f'] = $data['p_socials'][0]; $data['p_socials']['t'] = $data['p_socials'][1]; y debajo agregamos $data['p_socials']['y'] = $data['p_socials'][2]; $data['p_socials']['i'] = $data['p_socials'][3]; $data['p_socials']['l'] = $data['p_socials'][4]; $data['p_socials']['p'] = $data['p_socials'][5]; más abajo buscamos $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]; y debajo agregamos $data['p_socials']['y'] = $data['p_socials'][2]; $data['p_socials']['i'] = $data['p_socials'][3]; $data['p_socials']['l'] = $data['p_socials'][4]; $data['p_socials']['p'] = $data['p_socials'][5]; ahora más abajo buscamos if(!empty($sitio)) $sitio = substr($sitio, 0, 4) == 'http' ? $sitio : 'http://'.$sitio; // EXTERNAS $facebook = $tsCore->setSecure($tsCore->parseBadWords($_POST['facebook']), true); /* ELIMINAR */ $twitter = $tsCore->setSecure($tsCore->parseBadWords($_POST['twitter']), true); /* ELIMINAR */ $youtube = $tsCore->setSecure($tsCore->parseBadWords($_POST['youtube']), true); /* ELIMINAR */ for($i = 0; $i < 5; $i++) $gustos[$i] = $tsCore->setSecure($tsCore->parseBadWords($_POST['g_'.$i]), true); // IN DB $perfilData = array( 'nombre' => $tsCore->setSecure($tsCore->parseBadWords($_POST['nombrez']), true), 'mensaje' => $tsCore->setSecure($tsCore->parseBadWords($_POST['mensaje']), true), 'sitio' => $tsCore->setSecure($tsCore->parseBadWords($sitio), true), 'socials' => serialize(array($facebook,$twitter,$youtube)), /* ELIMINAR */ y la reemplazamos if(!empty($sitio)) $sitio = substr($sitio, 0, 4) == 'http' ? $sitio : 'http://'.$sitio; // EXTERNAS for($i = 0; $i < 5; $i++) $gustos[$i] = $tsCore->setSecure($tsCore->parseBadWords($_POST['g_'.$i]), true); // IN DB $perfilData = array( 'nombre' => $tsCore->setSecure($tsCore->parseBadWords($_POST['nombrez']), true), 'mensaje' => $tsCore->setSecure($tsCore->parseBadWords($_POST['mensaje']), true), 'sitio' => $tsCore->setSecure($tsCore->parseBadWords($sitio), true), Luego buscamos case 8: .... setSecure($_SERVER['REMOTE_ADDR']).'\')')) return array('error' => 'Proceso iniciado, recibirá la respuesta en el correo indicado cuando valoremos el cambio.'); } break; debajo agregaremos esto case 9: // EXTERNAS $facebook = $tsCore->setSecure($tsCore->parseBadWords($_POST['facebook']), true); $twitter = $tsCore->setSecure($tsCore->parseBadWords($_POST['twitter']), true); $youtube = $tsCore->setSecure($tsCore->parseBadWords($_POST['youtube']), true); $instagram = $tsCore->setSecure($tsCore->parseBadWords($_POST['instagram']), true); $linkedin = $tsCore->setSecure($tsCore->parseBadWords($_POST['linkedin']), true); $pinterest = $tsCore->setSecure($tsCore->parseBadWords($_POST['pinterest']), true); // IN DB $perfilData = array( 'socials' => serialize(array($facebook,$twitter,$youtube,$instagram,$linkedin,$pinterest)), ); break; 3) Ahora buscamos en templates/t.cuenta.tpl <li><a onclick="cuenta.chgtab(this)">Cambiar Nick</a></li> y debajo agregamos esto <li><a onclick="cuenta.chgtab(this)">Redes</a></li> Luego más abajo buscamos {include file='modules/m.cuenta_nick.tpl'} y debajo agregamos esto {include file='modules/m.cuenta_redes.tpl'} 4) Ahora vamos a templates/modules/ y creamos un archivo llamado m.cuenta_redes.tpl y en el alojaremos todo esto <div class="content-tabs redes" style="display:none"> <fieldset> <div class="alert-cuenta cuenta-9"></div> <h2 class="active rsocial">Redes Sociales:</h2> <div class="field"> <div id="redesociales"> <span class="fa fa-facebook Linkfa"></span> <strong>facebook.com/</strong> <input type="text" value="{$tsPerfil.p_socials.f}" maxlength="64" name="facebook" id="ft" class="text cuenta-save-9"> </div> <div id="redesociales"> <span class="fa fa-twitter Linktw"></span> <strong>twitter.com/</strong> <input type="text" value="{$tsPerfil.p_socials.t}" maxlength="64" name="twitter" id="ft2" class="text cuenta-save-9"> </div> <div id="redesociales"> <span class="fa fa-youtube Linkyo"></span> <strong>youtube.com/</strong> <input type="text" value="{$tsPerfil.p_socials.y}" maxlength="64" name="youtube" id="ft2" class="text cuenta-save-9"> </div> <div id="redesociales"> <span class="icon icon-instagram Linkins"></span> <strong>instagram.com/</strong> <input type="text" value="{$tsPerfil.p_socials.i}" maxlength="64" name="instagram" id="ft2" class="text cuenta-save-9"> </div> <div id="redesociales"> <span class="fa fa-linkedin Linkli"></span> <strong>linkedin.com/</strong> <input type="text" value="{$tsPerfil.p_socials.l}" maxlength="64" name="linkedin" id="ft2" class="text cuenta-save-9"> </div> <div id="redesociales"> <span class="fa fa-pinterest Linkpi"></span> <strong>pinterest.com/</strong> <input type="text" value="{$tsPerfil.p_socials.p}" maxlength="64" name="pinterest" id="ft2" class="text cuenta-save-9"> </div> </div> <div class="buttons"> <input type="button" value="Guardar" onclick="cuenta.save(9)" class="mBtn btnOk"> </div> <div class="clearfix"></div> </div> 5) En extras.css al final de todo agregaremos ATENCIÓN ACÁ USTEDES PUEDEN MODIFICARLO PARA ADAPTARLO A SU THEME Y UTILIZA FONTAWESOME /* Cuenta */ h2.rsocial { margin: 0px; padding: 8px; font-size: 30px; color: #357997; line-height: 1em; text-align: center; font-family: 'Century gothic'; border-top: 1px dashed #145665; border-bottom: 1px dashed #145665; } #redesociales { width: 100%; padding: 8px; display: block; } #redesociales span { color: #EEE; padding: 6px; font-size: 20px; } #redesociales span.Linkfa, #redesociales span.Linkyo, #redesociales span.Linkins, #redesociales span.Linkli, #redesociales span.Linktw, #redesociales span.Linkpi { padding: 5px 15px; text-align:center; border-radius:3px; } #redesociales span.Linkfa { background:#3B5998;} #redesociales span.Linkyo{ background:#D14836;} #redesociales span.Linkins{ background:#14589E;} #redesociales span.Linkli{ background:#007FB1;} #redesociales span.Linktw{ background:#00ACED;} #redesociales span.Linkpi{ background:DarkRed;} #redesociales strong { color: #333; font-size: 20px; padding-left: 3px; font-weight: normal; text-shadow: 0px 0px 3px #888; text-transform: uppercase!important; } #redesociales input[type="text"] { float: right; color: #555; font-weight: bold; padding: 6px; width: 270px; font-size: 20px; margin-right: 18%; } @media screen and (max-width: 768px) { #redesociales strong { display: none!important; } #redesociales input[type="text"] { float: both; color: #555; font-weight: bold; padding: 6px; width: 270px; font-size: 20px; margin-left: -18%; } } 6) Ahora volvemos a templates/modules/ y crearemos otro archivo llamado m.redes_sociales.tpl <div id="redes-perfil"> {if $tsInfo.p_socials.f} <a target="_blank" href="http://www.facebook.com/{$tsInfo.p_socials.f}" class="qtip" title="{$tsInfo.p_socials.f}"> <span class="fa fa-facebook Linkfa"></span> </a> {/if} {if $tsInfo.p_socials.t} <a target="_blank" href="http://www.twitter.com/{$tsInfo.p_socials.t}" class="qtip" title="@{$tsInfo.p_socials.t}"> <span class="fa fa-twitter Linktw"></span> </a> {/if} {if $tsInfo.p_socials.y} <a target="_blank" href="http://www.youtube.com/{$tsInfo.p_socials.y}" class="qtip" title="{$tsInfo.p_socials.y}"> <span class="fa fa-youtube Linkyo"></span> </a> {/if} {if $tsInfo.p_socials.i} <a target="_blank" href="http://www.instagram.com/{$tsInfo.p_socials.i}" class="qtip" title="@{$tsInfo.p_socials.i}"> <span class="fa fa-instagram Linkins"></span> </a> {/if} {if $tsInfo.p_socials.l} <a target="_blank" href="http://www.linkedin.com/{$tsInfo.p_socials.l}" class="qtip" title="{$tsInfo.p_socials.l}"> <span class="fa fa-linkedin Linkli"></span> </a> {/if} {if $tsInfo.p_socials.p} <a target="_blank" href="http://www.pinterest.com/{$tsInfo.p_socials.p}" class="qtip" title="{$tsInfo.p_socials.p}"> <span class="fa fa-pinterest Linkpi"></span> </a> {/if} </div> 7) y por último agregan {include file='modules/m.redes_sociales.tpl'} en m.perfil_headinfo o en donde ustedes quieran..
  22. Bueno a raiz de que el user foliotv dejo un fix en el siguiente posts: [Fix] Desactivar cuenta quise aportar algo tambien que puse para mi theme esto trata de que cuando un usuario desactiva su cuenta al primer admin se le envia un aviso con la siguiente frase por lo que invita al primer admin a ver su perfil o a borrar la cuenta de modo definitivo borrando todo su contenido como muestra en la siguiente cap una vez pulsado donde dice aqui en la cap anterior Bueno empezamos con el MiniMod una vez aplicado el fix del user foliotv en vamos a c.admin.php y dentro de el buscamos function desCuenta() { global $tsUser, $tsCore; if(db_exec(array(__FILE__, __LINE__), 'query', 'UPDATE u_miembros SET user_activo = \'0\' WHERE user_id = \''.$tsUser->uid.'\'')) $tsCore->redirectTo($tsCore->settings['url'].'/login-salir.php'); return 1; } y lo reemplazamos por function desCuenta() { global $tsUser, $tsCore; if(db_exec(array(__FILE__, __LINE__), 'query', 'UPDATE u_miembros SET user_activo = \'0\' WHERE user_id = \''.$tsUser->uid.'\'')) $aviso = 'El Usuario/a <a href="'.$tsCore->settings['url'].'/perfil/'.$tsUser->nick.'"><b>'.$tsUser->nick.'</b></a> Desactivo su cuenta si quieres borrarla pulsa <a href="'.$tsCore->settings['url'].'/admin/users?act=show&uid='.$tsUser->uid.'&t=6"><b>aqui</b></a>.'; db_exec(array(__FILE__, __LINE__), 'query', 'INSERT INTO `u_avisos` (`user_id`, `av_subject`, `av_body`, `av_date`, `av_type`) VALUES (\'1\', \'Cuenta Desactivada\', \''.$aviso.'\', \''.time().'\', \'0\')'); $tsCore->redirectTo($tsCore->settings['url'].'/login-salir.php'); return 1; } y guardamos. Eso es todo con ello el primer admin recibira un aviso de que un usuario desactivo su cuenta. Un placer espero les sea de ayuda.
  23. Basicamente es el mismo boton del mod: pero mejorado: usa sesión y no cookies solo los que esten logueados con facebook les va a aparecer no usa mucha carga de recursos primero quitamos esta funcion de m.perfil_muro.tpl : <script> {literal} //Js boton compartir facebook Tutan-Kabron 2013 function check() { $('#fb').attr('fbu','1'); document.getElementById('fb').value='1'; $('#c').show(); $('#u').hide(); setCookie("ch",1,365); } function uncheck() { document.getElementById('fb').value='0'; $('#fb').attr('fbu','0'); $('#u').show(); $('#c').hide(); setCookie("ch",0,365); } function setCookie(c_name,value,exdays) { var exdate=new Date(); exdate.setDate(exdate.getDate() + exdays); var c_value=escape(value) + ((exdays==null) ? "" : "; expires="+exdate.toUTCString()); document.cookie=c_name + "=" + c_value; } function leer(nombre) { var lista = document.cookie.split(";"); for (i in lista) { var busca = lista[i].search(nombre); if (busca > -1) {micookie=lista[i]} } var igual = micookie.indexOf("="); var valor = micookie.substring(igual+1); return valor; } function getCookie(c_name) { var c_value = document.cookie; var c_start = c_value.indexOf(" " + c_name + "="); if (c_start == -1) { c_start = c_value.indexOf(c_name + "="); } if (c_start == -1) { c_value = null; } else { c_start = c_value.indexOf("=", c_start) + 1; var c_end = c_value.indexOf(";", c_start); if (c_end == -1) { c_end = c_value.length; } c_value = unescape(c_value.substring(c_start,c_end)); } return c_value; } function doSomething() { var myCookie = getCookie("ch"); if (myCookie == null) { //setCookie("ch",1,365); check(); } else { ver(); } } function ver() { var t=getCookie("ch"); if (t='1'){ document.getElementById('fb').value='1'; $('#fb').attr('fbu','1'); $('#c').show(); $('#u').hide(); //setCookie("ch",1,365); } //else { if (t='0'){ document.getElementById('fb').value='0'; $('#fb').attr('fbu','0'); $('#u').show(); $('#c').hide(); //setCookie("ch",0,365); } } {/literal} </script> agregamos lo siguiente a acciones.js: // fb button tutan-kabron 2016 function fbon(){ // var a = 'hola'; $.ajax({ type: 'POST', url: global_data.url + '/fb-on.php', data: 'a=' + a, success: function(h){ document.getElementsByClassName('fb').value='1'; $('.fb').attr('fbu','1'); $('.c').show(); $('.u').hide(); } }); } function fboff(){ var a = 'hola'; // $.ajax({ type: 'POST', url: global_data.url + '/fb-off.php', data: 'a=' + a, success: function(h){ document.getElementsByClassName('fb').value='0'; $('.fb').attr('fbu','0'); $('.u').show(); $('.c').hide(); } }); } function fbcheck(){ var a = 'hola'; // $.ajax({ type: 'GET', url: global_data.url + '/fb-check.php', //data: 'a=' + a, success: function(h){ if(h==0){ document.getElementsByClassName('fb').value='0'; $('.fb').attr('fbu','0'); $('.u').show(); $('.c').hide(); }else if(h==1){ document.getElementsByClassName('fb').value='1'; $('.fb').attr('fbu','1'); $('.c').show(); $('.u').hide(); }else if(h==2){ document.getElementsByClassName('fb').value='1'; $('.fb').attr('fbu','1'); $('.c').show(); $('.u').hide(); } } }); } abrimos c.user.php y buscamos: // Actualizamos la session $this->session->update($data['user_id'], $remember, TRUE); // Cargamos la información del usuario $this->loadUser(true); // COMPROBAMOS SI TENEMOS QUE ASIGNAR MEDALLAS $this->DarMedalla(); // debajo aregamos: if($fb == false) setcookie("button", "0"); // 86400 = 1 day} if($fb == true) setcookie("button", "1"); // 86400 = 1 day} mas abajo buscamos: /* LIMPIAR VARIABLES */ $this->info = ''; $this->is_member = 0; # UPDATE $last_active = (time() - (($tsCore->settings['c_last_active'] * 60) * 3)); db_exec(array(__FILE__, __LINE__), 'query', 'UPDATE u_miembros SET user_lastactive \''.$last_active.'\' WHERE user_id = \''.(int)$user_id.'\''); abajo agregamos: setcookie("button", "", time() - 3600); setcookie("ch", "", time() - 3600); unset($session['ch']); mas abajo buscamos: /* userActivate() */ antes ponemos: function fbon(){ $host = parse_url($tsCore->settings['url']); $host = str_replace('www.', '' , strtolower($host['host'])); // Establecer variables $dom = ($host == 'localhost') ? '' : '.' . $host; if($_SESSION["ch"] = '1'); return true; return false; } function fboff(){ $host = parse_url($tsCore->settings['url']); $host = str_replace('www.', '' , strtolower($host['host'])); // Establecer variables $dom = ($host == 'localhost') ? '' : '.' . $host; if($_SESSION["ch"] = '0'); return true; return false; } subimos este archivo a in/php/ajax/ ajax.fb.php en main_header.tpl buscan: <body id="cielo" onload="doSomething()"> reemplazan por: <body id="cielo" {php} if(!isset($_COOKIE['button'])) { {/php}{if $tsUser->is_member} onload="fbcheck()" {/if} {php} } {/php}> abrimos m.perfil_muro.tpl y buscan: {if $tsInfo.uid == $tsUser->uid} {if $tsUser->fb} <input type="hidden" id="fb" class="face-shout qtip" title="Compartir en Facebook" checked="checked" value="" fbu=""> <a onclick="uncheck()" id="c" class="face-shout qtip" title="Compartir en Facebook" style="opacity: 1;"></a> <a onclick="check()" id="u" class="face-shout qtip" title="Compartir en Facebook" ></a> {/if}{/if} reemplazan por: {if $tsInfo.uid == $tsUser->uid} {if $tsUser->fb} <input type="hidden" id="fb" class="face-shout qtip fb" title="Compartir en Facebook" checked="checked" value="" fbu="1"> {php} if(!isset($_COOKIE['button'])) { {/php} <a onclick="fboff()" id="c" class="face-shout qtip c" title="Compartir en Facebook" style="opacity: 1;"></a> <a onclick="fbon()" id="u" class="face-shout qtip u" title="Compartir en Facebook" style=" display:none; "></a> {php} } {/php} {/if}{/if} y eso seria todo demo: Mytech! - Tecnología en un solo lugar
  24. Les traigo este adactacion del MOD Categorías privadas que hace que todos posts, en la categorías que elijas, sean siempre privados. bueno comenzemos Empecemos: 1) Hacen esta SQL en su BD: ALTER TABLE `p_categorias` ADD `c_private` INT( 1 ) NOT NULL DEFAULT '0'; 2) Abren el c.admin.code de inc/class y buscan: /*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/ } Y arriba añaden: /* SetPrivateCat() */ function SetPrivate() { global $tsCore; // $cid = (int)$_GET['cid']; // $dato = mysql_fetch_assoc(mysql_query('SELECT c_private FROM p_categorias WHERE cid = \''.(int)$cid .'\' LIMIT 1')); if ($dato['c_private'] == 0) $privatize = 1; else $privatize = 0; db_exec(array(__FILE__, __LINE__), 'query', 'UPDATE p_posts SET post_private = \''.$privatize.'\' WHERE post_category = \''.$cid.'\''); return true; } AVISO: Dos veces en el código 3) Abren el c.posts.code de inc/class y buscan: // SOLO MODERADORES Y ADMINISTRADORES if(empty($tsUser->is_admod) && $tsUser->permisos['most'] == false) { $postData['sponsored'] = 0; $postData['sticky'] = 0; } else { $postData['sponsored'] = empty($_POST['patrocinado']) ? 0 : 1; $postData['sticky'] = empty($_POST['sticky']) ? 0 : 1; } Y abajo agregan: $psqsl = db_exec(array(__FILE__, __LINE__), 'query', 'SELECT c_private FROM p_categorias WHERE cid = \''.(int)$postData['category'].'\''); $qs = db_exec('fetch_assoc', '$query', '$psqsl'); if($qs['c_private'] == 1){ $postData['private'] = 1; } 4) Abren el admin.php de inc/php y buscan: } elseif($act == 'change'){ if($_POST['save']){ if($tsAdmin->MoveCat()) $tsCore->redirectTo($tsCore->settings['url'].'/admin/cats?save=true'); } Y abajo añaden: }elseif($act == 'setprivate'){ if($tsAdmin->SetPrivate()) $tsCore->redirectTo($tsCore->settings['url'].'/admin/cats?save=true'); 5) Abren el m.admin_cats.tpl de themes/TUTEMA/admin_mods y buscan: <a href="?act=editar&cid={$c.cid}&t=cat"><img src="{$tsConfig.url}/themes/default/images/icons/editar.png" title="Editar Categoría"/></a> Y abajo agregan: <a href="?act=setprivate&cid={$c.cid}"><img src="{$tsConfig.url}/themes/default/images/icons/key.png" title="Activar/desactivar categoría privada"/></a> Y listo!! Cuando hagan click en la llave, todos los posts que se hagan y esten en esa categoría, serán privados. Cap:
  25. Pedido de MOD

    Hola Amigos de la comunidad.. se podría limitar los post que se podran crear por día? Algún programador que se anime a hacerlo.. seria un buen aporte para los que usan los hosting gratis.. por ejemplo un usuario nuevo que solo pueda crear 3 post por día hasta el rango X, y del rango X hasta el rango X... Se ve practico y bueno... Espero me escuchen la petición
×