Negeer img tags

Status
Niet open voor verdere reacties.

jarikbiz

Gebruiker
Lid geworden
2 okt 2010
Berichten
9
Beste forumleden,

Ik heb een stukje php codering waar ik maar niet uit kom. Ik laat namelijk op een product detail pagina een omschrijving zien aan de hand van dit stukje code:
PHP:
<?php echo vmCommonHTML::ParseContentByPlugins( $product_description )?>

Nu heb ik twee product detail pagina's, namelijk in een pop up scherm en een uitgebreide versie. Het probleem zit hem in de pop up scherm versie. Ik wil op deze pagina namelijk de eventuele afbeeldingen uit de omschrijving halen. Is er een php code om bijvoorbeeld gebruikte afbeeldingen binnen een code uit te sluiten/ te negeren? Dus alle afbeeldingen die binnen het attribuut:
PHP:
<?php echo vmCommonHTML::ParseContentByPlugins( $product_description )?>
zitten wil ik op een bepaalde manier negeren.

Alvast bedankt!
 
PHP:
$tagOne = "[";
$tagTwo = "]";
$replacement = "Greg";

$text = "Hello, my name is [NAME]";

$startTagPos = strrpos($text, $tagOne);
$endTagPos = strrpos($text, $tagTwo);
$tagLength = $endTagPos - $startTagPos + 1;

$text = substr_replace($text, $replacement, $startTagPos, $tagLength);

echo $text;
via http://stackoverflow.com/questions/4465620/php-replace-between-tags


alles wat tussen de tags staat wordt verwijderd. dus dan maak je van te voren tags om (bijvoorbeeld)
<verwijder> </verwijder>

en vul je die in bij $tagOne en $tagTwo.

alles wat dan tussen <verwijder> en </verwijder> staat word verwijderd.
als je hierna ook nog de tags replaced met een lege string zie je de tags ook niet meer.
 
Laatst bewerkt door een moderator:
Bedankt! Ik kwam er nu achter dat helaas de IMG tag niet wordt gebruikt maar de <input ....> tag. Dit maakt het waarschijnlijk een stukje lastiger. Wat ik nu heb gedaan is het volgende:

PHP:
<?php

$tagOne = "<input";
$tagTwo = "type="image">";
$replacement = " ";

$text1 = "<input";
$text2 = "type="image">"

$startTagPos = strrpos($text, $tagOne);
$endTagPos = strrpos($text, $tagTwo);
$tagLength = $endTagPos - $startTagPos + 1;

$text2 = substr_replace($text2, $replacement, $startTagPos, $tagLength);

$startTagPos = strrpos($text2, $tagOne);
$endTagPos = strrpos($text2, $tagTwo);
$tagLength = $endTagPos - $startTagPos + 1;

$text2 = substr_replace($text2, $replacement, $startTagPos, $tagLength);

echo $text;
echo $text2;

?>

Dit plaats ik onder de php file waar het moet worden uitgevoerd. Toch werkt deze code niet want op het moment dat ik de pagina wil laden blijft de pagina in de laad modus hangen. Kan iemand de fout bespeuren?

Een volledige voorbeeld tag is:
HTML:
<input alt="alt" src="/files/bench kussen bruin 2.jpg" style="width: 640px; height: 480px" type="image">
 
Is er bijvoorbeeld geen mogelijkheid om op deze pagina de commando deny all input type="image" te gebruiken?
 
heb je een link naar je pagina dan kan ik de html code bekijken
 
je zou ze allemaal een id kunnen geven dus.
<input alt="alt" src="/files/bench kussen bruin 2.jpg" style="width: 640px; height: 480px" type="image" id="niet">

en dan in je head een stukje javascript als volgt.

<script type="text/javascript">
document.getElementById('niet').style.display='none';
</script>
 
Bedankt. Ik heb via phphmyadmin mijn product tabel gedownload en via excel de zoek vervang functie gebruikt waardoor alle type="image" zijn vervangen door type="image" id="niet" , dit werkt nu. Ik heb vervolgens jouw java code gebruikt maar het geen werk nog niet, zie:

PHP:
<?php // Product Name ?>
		<strong><?php echo $product_name ?></strong><br></br>
<table>
      <tr>
        <td><ul id="thumbnails">
								<?php 
								if (!empty($this->vars['product_thumb_image'])) {
									$main_picture = $this->vars['product_thumb_image'];
								} else {
									$main_picture = $this->vars['product_full_image'];
								}
		
								echo vmTheme::mainImageThumbail($main_picture,$this->vars['product_name']); ?>
								<?php echo vmTheme::additionalImagesThumbnail($product_id,$images); ?>
							</ul></td>
        <td><div class="titlesmall"><?php echo $VM_LANG->_('PHPSHOP_PRODUCT_DESC_TITLE') ?></div><span itemprop="description">
			<?php echo vmCommonHTML::ParseContentByPlugins( $product_description )?></span></td>

      </tr>
