Avatar billede kiwankow Nybegynder
13. november 2009 - 10:07 Der er 10 kommentarer og
1 løsning

autoformatering af links i textarea

Hej

Jeg er løbet ind i et problem som jeg ikke kan løse så jeg håber der er nogen der kan hjælpe mig.

Jeg har et input type text, som vises på en anden side således: {$user.Links|nl2br}

Jeg kunne godt tænke mig at de indtastede links blev konverteret til klikbare links og ikke bare statisk tekst.

<?PHP
$user.Links = $_POST['user.Links'];
echo '<a href="'.$user.Links.'">'.$user.Links.'</a>';
?>

Ovenstående virker,men problemet er at den laver alt tekst til et link, og den skulle gerne skifte til et nyt link hver gang der er et <br />
Avatar billede repox Seniormester
13. november 2009 - 10:44 #1


<?php
  $user.Links = $_POST["user.Links"];
  $user.Links = preg_replace("#((http|https|ftp)://(\S*?\.\S*?))(\s|\;|\)|\]|\[|\{|\}|,|\"|'|:|\<|$|\.\s)#ie", "'<a href=\"$1\">$3</a>$4'", $user.Links);
  echo $user.Links;
?>

Avatar billede kiwankow Nybegynder
14. november 2009 - 12:21 #2
deasværre går det helt galt. Det eneste der virker lige nu er

{$user.Links|nl2br} som giver følgende udskrift

www.link1.dk
www.link2.dk
www.link3.dk

men kun som ren tekst og ikke som links
Avatar billede kiwankow Nybegynder
14. november 2009 - 12:22 #3
Jeg kan forøvrigt se at funktionen virker her på eksperten.dk

for når jeg skriver www.link1.dk bliver det postet som et link :-)
Avatar billede repox Seniormester
14. november 2009 - 20:18 #4
Altså, jeg aner ikke hvad det er for en vrøvle syntaks du bruger - det er ikke almindelig php i hvert fald.
Den reg exp jeg gav i #1 fungerer.
Avatar billede kiwankow Nybegynder
15. november 2009 - 10:42 #5
Det er fra et template system der kalder fra endatabase
Avatar billede kashmir0999 Nybegynder
15. november 2009 - 11:54 #6
brug en foreach sætning...

eg.

$link = $_POST['user.Links'];
foreach ( $link AS $user.Links )
          { echo '<a href="'.$user.Links.'">'.$user.Links.'</a>'; </br>}


Du må gerne specificere lidt mere hvis du kan...
Avatar billede kiwankow Nybegynder
15. november 2009 - 12:15 #7
min .tpl fil ser således ud:

{foreach from=$errors key=error item=message}
{if $error == 'USERNAME_NOT_SPECIFIED'}
    <p class="error">Username is not specified</p>
{elseif $error == 'WRONG_USERNAME_SPECIFIED'}
    <p class="error">Wrong username is specified</p>
{/if}
{/foreach}
{if $user != null}

<table>
<tr>

<td>
<b><u>Links</u></b><br />
{$user.Links|nl2br}

</td>
</tr>
</table>

{/if}
Avatar billede dkfire Nybegynder
15. november 2009 - 17:04 #8
Og hvordan ser den php fil ud som bruger din .tpl fil ?
Avatar billede kiwankow Nybegynder
15. november 2009 - 18:48 #9
min config.php indeholder:

'user_links' => array
(
'display_name'    => 'User Profile',
'script'    => 'user_links.php',
'type'        => 'user',
'access_type'    => array('user'),
'raw_output'    => false,
),

user_links.php indeholder:

<?php
require_once("users/User/UserManager.php");
$errors = array();
$user_info = null;
$username = isset($_REQUEST['username']) ? $_REQUEST['username'] : null;
if (is_null($username))
{
    $errors['USERNAME_NOT_SPECIFIED'] = 1;
}
elseif (is_null($user_sid = UserManager::getUserSIDbyUsername($username)))
{
    $errors['WRONG_USERNAME_SPECIFIED'] = 1;
}
else
{
    $user = UserManager::getObjectBySID($user_sid);
    $user_info = UserManager::createTemplateStructureForUser($user);
}
$template_processor = System::getTemplateProcessor();
$template_processor->assign('user', $user_info);
$template_processor->assign('errors', $errors);
$template_processor->display('user_links.tpl');
?>

håber du kan brugedet til noget for jeg kan ikke gennmskue det :-)
Avatar billede dkfire Nybegynder
15. november 2009 - 21:41 #10
Lad mig gætte, du bruger et eller andet færdiglavet CMS system.

Tror det bliver enormt svært at hjælpe dig igennem hvis du ikke forstår din php kode.
Avatar billede kiwankow Nybegynder
20. august 2010 - 13:46 #11
lukket
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester