Odpowiedz 
Kod widoczny tylko dla zarejestrowanych
10.07.2010, 23:02
Post: #1
Kod widoczny tylko dla zarejestrowanych
Witam serdecznie.

Mam takie pytanie: czy da się zrobić MyCode ,który w znacznikach np [hide] pokazywałby tekst tylko dla zarejestrowanych użytkowników ,a dla gości wyświetlał by napis np "Zaloguj się aby przeczytać treść".

Da się coś takiego zrobić ? Jeżeli tak to proszę o pomoc Smile

[Obrazek: 31349.png]
[Obrazek: 28026.jpg]
Znajdź wszystkie posty użytkownika
Odpowiedz cytując ten post



10.07.2010, 23:49
Post: #2
RE: Kod widoczny tylko dla zarejestrowanych
Zobacz http://mods.mybboard.net/view/scd-code-h...d-plugin-2

Odwiedź stronę użytkownika Znajdź wszystkie posty użytkownika
Odpowiedz cytując ten post
11.07.2010, 16:49 (Ten post był ostatnio modyfikowany: 11.07.2010 16:51 przez Tidusek.)
Post: #3
RE: Kod widoczny tylko dla zarejestrowanych
To w takim razie mam następne pytanie ciutke przerobiłem ten plugin (mianowicie to dodałem tylko hide w 124 linijce) i teraz to wygląda tak:

Kod PHP:
<?php
/*
 *
 * SCD Guest Code Hide Plugin 1.1
 * Developed by Dylan Myers (dylanspcs@gmail.com)
 * For Skin City Designs, Free MyBB Plugins Category
 * Copyright Skin City Designs
 *
 */

// Disallow direct access to this file for security reasons
if(!defined("IN_MYBB"))
{
    die(
"Direct initialization of this file is not allowed.<br /><br />Please make sure IN_MYBB is defined.");
}

$plugins->add_hook("parse_message_end""scd_code_hide_parse_message");
$plugins->add_hook("pre_output_page""scd_code_hide_parse_reply");

function 
scd_code_hide_info()
{
    return array(
        
"name"                => "SCD Code Hide (Free SCD Plugin)",
        
"description"        => "When Activated It Will Hide The Contents Of Code and PHP Tags In Your Posts From Selected Groups.",
        
"website"            => "http://www.skincitydesigns.com",
        
"author"                => "Dylan Myers",
        
"authorsite"        => "http://www.skincitydesigns.com",
        
"version"                => "1.1",
        
"guid"                    => "d7c1c362799826b1b772efa874be1d54",
        
"compatibility"     => "14*",
    );
}

function 
scd_code_hide_activate()
{
    global 
$db$mybb;

    
$scd_code_hide_group = array(
        
"gid"                => "NULL",
        
"name"            => "scd_code_hide",
        
"title"                => "SCD Code Hide",
        
"description"    => "Hide The Contents Of Code and PHP Tags In Your Posts From Selected Groups.",
        
"disporder"        => "40",
        
"isdefault"        => "no",
    );
    
$db->insert_query("settinggroups"$scd_code_hide_group);
    
$gid $db->insert_id();
    
    
$scd_code_hide_setting_1 = array(
        
"sid"                => "NULL",
        
"name"            => "scd_code_hide_groups",
        
"title"                => "Comma separated list of groups you wish to have the code and php boxes hidden from.",
        
"description"    => "Please enter a comma separated list of groups.",
        
"optionscode"    => "text",
        
"value"            => "1",
        
"disporder"        => "1",
        
"gid"                => intval($gid),
        );
    
$db->insert_query("settings"$scd_code_hide_setting_1);
    
    
$scd_code_hide_setting_1 = array(
        
"sid"                => "NULL",
        
"name"            => "scd_code_hide_text",
        
"title"                => "Text to be displayed to the blocked groups.",
        
"description"    => "Please enter the text you wish to be displayed.",
        
"optionscode"    => "textarea",
        
"value"            => "This Contents Of This Code Block Are Hidden For Your Group",
        
"disporder"        => "1",
        
"gid"                => intval($gid),
        );
    
$db->insert_query("settings"$scd_code_hide_setting_1);
    
    
rebuild_settings();
}

function 
scd_code_hide_deactivate()
{
    global 
$db$mybb;
    
    
$db->delete_query("settings","name IN('scd_code_hide_groups', 'scd_code_hide_text')");
    
$db->delete_query("settinggroups""name = 'scd_code_hide'");
    
    
rebuild_settings();
}

function 
scd_code_hide_parse_message($message)
{
    global 
$db$mybb$cache$lang;

    
$hidden 0;

    
// Parse the message for code tags, and replace the contents with a little message.
    
if(in_array($mybb->user['usergroup'], explode(","$mybb->settings['scd_code_hide_groups'])))
    {
        
$message preg_replace('#\<code\>(.*?)\</code\>#''<code><span style="color: red;">'.$mybb->settings['scd_code_hide_text'].'</span></code>'$message);
        
$hidden 1;
    }
    
    if(
$hidden == 1)
    {
        return 
$message;
    }
    
    foreach(
explode(","$mybb->user['additionalgroups']) as $gid)
    {
        if(
in_array($gidexplode(","$mybb->settings['scd_code_hide_groups'])))
        {
            
$message preg_replace('#\<code\>(.*?)\</code\>#''<code><span style="color: red;">'.$mybb->settings['scd_code_hide_text'].'</span></code>'$message);
        }
    }
    
    return 
$message;
}

