Blocks module is the oldest one but I never got around to recoding it. That's the first thing in the to-do list for the next version though, once I finish adding the new features.
PortalAdminBlocks.controller.php
'row' => !empty($_POST['block_row']) ? $_POST['block_row'] : 0,
'placement' => !empty($_POST['placement']) && in_array($_POST['placement'], array('before', 'after')) ? $_POST['placement'] : '',
'row' => !empty($_POST['block_row']) ? $_POST['block_row'] : 0,
PortalAdminBlocks.template.php
<option value="before">', $txt['sp-placementBefore'], '...</option>
<option value="after">', $txt['sp-placementAfter'], '...</option>
<option value="before"', (!empty($context['SPortal']['block']['placement']) && $context['SPortal']['block']['placement'] == 'before' ? ' selected="selected"' : ''), '>', $txt['sp-placementBefore'], '...</option>
<option value="after"', (!empty($context['SPortal']['block']['placement']) && $context['SPortal']['block']['placement'] == 'after' ? ' selected="selected"' : ''), '>', $txt['sp-placementAfter'], '...</option>
<option value="', $block['row'], '">', $block['label'], '</option>';
<option value="', $block['row'], '"', (!empty($context['SPortal']['block']['row']) && $context['SPortal']['block']['row'] == $block['row'] ? ' selected="selected"' : ''), '>', $block['label'], '</option>';