Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz
  • 0

[TuT] Kilka tutoriali


Marcoly

Pytanie

Opublikowano

Krótki poradnik jak usunąć ten wkurwiający komunikat o braku klucza licencyjnego:

NVZcgp6.png
Nulledy zapewne mają to wbudowane, ale ja tam wolę to wszystko zrobić samemu.
Udajemy się do ścieżki: admin\skin_cp, otwieramy plik cp_skin_global.php.
Wyszukujemy:


if( !$this->settings['ipb_reg_number'] )
{
$this->lang->words['license_missing_info'] = sprintf( $this->lang->words['license_missing_info'], $this->settings['base_url'] . 'app=core&module=tools&section=licensekey' );
$extra_class = 'force_license';
$license_html = <<<HTML
<div id='license_notice_force'>
<h4>{$this->lang->words['license_missing_header']}</h4>
<p>{$this->lang->words['license_missing_info']}</p>
</div>
HTML;
}
else
{
$licenseData = $this->cache->getCache( 'licenseData' );
if( ( !$licenseData OR !$licenseData['key']['_expires'] OR $licenseData['key']['_expires'] < IPS_UNIX_TIME_NOW and $licenseData['key']['_expires'] != -1 ) AND !IPSCookie::get( 'ignore-license-notice' ) )
{
if ( $licenseData['_cached_date'] < $licenseData['key']['_expires'] )
{
$this->cache->rebuildCache( 'licenseData' );
}
else
{
$extra_class = 'expired_license';
$license_html = <<<HTML
<div id='license_notice_expired'>
<div class='right'><a id='license-close' href='#'>Close</a></div>
<h4>{$this->lang->words['license_expired_header']}</h4>
<p>{$this->lang->words['license_expired_info']}</p>
</div>
HTML;
}
}
}


Możemy to usunąć/zakomentować, w ten sposób (dodając /* na początku i */ na końcu warunku):


/* if( !$this->settings['ipb_reg_number'] )
{
$this->lang->words['license_missing_info'] = sprintf( $this->lang->words['license_missing_info'], $this->settings['base_url'] . 'app=core&module=tools&section=licensekey' );
$extra_class = 'force_license';
$license_html = <<<HTML
<div id='license_notice_force'>
<h4>{$this->lang->words['license_missing_header']}</h4>
<p>{$this->lang->words['license_missing_info']}</p>
</div>
HTML;
}
else
{
$licenseData = $this->cache->getCache( 'licenseData' );
if( ( !$licenseData OR !$licenseData['key']['_expires'] OR $licenseData['key']['_expires'] < IPS_UNIX_TIME_NOW and $licenseData['key']['_expires'] != -1 ) AND !IPSCookie::get( 'ignore-license-notice' ) )
{
if ( $licenseData['_cached_date'] < $licenseData['key']['_expires'] )
{
$this->cache->rebuildCache( 'licenseData' );
}
else
{
$extra_class = 'expired_license';
$license_html = <<<HTML
<div id='license_notice_expired'>
<div class='right'><a id='license-close' href='#'>Close</a></div>
<h4>{$this->lang->words['license_expired_header']}</h4>
<p>{$this->lang->words['license_expired_info']}</p>
</div>
HTML;
}
}
}
*/

 


 

Informacja: Wszystkie inne poradniki o takiej samej treści to zwykłe kopie. Pierwszy, oryginalny tutorial został napisany 22 marca 2012 roku.
Wejdź do:
ACP > Wygląd > {nazwa stylu} > Globalne szablony > UserInfoPane.
Znajdź:
<li class='post_count desc lighter'>
                    {parse expression="$this->registry->getClass('class_localization')->formatNumber( intval( $author['posts'] ) )"} {$this->lang->words['m_posts']}
            </li>
            </if>
    </ul>
Pomiędzy:
           </if>
    </ul>
Dodaj:
<span class='post_count desc lighter'>Dołączył:</span> <span class='post_count desc lighter'>{parse date="$author['joined']" format="joined"}</span>
Lub użyj modyfikacji (SOS34) Enhanced Joined Date 1.1.0.