function 
scd_code_hide_parse_reply($page)
{
    global 
$db$mybb$cache$lang;

    
$hidden 0;

    
// Parse the message for code tags, and replace the contents with a little message.
    
if(in_array($mybb->user['usergroup'], explode(","$mybb->settings['scd_code_hide_groups'])))
    {
        
$page preg_replace('#\[(code|php|hide)\](.*?)\[/(code|php|hide)\]#''[$1]'.$mybb->settings['scd_code_hide_text'].'[/$3]'$page);
        
$hidden 1;
    }
    
    
// If we got it off their main group, we can exit here and save some parsing
    
if($hidden == 1)
    {
        return;
    }
    
    foreach(
explode(","$mybb->user['additionalgroups']) as $gid)
    {
        if(
in_array($gidexplode(","$mybb->settings['scd_code_hide_groups'])))
        {
            
$page preg_replace('#\[(code|php|hide)\](.*?)\[/(code|php|hide)\]#''[$1]'.$mybb->settings['scd_code_hide_text'].'[/$3]'$page);
        }
    }
    
    return;
}

?>

Jak przerobić i/lub napisać MyCode aby powstał blok (taki jak np cytat, kod itp) oraz aby ukrywał zawartość dla określonych w ACP grup tj. gości?


Załączone pliki
.php  scd_code_hide.php (Rozmiar: 4,39 KB / Pobrań: 2)

[Obrazek: 31349.png]
[Obrazek: 28026.jpg]
Znajdź wszystkie posty użytkownika
Odpowiedz cytując ten post
11.07.2010, 16:53
Post: #4
RE: Kod widoczny tylko dla zarejestrowanych
To jest już zaimplementowane. Wink Zajrzyj do konfiguracji wtyczki w ACP.

Postęp tłumaczenia: 96% [##############################]
[marines w sieci]> FB :: Launchpad :: Blog
Odwiedź stronę użytkownika Znajdź wszystkie posty użytkownika
Odpowiedz cytując ten post
11.07.2010, 16:56
Post: #5
RE: Kod widoczny tylko dla zarejestrowanych
Z całym szacunkiem ale w ACP jest tylko:
- id grupy ,której nie wolno zobaczyć zawartości bloków code i php,
- napis ,który będzie się wyświetlać dla tej/tych określonych wyżej grup,

Więcej nic nie ma... a mycode [hide] chce zrobić bo w nim można linki dawać ,a w code/php tylko adres ...

[Obrazek: 31349.png]
[Obrazek: 28026.jpg]
Znajdź wszystkie posty użytkownika
Odpowiedz cytując ten post
11.07.2010, 17:09 (Ten post był ostatnio modyfikowany: 11.07.2010 17:09 przez marines.)
Post: #6
RE: Kod widoczny tylko dla zarejestrowanych
Wyrażenie regularne:
Kod:
\[hide\](.*?)\[/hide\](\r\n?|\n?)
Zamiana (dostosuj do własnych upodobań):
Kod:
<div>$1</div>

Powinno działać.

Postęp tłumaczenia: 96% [##############################]
[marines w sieci]> FB :: Launchpad :: Blog
Odwiedź stronę użytkownika Znajdź wszystkie posty użytkownika
Odpowiedz cytując ten post
11.07.2010, 17:17
Post: #7
RE: Kod widoczny tylko dla zarejestrowanych
Wszystko ładnie tylko że jak tak zrobie to napis w tagach [hide] jest widoczny dla gości też (sprawdzałem) ...

Coś musi być inaczej niż teraz jest. Tylko co?

[Obrazek: 31349.png]
[Obrazek: 28026.jpg]
Znajdź wszystkie posty użytkownika
Odpowiedz cytując ten post
11.07.2010, 17:23
Post: #8
RE: Kod widoczny tylko dla zarejestrowanych
A, fakt. Z tego co widzę (potwornie napisana wtyczka) masz dwie możliwości: zmodyfikować wtyczkę, żeby wyszukiwała tag <div/> albo w polu "zamień" nowego MyCode użyj tagu <code/> zamiast <div/>.

Kod:
<code>$1</code>
A jak nie to będziemy próbować dalej.

Postęp tłumaczenia: 96% [##############################]
[marines w sieci]> FB :: Launchpad :: Blog
Odwiedź stronę użytkownika Znajdź wszystkie posty użytkownika
Odpowiedz cytując ten post
11.07.2010, 17:38
Post: #9
RE: Kod widoczny tylko dla zarejestrowanych
Dobra przerobiłem sobie na div'a (co trudne nie było Tongue) i wszystko byłoby cacy tylko ,że cholerstwo dalej nie chce linkować Sleepy tzn w [hide] daje jakiś link np http://www.mybbsite.pl i to jest zwykły tekst nie link ...

Na autolinkowanie jest jakiś kod/polecenie ?

[Obrazek: 31349.png]
[Obrazek: 28026.jpg]
Znajdź wszystkie posty użytkownika
Odpowiedz cytując ten post
18.07.2010, 19:54
Post: #10
RE: Kod widoczny tylko dla zarejestrowanych
Podrzuć wtyczkę, której używasz na swoim forum (wraz z modyfikacjami). Czy w nowym tagu parsuje się MyCode?

Postęp tłumaczenia: 96% [##############################]
[marines w sieci]> FB :: Launchpad :: Blog
Odwiedź stronę użytkownika Znajdź wszystkie posty użytkownika
Odpowiedz cytując ten post
Odpowiedz 


Skocz do:


Użytkownicy przeglądający ten wątek: 1 gości