Pagina 1 van 2

Onderschrift (hyperlink) niet zichtbaar voor guest user

Geplaatst: 09 mei 2004, 12:42
door Dennis
Hoe kan ik er voorzorgen dat een gast de footer txt / Onderschrift niet zichtbaar is.

In templates/subSilver/viewtopic_body.tpl zet dit {postrow.SIGNATURE} het onderschrift.

Iemand een idee??





Dennis

Geplaatst: 09 mei 2004, 12:46
door Luuk
ik denk zo:

open viewtopic_body.tpl
zoek {postrow.SIGNATURE}
zet dit ervoor in de plaats:
<!-- BEGIN switch_user_logged_in -->
{postrow.SIGNATURE}
<!-- END switch_user_logged_in -->

zorg er wel even voor dat BEGIN op een nieuwe regel staat en wat na END komt ook op een nieuwe regel staat.

Geplaatst: 09 mei 2004, 12:52
door Dennis
Nope.... dan is het hele bericht leeg.

Is het hierin te zoeken??

Als ik in viewtopic.php dit
// 'SIGNATURE' => $user_sig,
"uitzet" dan wordt het niet weergegeven
Kun je daar een if ( $poster_id != ANONYMOUS ) aankoppelen???

Geplaatst: 09 mei 2004, 13:21
door Dennis
Je zou dus de default settings (GUEST) moeten aanpassen...

Denk ik???
Dat je dan $board_config['allow_sig'] of zoiets op UIT zet?

Geplaatst: 09 mei 2004, 13:37
door Luuk
Open viewtopic.php
Zoek

Code: Selecteer alles

$user_sig = ( $postrow[$i]['enable_sig'] && $postrow[$i]['user_sig'] != '' && $board_config['allow_sig'] ) ? $postrow[$i]['user_sig'] : '';
Before, add

