MODX ayrıştırma hatası işlevi implode (Bana ya Modx nedir?)

2 Cevap php

4-Haziran-2010 güncelleyin: Bu Modx v 1.0.3 hata, implode fonksiyonu ile ilgisi ziyade edilen filtre yan tümce yanlış uyumlu veri türleri ile ilgili bir sorun gibi görünüyor. Hata JIRA dava açılmıştır: MODX-2035.

Merhaba, benim yaşam için bu anlamaya olamaz, belki birisi yardımcı olabilir.

Modx bir formu kullanarak bir filtre oluşturmak ve belgelerin bir listesini döndürmek için kullanıcı kriterleri alır. Form, bir metin alanı ve bir kaç onay kutularını olduğunu. Metin alanı ve checkbox verileri hem yayınlanmıştır ise, fonksiyon çalışıyor; sadece onay kutusu veri yayınlanmıştır eğer fonksiyonu iyi çalışır; sadece metin alanı verileri yayınlanmıştır ise ancak, Modx bana aşağıdaki hatayı veriyor:

Hata: implode () [function.implode]: Geçersiz argümanlar geçti.

Ben düz dosyalar ile MODX bu dışında test ettik ve hepsi bir hata MODX içinde var varsaymak bana önde çalışıyor. Ama ben ikna olmuş değilim. İşte benim kod:

<?php
$order = array('price ASC'); //default sort order  
if(!empty($_POST['tour_finder_duration'])){ //duration submitted  
 $days = htmlentities($_POST['tour_finder_duration']); //clean up post  
 array_unshift($order,"duration DESC"); //add duration sort before default  
 $filter[] = 'duration,'.$days.',4'; //add duration to filter[] (field,criterion,mode)  
 $criteria[] = 'Number of days: <strong>'.$days.'</strong>'; //displayed on results page  
}  

if(!empty($_POST['tour_finder_dests'])){ //destination/s submitted  
 $dests = $_POST['tour_finder_dests'];  
 foreach($dests as $value){ //iterate through dests array  
  $filter[] = 'searchDests,'.htmlentities($value).',7'; //add dests to filter[]  
  $params['docid'] = $value;  
  $params['field'] = 'pagetitle';  
  $pagetitle = $modx->runSnippet('GetField',$params);  
  $dests_array[] = '<a href="[~'.$value.'~]" title="Read more about '.$pagetitle.'"     class="tourdestlink">'.$pagetitle.'</a>';  
 }  
 $dests_array = implode(', ',$dests_array);  
 $criteria[] = 'Destinations: '.$dests_array; //displayed on results page  
}  

if(is_array($filter)){  
 $filter = implode('|',$filter);//pipe-separated string  
}  
if(is_array($order)){  
 $order = implode(',',$order);//comma-separated string  
}  
if(is_array($criteria)){  
 $criteria = implode('<br />',$criteria);  
}  

echo '<br />Order: '.$order.'<br /> Filter: '.$filter.'<br /> Criteria: '.$criteria;

//next: extract docs using $filter and $order, display user's criteria using $criteria...  
?>

Echo deyimi MODX hata mesajın üzerinde görüntülenir ve $ filtre dizisi düzgün imploded.

Herhangi bir yardım pencereden dışarı uçan benim bilgisayar kurtaracak.

Teşekkürler

2 Cevap

Senin sorun burada yatıyor düşünüyorum:

$dests_array = implode(', ',$dests_array); 

$dest_array, boş ve $dests boşsa bile başlatılmamış olmayabilir.

Bu gerçekten Modx forumlarda ilan edilmelidir. Ben stackoverflow seviyorum, ama Modx daha niş.