Informacja: Wszystkie inne poradniki o takiej samej treści to zwykłe kopie. Pierwszy, oryginalny tutorial został napisany 22 marca 2012 roku.
Wejdź do:
ACP > Wygląd > {nazwa stylu} > Główne szablony > userInfoPane
Znajdź:
<if test="authorcfields:|:$author['custom_fields'] != """>
        <ul class='custom_fields'>
            <foreach loop="customFieldsOuter:$author['custom_fields'] as $group => $data">
                <foreach loop="customFields:$author['custom_fields'][ $group ] as $field">
                    <if test="$field != ''">
                        <li>
                            {$field}
                        </li>
                    </if>
                </foreach>
            </foreach>
        </ul>
    </if>
 
Pod tym dodaj:
<if test="RepPositive:|:$author['pp_reputation_points'] > 0">
<div class="reputation positive"><div style="font-size:1.1em">Reputacja: {parse expression="$this->lang->formatNumber( intval( $author['pp_reputation_points'] ) )"}</div>
</div>
</if>
<if test="RepNegative:|:$author['pp_reputation_points'] < 0">
<div class="reputation negative"><div style="font-size:1.1em">Reputacja: {parse expression="$this->lang->formatNumber( intval( $author['pp_reputation_points'] ) )"}</div>
</div>
</if>
<if test="RepZero:|:$author['pp_reputation_points'] == 0">
<div class="reputation zero"><div style="font-size:1.1em">Reputacja: {parse expression="$this->lang->formatNumber( intval( $author['pp_reputation_points'] ) )"}</div>
</div>
</if>
</div>

Rekomendowane odpowiedzi

Opublikowano

Ciekawie. Szkoda, że zakaz jest udostępnienia tego pliku (chyba, bo nie wiem, czy to też się liczy)

 

Mi niestety nie działa ;(


@EDIT

Dobra. Źle skomentowałem ten fragment :D No na localhost mi nie sprawia problemów, ale jak mówię - lepiej kupić licencję, nawet zużytą :) Na Invisionize często ktoś odsprzedaje. Z dostępem do konta na IPSie ;)

Potrzebujesz pomocy z hostingiem? Daj znać poprzez Telegram lub Priv!

Opublikowano

Testowane i działa na najnowszej wersji

 

 


Nie, po prostu zniknie ten czerwony komunikat z ACP, jednak będzie widać to:
GwleClY.png

Masz do tego

 

Znajdź plik dashboardNotifications a on jest w -> admin/applications/core/extensions

 

/// Znajdź (Linia 54) ///

 

if( ! $this->settings['ipb_reg_number'] )

 

/// przed if dodaj /* aby było ///

 

/*if( ! $this->settings['ipb_reg_number'] )

 

/// Znajdź ///

 

$entries[] = array( $this->lang->words['spam_service_disabled'], $this->lang->words['spam_service_disabled_msg'] );
break;
}
}
}

}
}
}

 

/// Zamień ///

 

$entries[] = array( $this->lang->words['spam_service_disabled'], $this->lang->words['spam_service_disabled_msg'] );
break;
}
}
}

}
}
}*/

 

/// Całość ma wyglądać tak : ///

 

