Webprofis is een Forum waarin je vragen kunt stellen die webgerelateerd zijn. Heb je vragen over of problemen met je Webpagina, HTML, CSS, Javascript, PHP of andere client of serverside scriptingtalen? Stel ze dan gerust op dit forum. Op dit forum zijn een aantal vrijwilligers actief die u graag met uw vragen willen helpen en u waar mogelijk een passend antwoord aanbieden. Hebt u zelf veel ervaring en kennis met betrekking tot het bovenstaande? U bent van harte welkom om uw kennis met anderen te delen!

We hopen dat eenieder op dit Forum een leerzame ervaring mag opdoen.

Team Webprofis

verwijderen break tags na harde refresh

bewerkt do 8 jan 2015 in PHP, MySQL Posts: 879
Met het testen van code block op het subdomein loop ik tegen het volgende probleem aan:
Normaal is het zo als je in de textarea op Enter klikt hij er een break van maakt. Klik je 2 keer op Enter, dan worden er 2 break tags geparsed.
Dit werkt goed met plain text. Ga ik nu echter een code block toevoegen onder die plain text, laten we zeggen met 2 regels witrimte ertussen, dan zal ie in eerste instantie ook gewoon
die 2 regels als break verwerken.
De Geshi highlighting wordt dan nog niet weergegeven omdat die een harde refresh nodig heeft. Na deze harde refresh verschijnt de highlighting, maar... de break tags tussen de laatste plain text en het code block worden verwijderd.

In de bijlage 2 images die de situatie weergeven:

Mijn vraag: hoe kan ik dit nu het beste oplossen? Ik zit te denken aan 2 breaks parsen voor de [Selecteer Code] regel. Dat werkt goed maar als iemand nu direct een code block post zonder tekst erboven, dan worden er standaard 2 breaks geparsed wat niet nodig is; maw: de post begint met 2 witregels

(Kunt dit zelf uittesten op het subdomein; forum.webprofis.nl)



Reacties

  • PMPosts: 879
    Heb het enigszins kunnen oplossen door er een div omheen te zetten en een p tag ervoor. Door de div wordt [Selecteer Code] regel eronder gezet en niet meer ernaast. Bij code block alleen in topic krijgt die div geen break vooraf; de p maakt natuurlijk wel wat ruimte maar dat is acceptabel.

    $element_id = uniqid(); //generate unique ID
    $output = '';
    $output .='<p /><div class="selectable_anchor"><a rel="highlight'.$element_id.'" class="selectable">[Selecteer Code]</a></div>'; // assign unique ID to rel attribute

    $output .= "<div class='geshi_syntax'><table><tr>";
  • PMPosts: 106
    Ik snap niet goed wat er gebeurd, maar je kan de link ook als block element laten renderen zodat deze op de volgende regel komt.

    Waarvoor is de p precies nodig?
  • PMPosts: 879
    die p gebruik ik om de witruimte van de paragraph te kunnen gebruiken, zodat er iets meer ruimte tussen de laatste plain textregel staat en het codeblock. Als ik een break echo heb ik weer net iets teveel wit ruimte
  • Kun je dan niet de class selectable_anchor of selectable aanpassen met een margin-bottom ?
  • PMPosts: 879
    Ja daar had ik ook al bij nagedacht en ook met margin-top, maar dat levert per saldo niets op toch?
    Stel ik echo 2 break tags, dan heb ik genoeg witruimte onder de laatste plain text en het codeblock. Ik kan dan die selectable text met margin-bottom weer omhoog duwen maar dan doe ik het effect van een break tag weer teniet.
    En als ik, stel 2 break tags echo, en je start een reactie met alleen een codeblock, staan er overbodig 2 breaks van tevoren. Die zijn dan niet nodig, maar wel als er plain text voor staat.
    Je zou eigenlijk een onderscheid moeten kunnen maken: als codeblock zonder plain text ervoor, dan geen breaks echoeen, anders wel :|
    Ik heb nu die selectable in een div gezet en die zet me in ieder geval het codeblock onder de plain text. En met die p tag erin weer net iets meer ruimte. Dit vind ik persoonlijk wel acceptabel
    Zier er nu zo uit:
    image 1. text en code en codeblock direct onder de laatste text geplaatst
    image 2. alleen codeblock direct bovenaan geplaatst op de 1e regel
    textencode.png
    885 x 403 - 34K
    code.png
    888 x 242 - 26K
    code.png 25.6K
  • bewerkt vr 9 jan 2015
    PMPosts: 106
    Ik geloof dat ik het snap. Wat je zoekt is de '+' bij css. Wat je kan doen is (als de plain tekst in een < p > staat zoals het hoort [semantiek!]) is een selector als p + .code-block { .. }.

    De oplossing die je nu hebt kan ook wel, maar is natuurlijk niet helemaal semantisch correct. Dit hoor je met CSS op te lossen :)

    Kan ik dit omdat ik moderator ben of is dit een XSS lek?

  • bewerkt vr 9 jan 2015
    PMPosts: 879

    Kan ik dit omdat ik moderator ben of is dit een XSS lek?


    Hmm..vreemd, ik krijg met jouw code het iframe niet weergegeven
  • bewerkt vr 9 jan 2015
    PMPosts: 879
    Nog iets vreemds: kijk even naar het ip adres van jakko9 hierboven: 141.0.9.78
    Hoe in hemelsnaam krijg ik dit ip adres? Het behoort hetzelfde te zijn als nuet
    Als je in het dashboard kijkt onder gebruikers li boven en scroll dan naar jakko9; dan zie je hetzelfde ip adres als nuet. Hoe kan het als jakko9 post dat ie een ander ip adres weergeeft?

    http://www.ip-adress.com/ip_tracer/141.0.9.78

    edit: op het subdomein niet: http://forum.webprofis.nl/discussion/332/test-codeblock-met-plain-text#latest

    edit 2: ik zie dat Opera een proxy gebruikt, dat verklaart natuurlijk het ip adres. Jakko9 heeft idd via Opera gepost
  • PMPosts: 106
    Het iframe werkt bij mij ook niet, maar ik stond er alleen even van te kijken dat die < p > in een echte tag werd veranderd en de tekst erna blauw werd. Vervolgens had ik een edit gedaan en zag ik dat is op het eerste gezicht niet heel veel interessants kon doen.
Login of Registreer om te reageren.