Реализовать Zendpartaloop () с помощью jQuery nestedSortables - PullRequest
0 голосов
/ 09 октября 2011

На самом деле это в основном вопрос Zend, а не jQuery.

Я пытаюсь реализовать вложенный jQuery Sortable http://mjsarfatti.com/sandbox/nestedSortable/ с Zend, сохраняя и считывая точное положение сортируемых элементов.(включая их родителей).Теперь у меня есть следующий код в моем файлеpartLoop, который является основной частью моей работы.Он вызывает себя (рекурсивно) в другом методеpartalLoop (), если есть дочерние элементы элемента, и выглядит следующим образом: сам partials / _docs-edit-row.phtml:

<?php
// not really nice to call a db model in a view file, but is there an other way... ?
$docSectionModel = new Model_DocSection();
global $workedthrough, $i;

$childs = $docSectionModel->fetchChildSections($this->id);
if($childs)
    $childs = $childs->toArray();
?>

<?php if(empty($workedthrough) || !in_array($this->id, $workedthrough)) : ?>
<?php $workedthrough[] = $this->id; ?>
<li>
    <div class="handle">
        <input type="hidden" class="section_id" name="section_id[<?php echo $i; ?>]" value="<?php echo $this->id; ?>" />
        <input type="hidden" class="section_parent_id" name="section_parent_id[<?php echo $i; ?>]" value="<?php echo $this->parent_id; ?>" />
        <input type="text" name="section_title[<?php echo $i; ?>]" value="<?php echo $this->title; ?>" />
        <a href="#" class="open"></a>
    </div>
    <div class="inner-edit closed">
        <textarea name="section_content[<?php echo $i; ?>]"><?php echo $this->content; ?></textarea>
        <input type="submit" name="doc_save" value="Save" />
        <input type="submit" name="remove_doc_section[<?php echo $i; ?>]" value="Remove this section" />
    </div>

    <?php if($childs) : ?>
        <ol>
            <?php echo $this->partialLoop('partials/_docs-edit-row.phtml', $childs); ?>
        </ol>
    <?php endif; ?>

</li>
<?php endif; ?>
<?php $i++; ?>

Что яздесь я пытался создать счетчик $ ia, который проходит через оба цикла, чтобы получить непрерывный счетчик, потому что $ this-> частичный счетчик будет начинаться с начала на каждом новом уровне.Так что на самом деле это моя основная проблема (я определил $ i в файле основного вида, а также $ workthrough, который должен проверить, пропущен ли элемент, чтобы избежать множественных вызовов элементов, которые не находятся на первом уровнецикл), что $ i, кажется, не считается должным образом по любой причине, в то время как $ workthrough работает как шарм. Теперь, возможно ли иметь непрерывный счетчик во всех частичных циклах?Кроме того, я действительно хотел бы знать, если, возможно, кто-то получит лучший подход к тому, что я хочу сделать.

Если что-то выглядит странно или неясно, я, конечно, объясню.Я ценю любую помощь!

С наилучшими пожеланиями, .wired

1 Ответ

1 голос
/ 09 октября 2011

Несколько бит информации, которая может вам помочь:

  • Использование вложенных партиалов работает, но поскольку они клонируют представление, это может быстро стать проблемой производительности, и ее лучше избегать

  • Вы можете передать свой набор строк частичному в качестве объекта, который позволит вам вызывать зависимые наборы строк $view->partialLoop()->setObjectKey('model')

  • В вашем случае, вероятно, лучше зациклиться и использовать render () вместо партиалов.

...