/*if( ! $this->settings['ipb_reg_number'] )
{
$entries[] = array( $this->lang->words['lc_title_nokey'], sprintf( $this->lang->words['lc_msg_nokey'], "{$this->settings['base_url']}module=tools&section=licensekey" ) );
}
else
{
/* We need a classFileManagement object
$classToLoad = IPSLib::loadLibrary( IPS_KERNEL_PATH . 'classFileManagement.php', 'classFileManagement' );
$classFileManagement = new $classToLoad();

/* Try to automatically update if expired
$licenseData = $this->cache->getCache( 'licenseData' );

if( ! $licenseData || ( $licenseData['key']['_expires'] != 9999999999 AND $licenseData['key']['_expires'] < IPS_UNIX_TIME_NOW ) )
{
/* Query the api
$response = $classFileManagement->getFileContents( "http://license.invisionpower.com/?a=info&key={$this->settings['ipb_reg_number']}&url={$this->settings['board_url']}&flush=1" );

if ( $response == 'NO_KEY' )
{
$this->DB->update( 'core_sys_conf_settings', array( 'conf_value' => '' ), "conf_key='ipb_reg_number'" );
$this->cache->rebuildCache( 'settings', 'global' );
$this->cache->setCache( 'licenseData', array(), array( 'array' => 1 ) );
}
else
{
/* Get License Data
$licenseData = json_decode( $response, true );

/* Copyright Removal?
if ( $licenseData['cr'] )
{
IPSLib::updateSettings( array( 'ipb_copy_number' => $licenseData['cr'], 'ips_cp_purchase' => 1 ) );
}
elseif ( $this->settings['ips_cp_purchase'] )
{
IPSLib::updateSettings( array( 'ips_cp_purchase' => 0 ) );
}

/* Save to cache
$licenseData['_cached_date'] = time();
$licenseData['key']['_expires'] = $licenseData['key']['_expires'] ? $licenseData['key']['_expires'] : 9999999999;
$licenseData['key']['expires'] = $licenseData['key']['expires'] ? $licenseData['key']['expires'] : 9999999999;

$this->cache->setCache( 'licenseData', $licenseData, array( 'array' => 1 ) );
}
}

/* Query the api
$response = $classFileManagement->getFileContents( "http://license.invisionpower.com/?a=check&key={$this->settings['ipb_reg_number']}&url={$this->settings['board_url']}" );

/* Get License Data
$response = json_decode( $response, true );

if( $response['result'] != 'ok' )
{
if( $this->lang->words[ 'lc_title_' . $response['error'] ] && $this->lang->words[ 'lc_msg_' . $response['error'] ] )
{
$entries[] = array( $this->lang->words[ 'lc_title_' . $response['error'] ], sprintf( $this->lang->words[ 'lc_msg_' . $response['error'] ], $this->settings['board_url'] ) );
}
else
{
$entries[] = array( $this->lang->words['ipboardlicenseerror'], $response['error'] ? $response['error'] : sprintf( $this->lang->words['licensenocomm'], $this->settings['base_url'] . "app=core&module=diagnostics&section=diagnostics&do=connections" ) );
}
}
else
{
/* Is the Spam Service Working?
if ( $this->settings['spam_service_enabled'] )
{
//$lastLog = $this->DB->buildAndFetch( array( 'select' => 'log_code', 'from' => 'spam_service_log', 'order' => 'id DESC', 'limit' => 1 ) ); // Order on ID since log_date has no index

//if ( $lastLog['log_code'] === '0' )

/* Get last 5 logs, and if all 5 are errors, show message
$_errors = 0;
$_entries = 0;
$_lastError = '';

$this->DB->build( array( 'select' => 'log_code, log_msg', 'from' => 'spam_service_log', 'order' => 'id DESC', 'limit' => 5 ) );
$this->DB->execute();

while( $_r = $this->DB->fetch() )
{
$_entries++;

if( $_r['log_code'] === '0' )
{
$_errors++;

if( !$_lastError )
{
$_lastError = $_r['log_msg'];
}
}
}

if( $_entries > 0 && $_errors == $_entries )
{
$entries[] = array( $this->lang->words['spam_service_error'], sprintf( $this->lang->words['spam_service_error_msg'], $_lastError ) );
}
}
/* If it's disabled, are we entitiled to it?
else
{
$licenseData = $this->cache->getCache( 'licenseData' );

if ( is_array( $licenseData['ipbMain'] ) && count( $licenseData['ipbMain'] ) )
{
foreach ( $licenseData['ipbMain'] as $data )
{
if ( $data['name'] == 'Spam Monitoring Service' && $data['status'] == 'Ok' )
{
$entries[] = array( $this->lang->words['spam_service_disabled'], $this->lang->words['spam_service_disabled_msg'] );
break;
}
}
}

}
}
}*/

 

