Index: plugins/attachments/_public.php
===================================================================
--- plugins/attachments/_public.php	(revision 1266)
+++ plugins/attachments/_public.php	(revision 1280)
@@ -40,16 +40,12 @@
 		"<?php\n".
 		'if ($_ctx->posts !== null && $core->media) {'."\n".
-		'$_ctx->attachments = $core->media->getPostMedia($_ctx->posts->post_id, null, true);'."\n".
+			'$_ctx->attachments = new ArrayObject($core->media->getPostMedia($_ctx->posts->post_id));'."\n".
 		"?>\n".
 		
-		'<?php $attach_i = 0; ?>'. // LEGACY
-		'<?php while ($_ctx->attachments->fetch()) : ?>'.
-		
-		'<?php $GLOBALS[\'attach_i\'] = $attach_i; $attach_f = $_ctx->attachments; $GLOBALS[\'attach_f\'] = $attach_f;'. // LEGACY
-		'$_ctx->file_url = $attach_f->file_url; ?>'. // LEGACY
+		'<?php foreach ($_ctx->attachments as $attach_i => $attach_f) : '.
+		'$GLOBALS[\'attach_i\'] = $attach_i; $GLOBALS[\'attach_f\'] = $attach_f;'.
+		'$_ctx->file_url = $attach_f->file_url; ?>'.
 		$content.
-		'<?php $attach_i++; ?>'. // LEGACY
-		'<?php endwhile; '.
-		'$_ctx->attachments = null; ?>'.
+		'<?php endforeach; $_ctx->attachments = null; unset($attach_i,$attach_f,$_ctx->file_url); ?>'.
 		
 		"<?php } ?>\n";
@@ -64,5 +60,5 @@
 	{
 		return
-		"<?php if (\$_ctx->attachments->isStart()) : ?>".
+		"<?php if (\$attach_i == 0) : ?>".
 		$content.
 		"<?php endif; ?>";
@@ -75,5 +71,5 @@
 	{
 		return
-		"<?php if (\$_ctx->attachments->isEnd()) : ?>".
+		"<?php if (\$attach_i+1 == count(\$_ctx->attachments)) : ?>".
 		$content.
 		"<?php endif; ?>";
@@ -97,15 +93,15 @@
 		if (isset($attr['is_image'])) {
 			$sign = (boolean) $attr['is_image'] ? '' : '!';
-			$if[] = $sign.'$_ctx->attachments->media_image';
+			$if[] = $sign.'$attach_f->media_image';
 		}
 		
 		if (isset($attr['has_thumb'])) {
 			$sign = (boolean) $attr['has_thumb'] ? '' : '!';
-			$if[] = $sign.'isset($_ctx->attachments->media_thumb[\'sq\'])';
+			$if[] = $sign.'isset($attach_f->media_thumb[\'sq\'])';
 		}
 		
 		if (isset($attr['is_mp3'])) {
 			$sign = (boolean) $attr['is_mp3'] ? '==' : '!=';
-			$if[] = '$_ctx->attachments->type '.$sign.' "audio/mpeg3"';
+			$if[] = '$attach_f->type '.$sign.' "audio/mpeg3"';
 		}
 		
@@ -113,7 +109,7 @@
 			$sign = (boolean) $attr['is_flv'] ? '' : '!';
 			$if[] = $sign.
-				'($_ctx->attachments->type == "video/x-flv" || '.
-				'$_ctx->attachments->type == "video/mp4" || '.
-				'$_ctx->attachments->type == "video/x-m4v")';
+				'($attach_f->type == "video/x-flv" || '.
+				'$attach_f->type == "video/mp4" || '.
+				'$attach_f->type == "video/x-m4v")';
 		}
 		
@@ -131,5 +127,5 @@
 	{
 		$f = $GLOBALS['core']->tpl->getFilters($attr);
-		return '<?php echo '.sprintf($f,'$_ctx->attachments->type').'; ?>';
+		return '<?php echo '.sprintf($f,'$attach_f->type').'; ?>';
 	}
 	
@@ -140,5 +136,5 @@
 	{
 		$f = $GLOBALS['core']->tpl->getFilters($attr);
-		return '<?php echo '.sprintf($f,'$_ctx->attachments->media_type').'; ?>';
+		return '<?php echo '.sprintf($f,'$attach_f->media_type').'; ?>';
 	}
 	
@@ -149,5 +145,5 @@
 	{
 		$f = $GLOBALS['core']->tpl->getFilters($attr);
-		return '<?php echo '.sprintf($f,'$_ctx->attachments->basename').'; ?>';
+		return '<?php echo '.sprintf($f,'$attach_f->basename').'; ?>';
 	}
 	
@@ -162,7 +158,7 @@
 		$f = $GLOBALS['core']->tpl->getFilters($attr);
 		if (!empty($attr['full'])) {
-			return '<?php echo '.sprintf($f,'$_ctx->attachments->size').'; ?>';
-		}
-		return '<?php echo '.sprintf($f,'files::size($_ctx->attachments->size)').'; ?>';
+			return '<?php echo '.sprintf($f,'$attach_f->size').'; ?>';
+		}
+		return '<?php echo '.sprintf($f,'files::size($attach_f->size)').'; ?>';
 	}
 	
@@ -173,5 +169,5 @@
 	{
 		$f = $GLOBALS['core']->tpl->getFilters($attr);
-		return '<?php echo '.sprintf($f,'$_ctx->attachments->media_title').'; ?>';
+		return '<?php echo '.sprintf($f,'$attach_f->media_title').'; ?>';
 	}
 	
@@ -184,6 +180,6 @@
 		return
 		'<?php '.
-		'if (isset($_ctx->attachments->media_thumb[\'sq\'])) {'.
-			'echo '.sprintf($f,'$_ctx->attachments->media_thumb[\'sq\']').';'.
+		'if (isset($attach_f->media_thumb[\'sq\'])) {'.
+			'echo '.sprintf($f,'$attach_f->media_thumb[\'sq\']').';'.
 		'}'.
 		'?>';
@@ -196,5 +192,5 @@
 	{
 		$f = $GLOBALS['core']->tpl->getFilters($attr);
-		return '<?php echo '.sprintf($f,'$_ctx->attachments->file_url').'; ?>';
+		return '<?php echo '.sprintf($f,'$attach_f->file_url').'; ?>';
 	}
 	
