Как получить переменные из массива, созданного при разборе HTML-файла - PullRequest
1 голос
/ 14 января 2011

Привет! Мне нужна помощь в ситуации, когда у меня есть папка «слайды», и у меня есть несколько текстовых / html-файлов, таких как: slide1.html slide2.html slide3.html и т. Д.*

Структура этих файлов выглядит следующим образом:

<h2>Title of the Slide</h2>
<p><a href="http://mydomain.com"><img src="icon.png" width="227" height="227" alt="icon" longdesc="http://longdescription" /></a></p>
<p>Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s.</p>

3 свойства Название, Изображение и Описание. По одному в каждой строке .

----------- ОБНОВЛЕНИЕ ---------------

Я попытался, как предложено @MATT, но у меня пустой экран: вот сценарий всей страницы для справки.Я работаю над шаблоном Joomla.

<?php
defined('JPATH_BASE') or die();
gantry_import('core.gantryfeature');

class GantryFeatureTabs extends GantryFeature {
    var $_feature_name = 'tabs';
    function init() {
        global $gantry;

        if ($this->get('enabled')) {
            $gantry->addScript('tabs.js');
            $gantry->addInlineScript($this->_tabs());
        }
    }
    function render($position="") {
        ob_start();
        foreach(glob("/tabs/*.html") as $fileName) {
        $fname = basename( $fileName );
        $curArr = file($fname);
        $slides[$fname ]['title'] = $curArr[0];
        $slides[$fname ]['image-links'] = $curArr[1];
        $slides[$fname ]['description'] = $curArr[2];

        foreach($slides as $key => $value){

            ?>
              <ul id="tabs1" class="tabs">
                <li>
                <a href="<?php echo $demo_tabs_url.$curArr; ?>"><?php echo $value['title'] ?></a>
                </li>
              </ul>
              <div class="clear"></div>
              <ul id="contents1" class="tabs-content">
                  <li>
                  <?php echo $value['image-links'] ?>
                  <?php echo $value['description'] ?>
                  </li>
              </ul>
            <?php
            }}
            ?>
        <?php
        return ob_get_clean();
    }
    function _tabs() {
        global $gantry;
        $js = "
            window.addEvent('load',function() {
                var tabset = new TabSet($$('#tabs1 li a'),$$('#contents1 li'),{
                    cookieName: 'demo-list'
                });
            });
        ";
        return $js;
    }
}

1 Ответ

0 голосов
/ 14 января 2011

Попробуйте ...

<?php

error_reporting(E_ALL);

class GantryFeatureTabs extends GantryFeature 
{
    $_feature_name = 'tabs';
    function init() {
        global $gantry;

        if ($this->get('enabled')) {
            $gantry->addScript('tabs.js');
            $gantry->addInlineScript($this->_tabs());
        }
    }
    function render($position="") {
        ob_start();
        foreach(glob("/tabs/*.html") as $fileName) {
        $fname = basename( $fileName );
        $curArr = file($fname);
        $slides[$fname ]['title'] = $curArr[0];
        $slides[$fname ]['image-links'] = $curArr[1];
        $slides[$fname ]['description'] = $curArr[2];
}

        foreach($slides as $key => $value)
        {        
            ?>
              <ul id="tabs1" class="tabs">
                <li>
                <a href="<?php echo $demo_tabs_url.$curArr; ?>"><?php echo $value['title'] ?></a>
                </li>
              </ul>
              <div class="clear"></div>
              <ul id="contents1" class="tabs-content">
                  <li>
                  <?php echo $value['image-links']; ?>
                  <?php echo $value['description']; ?>
                  </li>
              </ul>
            <?php
        }
        return ob_get_clean();
    }
    function _tabs() {
        global $gantry;
        $js = "
            window.addEvent('load',function() {
                var tabset = new TabSet($$('#tabs1 li a'),$$('#contents1 li'),{
                    cookieName: 'demo-list'
                });
            });
        ";
        return $js;
    }
}

?>
...