Pamiętaj żeby usunąć takie znaczki /* które masz wcześniej aby kod wyświetlił ci się na zielono jeśli używasz notepad ++

 

Opublikowano

Czy to przypadkiem nie jest łamanie warunków licencji? A no tak... Jej nie macie...

 

A wiesz jak ominąć też ten czerwony na dole? Nie mam retaila, więc dla mnie poradnik nie przydatny, ale może komuś i tamten przeszkadza ;)

 

 

@EDIT

Specjalnie sprawdziłem, czy działa to pod 3.4.3 BETA oraz 3.4.2 - Nie działa ;)

Potrzebujesz pomocy z hostingiem? Daj znać poprzez Telegram lub Priv!

Opublikowano

Tya. Zazwyczaj osoby z dostępem do ACP są osobami wtajemniczonymi ;) Zwykły user przecież tam nie ma dostepu :)

Potrzebujesz pomocy z hostingiem? Daj znać poprzez Telegram lub Priv!

Opublikowano

jeden koleś lata na Retailu tyle miesięcy i żadnych błędów nie ma :) więc jeśli dobrze jest skonfigurowany IPB nie ma szans żeby coś się psuło :)

Opublikowano

Dodam też, że po roku czasu praktycznie nie opłaca się u nich brać hostingu, gdyż cenowo wychodzi NAPRAWDĘ drogo. Postawienie forum to koszt około 150zł + Licencja, czyli około 750zł. Ale licencję masz na zawsze i jak Ci plan nie wypali to możesz ją odsprzedać, a tutaj niestety - licencja jest ich :)

Potrzebujesz pomocy z hostingiem? Daj znać poprzez Telegram lub Priv!

Opublikowano

Czy oni mnie mogą za to zamknąć? Jakaś grzywna czy cos?

I tak nikt nie sprawdzi Ci ACP, ponieważ nie ma do niego passów.

1375884335-U390809.png

Blue Member

Opublikowano

jeden koleś lata na Retailu tyle miesięcy i żadnych błędów nie ma :) więc jeśli dobrze jest skonfigurowany IPB nie ma szans żeby coś się psuło :)

Prawda jest taka, że po retailu nic widać, bo w końcu co się ma widzieć po czystych plikach IPS :)

Opublikowano

Testowałem przed chwilą, wystarczy zakomentować to tylko tak:

/* if( ! $this->settings['ipb_reg_number'] )
		{
			$entries[] = array( $this->lang->words['lc_title_nokey'], sprintf( $this->lang->words['lc_msg_nokey'], "{$this->settings['base_url']}module=tools&section=licensekey" ) );
		}
		else */

 

Inne informacje typu wykryto folder upgradeFinish wyświetlają się, więc jest ok.

Like.

Opublikowano

Przynajmniej nie dostaje się oczopląsów podczas użytkowania ACP. (:

@down2 600 zł wyłóż :)

Opublikowano

Tak, ale to też nie pozwoli na ewentualne późniejsze informowanie o błędach :)

Potrzebujesz pomocy z hostingiem? Daj znać poprzez Telegram lub Priv!

Opublikowano

To tylko pokazówka ;)

 

Akurat to było dobre, gdy miałeś wersje 3.2 i niżesze, ale teraz robisz tam co chcesz ;)

Potrzebujesz pomocy z hostingiem? Daj znać poprzez Telegram lub Priv!

Opublikowano

 

Dodam też, że po roku czasu praktycznie nie opłaca się u nich brać hostingu, gdyż cenowo wychodzi NAPRAWDĘ drogo. Postawienie forum to koszt około 150zł + Licencja, czyli około 750zł. Ale licencję masz na zawsze i jak Ci plan nie wypali to możesz ją odsprzedać, a tutaj niestety - licencja jest ich :)

Warto dodać, że używana licencja ma stałą wartość około 300 zł, a jeśli IPS podniesie cenę to my robimy to samo. ;)

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...