Invalid block type: MageplazaHelloWorldBlockHelloWorld Magento 2How to call a model method from controller in Magento2I created a custom module ,but getting error, not able to figure out what the error is about. How to get out of this error?Magento 2 Custom New Block without moduleWhy Getting categories and names on product view page Magento 2 fails?Price not getting updated for second product…Model class not found in …/magento/framework/ObjectManager/Factory/AbstractFactory.php:93Although I use the correct namespace a wrong instance is passed to the constructorForm is not displayed on panel admin Magento 2Magento 2.3 Can't view module's front end page output?Magento 2 get custom attribute of a single product inside a plugin
LeetCode: Group Anagrams C#
Why did they avoid parodying Martian Manhunter?
If all stars rotate, why was there a theory developed that requires non-rotating stars?
Irish Snap: Variant Rules
What to say to a student who has failed?
Does norwegian.no airline overbook flights?
What is the history of the university asylum law?
Dataset human solutions for OR problems
How can I unambiguously ask for a new user's "Display Name"?
Can't stopover at Sapporo when going from Asahikawa to Chitose airport?
Is there any music source code for sound chips?
Identify a problem where a potentially winning move draws because of the 50 move rule
What are some interesting features that are common cross-linguistically but don't exist in English?
Did a flight controller ever answer Flight with a no-go?
Confirming resignation after resignation letter ripped up
Would the Republic of Ireland and Northern Ireland be interested in joining together?
Compelling story with the world as a villain
Are there any elected officials in the U.S. who are not legislators, judges, or constitutional officers?
If the first law of thermodynamics ensures conservation of energy, why does it allow systems to lose energy?
Mathematical uses of string theory
Why do all fields in a QFT transform like *irreducible* representations of some group?
Justifying the use of directed energy weapons
Architectural feasibility of a tiered circular stone keep
Can more than one wizard copy a spell from a spellbook?
Invalid block type: MageplazaHelloWorldBlockHelloWorld Magento 2
How to call a model method from controller in Magento2I created a custom module ,but getting error, not able to figure out what the error is about. How to get out of this error?Magento 2 Custom New Block without moduleWhy Getting categories and names on product view page Magento 2 fails?Price not getting updated for second product…Model class not found in …/magento/framework/ObjectManager/Factory/AbstractFactory.php:93Although I use the correct namespace a wrong instance is passed to the constructorForm is not displayed on panel admin Magento 2Magento 2.3 Can't view module's front end page output?Magento 2 get custom attribute of a single product inside a plugin
.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty margin-bottom:0;
I am trying to get up-sell product, but getting issue with invalid block type: MageplazaHelloWorldBlockHelloWorld
in Magento 2.
<?php
namespace MageplazaHelloWorldBlock;
class Upsell extends MagentoFrameworkViewElementTemplate
protected $_registry;
public function __construct(
MagentoBackendBlockTemplateContext $context,
MagentoFrameworkRegistry $registry,
array $data = []
)
$this->_registry = $registry;
parent::__construct($context, $data);
public function _prepareLayout()
return parent::_prepareLayout();
public function getCurrentProduct()
return $this->_registry->registry('current_product');
?>
Here is .phtml code
<?php
$myBlock = MagentoFrameworkAppObjectManager::getInstance()->get('MageplazaHelloWorldBlockUpsell');
$currentProduct = $myBlock->getCurrentProduct();
if ($currentProduct = $myBlock->getCurrentProduct())
$upSellProducts = $currentProduct->getUpSellProducts();
if (!empty($upSellProducts))
echo '<h3>UpSell Products</h3>';
foreach ($upSellProducts as $upSellProduct)
echo $upSellProduct->getSku() . '<br />';
?>
magento2 magento-2.1
add a comment |
I am trying to get up-sell product, but getting issue with invalid block type: MageplazaHelloWorldBlockHelloWorld
in Magento 2.
<?php
namespace MageplazaHelloWorldBlock;
class Upsell extends MagentoFrameworkViewElementTemplate
protected $_registry;
public function __construct(
MagentoBackendBlockTemplateContext $context,
MagentoFrameworkRegistry $registry,
array $data = []
)
$this->_registry = $registry;
parent::__construct($context, $data);
public function _prepareLayout()
return parent::_prepareLayout();
public function getCurrentProduct()
return $this->_registry->registry('current_product');
?>
Here is .phtml code
<?php
$myBlock = MagentoFrameworkAppObjectManager::getInstance()->get('MageplazaHelloWorldBlockUpsell');
$currentProduct = $myBlock->getCurrentProduct();
if ($currentProduct = $myBlock->getCurrentProduct())
$upSellProducts = $currentProduct->getUpSellProducts();
if (!empty($upSellProducts))
echo '<h3>UpSell Products</h3>';
foreach ($upSellProducts as $upSellProduct)
echo $upSellProduct->getSku() . '<br />';
?>
magento2 magento-2.1
add a comment |
I am trying to get up-sell product, but getting issue with invalid block type: MageplazaHelloWorldBlockHelloWorld
in Magento 2.
<?php
namespace MageplazaHelloWorldBlock;
class Upsell extends MagentoFrameworkViewElementTemplate
protected $_registry;
public function __construct(
MagentoBackendBlockTemplateContext $context,
MagentoFrameworkRegistry $registry,
array $data = []
)
$this->_registry = $registry;
parent::__construct($context, $data);
public function _prepareLayout()
return parent::_prepareLayout();
public function getCurrentProduct()
return $this->_registry->registry('current_product');
?>
Here is .phtml code
<?php
$myBlock = MagentoFrameworkAppObjectManager::getInstance()->get('MageplazaHelloWorldBlockUpsell');
$currentProduct = $myBlock->getCurrentProduct();
if ($currentProduct = $myBlock->getCurrentProduct())
$upSellProducts = $currentProduct->getUpSellProducts();
if (!empty($upSellProducts))
echo '<h3>UpSell Products</h3>';
foreach ($upSellProducts as $upSellProduct)
echo $upSellProduct->getSku() . '<br />';
?>
magento2 magento-2.1
I am trying to get up-sell product, but getting issue with invalid block type: MageplazaHelloWorldBlockHelloWorld
in Magento 2.
<?php
namespace MageplazaHelloWorldBlock;
class Upsell extends MagentoFrameworkViewElementTemplate
protected $_registry;
public function __construct(
MagentoBackendBlockTemplateContext $context,
MagentoFrameworkRegistry $registry,
array $data = []
)
$this->_registry = $registry;
parent::__construct($context, $data);
public function _prepareLayout()
return parent::_prepareLayout();
public function getCurrentProduct()
return $this->_registry->registry('current_product');
?>
Here is .phtml code
<?php
$myBlock = MagentoFrameworkAppObjectManager::getInstance()->get('MageplazaHelloWorldBlockUpsell');
$currentProduct = $myBlock->getCurrentProduct();
if ($currentProduct = $myBlock->getCurrentProduct())
$upSellProducts = $currentProduct->getUpSellProducts();
if (!empty($upSellProducts))
echo '<h3>UpSell Products</h3>';
foreach ($upSellProducts as $upSellProduct)
echo $upSellProduct->getSku() . '<br />';
?>
magento2 magento-2.1
magento2 magento-2.1
edited Oct 2 '17 at 8:48
diazwatson
1,6681 gold badge15 silver badges26 bronze badges
1,6681 gold badge15 silver badges26 bronze badges
asked Jun 7 '17 at 21:27
sanjaysanjay
1173 silver badges14 bronze badges
1173 silver badges14 bronze badges
add a comment |
add a comment |
2 Answers
2
active
oldest
votes
Class MagentoBackendBlockTemplateContext
is for adminhtml block
You should use MagentoFrameworkViewElementTemplateContext
class for frontend block
Here is your Final Block:
<?php
namespace MageplazaHelloWorldBlock;
class Upsell extends MagentoFrameworkViewElementTemplate
protected $registry;
protected $productFactory;
public function __construct(
MagentoFrameworkViewElementTemplateContext $context,
MagentoFrameworkRegistry $registry,
MagentoCatalogModelProductFactory $productFactory,
array $data = []
)
$this->registry = $registry;
$this->productFactory = $productFactory;
parent::__construct($context, $data);
public function _prepareLayout()
return parent::_prepareLayout();
public function getCurrentProduct()
return $this->registry->registry('current_product');
public function getProduct($productId)
$product = $this->productFactory->create()->load($productId);
return $product;
Don't use ObjectManager directly in phtml file. Use $block for current template block.
Here is your Final Phtml:
<?php
$currentProduct = $block->getCurrentProduct();
if ($currentProduct)
$upSellProducts = $currentProduct->getUpSellProducts();
if (!empty($upSellProducts))
echo '<h3>UpSell Products</h3>';
foreach ($upSellProducts as $upSellProduct)
$product = $block->getProduct($upSellProduct->getId());
echo $product->getSku() . '<br />';
Prince Patel@ hi prince but when I used this , I am not getting uppcell product , any mistake in this code
– sanjay
Jun 8 '17 at 6:18
@sanjay try my updated answer
– Prince Patel
Jun 8 '17 at 6:38
Prince Patel@can you suggest me how to get upcell product through object manager, I am getting issue width block creation, I have no option for cli so please let me know through object manager
– sanjay
Jun 8 '17 at 7:04
add a comment |
You shouldn't use ObjectManager
to get block in template like that. It is bad practices you should avoid.
Use $block
is corresponding to your current block . In your case is MageplazaHelloWorldBlockUpsell
Your Constructor in Block class need to modify
public function __construct(
MagentoFrameworkViewElementTemplateContext $context, <== this class
MagentoFrameworkRegistry $registry,
array $data = []
)
In your template
<?php /** @var MageplazaHelloWorldBlockUpsell $block **/
$currentProduct = $block->getCurrentProduct();
if ($currentProduct = $myBlock->getCurrentProduct())
$upSellProducts = $currentProduct->getUpSellProducts();
if (!empty($upSellProducts))
echo '<h3>UpSell Products</h3>';
foreach ($upSellProducts as $upSellProduct)
echo $upSellProduct->getSku() . '<br />';
?>
Finally, remove generation by command rm -r var/generation
in order to update code
add a comment |
Your Answer
StackExchange.ready(function()
var channelOptions =
tags: "".split(" "),
id: "479"
;
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function()
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled)
StackExchange.using("snippets", function()
createEditor();
);
else
createEditor();
);
function createEditor()
StackExchange.prepareEditor(
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: false,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: null,
bindNavPrevention: true,
postfix: "",
imageUploader:
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
,
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
);
);
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fmagento.stackexchange.com%2fquestions%2f177944%2finvalid-block-type-mageplaza-helloworld-block-helloworld-magento-2%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
2 Answers
2
active
oldest
votes
2 Answers
2
active
oldest
votes
active
oldest
votes
active
oldest
votes
Class MagentoBackendBlockTemplateContext
is for adminhtml block
You should use MagentoFrameworkViewElementTemplateContext
class for frontend block
Here is your Final Block:
<?php
namespace MageplazaHelloWorldBlock;
class Upsell extends MagentoFrameworkViewElementTemplate
protected $registry;
protected $productFactory;
public function __construct(
MagentoFrameworkViewElementTemplateContext $context,
MagentoFrameworkRegistry $registry,
MagentoCatalogModelProductFactory $productFactory,
array $data = []
)
$this->registry = $registry;
$this->productFactory = $productFactory;
parent::__construct($context, $data);
public function _prepareLayout()
return parent::_prepareLayout();
public function getCurrentProduct()
return $this->registry->registry('current_product');
public function getProduct($productId)
$product = $this->productFactory->create()->load($productId);
return $product;
Don't use ObjectManager directly in phtml file. Use $block for current template block.
Here is your Final Phtml:
<?php
$currentProduct = $block->getCurrentProduct();
if ($currentProduct)
$upSellProducts = $currentProduct->getUpSellProducts();
if (!empty($upSellProducts))
echo '<h3>UpSell Products</h3>';
foreach ($upSellProducts as $upSellProduct)
$product = $block->getProduct($upSellProduct->getId());
echo $product->getSku() . '<br />';
Prince Patel@ hi prince but when I used this , I am not getting uppcell product , any mistake in this code
– sanjay
Jun 8 '17 at 6:18
@sanjay try my updated answer
– Prince Patel
Jun 8 '17 at 6:38
Prince Patel@can you suggest me how to get upcell product through object manager, I am getting issue width block creation, I have no option for cli so please let me know through object manager
– sanjay
Jun 8 '17 at 7:04
add a comment |
Class MagentoBackendBlockTemplateContext
is for adminhtml block
You should use MagentoFrameworkViewElementTemplateContext
class for frontend block
Here is your Final Block:
<?php
namespace MageplazaHelloWorldBlock;
class Upsell extends MagentoFrameworkViewElementTemplate
protected $registry;
protected $productFactory;
public function __construct(
MagentoFrameworkViewElementTemplateContext $context,
MagentoFrameworkRegistry $registry,
MagentoCatalogModelProductFactory $productFactory,
array $data = []
)
$this->registry = $registry;
$this->productFactory = $productFactory;
parent::__construct($context, $data);
public function _prepareLayout()
return parent::_prepareLayout();
public function getCurrentProduct()
return $this->registry->registry('current_product');
public function getProduct($productId)
$product = $this->productFactory->create()->load($productId);
return $product;
Don't use ObjectManager directly in phtml file. Use $block for current template block.
Here is your Final Phtml:
<?php
$currentProduct = $block->getCurrentProduct();
if ($currentProduct)
$upSellProducts = $currentProduct->getUpSellProducts();
if (!empty($upSellProducts))
echo '<h3>UpSell Products</h3>';
foreach ($upSellProducts as $upSellProduct)
$product = $block->getProduct($upSellProduct->getId());
echo $product->getSku() . '<br />';
Prince Patel@ hi prince but when I used this , I am not getting uppcell product , any mistake in this code
– sanjay
Jun 8 '17 at 6:18
@sanjay try my updated answer
– Prince Patel
Jun 8 '17 at 6:38
Prince Patel@can you suggest me how to get upcell product through object manager, I am getting issue width block creation, I have no option for cli so please let me know through object manager
– sanjay
Jun 8 '17 at 7:04
add a comment |
Class MagentoBackendBlockTemplateContext
is for adminhtml block
You should use MagentoFrameworkViewElementTemplateContext
class for frontend block
Here is your Final Block:
<?php
namespace MageplazaHelloWorldBlock;
class Upsell extends MagentoFrameworkViewElementTemplate
protected $registry;
protected $productFactory;
public function __construct(
MagentoFrameworkViewElementTemplateContext $context,
MagentoFrameworkRegistry $registry,
MagentoCatalogModelProductFactory $productFactory,
array $data = []
)
$this->registry = $registry;
$this->productFactory = $productFactory;
parent::__construct($context, $data);
public function _prepareLayout()
return parent::_prepareLayout();
public function getCurrentProduct()
return $this->registry->registry('current_product');
public function getProduct($productId)
$product = $this->productFactory->create()->load($productId);
return $product;
Don't use ObjectManager directly in phtml file. Use $block for current template block.
Here is your Final Phtml:
<?php
$currentProduct = $block->getCurrentProduct();
if ($currentProduct)
$upSellProducts = $currentProduct->getUpSellProducts();
if (!empty($upSellProducts))
echo '<h3>UpSell Products</h3>';
foreach ($upSellProducts as $upSellProduct)
$product = $block->getProduct($upSellProduct->getId());
echo $product->getSku() . '<br />';
Class MagentoBackendBlockTemplateContext
is for adminhtml block
You should use MagentoFrameworkViewElementTemplateContext
class for frontend block
Here is your Final Block:
<?php
namespace MageplazaHelloWorldBlock;
class Upsell extends MagentoFrameworkViewElementTemplate
protected $registry;
protected $productFactory;
public function __construct(
MagentoFrameworkViewElementTemplateContext $context,
MagentoFrameworkRegistry $registry,
MagentoCatalogModelProductFactory $productFactory,
array $data = []
)
$this->registry = $registry;
$this->productFactory = $productFactory;
parent::__construct($context, $data);
public function _prepareLayout()
return parent::_prepareLayout();
public function getCurrentProduct()
return $this->registry->registry('current_product');
public function getProduct($productId)
$product = $this->productFactory->create()->load($productId);
return $product;
Don't use ObjectManager directly in phtml file. Use $block for current template block.
Here is your Final Phtml:
<?php
$currentProduct = $block->getCurrentProduct();
if ($currentProduct)
$upSellProducts = $currentProduct->getUpSellProducts();
if (!empty($upSellProducts))
echo '<h3>UpSell Products</h3>';
foreach ($upSellProducts as $upSellProduct)
$product = $block->getProduct($upSellProduct->getId());
echo $product->getSku() . '<br />';
edited Aug 12 at 5:29
answered Jun 8 '17 at 4:50
Prince PatelPrince Patel
15.1k7 gold badges59 silver badges86 bronze badges
15.1k7 gold badges59 silver badges86 bronze badges
Prince Patel@ hi prince but when I used this , I am not getting uppcell product , any mistake in this code
– sanjay
Jun 8 '17 at 6:18
@sanjay try my updated answer
– Prince Patel
Jun 8 '17 at 6:38
Prince Patel@can you suggest me how to get upcell product through object manager, I am getting issue width block creation, I have no option for cli so please let me know through object manager
– sanjay
Jun 8 '17 at 7:04
add a comment |
Prince Patel@ hi prince but when I used this , I am not getting uppcell product , any mistake in this code
– sanjay
Jun 8 '17 at 6:18
@sanjay try my updated answer
– Prince Patel
Jun 8 '17 at 6:38
Prince Patel@can you suggest me how to get upcell product through object manager, I am getting issue width block creation, I have no option for cli so please let me know through object manager
– sanjay
Jun 8 '17 at 7:04
Prince Patel@ hi prince but when I used this , I am not getting uppcell product , any mistake in this code
– sanjay
Jun 8 '17 at 6:18
Prince Patel@ hi prince but when I used this , I am not getting uppcell product , any mistake in this code
– sanjay
Jun 8 '17 at 6:18
@sanjay try my updated answer
– Prince Patel
Jun 8 '17 at 6:38
@sanjay try my updated answer
– Prince Patel
Jun 8 '17 at 6:38
Prince Patel@can you suggest me how to get upcell product through object manager, I am getting issue width block creation, I have no option for cli so please let me know through object manager
– sanjay
Jun 8 '17 at 7:04
Prince Patel@can you suggest me how to get upcell product through object manager, I am getting issue width block creation, I have no option for cli so please let me know through object manager
– sanjay
Jun 8 '17 at 7:04
add a comment |
You shouldn't use ObjectManager
to get block in template like that. It is bad practices you should avoid.
Use $block
is corresponding to your current block . In your case is MageplazaHelloWorldBlockUpsell
Your Constructor in Block class need to modify
public function __construct(
MagentoFrameworkViewElementTemplateContext $context, <== this class
MagentoFrameworkRegistry $registry,
array $data = []
)
In your template
<?php /** @var MageplazaHelloWorldBlockUpsell $block **/
$currentProduct = $block->getCurrentProduct();
if ($currentProduct = $myBlock->getCurrentProduct())
$upSellProducts = $currentProduct->getUpSellProducts();
if (!empty($upSellProducts))
echo '<h3>UpSell Products</h3>';
foreach ($upSellProducts as $upSellProduct)
echo $upSellProduct->getSku() . '<br />';
?>
Finally, remove generation by command rm -r var/generation
in order to update code
add a comment |
You shouldn't use ObjectManager
to get block in template like that. It is bad practices you should avoid.
Use $block
is corresponding to your current block . In your case is MageplazaHelloWorldBlockUpsell
Your Constructor in Block class need to modify
public function __construct(
MagentoFrameworkViewElementTemplateContext $context, <== this class
MagentoFrameworkRegistry $registry,
array $data = []
)
In your template
<?php /** @var MageplazaHelloWorldBlockUpsell $block **/
$currentProduct = $block->getCurrentProduct();
if ($currentProduct = $myBlock->getCurrentProduct())
$upSellProducts = $currentProduct->getUpSellProducts();
if (!empty($upSellProducts))
echo '<h3>UpSell Products</h3>';
foreach ($upSellProducts as $upSellProduct)
echo $upSellProduct->getSku() . '<br />';
?>
Finally, remove generation by command rm -r var/generation
in order to update code
add a comment |
You shouldn't use ObjectManager
to get block in template like that. It is bad practices you should avoid.
Use $block
is corresponding to your current block . In your case is MageplazaHelloWorldBlockUpsell
Your Constructor in Block class need to modify
public function __construct(
MagentoFrameworkViewElementTemplateContext $context, <== this class
MagentoFrameworkRegistry $registry,
array $data = []
)
In your template
<?php /** @var MageplazaHelloWorldBlockUpsell $block **/
$currentProduct = $block->getCurrentProduct();
if ($currentProduct = $myBlock->getCurrentProduct())
$upSellProducts = $currentProduct->getUpSellProducts();
if (!empty($upSellProducts))
echo '<h3>UpSell Products</h3>';
foreach ($upSellProducts as $upSellProduct)
echo $upSellProduct->getSku() . '<br />';
?>
Finally, remove generation by command rm -r var/generation
in order to update code
You shouldn't use ObjectManager
to get block in template like that. It is bad practices you should avoid.
Use $block
is corresponding to your current block . In your case is MageplazaHelloWorldBlockUpsell
Your Constructor in Block class need to modify
public function __construct(
MagentoFrameworkViewElementTemplateContext $context, <== this class
MagentoFrameworkRegistry $registry,
array $data = []
)
In your template
<?php /** @var MageplazaHelloWorldBlockUpsell $block **/
$currentProduct = $block->getCurrentProduct();
if ($currentProduct = $myBlock->getCurrentProduct())
$upSellProducts = $currentProduct->getUpSellProducts();
if (!empty($upSellProducts))
echo '<h3>UpSell Products</h3>';
foreach ($upSellProducts as $upSellProduct)
echo $upSellProduct->getSku() . '<br />';
?>
Finally, remove generation by command rm -r var/generation
in order to update code
answered Jun 8 '17 at 0:10
mrtuvnmrtuvn
1,9831 gold badge18 silver badges30 bronze badges
1,9831 gold badge18 silver badges30 bronze badges
add a comment |
add a comment |
Thanks for contributing an answer to Magento Stack Exchange!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fmagento.stackexchange.com%2fquestions%2f177944%2finvalid-block-type-mageplaza-helloworld-block-helloworld-magento-2%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown