Index: plugins/attachments/_admin.php
===================================================================
--- plugins/attachments/_admin.php	(revision 1501)
+++ plugins/attachments/_admin.php	(revision 1537)
@@ -12,56 +12,51 @@
 if (!defined('DC_CONTEXT_ADMIN')) { return; }
 
-$core->addBehavior ('adminPostFormItems',array('attachmentAdmin','adminPostFormItems'));
+$core->addBehavior ('adminPostFormSidebar',array('attachmentAdmin','adminPostFormSidebar'));
 $core->addBehavior ('adminPostAfterForm',array('attachmentAdmin','adminPostAfterForm'));
-$core->addBehavior('adminPostHeaders',array('attachmentAdmin','postHeaders'));
 
 class attachmentAdmin
 {
-	public static function postHeaders()
-	{
-		return 
-		'<script type="text/javascript" src="index.php?pf=attachments/js/post.js"></script>';
-	}
-	public static function adminPostFormItems($main,$sidebar,$post) 
+	public static function adminPostFormSidebar($post) 
 	{
 		if ($post !== null)
 		{
 			$core =& $GLOBALS['core'];
-			$post_media = $core->media->getPostMedia($post->post_id);
-			$nb_media = count($post_media);
-			$title = !$nb_media ? __('Attachments') : sprintf(__('Attachments (%d)'),$nb_media);
-			$item = '<h5 class="clear s-attachments">'.$title.'</h5>';
-			foreach ($post_media as $f)
-			{
-				$ftitle = $f->media_title;
-				if (strlen($ftitle) > 18) {
-					$ftitle = substr($ftitle,0,16).'...';
+			if ( isset($core->media) ) {
+				$post_media = $core->media->getPostMedia($post->post_id);
+				echo
+				'<h3 class="clear">'.__('Attachments').'</h3>';
+				foreach ($post_media as $f)
+				{
+					$ftitle = $f->media_title;
+					if (strlen($ftitle) > 18) {
+						$ftitle = substr($ftitle,0,16).'...';
+					}
+					echo
+					'<div class="media-item">'.
+					'<a class="media-icon" href="media_item.php?id='.$f->media_id.'">'.
+					'<img src="'.$f->media_icon.'" alt="" title="'.$f->basename.'" /></a>'.
+					'<ul>'.
+					'<li><a class="media-link" href="media_item.php?id='.$f->media_id.'" '.
+					'title="'.$f->basename.'">'.$ftitle.'</a></li>'.
+					'<li>'.$f->media_dtstr.'</li>'.
+					'<li>'.files::size($f->size).' - '.
+					'<a href="'.$f->file_url.'">'.__('open').'</a>'.'</li>'.
+					
+					'<li class="media-action"><a class="attachment-remove" id="attachment-'.$f->media_id.'" '.
+					'href="post_media.php?post_id='.$post->post_id.'&amp;media_id='.$f->media_id.'&amp;remove=1">'.
+					'<img src="images/check-off.png" alt="'.__('remove').'" /></a>'.
+					'</li>'.
+					
+					'</ul>'.
+					'</div>';
 				}
-				$item .=
-				'<div class="media-item s-attachments">'.
-				'<a class="media-icon" href="media_item.php?id='.$f->media_id.'">'.
-				'<img src="'.$f->media_icon.'" alt="" title="'.$f->basename.'" /></a>'.
-				'<ul>'.
-				'<li><a class="media-link" href="media_item.php?id='.$f->media_id.'" '.
-				'title="'.$f->basename.'">'.$ftitle.'</a></li>'.
-				'<li>'.$f->media_dtstr.'</li>'.
-				'<li>'.files::size($f->size).' - '.
-				'<a href="'.$f->file_url.'">'.__('open').'</a>'.'</li>'.
-				
-				'<li class="media-action"><a class="attachment-remove" id="attachment-'.$f->media_id.'" '.
-				'href="post_media.php?post_id='.$post->post_id.'&amp;media_id='.$f->media_id.'&amp;remove=1">'.
-				'<img src="images/check-off.png" alt="'.__('remove').'" /></a>'.
-				'</li>'.
-				
-				'</ul>'.
-				'</div>';
+				unset($f);
 			}
-			unset($f);
 			
 			if (empty($post_media)) {
-				$item .= '<p class="form-note s-attachments">'.__('No attachment.').'</p>';
-			} 
-			$item .= '<p class="s-attachments"><a class="button" href="media.php?post_id='.$post->post_id.'">'.__('Add files to this entry').'</a></p>';
-			$sidebar['metas-box']['items']['attachments']= $item;
+				echo '<p>'.__('No attachment.').'</p>';
+			} else {
+			}
+			echo '<p><a class="button" href="media.php?post_id='.$post->post_id.'">'.__('Add files to this entry').'</a></p>';
 		}
 	}
Index: plugins/attachments/_public.php
===================================================================
--- plugins/attachments/_public.php	(revision 1280)
+++ plugins/attachments/_public.php	(revision 1266)
@@ -40,12 +40,16 @@
 		"<?php\n".
 		'if ($_ctx->posts !== null && $core->media) {'."\n".
-			'$_ctx->attachments = new ArrayObject($core->media->getPostMedia($_ctx->posts->post_id));'."\n".
+		'$_ctx->attachments = $core->media->getPostMedia($_ctx->posts->post_id, null, true);'."\n".
 		"?>\n".
 		
-		'<?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; ?>'.
+		'<?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
 		$content.
-		'<?php endforeach; $_ctx->attachments = null; unset($attach_i,$attach_f,$_ctx->file_url); ?>'.
+		'<?php $attach_i++; ?>'. // LEGACY
+		'<?php endwhile; '.
+		'$_ctx->attachments = null; ?>'.
 		
 		"<?php } ?>\n";
@@ -60,5 +64,5 @@
 	{
 		return
-		"<?php if (\$attach_i == 0) : ?>".
+		"<?php if (\$_ctx->attachments->isStart()) : ?>".
 		$content.
 		"<?php endif; ?>";
@@ -71,5 +75,5 @@
 	{
 		return
-		"<?php if (\$attach_i+1 == count(\$_ctx->attachments)) : ?>".
+		"<?php if (\$_ctx->attachments->isEnd()) : ?>".
 		$content.
 		"<?php endif; ?>";
@@ -93,15 +97,15 @@
 		if (isset($attr['is_image'])) {
 			$sign = (boolean) $attr['is_image'] ? '' : '!';
-			$if[] = $sign.'$attach_f->media_image';
+			$if[] = $sign.'$_ctx->attachments->media_image';
 		}
 		
 		if (isset($attr['has_thumb'])) {
 			$sign = (boolean) $attr['has_thumb'] ? '' : '!';
-			$if[] = $sign.'isset($attach_f->media_thumb[\'sq\'])';
+			$if[] = $sign.'isset($_ctx->attachments->media_thumb[\'sq\'])';
 		}
 		
 		if (isset($attr['is_mp3'])) {
 			$sign = (boolean) $attr['is_mp3'] ? '==' : '!=';
-			$if[] = '$attach_f->type '.$sign.' "audio/mpeg3"';
+			$if[] = '$_ctx->attachments->type '.$sign.' "audio/mpeg3"';
 		}
 		
@@ -109,7 +113,7 @@
 			$sign = (boolean) $attr['is_flv'] ? '' : '!';
 			$if[] = $sign.
-				'($attach_f->type == "video/x-flv" || '.
-				'$attach_f->type == "video/mp4" || '.
-				'$attach_f->type == "video/x-m4v")';
+				'($_ctx->attachments->type == "video/x-flv" || '.
+				'$_ctx->attachments->type == "video/mp4" || '.
+				'$_ctx->attachments->type == "video/x-m4v")';
 		}
 		
@@ -127,5 +131,5 @@
 	{
 		$f = $GLOBALS['core']->tpl->getFilters($attr);
-		return '<?php echo '.sprintf($f,'$attach_f->type').'; ?>';
+		return '<?php echo '.sprintf($f,'$_ctx->attachments->type').'; ?>';
 	}
 	
@@ -136,5 +140,5 @@
 	{
 		$f = $GLOBALS['core']->tpl->getFilters($attr);
-		return '<?php echo '.sprintf($f,'$attach_f->media_type').'; ?>';
+		return '<?php echo '.sprintf($f,'$_ctx->attachments->media_type').'; ?>';
 	}
 	
@@ -145,5 +149,5 @@
 	{
 		$f = $GLOBALS['core']->tpl->getFilters($attr);
-		return '<?php echo '.sprintf($f,'$attach_f->basename').'; ?>';
+		return '<?php echo '.sprintf($f,'$_ctx->attachments->basename').'; ?>';
 	}
 	
@@ -158,7 +162,7 @@
 		$f = $GLOBALS['core']->tpl->getFilters($attr);
 		if (!empty($attr['full'])) {
-			return '<?php echo '.sprintf($f,'$attach_f->size').'; ?>';
-		}
-		return '<?php echo '.sprintf($f,'files::size($attach_f->size)').'; ?>';
+			return '<?php echo '.sprintf($f,'$_ctx->attachments->size').'; ?>';
+		}
+		return '<?php echo '.sprintf($f,'files::size($_ctx->attachments->size)').'; ?>';
 	}
 	
@@ -169,5 +173,5 @@
 	{
 		$f = $GLOBALS['core']->tpl->getFilters($attr);
-		return '<?php echo '.sprintf($f,'$attach_f->media_title').'; ?>';
+		return '<?php echo '.sprintf($f,'$_ctx->attachments->media_title').'; ?>';
 	}
 	
@@ -180,6 +184,6 @@
 		return
 		'<?php '.
-		'if (isset($attach_f->media_thumb[\'sq\'])) {'.
-			'echo '.sprintf($f,'$attach_f->media_thumb[\'sq\']').';'.
+		'if (isset($_ctx->attachments->media_thumb[\'sq\'])) {'.
+			'echo '.sprintf($f,'$_ctx->attachments->media_thumb[\'sq\']').';'.
 		'}'.
 		'?>';
@@ -192,5 +196,5 @@
 	{
 		$f = $GLOBALS['core']->tpl->getFilters($attr);
-		return '<?php echo '.sprintf($f,'$attach_f->file_url').'; ?>';
+		return '<?php echo '.sprintf($f,'$_ctx->attachments->file_url').'; ?>';
 	}
 	
Index: plugins/attachments/js/post.js
===================================================================
--- plugins/attachments/js/post.js	(revision 1393)
+++ 	(revision )
@@ -1,5 +1,0 @@
-$(function() {
-	$('h5.s-attachments').toggleWithLegend($('.s-attachments').not('h5'),{
-		cookie: 'dcx_attachments'
-	});
-});