Code: Selecteer alles

	if ( $userdata['user_id'] == ANONYMOUS )
	{
	   $user_sig = '';
	}
	else
	{
After, add

Geplaatst: 09 mei 2004, 13:43
door mosymuis
DAMnet schreef:Je zou dus de default settings (GUEST) moeten aanpassen...

Denk ik???
Dat je dan $board_config['allow_sig'] of zoiets op UIT zet?
Dat heeft geen effect, $board_config['allow_sig'] beïnvloed alleen je eigen signature, dus of het "Onderschrift gebruiken" hokje tijdens het posten standaard uit of aan staat.

DAMnet schreef:Als ik in viewtopic.php dit
//

Code: Selecteer alles

'SIGNATURE' => $user_sig,
[/b]
"uitzet" dan wordt het niet weergegeven
Kun je daar een if ( $poster_id != ANONYMOUS ) aankoppelen???
Dat kan, dan krijg je dit:

Code: Selecteer alles

'SIGNATURE' => ( $userdata['session_logged_in'] ) ? $user_sig : '',
Maar Luuk's oplossing had ook al moeten werken, waarschijnlijk heb je de swicthes niet op eigen regels geplaatst. Dit is verplicht om ze te laten werken.

Geplaatst: 09 mei 2004, 13:43
door Dennis
THANKS!!!!!!! :bier: :bier:

Het werkt..... (the add, after..... optie)

Dennis

Geplaatst: 28 jun 2004, 16:09
door Dennis
Ik ben weer een middagje aan het PHPen, maar stuit op een probleem.

Waarom geeft dit een error??
in bbcode.tpl

Code: Selecteer alles

if ( $userdata['user_id'] == ANONYMOUS ) 
{ 
<!-- BEGIN url --><a href="{URL}" target="_blank" class="postlink">{DESCRIPTION}</a><!-- END url -->
} 
else 
{
<!-- BEGIN url --><a href="{URL}" target="_blank" class="postlink">{DESCRIPTION}</a><!-- END url -->
}
en dit ook

Code: Selecteer alles

<!-- BEGIN switch_user_logged_in --> 
<!-- BEGIN url --><a href="{URL}" target="_blank" class="postlink">{DESCRIPTION}</a><!-- END url -->
<!-- END switch_user_logged_in --> 
en ook dit in bbcode.php

Code: Selecteer alles

	// We do URLs in several different ways..
<!-- BEGIN switch_user_logged_in --> 
	$bbcode_tpl['url1'] = str_replace('{URL}', '\\1', $bbcode_tpl['url']);
	$bbcode_tpl['url1'] = str_replace('{DESCRIPTION}', '\\1', $bbcode_tpl['url1']);
<!-- END switch_user_logged_in --> 
En waarin dit geen effect geeft als ik wel of niet ingelogt bent.

Code: Selecteer alles

	// We do URLs in several different ways..
   if ( $userdata['user_id'] == ANONYMOUS ) 
   { 
   
	$bbcode_tpl['url1'] = str_replace('{URL}', '\\1', $bbcode_tpl['url']);
	$bbcode_tpl['url1'] = str_replace('{DESCRIPTION}', '\\1', $bbcode_tpl['url1']);
} 
  else 
   { 
	// $bbcode_tpl['url1'] = str_replace('{URL}', '\\1', $bbcode_tpl['url']);
	// $bbcode_tpl['url1'] = str_replace('{DESCRIPTION}', '\\1', $bbcode_tpl['url1']);
}
Ik denk dat het antwoord dicht in de buurt ligt, omdat in andere situaties het wel werkt.

Dennis

Geplaatst: 28 jun 2004, 17:38
door mosymuis
DAMnet schreef:in bbcode.tpl

Code: Selecteer alles

if ( $userdata['user_id'] == ANONYMOUS ) 
{ 
<!-- BEGIN url --><a href="{URL}" target="_blank" class="postlink">{DESCRIPTION}</a><!-- END url -->
} 
else 
{
<!-- BEGIN url --><a href="{URL}" target="_blank" class="postlink">{DESCRIPTION}</a><!-- END url -->
}

Code: Selecteer alles

<!-- BEGIN switch_user_logged_in --> 
<!-- BEGIN url --><a href="{URL}" target="_blank" class="postlink">{DESCRIPTION}</a><!-- END url -->
<!-- END switch_user_logged_in --> 
Je gebruikt PHP in de TPL (HTML) bestanden, dat haalt niets uit. Bovendien betwijfel ik of de switch_user_logged_in switches beschikaar zijn binnen de bbcode template.

DAMnet schreef:en ook dit in bbcode.php

Code: Selecteer alles

	// We do URLs in several different ways..
<!-- BEGIN switch_user_logged_in --> 
	$bbcode_tpl['url1'] = str_replace('{URL}', '\\1', $bbcode_tpl['url']);
	$bbcode_tpl['url1'] = str_replace('{DESCRIPTION}', '\\1', $bbcode_tpl['url1']);
<!-- END switch_user_logged_in --> 
Hier gebruik je HTML binnen een PHP script, dat is fataal. Het kan ook niet werken; die switches worden pas omgezet als de template geparsed wordt. Hier moet je dus de PHP constructie if ( $userdata['session_logged_in'] ) gebruiken.

DAMnet schreef:En waarin dit geen effect geeft als ik wel of niet ingelogt bent.

Code: Selecteer alles

	// We do URLs in several different ways..
   if ( $userdata['user_id'] == ANONYMOUS ) 
   { 
   
	$bbcode_tpl['url1'] = str_replace('{URL}', '\\1', $bbcode_tpl['url']);
	$bbcode_tpl['url1'] = str_replace('{DESCRIPTION}', '\\1', $bbcode_tpl['url1']);
} 
  else 
   { 
	// $bbcode_tpl['url1'] = str_replace('{URL}', '\\1', $bbcode_tpl['url']);
	// $bbcode_tpl['url1'] = str_replace('{DESCRIPTION}', '\\1', $bbcode_tpl['url1']);
}
Dat is zo niet te zeggen, je zou door middel van echo, print of die() moeten proberen te achterhalen welke voorwaardelijke stap hij kiest, en waarom. Als dit in een functie staat moet je eerst eens bekijken of hij de $userdata array heeft geladen met global.

Geplaatst: 28 jun 2004, 20:37
door Dennis
Ik krijg het nog niet voor elkaar :(
Kan ik niet rechtsstreeks in de dbase laten kijken

We weten immers dat iedere user zijn eigen user_id heeft.
Anonymouse heeft -1 als id.


Of is het onmogelijk wat ik wil.

Dennis

Geplaatst: 28 jun 2004, 21:31
door mosymuis
Wat wil je dan? De sigs voor gasten verbergen lukte toch al?

Geplaatst: 28 jun 2004, 22:02
door Dennis
Nope, de URL's :lol: (die gemarkeerd zijn als [url]

Geplaatst: 28 jun 2004, 22:06
door mosymuis
Die mogen ze niet zien, of die mogen ze niet posten? :?: En waarom zou je dat willen?

Geplaatst: 28 jun 2004, 22:07
door Dennis
Waar de if ( $userdata['user_id'] == ANONYMOUS ) wel werkt is boven de

Code: Selecteer alles

//
// Parse message and/or sig for BBCode if reqd
//
in viewtopic.php

Maar ga morgen weer verder stoeien...

Geplaatst: 28 jun 2004, 22:09
door Dennis
mosymuis schreef:Die mogen ze niet zien, of die mogen ze niet posten? :?: En waarom zou je dat willen?

Leek me wel een leuke uitdaging :D

Wat ik wilde was, dat alleen als je ingelogt bent geposte urls kan zien. Dus dat als er verwijzingen staan naar een andere site, dat je dan in moet loggen.

(optie zal niet werken als je hem niet gemarkeerd hebt met [url])

Geplaatst: 29 jun 2004, 07:48
door mosymuis
DAMnet schreef:Wat ik wilde was, dat alleen als je ingelogt bent geposte urls kan zien. Dus dat als er verwijzingen staan naar een andere site, dat je dan in moet loggen.

(optie zal niet werken als je hem niet gemarkeerd hebt met [url])
Aah, maar dat is simpel. Daarvoor hoef je niet in bbcode.php te stunten.

Open
viewtopic.php

Zoek

Code: Selecteer alles

		if ( $bbcode_uid != '' )
Plaats daarboven

Code: Selecteer alles

		if ( !$userdata['session_logged_in'] )
		{		
			$message = preg_replace("#\[url=([^ \"\n\r\t<]*)\]([^ \"\n\r\t<]*)\[/url\]#is", '\\2', $message);
			$message = preg_replace("#\[url\]([^ \"\n\r\t<]*)\[/url\]#is", '\\1', $message);
		}
Open
privmsg.php

Zoek

Code: Selecteer alles

	if ( $bbcode_uid != '' )
Plaats daarboven

Code: Selecteer alles

	if ( !$userdata['session_logged_in'] )
	{		
		$private_message = preg_replace("#\[url=([^ \"\n\r\t<]*)\]([^ \"\n\r\t<]*)\[/url\]#is", '\\2', $private_message);
		$private_message = preg_replace("#\[url\]([^ \"\n\r\t<]*)\[/url\]#is", '\\1', $private_message);
	}

Geplaatst: 01 jul 2004, 18:25
door Dennis
Open
viewtopic.php

Zoek

Code: Selecteer alles

      if ( $bbcode_uid != '' ) 
Plaats daarboven

Code: Selecteer alles

      if ( !$userdata['session_logged_in'] ) 
      {       
         $message = preg_replace("#\[url=([^ \"\n\r\t<]*)\]([^ \"\n\r\t<]*)\[/url\]#is", '\\2', $message); 
         $message = preg_replace("#\[url\]([^ \"\n\r\t<]*)\[/url\]#is", '\\1', $message); 
      }
Als ik dit toepas, zie ik alleen verschil dat hij dus de en weg laat (bij inlog of guest), maar de hyperlinks blijven er gewoon staan, zijn dus zichtbaar.
Ook de http://damnet.nl/forum/index.php moet dan bijvoorbeeld ook niet zichtbaar zijn.

Dennis

Geplaatst: 01 jul 2004, 19:00
door mosymuis
Verwijder dan de stukjes
en
uit de preg_replace functies.

Geplaatst: 01 jul 2004, 19:02
door Dennis
Jij bent GOED!!!!!!!! :thumb: :thumb:

Werkt

Thanks

Geplaatst: 06 jul 2005, 22:01
door Dennis
(Mosymuis)

Als ik

Code: Selecteer alles

[url=http://earth.google.com/][u]Google Earth – Explore, Search and Discover [/u][/url] 
ingeeft, werkt het niet.
Dat komt omdat de 'naam' van de url niet aan ééngesloten tekst is.

Zal denk ik in de replace ook naar een spatie moeten kijken??
Hoe kan ik dat doen??

Dennis