<tr><td><?php	//::>	Product price	?>
	<?php echo $product_price; ?></td><td><?php	//::>	Product Packaging	?>
	<?php if( !empty($product_packaging) )	:	?>
		
			<?php echo str_replace(':', ': ', $product_packaging) ?>
	<?php endif; ?></td></tr>
    </table>
	

	<?php	//::>	Add To Cart Button	?>
	<?php echo $addtocart; ?>
	</div>
	<div class="clear"></div></div>
<script type="text/javascript">
document.getElementById('niet').style.display='none';
</script>

Voorbeeld pagina: goo.gl/Oz43F waarbij het 3e product van de 1e rij een afbeelding vertoond indien je op de knop bestellen klikt.

alvast bedankt!
 
Hoi jarikbiz,
Ik heb vervolgens jouw java code gebruikt maar het werkt nog niet

Ik zie het javascript van baws niet op die pagina staan, of vergis ik me nu?

=======

Anderszins?
Als je dit als css in de <head> van de pagina zet:
Code:
<style type="text/css">
    #sbox-window input[type="image"] { display: none; }
</style>
... dan is het grote image in de pop-up ook verdwenen, en is de hele "niet"-operatie met php+javascript niet nodig. :)

Met vriendelijke groet,
CSShunter
 
Bedankt! k had de Java code wel op de pagina staan alleen helemaal onderaan de pagina.

Ik heb het met deze code deels op kunnen lossen. Het probleem is dat ik bezig ben in een bepaalde flypage. Als ik hier in de head de css code plaats of onderaan de pagina dat verdwijnen de afbeeldingen zoals hierboven aangegeven wel. Na wat testen kwam ik er alleen achter dat er ook afbeeldingen worden weergegeven met wel <img tags, deze worden nog wel weergegeven.

Ik maak gebruik van een apart .css bestand voor deze pagina. Misschien is het mogelijk om in dit bestand een display: none tag te plaatsen voor afbeeldingen. Ik heb geprobeerd jouw genoemde code hier eens in te plaatsen zonder de style tags maar dit had geen effect.

Ik wil jullie in ieder geval bedanken voor het goede meedenken! De code (deel) ziet er nu zo uit:

code.png

Groeten,
Jarik
 
document.getElementById('niet').style.display='none';

dit houd in dat alle elementen met het id niet niet worden weergegeven.

als jij achter <img id="niet " zet dan wordt deze ook niet weergegeven.
overal waar je id="niet" in zet wordt verborgen.

zet wel <head> </head> tags in je code
 
Vervolg nr. #8 en #9

Als je dit er nog bij zet:
Code:
#sbox-window img { display: none; }
... is ook de thumbnail uit de pop-up box verdwenen.

Verdere styling van de pop-up box is zonder een flinke bubs javascript jammer genoeg niet mogelijk, want de pop-up is opgebouwd uit een <table> waaruit dan cellen zouden moeten worden verwijderd om de teksten mooier gerangschikt te krijgen. Dat is ingrijpen in de html, en dat kan alleen maar met een javascrip+ccs combinatie.

Met vriendelijke groet,
CSShunter
 
Bedankt! Ook deze css aanpassing werkt. MAAR nu laat de pop up ook geen thumbnail meer van het product zien, wat wel moet :p.

Ik heb even gekeken en de thumbnail heeft de volgende code:
Code:
<img src="http://huisdierwebwinkel.nl/components/com_virtuemart/shop_image/product/resized/Hondenhok_canada_51530a8ec1273_200x200.png" height="200" width="200" class="product-image-thumbnail" alt="Hondenhok canada" border="0">

Als ik dus de
Code:
#sbox-window img { display: none; }

Zo kan krijgen dat er een uitzondering komt op img met class="product-image-thumbnail" dan ben ik waar ik wezen moet. Is dit nog makkelijk aan te maken?
 
Hoi jarikbiz,
Dat zou moeten gaan met de toevoeging:
Code:
#sbox-window input[type="image"] { display: none; }
#sbox-window img { display: none; }
#sbox-window img.product-image-thumbnail { display: inline-block; }
Alle andere images in de pop-up worden dan niet getoond.

Met vriendelijke groet,
CSShunter
 
Gelukt!! De oplossing voor dit probleem is dus:

Plaats in de betreffende pagina binnen de <head> ..</head> tags de volgende style code:

Code:
#sbox-window input[type="image"] { display: none; }
#sbox-window img { display: none; }
#sbox-window img.product-image-thumbnail { display: inline-block; }

Deze code is rechtstreeks toepasbaar voor Virtuemart websites.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan