Question

I am creating a slideshow editor. I am having trouble with the "Delete Slide" feature. I basically have to search the external file for the <li> that contains the image path. This is the code I've got so far, but I can't figure out how to write the "search for image path in the list item" line (where I currently have the stristr). Here is what I have:

    <?php
    $image = $_GET['image'];
    $file = $_GET['file'];
    $path = '../../yardworks/content_pages/' . $file;
    $orImage = substr($image, 39);

    /* Create string of contents */
    $mydoc = new DOMDocument('1.0', 'UTF-8');
    $mydoc->loadHTMLFile($path);
    foreach ($mydoc->getElementsByTagName("img") as $listItems){
        $images = $listItems->getAttribute("src");
        if ((stristr($images, $image) !== FALSE) || (stristr($images, $orImage) !== FALSE)){
            foreach ($mydoc->getElementsByTagName("li") as $delete){
                if ($x == $y){
                    $mydoc->removeChild($delete);
                    $mydoc->saveHTMLFile($path);
                    $file = file_get_contents($path);
                    $file = str_replace("&lt;", "<", $file);
                    $file = str_replace("&gt;", ">", $file);
                    file_put_contents($path, $file);
                    ?>
                    <!-- Confirmation and redirect -->
                    <script>
                        window.alert("Slide has been deleted.");
                        window.location.replace("slideshows.php");
                    </script>
                    <noscript>
                        Slide has been saved.<br />
                        <a href="slideshows.php">&laquo; Return to Select a Slideshow</a><br />
                    </noscript>
                    <?php
                }
                else $y++;
            }
        }
        $x++;
    }
    ?>
    <script>
        window.alert("Slide was not found.");
        window.location.replace("slideshows.php");
    </script>
    <noscript>
        Slide has been saved.<br />
        <a href="slideshows.php">&laquo; Return to Select a Slideshow</a><br />
    </noscript>

I can't tell, but maybe the <li> aren't copying right? Here is the file I am trying to access:

   <center><h1>1 Car 1 Story Garages</h1></center>
<div id="gallery" class="content mceNonEditable">
    <div id="controls" class="controls mceNonEditable"></div>
    <div class="slideshow-container mceNonEditable">
        <div id="loading" class="loader mceNonEditable"></div>
        <div id="slideshow" class="slideshow mceNonEditable"></div>
    </div>
    <div id="caption" class="caption-container"></div>
</div>
<div id="thumbs" class="navigation">

<ul class="thumbs noscript" id="replace">
    <li>
        <a class="thumb" href="images/garages/1car1story1.png">
            <img src="images/garages/1car1story1.png" alt="1 Car 1 Story Garage 1" height="100px" width="130px" class="slideshow-img" />
        </a>
        <div class="caption">
            <div class="image-title">1 Car 1 Story Garage 1</div>
            <div class="image-desc">12x24 Vinyl A-Frame with optional cupola</div>
        </div>
    </li>

    <li>
        <a class="thumb" href="images/garages/1car1story2.png">
            <img src="images/garages/1car1story2.png" alt="1 Car 1 Story Garage 2" height="100px" width="130px" class="slideshow-img" />
        </a>
        <div class="caption">
            <div class="image-title">1 Car 1 Story Garage 2</div>
            <div class="image-desc">12x24 Duratemp A-Frame w/ optional Stockton glass</div>
        </div>
    </li>

    <li>
        <a class="thumb" href="images/garages/1car1story3.png">
            <img src="images/garages/1car1story3.png" alt="1 Car 1 Story Garage 3" height="100px" width="130px" class="slideshow-img" />
        </a>
        <div class="caption">
            <div class="image-title">1 Car 1 Story Garage 3</div>
            <div class="image-desc">12x24 Vinyl High Wall Dutch Barn</div>
        </div>
    </li>

    <li>
        <a class="thumb" href="images/garages/1car1story4.png">
            <img src="images/garages/1car1story4.png" alt="1 Car 1 Story Garage 4" height="100px" width="130px" class="slideshow-img" />
        </a>
        <div class="caption">
            <div class="image-title">1 Car 1 Story Garage 4</div>
            <div class="image-desc">14x24 Vinyl A-Frame with optional tin roof</div>
        </div>
    </li>
</ul>
</div>
Was it helpful?

Solution

I grabbed the more specific div id and used that variable in the removeChild command. (the x and y variables are also set to 0 initially).

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top