There is nothing wrong with your xml, apart from the fact that the before="" will have no function here.
The issue is that dashboard block is not a core text list type of block.
Thus the phtml that deals with the dashboard display will not 'magically' output your block.
You need to add an entry to the dashboard.phtml file to echo out your block.
<?php echo $this->getChildHtml('myphtml_page') ?>
and place that in the correct position above the code the outputs the hello block
Naturally you will copy the dashboard.phtml file to your theme to make this edit ;)
EDIT: Added to answer OP's question about core text list
A core text list is a magento class, which holds a list of child blocks, and will generate a concatenated HTML output of all the child blocks as one HTML block.
a good example of one is 'before_body_end' as define in the layout page.xml file
<block type="core/text_list" name="before_body_end" as="before_body_end" translate="label">
<label>Page Bottom</label>
</block>
thus, when you assign a child block to a core/text_list derived block, the child's HTML will be generated for you.
you will find the 'magic' in Mage_Core_Block_Text_List::_toHtml()
Best Answer
The main block holding the 'widgets' in the customer account section is
customer_account_board
, so if you want to add a block there you would have to reference that oneBuild this would require you to edit
frontend/base/default/template/customer/account/dashboard.phtml
to add agetChildHtml
for your section.To not be required to edit the file you could add your block under reference name
content
, under this reference all blocks will be included automatically.