From 90c404c3c02a9ddab6826ba5b5efdd8fe7c1e928 Mon Sep 17 00:00:00 2001 From: Christoffer Lindqvist Date: Wed, 3 Dec 2014 17:08:41 +0200 Subject: [PATCH 01/71] Add initial classes needed for the backend menu and config --- .../Block/Adminhtml/Account/Settings.php | 6 + .../Block/Adminhtml/Form/Account/Connect.php | 54 +++++ .../Block/Adminhtml/Form/Account/Create.php | 62 +++++ .../Nosto/Tagging/Block/Adminhtml/Iframe.php | 30 +++ .../Nosto/Tagging/Block/Adminhtml/Wizard.php | 38 +++ .../Nosto/Tagging/Helper/Account.php | 66 ++++++ .../community/Nosto/Tagging/Helper/Oauth.php | 36 +++ .../Nosto/Tagging/Model/Meta/Account.php | 218 ++++++++++++++++++ .../Tagging/Model/Meta/Account/Billing.php | 62 +++++ .../Tagging/Model/Meta/Account/Owner.php | 111 +++++++++ .../Nosto/Tagging/Model/Meta/Oauth.php | 63 +++++ .../controllers/Adminhtml/NostoController.php | 114 +++++++++ .../Tagging/controllers/OauthController.php | 43 ++++ .../default/default/layout/nostotagging.xml | 37 +++ .../nostotagging/account/settings.phtml | 41 ++++ .../nostotagging/form/account/connect.phtml | 34 +++ .../nostotagging/form/account/create.phtml | 34 +++ .../template/nostotagging/iframe.phtml | 33 +++ .../template/nostotagging/wizard.phtml | 64 +++++ Nosto_Tagging/js/nostotagging-config.js | 31 +++ 20 files changed, 1177 insertions(+) create mode 100644 Nosto_Tagging/code/community/Nosto/Tagging/Block/Adminhtml/Account/Settings.php create mode 100644 Nosto_Tagging/code/community/Nosto/Tagging/Block/Adminhtml/Form/Account/Connect.php create mode 100644 Nosto_Tagging/code/community/Nosto/Tagging/Block/Adminhtml/Form/Account/Create.php create mode 100644 Nosto_Tagging/code/community/Nosto/Tagging/Block/Adminhtml/Iframe.php create mode 100644 Nosto_Tagging/code/community/Nosto/Tagging/Block/Adminhtml/Wizard.php create mode 100644 Nosto_Tagging/code/community/Nosto/Tagging/Helper/Account.php create mode 100644 Nosto_Tagging/code/community/Nosto/Tagging/Helper/Oauth.php create mode 100644 Nosto_Tagging/code/community/Nosto/Tagging/Model/Meta/Account.php create mode 100644 Nosto_Tagging/code/community/Nosto/Tagging/Model/Meta/Account/Billing.php create mode 100644 Nosto_Tagging/code/community/Nosto/Tagging/Model/Meta/Account/Owner.php create mode 100644 Nosto_Tagging/code/community/Nosto/Tagging/Model/Meta/Oauth.php create mode 100644 Nosto_Tagging/code/community/Nosto/Tagging/controllers/Adminhtml/NostoController.php create mode 100644 Nosto_Tagging/code/community/Nosto/Tagging/controllers/OauthController.php create mode 100644 Nosto_Tagging/design/adminhtml/default/default/layout/nostotagging.xml create mode 100644 Nosto_Tagging/design/adminhtml/default/default/template/nostotagging/account/settings.phtml create mode 100644 Nosto_Tagging/design/adminhtml/default/default/template/nostotagging/form/account/connect.phtml create mode 100644 Nosto_Tagging/design/adminhtml/default/default/template/nostotagging/form/account/create.phtml create mode 100644 Nosto_Tagging/design/adminhtml/default/default/template/nostotagging/iframe.phtml create mode 100644 Nosto_Tagging/design/adminhtml/default/default/template/nostotagging/wizard.phtml create mode 100644 Nosto_Tagging/js/nostotagging-config.js diff --git a/Nosto_Tagging/code/community/Nosto/Tagging/Block/Adminhtml/Account/Settings.php b/Nosto_Tagging/code/community/Nosto/Tagging/Block/Adminhtml/Account/Settings.php new file mode 100644 index 00000000..83994a98 --- /dev/null +++ b/Nosto_Tagging/code/community/Nosto/Tagging/Block/Adminhtml/Account/Settings.php @@ -0,0 +1,6 @@ + 'nosto_connect_account_form', + 'action' => $this->getUrl('*/*/connectAccount'), + 'method' => 'post', + 'enctype' => 'multipart/form-data' + )); + $form->setUseContainer(true); + $form->addField('nosto_store_id', 'hidden', array( + 'name' => 'nosto_store_id', + 'value' => $this->getRequest()->getParam('store', 0), + )); + $form->addField('nosto_connect_account_submit', 'submit', array( + 'class' => 'form-button', + 'name' => 'nosto_connect_account_submit', + 'value' => 'Add Nosto', // todo: translatable + )); + $this->setForm($form); + + return parent::_prepareForm(); + } +} diff --git a/Nosto_Tagging/code/community/Nosto/Tagging/Block/Adminhtml/Form/Account/Create.php b/Nosto_Tagging/code/community/Nosto/Tagging/Block/Adminhtml/Form/Account/Create.php new file mode 100644 index 00000000..4b9f3b10 --- /dev/null +++ b/Nosto_Tagging/code/community/Nosto/Tagging/Block/Adminhtml/Form/Account/Create.php @@ -0,0 +1,62 @@ + 'nosto_create_account_form', + 'action' => $this->getUrl('*/*/createAccount'), + 'method' => 'post', + 'enctype' => 'multipart/form-data' + )); + $form->setUseContainer(true); + $form->addField('nosto_store_id', 'hidden', array( + 'name' => 'nosto_store_id', + 'value' => $this->getRequest()->getParam('store', 0), + )); + $form->addField('nosto_create_account_email', 'text', array( + 'label' => 'Email', // todo: translatable + 'name' => 'nosto_create_account_email', + 'value' => 'todo@nosto.com', // todo: take from logged in admin user profile + )); + $form->addField('nosto_terms_and_conditions', 'note', array( + 'text' => 'By creating a new account you agree to Nosto\'s Terms and Conditions' // todo: translatable + )); + $form->addField('nosto_create_account_submit', 'submit', array( + 'class' => 'form-button', + 'name' => 'nosto_create_account_submit', + 'value' => 'Create Nosto', // todo: translatable + )); + $this->setForm($form); + + return parent::_prepareForm(); + } +} \ No newline at end of file diff --git a/Nosto_Tagging/code/community/Nosto/Tagging/Block/Adminhtml/Iframe.php b/Nosto_Tagging/code/community/Nosto/Tagging/Block/Adminhtml/Iframe.php new file mode 100644 index 00000000..37035905 --- /dev/null +++ b/Nosto_Tagging/code/community/Nosto/Tagging/Block/Adminhtml/Iframe.php @@ -0,0 +1,30 @@ +getStore(); + $this->title = $store->getWebsite()->getName() . ' - ' . $store->getName(); + $this->name = substr(sha1(rand()), 0, 8); + $this->frontPageUrl = $store->getBaseUrl(Mage_Core_Model_Store::URL_TYPE_WEB); + $this->currencyCode = $store->getBaseCurrencyCode(); + $this->languageCode = substr($store->getConfig('general/locale/code'), 0, 2); + $this->ownerLanguageCode = substr(Mage::app()->getLocale()->getLocaleCode(), 0, 2); + $this->owner = new Nosto_Tagging_Model_Meta_Account_Owner(); + $this->billing = new Nosto_Tagging_Model_Meta_Account_Billing(); + } + + /** + * Sets the store title. + * + * @param string $title the store title. + */ + public function setTitle($title) + { + $this->title = $title; + } + + /** + * @inheritdoc + */ + public function getTitle() + { + return $this->title; + } + + /** + * Sets the account name. + * + * @param string $name the account name. + */ + public function setName($name) + { + $this->name = $name; + } + + /** + * @inheritdoc + */ + public function getName() + { + return $this->name; + } + + /** + * @inheritdoc + */ + public function getPlatform() + { + return 'magento'; + } + + /** + * Sets the store front page url. + * + * @param string $url the front page url. + */ + public function setFrontPageUrl($url) + { + $this->frontPageUrl = $url; + } + + /** + * @inheritdoc + */ + public function getFrontPageUrl() + { + return $this->frontPageUrl; + } + + /** + * Sets the store currency ISO code. + * + * @param string $code the currency ISO code. + */ + public function setCurrencyCode($code) + { + $this->currencyCode = $code; + } + + /** + * @inheritdoc + */ + public function getCurrencyCode() + { + return $this->currencyCode; + } + + /** + * Sets the store language ISO code. + * + * @param string $languageCode the language ISO code. + */ + public function setLanguageCode($languageCode) + { + $this->languageCode = $languageCode; + } + + /** + * @inheritdoc + */ + public function getLanguageCode() + { + return $this->languageCode; + } + + /** + * Sets the owner language ISO code. + * + * @param string $languageCode the language ISO code. + */ + public function setOwnerLanguageCode($languageCode) + { + $this->ownerLanguageCode = $languageCode; + } + + /** + * @inheritdoc + */ + public function getOwnerLanguageCode() + { + return $this->ownerLanguageCode; + } + + /** + * @inheritdoc + */ + public function getOwner() + { + return $this->owner; + } + + /** + * @inheritdoc + */ + public function getBillingDetails() + { + return $this->billing; + } +} diff --git a/Nosto_Tagging/code/community/Nosto/Tagging/Model/Meta/Account/Billing.php b/Nosto_Tagging/code/community/Nosto/Tagging/Model/Meta/Account/Billing.php new file mode 100644 index 00000000..f3e6977f --- /dev/null +++ b/Nosto_Tagging/code/community/Nosto/Tagging/Model/Meta/Account/Billing.php @@ -0,0 +1,62 @@ +country = Mage::app()->getStore()->getConfig('general/country/default'); + } + + /** + * Sets the account billing details country ISO code. + * + * @param string $country the country ISO code. + */ + public function setCountry($country) + { + $this->country = $country; + } + + /** + * @inheritdoc + */ + public function getCountry() + { + return $this->country; + } +} \ No newline at end of file diff --git a/Nosto_Tagging/code/community/Nosto/Tagging/Model/Meta/Account/Owner.php b/Nosto_Tagging/code/community/Nosto/Tagging/Model/Meta/Account/Owner.php new file mode 100644 index 00000000..a8c67e3d --- /dev/null +++ b/Nosto_Tagging/code/community/Nosto/Tagging/Model/Meta/Account/Owner.php @@ -0,0 +1,111 @@ +getUser(); + $this->firstName = $user->getFirstname(); + $this->lastName = $user->getLastname(); + $this->email = $user->getEmail(); + } + + /** + * Sets the first name of the account owner. + * + * @param string $firstName the first name. + */ + public function setFirstName($firstName) + { + $this->firstName = $firstName; + } + + /** + * @inheritdoc + */ + public function getFirstName() + { + return $this->firstName; + } + + /** + * Sets the last name of the account owner. + * + * @param string $lastName the last name. + */ + public function setLastName($lastName) + { + $this->lastName = $lastName; + } + + /** + * @inheritdoc + */ + public function getLastName() + { + return $this->lastName; + } + + /** + * Sets the email address of the account owner. + * + * @param string $email the email address. + */ + public function setEmail($email) + { + $this->email = $email; + } + + /** + * @inheritdoc + */ + public function getEmail() + { + return $this->email; + } +} diff --git a/Nosto_Tagging/code/community/Nosto/Tagging/Model/Meta/Oauth.php b/Nosto_Tagging/code/community/Nosto/Tagging/Model/Meta/Oauth.php new file mode 100644 index 00000000..85be151d --- /dev/null +++ b/Nosto_Tagging/code/community/Nosto/Tagging/Model/Meta/Oauth.php @@ -0,0 +1,63 @@ +getLocale()->getLocaleCode(), 0, 2); + } +} \ No newline at end of file diff --git a/Nosto_Tagging/code/community/Nosto/Tagging/controllers/Adminhtml/NostoController.php b/Nosto_Tagging/code/community/Nosto/Tagging/controllers/Adminhtml/NostoController.php new file mode 100644 index 00000000..f73a51c6 --- /dev/null +++ b/Nosto_Tagging/code/community/Nosto/Tagging/controllers/Adminhtml/NostoController.php @@ -0,0 +1,114 @@ +_title($this->__('Nosto')); + $this->loadLayout(); + $this->renderLayout(); + } + + /** + * Redirects user to the Nosto OAuth 2 authorization server to connect and existing nosto account to current scope. + */ + public function connectAccountAction() + { + if ($this->getRequest()->isPost()) { + $storeId = (int)$this->getRequest()->getPost('nosto_store_id'); + if ($storeId > 0) { + Mage::app()->setCurrentStore($storeId); + } + $client = new NostoOAuthClient(Mage::helper('nosto_tagging/oauth')->getMetaData()); + $this->_redirectUrl($client->getAuthorizationUrl()); + } else { + $storeId = (int)$this->getRequest()->getParam('store'); + $this->_redirect('*/*/index', array('store' => $storeId)); + } + } + + /** + * Creates a new Nosto account for the current scope using the Nosto API. + */ + public function createAccountAction() + { + Mage::app()->setCurrentStore((int)$this->getRequest()->getParam('store')); + if ($this->getRequest()->isPost()) { + $storeId = (int)$this->getRequest()->getPost('nosto_store_id'); + if ($storeId > 0) { + Mage::app()->setCurrentStore($storeId); + } + try { + $email = $this->getRequest()->getPost('nosto_create_account_email'); + /** @var Nosto_Tagging_Model_Meta_Account $meta */ + $meta = Mage::helper('nosto_tagging/account')->getMetaData(); + if (!empty($email)) { + $meta->getOwner()->setEmail($email); + } + $account = NostoAccount::create($meta); + if (Mage::helper('nosto_tagging/account')->save($account)) { + Mage::getSingleton('core/session')->addSuccess($this->__('Account created. Please check your email and follow the instructions to set a password for your new account within three days.')); + } else { + throw new NostoException('Failed to create account'); + } + } catch (NostoException $e) { + Mage::log("\n" . $e->__toString(), Zend_Log::ERR, 'nostotagging.log'); + Mage::getSingleton('core/session')->addException($e, $this->__('Account could not be automatically created. Please visit nosto.com to create a new account.')); + } + } else { + $storeId = (int)$this->getRequest()->getParam('store'); + } + $this->_redirect('*/*/index', array('store' => $storeId)); + } + + /** + * Removes a Nosto account from the current scope. + */ + public function removeAccountAction() + { + if ($this->getRequest()->isPost()) { + $storeId = (int)$this->getRequest()->getPost('nosto_store_id'); + if ($storeId > 0) { + Mage::app()->setCurrentStore($storeId); + } + $account = Mage::helper('nosto_tagging/account')->find(Mage::app()->getStore()); + if (Mage::helper('nosto_tagging/account')->remove($account)) { + Mage::getSingleton('core/session')->addSuccess($this->__('Account successfully removed.')); + } else { + Mage::getSingleton('core/session')->addError($this->__('Failed to remove account.')); + } + } else { + $storeId = (int)$this->getRequest()->getParam('store'); + } + $this->_redirect('*/*/index', array('store' => $storeId)); + } +} diff --git a/Nosto_Tagging/code/community/Nosto/Tagging/controllers/OauthController.php b/Nosto_Tagging/code/community/Nosto/Tagging/controllers/OauthController.php new file mode 100644 index 00000000..5dd41375 --- /dev/null +++ b/Nosto_Tagging/code/community/Nosto/Tagging/controllers/OauthController.php @@ -0,0 +1,43 @@ +getRequest()->getParam('code')) !== null) { + try { + $account = NostoAccount::syncFromNosto(Mage::helper('nosto_tagging/oauth')->getMetaData(), $code); + if (Mage::helper('nosto_tagging/account')->save($account)) { + // todo: success flash message + } else { + throw new NostoException('Failed to connect account'); + } + } catch (NostoException $e) { + Mage::log("\n" . $e->__toString(), Zend_Log::ERR, 'nostotagging.log'); + // todo: exception flash message + } + $this->_redirect('adminhtml/nosto/index'); + } elseif (($error = $this->getRequest()->getParam('error')) !== null) { + $messageParts = array($error); + if (($errorReason = $this->getRequest()->getParam('error_reason')) !== null) { + $messageParts[] = $errorReason; + } + if (($errorDesc = $this->getRequest()->getParam('error_description')) !== null) { + $messageParts[] = $errorDesc; + } + Mage::log("\n" . implode(' - ', $messageParts), Zend_Log::ERR, 'nostotagging.log'); + // todo: error flash message + $this->_redirect('adminhtml/nosto/index'); + } else { + $this->norouteAction(); + } + } +} diff --git a/Nosto_Tagging/design/adminhtml/default/default/layout/nostotagging.xml b/Nosto_Tagging/design/adminhtml/default/default/layout/nostotagging.xml new file mode 100644 index 00000000..426217c7 --- /dev/null +++ b/Nosto_Tagging/design/adminhtml/default/default/layout/nostotagging.xml @@ -0,0 +1,37 @@ + + + + + + + + skin_js + js/nostotagging/nostotagging-config.js + + + + + + + nosto/index + + + + + + + + 0 + + + + + + + + + + + + + \ No newline at end of file diff --git a/Nosto_Tagging/design/adminhtml/default/default/template/nostotagging/account/settings.phtml b/Nosto_Tagging/design/adminhtml/default/default/template/nostotagging/account/settings.phtml new file mode 100644 index 00000000..f0f4a4a0 --- /dev/null +++ b/Nosto_Tagging/design/adminhtml/default/default/template/nostotagging/account/settings.phtml @@ -0,0 +1,41 @@ + + + +
+

You have added Nosto to your English shop

+

Your account ID is prestashop-28415bb9

+
+

If you want to change the account, you need to remove the existing one first

+ Back + +
+
\ No newline at end of file diff --git a/Nosto_Tagging/design/adminhtml/default/default/template/nostotagging/form/account/connect.phtml b/Nosto_Tagging/design/adminhtml/default/default/template/nostotagging/form/account/connect.phtml new file mode 100644 index 00000000..a2102e15 --- /dev/null +++ b/Nosto_Tagging/design/adminhtml/default/default/template/nostotagging/form/account/connect.phtml @@ -0,0 +1,34 @@ + + + + +getFormHtml(); ?> diff --git a/Nosto_Tagging/design/adminhtml/default/default/template/nostotagging/form/account/create.phtml b/Nosto_Tagging/design/adminhtml/default/default/template/nostotagging/form/account/create.phtml new file mode 100644 index 00000000..8fdef34b --- /dev/null +++ b/Nosto_Tagging/design/adminhtml/default/default/template/nostotagging/form/account/create.phtml @@ -0,0 +1,34 @@ + + + + +getFormHtml(); ?> diff --git a/Nosto_Tagging/design/adminhtml/default/default/template/nostotagging/iframe.phtml b/Nosto_Tagging/design/adminhtml/default/default/template/nostotagging/iframe.phtml new file mode 100644 index 00000000..9d41e487 --- /dev/null +++ b/Nosto_Tagging/design/adminhtml/default/default/template/nostotagging/iframe.phtml @@ -0,0 +1,33 @@ + + + + \ No newline at end of file diff --git a/Nosto_Tagging/design/adminhtml/default/default/template/nostotagging/wizard.phtml b/Nosto_Tagging/design/adminhtml/default/default/template/nostotagging/wizard.phtml new file mode 100644 index 00000000..02403ebd --- /dev/null +++ b/Nosto_Tagging/design/adminhtml/default/default/template/nostotagging/wizard.phtml @@ -0,0 +1,64 @@ + + +getIframeUrl() !== ''); +?> +
+

Foo

+
+ +isSingleStoreMode() ): ?> + getChildHtml('store_switcher'); ?> + + +isAccountConnected()): ?> +
+

Add Nosto to your English shop

+

Do you have an existing Nosto account?

+ +
+ + + + +
+ +
getChildHtml('nosto.form.account.connect'); ?>
+ +
+ +
+
getChildHtml('nosto.account.settings'); ?>
+ +
getChildHtml('nosto.iframe'); ?>
+ +
+ diff --git a/Nosto_Tagging/js/nostotagging-config.js b/Nosto_Tagging/js/nostotagging-config.js new file mode 100644 index 00000000..46a5c12f --- /dev/null +++ b/Nosto_Tagging/js/nostotagging-config.js @@ -0,0 +1,31 @@ +document.observe("dom:loaded", function() { + // Change event handler for "Do you have an existing Nosto account?". + $("nosto_has_account").on("change", "input[name='nosto_has_account_radio']", function(event) { + var val = parseInt($(event.target).getValue()), + oldAccount = $("nosto_old_account"), + newAccount = $("nosto_new_account"); + if (val === 1) { + oldAccount.show(); + newAccount.hide(); + } else { + oldAccount.hide(); + newAccount.show(); + } + }); + // Click event handler for the "Account settings". +// $("#nostotagging_account_setup").click(function(event) { +// event.preventDefault(); +// var $iframe = $('#nostotagging_iframe'), +// $installedView = $('#nostotagging_installed'); +// $installedView.show(); +// $iframe.hide(); +// }); + // Click event handler for the "Back" button on the "You have installed Nosto...." page. +// $('#nostotagging_back_to_iframe').click(function(event) { +// event.preventDefault(); +// var $iframe = $('#nostotagging_iframe'), +// $installedView = $('#nostotagging_installed'); +// $iframe.show(); +// $installedView.hide(); +// }); +}); From 098e2fa53aadc05a1d536b69e2be643677d4fc87 Mon Sep 17 00:00:00 2001 From: Christoffer Lindqvist Date: Wed, 3 Dec 2014 17:11:22 +0200 Subject: [PATCH 02/71] Add missing config for the menu and routing --- .../community/Nosto/Tagging/etc/adminhtml.xml | 7 +++++ .../community/Nosto/Tagging/etc/config.xml | 29 +++++++++++++++++++ 2 files changed, 36 insertions(+) diff --git a/Nosto_Tagging/code/community/Nosto/Tagging/etc/adminhtml.xml b/Nosto_Tagging/code/community/Nosto/Tagging/etc/adminhtml.xml index af45f0e4..d70ec0cf 100644 --- a/Nosto_Tagging/code/community/Nosto/Tagging/etc/adminhtml.xml +++ b/Nosto_Tagging/code/community/Nosto/Tagging/etc/adminhtml.xml @@ -26,6 +26,13 @@ */ --> + + + Nosto + 500 + adminhtml/nosto/index + + diff --git a/Nosto_Tagging/code/community/Nosto/Tagging/etc/config.xml b/Nosto_Tagging/code/community/Nosto/Tagging/etc/config.xml index 2dd9e449..b5d5c572 100644 --- a/Nosto_Tagging/code/community/Nosto/Tagging/etc/config.xml +++ b/Nosto_Tagging/code/community/Nosto/Tagging/etc/config.xml @@ -56,6 +56,26 @@ + + + + + nostotagging.xml + + + + + + + + + + Nosto_Tagging_Adminhtml + + + + + @@ -75,6 +95,15 @@ + + + standard + + Nosto_Tagging + nosto + + + From 692d9d7f307a1158dba9f9ea4cc2473af69a410a Mon Sep 17 00:00:00 2001 From: Christoffer Lindqvist Date: Mon, 8 Dec 2014 15:09:43 +0200 Subject: [PATCH 03/71] Improve nosto account handling --- .../Block/Adminhtml/Account/Settings.php | 6 - .../Block/Adminhtml/Form/Account/Connect.php | 2 +- .../Block/Adminhtml/Form/Account/Create.php | 1 + .../Block/Adminhtml/Form/Account/Remove.php | 66 +++++ .../Nosto/Tagging/Block/Adminhtml/Iframe.php | 12 +- .../Nosto/Tagging/Block/Adminhtml/Wizard.php | 39 ++- .../Nosto/Tagging/Helper/Account.php | 70 ++++- .../Tagging/Model/Meta/Account/Iframe.php | 252 ++++++++++++++++++ .../Nosto/Tagging/Model/Meta/Oauth.php | 49 +++- .../controllers/Adminhtml/NostoController.php | 18 +- .../Tagging/controllers/OauthController.php | 2 + .../community/Nosto/Tagging/etc/system.xml | 8 +- .../default/default/layout/nostotagging.xml | 8 +- .../nostotagging/form/account/create.phtml | 7 + .../account/remove.phtml} | 8 +- .../template/nostotagging/iframe.phtml | 2 +- .../template/nostotagging/wizard.phtml | 12 +- Nosto_Tagging/js/nostotagging-config.js | 62 +++-- 18 files changed, 544 insertions(+), 80 deletions(-) delete mode 100644 Nosto_Tagging/code/community/Nosto/Tagging/Block/Adminhtml/Account/Settings.php create mode 100644 Nosto_Tagging/code/community/Nosto/Tagging/Block/Adminhtml/Form/Account/Remove.php create mode 100644 Nosto_Tagging/code/community/Nosto/Tagging/Model/Meta/Account/Iframe.php rename Nosto_Tagging/design/adminhtml/default/default/template/nostotagging/{account/settings.phtml => form/account/remove.phtml} (82%) diff --git a/Nosto_Tagging/code/community/Nosto/Tagging/Block/Adminhtml/Account/Settings.php b/Nosto_Tagging/code/community/Nosto/Tagging/Block/Adminhtml/Account/Settings.php deleted file mode 100644 index 83994a98..00000000 --- a/Nosto_Tagging/code/community/Nosto/Tagging/Block/Adminhtml/Account/Settings.php +++ /dev/null @@ -1,6 +0,0 @@ - 'Email', // todo: translatable 'name' => 'nosto_create_account_email', 'value' => 'todo@nosto.com', // todo: take from logged in admin user profile + 'class' => 'required-entry validate-email', )); $form->addField('nosto_terms_and_conditions', 'note', array( 'text' => 'By creating a new account you agree to Nosto\'s Terms and Conditions' // todo: translatable diff --git a/Nosto_Tagging/code/community/Nosto/Tagging/Block/Adminhtml/Form/Account/Remove.php b/Nosto_Tagging/code/community/Nosto/Tagging/Block/Adminhtml/Form/Account/Remove.php new file mode 100644 index 00000000..9f396e2b --- /dev/null +++ b/Nosto_Tagging/code/community/Nosto/Tagging/Block/Adminhtml/Form/Account/Remove.php @@ -0,0 +1,66 @@ + 'nosto_remove_account_form', + 'action' => $this->getUrl('*/*/removeAccount'), + 'method' => 'post', + 'enctype' => 'multipart/form-data' + )); + $form->setUseContainer(true); + $form->addField('nosto_store_id', 'hidden', array( + 'name' => 'nosto_store_id', + 'value' => $this->getRequest()->getParam('store', 0), + )); + $form->addField('nosto_remove_account_submit', 'submit', array( + 'class' => 'form-button', + 'name' => 'nosto_remove_account_submit', + 'value' => 'Remove Nosto', // todo: translatable + )); + $this->setForm($form); + + return parent::_prepareForm(); + } + + /** + * @return string + */ + public function getAccountName() + { + $parent = $this->getParentBlock(); + if ($parent instanceof Nosto_tagging_Block_Adminhtml_Wizard) { + return $parent->getAccount()->name; + } + return ''; + } +} diff --git a/Nosto_Tagging/code/community/Nosto/Tagging/Block/Adminhtml/Iframe.php b/Nosto_Tagging/code/community/Nosto/Tagging/Block/Adminhtml/Iframe.php index 37035905..48e5e081 100644 --- a/Nosto_Tagging/code/community/Nosto/Tagging/Block/Adminhtml/Iframe.php +++ b/Nosto_Tagging/code/community/Nosto/Tagging/Block/Adminhtml/Iframe.php @@ -26,5 +26,15 @@ class Nosto_tagging_Block_Adminhtml_Iframe extends Mage_Adminhtml_Block_Template { - + /** + * @return string + */ + public function getIframeUrl() + { + $parent = $this->getParentBlock(); + if ($parent instanceof Nosto_tagging_Block_Adminhtml_Wizard) { + return $parent->getIframeUrl(); + } + return ''; + } } \ No newline at end of file diff --git a/Nosto_Tagging/code/community/Nosto/Tagging/Block/Adminhtml/Wizard.php b/Nosto_Tagging/code/community/Nosto/Tagging/Block/Adminhtml/Wizard.php index 8e6c689f..10c722f0 100644 --- a/Nosto_Tagging/code/community/Nosto/Tagging/Block/Adminhtml/Wizard.php +++ b/Nosto_Tagging/code/community/Nosto/Tagging/Block/Adminhtml/Wizard.php @@ -26,13 +26,44 @@ class Nosto_tagging_Block_Adminhtml_Wizard extends Mage_Adminhtml_Block_Template { - public function isAccountConnected() + /** + * @var NostoAccount + */ + private $_account; + + /** + * @var string + */ + private $_iframeUrl; + + /** + * @return string + */ + public function getIframeUrl() { - return false; + if ($this->_iframeUrl !== null) { + return $this->_iframeUrl; + } + $account = $this->getAccount(); + if ($account) { + try { + $meta = new Nosto_Tagging_Model_Meta_Account_Iframe(); + return $this->_iframeUrl = $account->getIframeUrl($meta); + } catch (NostoException $e) { + Mage::log("\n" . $e->__toString(), Zend_Log::ERR, 'nostotagging.log'); + } + } + return $this->_iframeUrl = ''; } - public function getIframeUrl() + /** + * @return NostoAccount|null + */ + public function getAccount() { - return ''; + if ($this->_account !== null) { + return $this->_account; + } + return $this->_account = Mage::helper('nosto_tagging/account')->find(); } } diff --git a/Nosto_Tagging/code/community/Nosto/Tagging/Helper/Account.php b/Nosto_Tagging/code/community/Nosto/Tagging/Helper/Account.php index 58b0d750..edfa5a7e 100644 --- a/Nosto_Tagging/code/community/Nosto/Tagging/Helper/Account.php +++ b/Nosto_Tagging/code/community/Nosto/Tagging/Helper/Account.php @@ -26,33 +26,83 @@ class Nosto_Tagging_Helper_Account extends Mage_Core_Helper_Abstract { + /** + * Path to store config nosto account name. + */ + const XML_PATH_ACCOUNT = 'nosto_tagging/settings/account'; + + /** + * Path to store config nosto account tokens. + */ + const XML_PATH_TOKENS = 'nosto_tagging/settings/tokens'; + /** * @param NostoAccount $account + * @param Mage_Core_Model_Store|null $store * @return bool */ - public function save(NostoAccount $account) + public function save(NostoAccount $account, Mage_Core_Model_Store $store = null) { - // todo: implement - return false; + if ($store === null) { + $store = Mage::app()->getStore(); + } + if ((int)$store->getId() < 1) { + return false; + } + /** @var Mage_Core_Model_Config $config */ + $config = Mage::getModel('core/config'); + $config->saveConfig(self::XML_PATH_ACCOUNT, $account->name, 'stores', $store->getId()); + $tokens = array(); + foreach ($account->tokens as $token) { + $tokens[$token->name] = $token->value; + } + $config->saveConfig(self::XML_PATH_TOKENS, json_encode($tokens), 'stores', $store->getId()); + return true; } /** - * @param NostoAccount $account + * @param Mage_Core_Model_Store|null $store * @return bool */ - public function remove(NostoAccount $account) + public function remove(Mage_Core_Model_Store $store = null) { - // todo: implement - return false; + if ($store === null) { + $store = Mage::app()->getStore(); + } + if ((int)$store->getId() < 1) { + return false; + } + /** @var Mage_Core_Model_Config $config */ + $config = Mage::getModel('core/config'); + $config->saveConfig(self::XML_PATH_ACCOUNT, null, 'stores', $store->getId()); + $config->saveConfig(self::XML_PATH_TOKENS, null, 'stores', $store->getId()); + return true; } /** - * @param Mage_Core_Model_Store $store + * @param Mage_Core_Model_Store|null $store * @return NostoAccount|null */ - public function find(Mage_Core_Model_Store $store) + public function find(Mage_Core_Model_Store $store = null) { - // todo: implement + if ($store === null) { + $store = Mage::app()->getStore(); + } + $accountName = $store->getConfig(self::XML_PATH_ACCOUNT); + if (!empty($accountName)) { + $account = new NostoAccount(); + $account->name = $accountName; + $tokens = json_decode($store->getConfig(self::XML_PATH_TOKENS)); + if (is_array($tokens) && !empty($tokens)) { + foreach ($tokens as $name => $value) { + $token = new NostoApiToken(); + $token->name = $name; + $token->value = $value; + $account->tokens[] = $token; + } + } + return $account; + } return null; } diff --git a/Nosto_Tagging/code/community/Nosto/Tagging/Model/Meta/Account/Iframe.php b/Nosto_Tagging/code/community/Nosto/Tagging/Model/Meta/Account/Iframe.php new file mode 100644 index 00000000..c895df4a --- /dev/null +++ b/Nosto_Tagging/code/community/Nosto/Tagging/Model/Meta/Account/Iframe.php @@ -0,0 +1,252 @@ +getUser(); + $this->firstName = $user->getFirstname(); + $this->lastName = $user->getLastname(); + $this->email = $user->getEmail(); + $this->languageIsoCode = substr(Mage::app()->getLocale()->getLocaleCode(), 0, 2); + + // todo + $this->languageIsoCodeShop = ''; + $this->uniqueId = ''; + $this->previewUrlProduct = ''; + $this->previewUrlCategory = ''; + $this->previewUrlSearch = ''; + $this->previewUrlCart = ''; + $this->previewUrlFront = ''; + } + + /** + * Sets the first name of the admin user. + * + * @param string $firstName the first name. + */ + public function setFirstName($firstName) + { + $this->firstName = $firstName; + } + + /** + * @inheritdoc + */ + public function getFirstName() + { + return $this->firstName; + } + + /** + * Sets the last name of the admin user. + * + * @param string $lastName the last name. + */ + public function setLastName($lastName) + { + $this->lastName = $lastName; + } + + /** + * @inheritdoc + */ + public function getLastName() + { + return $this->lastName; + } + + /** + * Sets the email address of the admin user. + * + * @param string $email the email address. + */ + public function setEmail($email) + { + $this->email = $email; + } + + /** + * @inheritdoc + */ + public function getEmail() + { + return $this->email; + } + + /** + * Sets the language ISO code. + * + * @param string $code the ISO code. + */ + public function setLanguageIsoCode($code) + { + $this->languageIsoCode = $code; + } + + /** + * @inheritdoc + */ + public function getLanguageIsoCode() + { + return $this->languageIsoCode; + } + + /** + * @inheritdoc + */ + public function getLanguageIsoCodeShop() + { + return $this->languageIsoCodeShop; + } + + /** + * @inheritdoc + */ + public function getUniqueId() + { + return $this->uniqueId; + } + + /** + * @inheritdoc + */ + public function getVersionPlatform() + { + return Mage::getVersion(); + } + + /** + * @inheritdoc + */ + public function getVersionModule() + { + return '0.0.0'; // todo + } + + /** + * @inheritdoc + */ + public function getPreviewUrlProduct() + { + return $this->previewUrlProduct; + } + + /** + * @inheritdoc + */ + public function getPreviewUrlCategory() + { + return $this->previewUrlCategory; + } + + /** + * @inheritdoc + */ + public function getPreviewUrlSearch() + { + return $this->previewUrlSearch; + } + + /** + * @inheritdoc + */ + public function getPreviewUrlCart() + { + return $this->previewUrlCart; + } + + /** + * @inheritdoc + */ + public function getPreviewUrlFront() + { + return $this->previewUrlFront; + } +} diff --git a/Nosto_Tagging/code/community/Nosto/Tagging/Model/Meta/Oauth.php b/Nosto_Tagging/code/community/Nosto/Tagging/Model/Meta/Oauth.php index 85be151d..39e87ded 100644 --- a/Nosto_Tagging/code/community/Nosto/Tagging/Model/Meta/Oauth.php +++ b/Nosto_Tagging/code/community/Nosto/Tagging/Model/Meta/Oauth.php @@ -26,6 +26,28 @@ class Nosto_Tagging_Model_Meta_Oauth extends Mage_Core_Model_Abstract implements NostoOAuthClientMetaDataInterface { + /** + * @var string the url where the oauth2 server should redirect after authorization is done. + */ + protected $redirectUrl; + + /** + * @var string the language ISO code for localization on oauth2 server. + */ + protected $languageIsoCode; + + /** + * Constructor. + * Sets initial values. + */ + public function __construct() + { + parent::__construct(); + + $this->redirectUrl = Mage::getUrl('nosto/oauth', array('_store' => Mage::app()->getStore()->getId())); + $this->languageIsoCode = substr(Mage::app()->getLocale()->getLocaleCode(), 0, 2); + } + /** * @inheritdoc */ @@ -47,10 +69,17 @@ public function getClientSecret() */ public function getRedirectUrl() { - var_dump(Mage::getUrl('nosto/oauth'));die; + return $this->redirectUrl; + } - // todo: get the shop scope view oauth front controller url - return 'todo'; + /** + * Sets the redirect url. + * + * @param string $url the url. + */ + public function setRedirectUrl($url) + { + $this->redirectUrl = $url; } /** @@ -58,6 +87,16 @@ public function getRedirectUrl() */ public function getLanguageIsoCode() { - return substr(Mage::app()->getLocale()->getLocaleCode(), 0, 2); + return $this->languageIsoCode; + } + + /** + * Sets the language ISO code. + * + * @param string $code the ISO code. + */ + public function setLanguageIsoCode($code) + { + $this->languageIsoCode = $code; } -} \ No newline at end of file +} diff --git a/Nosto_Tagging/code/community/Nosto/Tagging/controllers/Adminhtml/NostoController.php b/Nosto_Tagging/code/community/Nosto/Tagging/controllers/Adminhtml/NostoController.php index f73a51c6..41a4506b 100644 --- a/Nosto_Tagging/code/community/Nosto/Tagging/controllers/Adminhtml/NostoController.php +++ b/Nosto_Tagging/code/community/Nosto/Tagging/controllers/Adminhtml/NostoController.php @@ -26,6 +26,7 @@ require_once(Mage::getBaseDir('lib').'/nosto/sdk/src/config.inc.php'); +// todo: clean up current store handling class Nosto_Tagging_Adminhtml_NostoController extends Mage_Adminhtml_Controller_Action { /** @@ -34,6 +35,13 @@ class Nosto_Tagging_Adminhtml_NostoController extends Mage_Adminhtml_Controller_ public function indexAction() { $this->_title($this->__('Nosto')); + $storeId = (int)$this->getRequest()->getParam('store'); + if ($storeId > 0) { + Mage::app()->setCurrentStore($storeId); + } + if ((int)Mage::app()->getStore()->getId() < 1) { + Mage::getSingleton('core/session')->addNotice($this->__('Please choose a shop to configure Nosto for.')); + } $this->loadLayout(); $this->renderLayout(); } @@ -61,7 +69,6 @@ public function connectAccountAction() */ public function createAccountAction() { - Mage::app()->setCurrentStore((int)$this->getRequest()->getParam('store')); if ($this->getRequest()->isPost()) { $storeId = (int)$this->getRequest()->getPost('nosto_store_id'); if ($storeId > 0) { @@ -71,14 +78,12 @@ public function createAccountAction() $email = $this->getRequest()->getPost('nosto_create_account_email'); /** @var Nosto_Tagging_Model_Meta_Account $meta */ $meta = Mage::helper('nosto_tagging/account')->getMetaData(); - if (!empty($email)) { + if (Zend_Validate::is($email, 'EmailAddress')) { $meta->getOwner()->setEmail($email); } $account = NostoAccount::create($meta); if (Mage::helper('nosto_tagging/account')->save($account)) { Mage::getSingleton('core/session')->addSuccess($this->__('Account created. Please check your email and follow the instructions to set a password for your new account within three days.')); - } else { - throw new NostoException('Failed to create account'); } } catch (NostoException $e) { Mage::log("\n" . $e->__toString(), Zend_Log::ERR, 'nostotagging.log'); @@ -100,11 +105,8 @@ public function removeAccountAction() if ($storeId > 0) { Mage::app()->setCurrentStore($storeId); } - $account = Mage::helper('nosto_tagging/account')->find(Mage::app()->getStore()); - if (Mage::helper('nosto_tagging/account')->remove($account)) { + if (Mage::helper('nosto_tagging/account')->remove()) { Mage::getSingleton('core/session')->addSuccess($this->__('Account successfully removed.')); - } else { - Mage::getSingleton('core/session')->addError($this->__('Failed to remove account.')); } } else { $storeId = (int)$this->getRequest()->getParam('store'); diff --git a/Nosto_Tagging/code/community/Nosto/Tagging/controllers/OauthController.php b/Nosto_Tagging/code/community/Nosto/Tagging/controllers/OauthController.php index 5dd41375..fb61534a 100644 --- a/Nosto_Tagging/code/community/Nosto/Tagging/controllers/OauthController.php +++ b/Nosto_Tagging/code/community/Nosto/Tagging/controllers/OauthController.php @@ -1,5 +1,7 @@ text nosto_tagging/config_account 30 - 1 - 1 + 0 + 0 1 required-entry @@ -92,8 +92,8 @@ select adminhtml/system_config_source_yesno 10 - 1 - 1 + 0 + 0 1 diff --git a/Nosto_Tagging/design/adminhtml/default/default/layout/nostotagging.xml b/Nosto_Tagging/design/adminhtml/default/default/layout/nostotagging.xml index 426217c7..778cb55c 100644 --- a/Nosto_Tagging/design/adminhtml/default/default/layout/nostotagging.xml +++ b/Nosto_Tagging/design/adminhtml/default/default/layout/nostotagging.xml @@ -24,11 +24,11 @@ 0 - + - - - + + + diff --git a/Nosto_Tagging/design/adminhtml/default/default/template/nostotagging/form/account/create.phtml b/Nosto_Tagging/design/adminhtml/default/default/template/nostotagging/form/account/create.phtml index 8fdef34b..f6775725 100644 --- a/Nosto_Tagging/design/adminhtml/default/default/template/nostotagging/form/account/create.phtml +++ b/Nosto_Tagging/design/adminhtml/default/default/template/nostotagging/form/account/create.phtml @@ -32,3 +32,10 @@ ?> getFormHtml(); ?> + + + + + + + diff --git a/Nosto_Tagging/design/adminhtml/default/default/template/nostotagging/account/settings.phtml b/Nosto_Tagging/design/adminhtml/default/default/template/nostotagging/form/account/remove.phtml similarity index 82% rename from Nosto_Tagging/design/adminhtml/default/default/template/nostotagging/account/settings.phtml rename to Nosto_Tagging/design/adminhtml/default/default/template/nostotagging/form/account/remove.phtml index f0f4a4a0..2536dbf0 100644 --- a/Nosto_Tagging/design/adminhtml/default/default/template/nostotagging/account/settings.phtml +++ b/Nosto_Tagging/design/adminhtml/default/default/template/nostotagging/form/account/remove.phtml @@ -27,15 +27,15 @@

You have added Nosto to your English shop

-

Your account ID is prestashop-28415bb9

+

Your account ID is getAccountName(); ?>

If you want to change the account, you need to remove the existing one first

- Back - + Back + getFormHtml(); ?>
\ No newline at end of file diff --git a/Nosto_Tagging/design/adminhtml/default/default/template/nostotagging/iframe.phtml b/Nosto_Tagging/design/adminhtml/default/default/template/nostotagging/iframe.phtml index 9d41e487..44ff9828 100644 --- a/Nosto_Tagging/design/adminhtml/default/default/template/nostotagging/iframe.phtml +++ b/Nosto_Tagging/design/adminhtml/default/default/template/nostotagging/iframe.phtml @@ -30,4 +30,4 @@ * @var $this Nosto_Tagging_Block_Adminhtml_Iframe */ ?> - \ No newline at end of file + \ No newline at end of file diff --git a/Nosto_Tagging/design/adminhtml/default/default/template/nostotagging/wizard.phtml b/Nosto_Tagging/design/adminhtml/default/default/template/nostotagging/wizard.phtml index 02403ebd..1dbfc897 100644 --- a/Nosto_Tagging/design/adminhtml/default/default/template/nostotagging/wizard.phtml +++ b/Nosto_Tagging/design/adminhtml/default/default/template/nostotagging/wizard.phtml @@ -29,17 +29,16 @@ /** * @var $this Nosto_Tagging_Block_Adminhtml_Wizard */ -$canShowIframe = ($this->getIframeUrl() !== ''); ?>
-

Foo

+

Nosto

isSingleStoreMode() ): ?> getChildHtml('store_switcher'); ?> -isAccountConnected()): ?> +getAccount() === null): ?>

Add Nosto to your English shop

Do you have an existing Nosto account?

@@ -56,9 +55,10 @@ $canShowIframe = ($this->getIframeUrl() !== '');
-
getChildHtml('nosto.account.settings'); ?>
- -
getChildHtml('nosto.iframe'); ?>
+ Account settings +
getChildHtml('nosto.form.account.remove'); ?>
+ getIframeUrl()): ?> +
getChildHtml('nosto.iframe'); ?>
diff --git a/Nosto_Tagging/js/nostotagging-config.js b/Nosto_Tagging/js/nostotagging-config.js index 46a5c12f..25e18bf5 100644 --- a/Nosto_Tagging/js/nostotagging-config.js +++ b/Nosto_Tagging/js/nostotagging-config.js @@ -1,31 +1,41 @@ document.observe("dom:loaded", function() { // Change event handler for "Do you have an existing Nosto account?". - $("nosto_has_account").on("change", "input[name='nosto_has_account_radio']", function(event) { - var val = parseInt($(event.target).getValue()), - oldAccount = $("nosto_old_account"), - newAccount = $("nosto_new_account"); - if (val === 1) { - oldAccount.show(); - newAccount.hide(); - } else { - oldAccount.hide(); - newAccount.show(); - } - }); + if ($("nosto_has_account") !== null) { + $("nosto_has_account").on("change", "input[name='nosto_has_account_radio']", function(event) { + var val = parseInt($(event.target).getValue()), + oldAccount = $("nosto_old_account"), + newAccount = $("nosto_new_account"); + if (val === 1) { + oldAccount.show(); + newAccount.hide(); + } else { + oldAccount.hide(); + newAccount.show(); + } + }); + } // Click event handler for the "Account settings". -// $("#nostotagging_account_setup").click(function(event) { -// event.preventDefault(); -// var $iframe = $('#nostotagging_iframe'), -// $installedView = $('#nostotagging_installed'); -// $installedView.show(); -// $iframe.hide(); -// }); + if ($("nosto_account_settings") !== null) { + $("nosto_account_settings").on("click", function(event) { + event.preventDefault(); + var iframe = $("nosto_iframe"), + installedView = $("nosto_installed"); + if (installedView && iframe) { + installedView.show(); + iframe.hide(); + } + }); + } // Click event handler for the "Back" button on the "You have installed Nosto...." page. -// $('#nostotagging_back_to_iframe').click(function(event) { -// event.preventDefault(); -// var $iframe = $('#nostotagging_iframe'), -// $installedView = $('#nostotagging_installed'); -// $iframe.show(); -// $installedView.hide(); -// }); + if ($("nosto_back_to_iframe") !== null) { + $("nosto_back_to_iframe").on("click", function(event) { + event.preventDefault(); + var iframe = $("nosto_iframe"), + installedView = $("nosto_installed"); + if (installedView && iframe) { + iframe.show(); + installedView.hide(); + } + }); + } }); From 1a4cb6f11bed3bc4f2393609dee8f580ad19fb67 Mon Sep 17 00:00:00 2001 From: Christoffer Lindqvist Date: Mon, 8 Dec 2014 15:14:32 +0200 Subject: [PATCH 04/71] Enable client side form validation --- .../nostotagging/form/account/create.phtml | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/Nosto_Tagging/design/adminhtml/default/default/template/nostotagging/form/account/create.phtml b/Nosto_Tagging/design/adminhtml/default/default/template/nostotagging/form/account/create.phtml index f6775725..6605a642 100644 --- a/Nosto_Tagging/design/adminhtml/default/default/template/nostotagging/form/account/create.phtml +++ b/Nosto_Tagging/design/adminhtml/default/default/template/nostotagging/form/account/create.phtml @@ -32,10 +32,10 @@ ?> getFormHtml(); ?> - - - - - - - + From 1f8b245cd8864b660648017dd47b8a6b3b1ef2f6 Mon Sep 17 00:00:00 2001 From: Christoffer Lindqvist Date: Mon, 8 Dec 2014 15:35:35 +0200 Subject: [PATCH 05/71] Clean up store scope handling in back end controller --- .../Block/Adminhtml/Form/Account/Connect.php | 4 +- .../Block/Adminhtml/Form/Account/Create.php | 4 +- .../Block/Adminhtml/Form/Account/Remove.php | 4 +- .../controllers/Adminhtml/NostoController.php | 51 ++++++++----------- 4 files changed, 28 insertions(+), 35 deletions(-) diff --git a/Nosto_Tagging/code/community/Nosto/Tagging/Block/Adminhtml/Form/Account/Connect.php b/Nosto_Tagging/code/community/Nosto/Tagging/Block/Adminhtml/Form/Account/Connect.php index fd936ca7..ab8b0e26 100644 --- a/Nosto_Tagging/code/community/Nosto/Tagging/Block/Adminhtml/Form/Account/Connect.php +++ b/Nosto_Tagging/code/community/Nosto/Tagging/Block/Adminhtml/Form/Account/Connect.php @@ -38,8 +38,8 @@ protected function _prepareForm() 'enctype' => 'multipart/form-data' )); $form->setUseContainer(true); - $form->addField('nosto_store_id', 'hidden', array( - 'name' => 'nosto_store_id', + $form->addField('store', 'hidden', array( + 'name' => 'store', 'value' => $this->getRequest()->getParam('store', 0), )); $form->addField('nosto_connect_account_submit', 'submit', array( diff --git a/Nosto_Tagging/code/community/Nosto/Tagging/Block/Adminhtml/Form/Account/Create.php b/Nosto_Tagging/code/community/Nosto/Tagging/Block/Adminhtml/Form/Account/Create.php index f0a79a0b..98b088e5 100644 --- a/Nosto_Tagging/code/community/Nosto/Tagging/Block/Adminhtml/Form/Account/Create.php +++ b/Nosto_Tagging/code/community/Nosto/Tagging/Block/Adminhtml/Form/Account/Create.php @@ -38,8 +38,8 @@ protected function _prepareForm() 'enctype' => 'multipart/form-data' )); $form->setUseContainer(true); - $form->addField('nosto_store_id', 'hidden', array( - 'name' => 'nosto_store_id', + $form->addField('store', 'hidden', array( + 'name' => 'store', 'value' => $this->getRequest()->getParam('store', 0), )); $form->addField('nosto_create_account_email', 'text', array( diff --git a/Nosto_Tagging/code/community/Nosto/Tagging/Block/Adminhtml/Form/Account/Remove.php b/Nosto_Tagging/code/community/Nosto/Tagging/Block/Adminhtml/Form/Account/Remove.php index 9f396e2b..fb07d687 100644 --- a/Nosto_Tagging/code/community/Nosto/Tagging/Block/Adminhtml/Form/Account/Remove.php +++ b/Nosto_Tagging/code/community/Nosto/Tagging/Block/Adminhtml/Form/Account/Remove.php @@ -38,8 +38,8 @@ protected function _prepareForm() 'enctype' => 'multipart/form-data' )); $form->setUseContainer(true); - $form->addField('nosto_store_id', 'hidden', array( - 'name' => 'nosto_store_id', + $form->addField('store', 'hidden', array( + 'name' => 'store', 'value' => $this->getRequest()->getParam('store', 0), )); $form->addField('nosto_remove_account_submit', 'submit', array( diff --git a/Nosto_Tagging/code/community/Nosto/Tagging/controllers/Adminhtml/NostoController.php b/Nosto_Tagging/code/community/Nosto/Tagging/controllers/Adminhtml/NostoController.php index 41a4506b..31b91bbc 100644 --- a/Nosto_Tagging/code/community/Nosto/Tagging/controllers/Adminhtml/NostoController.php +++ b/Nosto_Tagging/code/community/Nosto/Tagging/controllers/Adminhtml/NostoController.php @@ -26,7 +26,6 @@ require_once(Mage::getBaseDir('lib').'/nosto/sdk/src/config.inc.php'); -// todo: clean up current store handling class Nosto_Tagging_Adminhtml_NostoController extends Mage_Adminhtml_Controller_Action { /** @@ -35,11 +34,7 @@ class Nosto_Tagging_Adminhtml_NostoController extends Mage_Adminhtml_Controller_ public function indexAction() { $this->_title($this->__('Nosto')); - $storeId = (int)$this->getRequest()->getParam('store'); - if ($storeId > 0) { - Mage::app()->setCurrentStore($storeId); - } - if ((int)Mage::app()->getStore()->getId() < 1) { + if (!$this->checkStoreScope()) { Mage::getSingleton('core/session')->addNotice($this->__('Please choose a shop to configure Nosto for.')); } $this->loadLayout(); @@ -51,16 +46,11 @@ public function indexAction() */ public function connectAccountAction() { - if ($this->getRequest()->isPost()) { - $storeId = (int)$this->getRequest()->getPost('nosto_store_id'); - if ($storeId > 0) { - Mage::app()->setCurrentStore($storeId); - } + if ($this->getRequest()->isPost() && $this->checkStoreScope()) { $client = new NostoOAuthClient(Mage::helper('nosto_tagging/oauth')->getMetaData()); $this->_redirectUrl($client->getAuthorizationUrl()); } else { - $storeId = (int)$this->getRequest()->getParam('store'); - $this->_redirect('*/*/index', array('store' => $storeId)); + $this->_redirect('*/*/index', array('store' => (int)$this->getRequest()->getParam('store'))); } } @@ -69,11 +59,7 @@ public function connectAccountAction() */ public function createAccountAction() { - if ($this->getRequest()->isPost()) { - $storeId = (int)$this->getRequest()->getPost('nosto_store_id'); - if ($storeId > 0) { - Mage::app()->setCurrentStore($storeId); - } + if ($this->getRequest()->isPost() && $this->checkStoreScope()) { try { $email = $this->getRequest()->getPost('nosto_create_account_email'); /** @var Nosto_Tagging_Model_Meta_Account $meta */ @@ -89,10 +75,8 @@ public function createAccountAction() Mage::log("\n" . $e->__toString(), Zend_Log::ERR, 'nostotagging.log'); Mage::getSingleton('core/session')->addException($e, $this->__('Account could not be automatically created. Please visit nosto.com to create a new account.')); } - } else { - $storeId = (int)$this->getRequest()->getParam('store'); } - $this->_redirect('*/*/index', array('store' => $storeId)); + $this->_redirect('*/*/index', array('store' => (int)$this->getRequest()->getParam('store'))); } /** @@ -100,17 +84,26 @@ public function createAccountAction() */ public function removeAccountAction() { - if ($this->getRequest()->isPost()) { - $storeId = (int)$this->getRequest()->getPost('nosto_store_id'); - if ($storeId > 0) { - Mage::app()->setCurrentStore($storeId); - } + if ($this->getRequest()->isPost() && $this->checkStoreScope()) { if (Mage::helper('nosto_tagging/account')->remove()) { Mage::getSingleton('core/session')->addSuccess($this->__('Account successfully removed.')); } - } else { - $storeId = (int)$this->getRequest()->getParam('store'); } - $this->_redirect('*/*/index', array('store' => $storeId)); + $this->_redirect('*/*/index', array('store' => (int)$this->getRequest()->getParam('store'))); + } + + /** + * Checks that a valid store view scope id has been passed in the request params and set that as current store. + * + * @return bool if the current store is valid, false otherwise. + */ + protected function checkStoreScope() + { + $storeId = (int)$this->getRequest()->getParam('store'); + if ($storeId > 0) { + Mage::app()->setCurrentStore($storeId); + return true; + } + return false; } } From 1261c8a7813565242e4022409ea7ec961b6e047a Mon Sep 17 00:00:00 2001 From: Christoffer Lindqvist Date: Mon, 8 Dec 2014 15:46:04 +0200 Subject: [PATCH 06/71] Add admin users email address as default in account creation form --- .../Nosto/Tagging/Block/Adminhtml/Form/Account/Create.php | 4 +++- .../code/community/Nosto/Tagging/Model/Meta/Account/Owner.php | 1 + 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/Nosto_Tagging/code/community/Nosto/Tagging/Block/Adminhtml/Form/Account/Create.php b/Nosto_Tagging/code/community/Nosto/Tagging/Block/Adminhtml/Form/Account/Create.php index 98b088e5..50d950ba 100644 --- a/Nosto_Tagging/code/community/Nosto/Tagging/Block/Adminhtml/Form/Account/Create.php +++ b/Nosto_Tagging/code/community/Nosto/Tagging/Block/Adminhtml/Form/Account/Create.php @@ -42,10 +42,12 @@ protected function _prepareForm() 'name' => 'store', 'value' => $this->getRequest()->getParam('store', 0), )); + /** @var Mage_Admin_Model_User $user */ + $user = Mage::getSingleton('admin/session')->getUser(); $form->addField('nosto_create_account_email', 'text', array( 'label' => 'Email', // todo: translatable 'name' => 'nosto_create_account_email', - 'value' => 'todo@nosto.com', // todo: take from logged in admin user profile + 'value' => $user->getEmail(), 'class' => 'required-entry validate-email', )); $form->addField('nosto_terms_and_conditions', 'note', array( diff --git a/Nosto_Tagging/code/community/Nosto/Tagging/Model/Meta/Account/Owner.php b/Nosto_Tagging/code/community/Nosto/Tagging/Model/Meta/Account/Owner.php index a8c67e3d..ae3b48dd 100644 --- a/Nosto_Tagging/code/community/Nosto/Tagging/Model/Meta/Account/Owner.php +++ b/Nosto_Tagging/code/community/Nosto/Tagging/Model/Meta/Account/Owner.php @@ -49,6 +49,7 @@ public function __construct() { parent::__construct(); + /** @var Mage_Admin_Model_User $user */ $user = Mage::getSingleton('admin/session')->getUser(); $this->firstName = $user->getFirstname(); $this->lastName = $user->getLastname(); From 5888ba631180147d7c7728ce75269e7932ba6892 Mon Sep 17 00:00:00 2001 From: Christoffer Lindqvist Date: Tue, 9 Dec 2014 09:10:24 +0200 Subject: [PATCH 07/71] Fix oauth controller redirect to back end --- .../controllers/Adminhtml/NostoController.php | 22 ++++++++ .../Tagging/controllers/OauthController.php | 56 ++++++++++++++----- 2 files changed, 65 insertions(+), 13 deletions(-) diff --git a/Nosto_Tagging/code/community/Nosto/Tagging/controllers/Adminhtml/NostoController.php b/Nosto_Tagging/code/community/Nosto/Tagging/controllers/Adminhtml/NostoController.php index 31b91bbc..53e81319 100644 --- a/Nosto_Tagging/code/community/Nosto/Tagging/controllers/Adminhtml/NostoController.php +++ b/Nosto_Tagging/code/community/Nosto/Tagging/controllers/Adminhtml/NostoController.php @@ -28,6 +28,28 @@ class Nosto_Tagging_Adminhtml_NostoController extends Mage_Adminhtml_Controller_Action { + /** + * @inheritdoc + */ + protected $_publicActions = array('redirectProxy'); + + /** + * Redirect action that acts as a proxy when the front end oauth controller redirects the admin user back to the + * backend after finishing the oauth authorization cycle. + * This is a workaround as you cannot redirect directly to a protected action in the backend end from the front end. + * The action also handles setting any error/success messages in the notification system. + */ + public function redirectProxyAction() + { + if (($success = $this->getRequest()->getParam('success')) !== null) { + Mage::getSingleton('core/session')->addSuccess($success); + } + if (($error = $this->getRequest()->getParam('error')) !== null) { + Mage::getSingleton('core/session')->addError($error); + } + $this->_redirect('*/*/index', array('store' => (int)$this->getRequest()->getParam('store'))); + } + /** * Shows the main config page for the extension. */ diff --git a/Nosto_Tagging/code/community/Nosto/Tagging/controllers/OauthController.php b/Nosto_Tagging/code/community/Nosto/Tagging/controllers/OauthController.php index fb61534a..61e132cc 100644 --- a/Nosto_Tagging/code/community/Nosto/Tagging/controllers/OauthController.php +++ b/Nosto_Tagging/code/community/Nosto/Tagging/controllers/OauthController.php @@ -1,4 +1,28 @@ getRequest()->getParam('code')) !== null) { try { $account = NostoAccount::syncFromNosto(Mage::helper('nosto_tagging/oauth')->getMetaData(), $code); if (Mage::helper('nosto_tagging/account')->save($account)) { - // todo: success flash message + $params = array( + 'success' => $this->__('Account %s successfully connected to Nosto.', $account->name), + 'store' => (int)Mage::app()->getStore()->getId(), + ); } else { throw new NostoException('Failed to connect account'); } } catch (NostoException $e) { Mage::log("\n" . $e->__toString(), Zend_Log::ERR, 'nostotagging.log'); - // todo: exception flash message + $params = array( + 'error' => $this->__('Account could not be connected to Nosto. Please contact Nosto support.'), + 'store' => (int)Mage::app()->getStore()->getId(), + ); } - $this->_redirect('adminhtml/nosto/index'); + $this->_redirect('adminhtml/nosto/redirectProxy', $params); } elseif (($error = $this->getRequest()->getParam('error')) !== null) { - $messageParts = array($error); - if (($errorReason = $this->getRequest()->getParam('error_reason')) !== null) { - $messageParts[] = $errorReason; + $parts = array($error); + if (($reason = $this->getRequest()->getParam('error_reason')) !== null) { + $parts[] = $reason; } - if (($errorDesc = $this->getRequest()->getParam('error_description')) !== null) { - $messageParts[] = $errorDesc; + if (($desc = $this->getRequest()->getParam('error_description')) !== null) { + $parts[] = $desc; } - Mage::log("\n" . implode(' - ', $messageParts), Zend_Log::ERR, 'nostotagging.log'); - // todo: error flash message - $this->_redirect('adminhtml/nosto/index'); + Mage::log("\n" . implode(' - ', $parts), Zend_Log::ERR, 'nostotagging.log'); + $this->_redirect('adminhtml/nosto/redirectProxy', array( + 'error' => $this->__('Account could not be connected to Nosto. You rejected the connection request.'), + 'store' => (int)Mage::app()->getStore()->getId(), + )); } else { $this->norouteAction(); } From 30d0cc275832e6560dec6ae614b4c80fed04e3fc Mon Sep 17 00:00:00 2001 From: Christoffer Lindqvist Date: Tue, 9 Dec 2014 10:59:00 +0200 Subject: [PATCH 08/71] Add all text strings as translatable --- .../Block/Adminhtml/Form/Account/Connect.php | 2 +- .../Block/Adminhtml/Form/Account/Create.php | 6 ++--- .../Block/Adminhtml/Form/Account/Remove.php | 6 +++-- .../Nosto/Tagging/Block/Adminhtml/Iframe.php | 6 +++-- .../Nosto/Tagging/Block/Adminhtml/Wizard.php | 13 ++++++---- .../Nosto/Tagging/Helper/Account.php | 24 ++++++++++++------- .../community/Nosto/Tagging/Helper/Data.php | 12 +++++++--- .../community/Nosto/Tagging/Helper/Oauth.php | 4 +++- .../Nosto/Tagging/Model/Config/Account.php | 4 ++++ .../Tagging/Model/Meta/Account/Billing.php | 2 +- .../nostotagging/form/account/remove.phtml | 12 ++++++---- .../template/nostotagging/wizard.phtml | 20 +++++++--------- 12 files changed, 70 insertions(+), 41 deletions(-) diff --git a/Nosto_Tagging/code/community/Nosto/Tagging/Block/Adminhtml/Form/Account/Connect.php b/Nosto_Tagging/code/community/Nosto/Tagging/Block/Adminhtml/Form/Account/Connect.php index ab8b0e26..03132b85 100644 --- a/Nosto_Tagging/code/community/Nosto/Tagging/Block/Adminhtml/Form/Account/Connect.php +++ b/Nosto_Tagging/code/community/Nosto/Tagging/Block/Adminhtml/Form/Account/Connect.php @@ -45,7 +45,7 @@ protected function _prepareForm() $form->addField('nosto_connect_account_submit', 'submit', array( 'class' => 'form-button', 'name' => 'nosto_connect_account_submit', - 'value' => 'Add Nosto', // todo: translatable + 'value' => $this->__('Add Nosto'), )); $this->setForm($form); diff --git a/Nosto_Tagging/code/community/Nosto/Tagging/Block/Adminhtml/Form/Account/Create.php b/Nosto_Tagging/code/community/Nosto/Tagging/Block/Adminhtml/Form/Account/Create.php index 50d950ba..a2397659 100644 --- a/Nosto_Tagging/code/community/Nosto/Tagging/Block/Adminhtml/Form/Account/Create.php +++ b/Nosto_Tagging/code/community/Nosto/Tagging/Block/Adminhtml/Form/Account/Create.php @@ -45,18 +45,18 @@ protected function _prepareForm() /** @var Mage_Admin_Model_User $user */ $user = Mage::getSingleton('admin/session')->getUser(); $form->addField('nosto_create_account_email', 'text', array( - 'label' => 'Email', // todo: translatable + 'label' => $this->__('Email'), 'name' => 'nosto_create_account_email', 'value' => $user->getEmail(), 'class' => 'required-entry validate-email', )); $form->addField('nosto_terms_and_conditions', 'note', array( - 'text' => 'By creating a new account you agree to Nosto\'s Terms and Conditions' // todo: translatable + 'text' => $this->__('By creating a new account you agree to Nosto\'s Terms and Conditions') )); $form->addField('nosto_create_account_submit', 'submit', array( 'class' => 'form-button', 'name' => 'nosto_create_account_submit', - 'value' => 'Create Nosto', // todo: translatable + 'value' => $this->__('Create Nosto'), )); $this->setForm($form); diff --git a/Nosto_Tagging/code/community/Nosto/Tagging/Block/Adminhtml/Form/Account/Remove.php b/Nosto_Tagging/code/community/Nosto/Tagging/Block/Adminhtml/Form/Account/Remove.php index fb07d687..7cada30f 100644 --- a/Nosto_Tagging/code/community/Nosto/Tagging/Block/Adminhtml/Form/Account/Remove.php +++ b/Nosto_Tagging/code/community/Nosto/Tagging/Block/Adminhtml/Form/Account/Remove.php @@ -45,7 +45,7 @@ protected function _prepareForm() $form->addField('nosto_remove_account_submit', 'submit', array( 'class' => 'form-button', 'name' => 'nosto_remove_account_submit', - 'value' => 'Remove Nosto', // todo: translatable + 'value' => $this->__('Remove Nosto'), )); $this->setForm($form); @@ -53,7 +53,9 @@ protected function _prepareForm() } /** - * @return string + * Gets the Nosto account name from the parent block, which should be Nosto_tagging_Block_Adminhtml_Wizard. + * + * @return string the account name or empty string if not found in parent. */ public function getAccountName() { diff --git a/Nosto_Tagging/code/community/Nosto/Tagging/Block/Adminhtml/Iframe.php b/Nosto_Tagging/code/community/Nosto/Tagging/Block/Adminhtml/Iframe.php index 48e5e081..732e76fa 100644 --- a/Nosto_Tagging/code/community/Nosto/Tagging/Block/Adminhtml/Iframe.php +++ b/Nosto_Tagging/code/community/Nosto/Tagging/Block/Adminhtml/Iframe.php @@ -27,7 +27,9 @@ class Nosto_tagging_Block_Adminhtml_Iframe extends Mage_Adminhtml_Block_Template { /** - * @return string + * Gets the iframe url from parent block, which should be Nosto_tagging_Block_Adminhtml_Wizard. + * + * @return string the iframe url or empty string if cannot be found in parent. */ public function getIframeUrl() { @@ -37,4 +39,4 @@ public function getIframeUrl() } return ''; } -} \ No newline at end of file +} diff --git a/Nosto_Tagging/code/community/Nosto/Tagging/Block/Adminhtml/Wizard.php b/Nosto_Tagging/code/community/Nosto/Tagging/Block/Adminhtml/Wizard.php index 10c722f0..55181420 100644 --- a/Nosto_Tagging/code/community/Nosto/Tagging/Block/Adminhtml/Wizard.php +++ b/Nosto_Tagging/code/community/Nosto/Tagging/Block/Adminhtml/Wizard.php @@ -27,17 +27,20 @@ class Nosto_tagging_Block_Adminhtml_Wizard extends Mage_Adminhtml_Block_Template { /** - * @var NostoAccount + * @var NostoAccount the Nosto account for current store view scope. */ private $_account; /** - * @var string + * @var string the iframe url if SSO to Nosto can be made. */ private $_iframeUrl; /** - * @return string + * Gets the iframe url for the account settings page from Nosto. + * This url is only returned if the current admin user can be logged in with SSO to Nosto. + * + * @return string the iframe url or empty string if it cannot be created. */ public function getIframeUrl() { @@ -57,7 +60,9 @@ public function getIframeUrl() } /** - * @return NostoAccount|null + * Gets the Nosto account for the current active store view scope. + * + * @return NostoAccount|null the account or null if it cannot be found. */ public function getAccount() { diff --git a/Nosto_Tagging/code/community/Nosto/Tagging/Helper/Account.php b/Nosto_Tagging/code/community/Nosto/Tagging/Helper/Account.php index edfa5a7e..fd2143fb 100644 --- a/Nosto_Tagging/code/community/Nosto/Tagging/Helper/Account.php +++ b/Nosto_Tagging/code/community/Nosto/Tagging/Helper/Account.php @@ -37,9 +37,11 @@ class Nosto_Tagging_Helper_Account extends Mage_Core_Helper_Abstract const XML_PATH_TOKENS = 'nosto_tagging/settings/tokens'; /** - * @param NostoAccount $account - * @param Mage_Core_Model_Store|null $store - * @return bool + * Saves the account and the associated api tokens for the store view scope. + * + * @param NostoAccount $account the account to save. + * @param Mage_Core_Model_Store|null $store the store view to save it for (defaults to current). + * @return bool true on success, false otherwise. */ public function save(NostoAccount $account, Mage_Core_Model_Store $store = null) { @@ -61,8 +63,10 @@ public function save(NostoAccount $account, Mage_Core_Model_Store $store = null) } /** - * @param Mage_Core_Model_Store|null $store - * @return bool + * Removes an account with associated api tokens for the store view scope. + * + * @param Mage_Core_Model_Store|null $store the store view to remove it for (defaults to current). + * @return bool true on success, false otherwise. */ public function remove(Mage_Core_Model_Store $store = null) { @@ -80,8 +84,10 @@ public function remove(Mage_Core_Model_Store $store = null) } /** - * @param Mage_Core_Model_Store|null $store - * @return NostoAccount|null + * Returns the account with associated api tokens for the store view scope. + * + * @param Mage_Core_Model_Store|null $store the store view to find the account for (defaults to current). + * @return NostoAccount|null the account or null if not found. */ public function find(Mage_Core_Model_Store $store = null) { @@ -107,7 +113,9 @@ public function find(Mage_Core_Model_Store $store = null) } /** - * @return Nosto_Tagging_Model_Meta_Account + * Returns the meta data model needed for creating a new nosto account using the Nosto SDk. + * + * @return Nosto_Tagging_Model_Meta_Account the meta data instance. */ public function getMetaData() { diff --git a/Nosto_Tagging/code/community/Nosto/Tagging/Helper/Data.php b/Nosto_Tagging/code/community/Nosto/Tagging/Helper/Data.php index bc7d2c06..2db56c3c 100644 --- a/Nosto_Tagging/code/community/Nosto/Tagging/Helper/Data.php +++ b/Nosto_Tagging/code/community/Nosto/Tagging/Helper/Data.php @@ -45,12 +45,14 @@ class Nosto_Tagging_Helper_Data extends Mage_Core_Helper_Abstract /** * Path to store config nosto service account name. + * @deprecated */ const XML_PATH_ACCOUNT = 'nosto_tagging/settings/account'; /** * Path to the store config collect_email_addresses option. - */ + * @deprecated + */ const XML_PATH_COLLECT_EMAIL_ADDRESSES = 'nosto_tagging/tagging_options/collect_email_addresses'; /** @@ -136,7 +138,9 @@ public function getEnabled($store = null) * @param mixed $store * * @return string - */ + * + * @deprecated + */ public function getAccount($store = null) { return Mage::getStoreConfig(self::XML_PATH_ACCOUNT, $store); @@ -160,7 +164,9 @@ public function getServer($store = null) * @param mixed $store * * @return boolean - */ + * + * @deprecated + */ public function getCollectEmailAddresses($store = null) { return (boolean)Mage::getStoreConfig(self::XML_PATH_COLLECT_EMAIL_ADDRESSES, $store); diff --git a/Nosto_Tagging/code/community/Nosto/Tagging/Helper/Oauth.php b/Nosto_Tagging/code/community/Nosto/Tagging/Helper/Oauth.php index 26e59a72..4704ce3d 100644 --- a/Nosto_Tagging/code/community/Nosto/Tagging/Helper/Oauth.php +++ b/Nosto_Tagging/code/community/Nosto/Tagging/Helper/Oauth.php @@ -27,7 +27,9 @@ class Nosto_Tagging_Helper_Oauth extends Mage_Core_Helper_Abstract { /** - * @return Nosto_Tagging_Model_Meta_Oauth + * Returns the meta data model needed for using the OAuth2 client included in the Nosto SDk. + * + * @return Nosto_Tagging_Model_Meta_Oauth the meta data instance. */ public function getMetaData() { diff --git a/Nosto_Tagging/code/community/Nosto/Tagging/Model/Config/Account.php b/Nosto_Tagging/code/community/Nosto/Tagging/Model/Config/Account.php index b462c0a2..20f0e93d 100644 --- a/Nosto_Tagging/code/community/Nosto/Tagging/Model/Config/Account.php +++ b/Nosto_Tagging/code/community/Nosto/Tagging/Model/Config/Account.php @@ -30,6 +30,8 @@ * @category Nosto * @package Nosto_Tagging * @author Nosto Solutions Ltd + * + * @deprecated */ class Nosto_Tagging_Model_Config_Account extends Mage_Core_Model_Config_Data { @@ -38,6 +40,8 @@ class Nosto_Tagging_Model_Config_Account extends Mage_Core_Model_Config_Data * Validates that the account is set. * * @return Nosto_Tagging_Model_Config_Account + * + * @deprecated */ public function save() { diff --git a/Nosto_Tagging/code/community/Nosto/Tagging/Model/Meta/Account/Billing.php b/Nosto_Tagging/code/community/Nosto/Tagging/Model/Meta/Account/Billing.php index f3e6977f..a6b908fa 100644 --- a/Nosto_Tagging/code/community/Nosto/Tagging/Model/Meta/Account/Billing.php +++ b/Nosto_Tagging/code/community/Nosto/Tagging/Model/Meta/Account/Billing.php @@ -59,4 +59,4 @@ public function getCountry() { return $this->country; } -} \ No newline at end of file +} diff --git a/Nosto_Tagging/design/adminhtml/default/default/template/nostotagging/form/account/remove.phtml b/Nosto_Tagging/design/adminhtml/default/default/template/nostotagging/form/account/remove.phtml index 2536dbf0..b44c2c1e 100644 --- a/Nosto_Tagging/design/adminhtml/default/default/template/nostotagging/form/account/remove.phtml +++ b/Nosto_Tagging/design/adminhtml/default/default/template/nostotagging/form/account/remove.phtml @@ -27,15 +27,17 @@
-

You have added Nosto to your English shop

-

Your account ID is getAccountName(); ?>

+

__('You have added Nosto to your %s shop', $nostoHelper->escapeHtml(Mage::app()->getStore()->getName())); ?>

+

__('Your account ID is %s', $nostoHelper->escapeHtml($this->getAccountName())); ?>

-

If you want to change the account, you need to remove the existing one first

- Back +

__('If you want to change the account, you need to remove the existing one first'); ?>

+ __('Back'); ?> getFormHtml(); ?>
\ No newline at end of file diff --git a/Nosto_Tagging/design/adminhtml/default/default/template/nostotagging/wizard.phtml b/Nosto_Tagging/design/adminhtml/default/default/template/nostotagging/wizard.phtml index 1dbfc897..ff4e118c 100644 --- a/Nosto_Tagging/design/adminhtml/default/default/template/nostotagging/wizard.phtml +++ b/Nosto_Tagging/design/adminhtml/default/default/template/nostotagging/wizard.phtml @@ -27,35 +27,33 @@
-

Nosto

+

__('Nosto'); ?>

- isSingleStoreMode() ): ?> getChildHtml('store_switcher'); ?> - getAccount() === null): ?>
-

Add Nosto to your English shop

-

Do you have an existing Nosto account?

- +

__('Add Nosto to your %s shop', $nostoHelper->escapeHtml(Mage::app()->getStore()->getName()));?>

+

__('Do you have an existing Nosto account?');?>

- + - +
-
getChildHtml('nosto.form.account.connect'); ?>
- Account settings + __('Account settings');?>
getChildHtml('nosto.form.account.remove'); ?>
getIframeUrl()): ?>
getChildHtml('nosto.iframe'); ?>
From 15ba5426e0edf2b8733b9236dcc5c36f7c17e41e Mon Sep 17 00:00:00 2001 From: Christoffer Lindqvist Date: Tue, 9 Dec 2014 13:34:58 +0200 Subject: [PATCH 09/71] Add more info to the iframe urls --- .../community/Nosto/Tagging/Helper/Url.php | 116 ++++++++++++++++++ .../Tagging/Model/Meta/Account/Iframe.php | 22 ++-- 2 files changed, 128 insertions(+), 10 deletions(-) create mode 100644 Nosto_Tagging/code/community/Nosto/Tagging/Helper/Url.php diff --git a/Nosto_Tagging/code/community/Nosto/Tagging/Helper/Url.php b/Nosto_Tagging/code/community/Nosto/Tagging/Helper/Url.php new file mode 100644 index 00000000..db4390e6 --- /dev/null +++ b/Nosto_Tagging/code/community/Nosto/Tagging/Helper/Url.php @@ -0,0 +1,116 @@ +getCollection() + ->addStoreFilter(Mage::app()->getStore()->getId()) + ->addAttributeToSelect('*') + ->addAttributeToFilter('status', array('eq' => Mage_Catalog_Model_Product_Status::STATUS_ENABLED)) + ->setPageSize(1) + ->setCurPage(1); + foreach ($collection as $product) { + /** @var Mage_Catalog_Model_Product $product */ + $url = $product->getUrlInStore(); + return NostoHttpRequest::replaceQueryParamInUrl('nostodebug', 'true', $url); + } + return ''; + } + + /** + * Gets the absolute preview URL to the current store view category page. + * The category is the first one found in the database for the store. + * The preview url includes "nostodebug=true" parameter. + * + * @return string the url. + */ + public function getPreviewUrlCategory() + { + $rootCategoryId = (int)Mage::app()->getStore()->getRootCategoryId(); + $collection = Mage::getModel('catalog/category') + ->getCollection() + ->addFieldToFilter('is_active', 1) + ->addFieldToFilter('path', array('like' => "1/$rootCategoryId/%")) + ->addAttributeToSelect('*') + ->setPageSize(1) + ->setCurPage(1); + foreach ($collection as $category) { + /** @var Mage_Catalog_Model_Category $category */ + $url = $category->getUrl(); + $url = NostoHttpRequest::replaceQueryParamInUrl('___store', Mage::app()->getStore()->getCode(), $url); + return NostoHttpRequest::replaceQueryParamInUrl('nostodebug', 'true', $url); + } + return ''; + } + + /** + * Gets the absolute preview URL to the current store view search page. + * The search query in the URL is "q=nosto". + * The preview url includes "nostodebug=true" parameter. + * + * @return string the url. + */ + public function getPreviewUrlSearch() + { + $url = Mage::getUrl('catalogsearch/result', array('_store' => Mage::app()->getStore()->getId(), '_store_to_url' => true)); + $url = NostoHttpRequest::replaceQueryParamInUrl('q', 'nosto', $url); + return NostoHttpRequest::replaceQueryParamInUrl('nostodebug', 'true', $url); + } + + /** + * Gets the absolute preview URL to the current store view cart page. + * The preview url includes "nostodebug=true" parameter. + * + * @return string the url. + */ + public function getPreviewUrlCart() + { + $url = Mage::getUrl('checkout/cart', array('_store' => Mage::app()->getStore()->getId(), '_store_to_url' => true)); + return NostoHttpRequest::replaceQueryParamInUrl('nostodebug', 'true', $url); + } + + /** + * Gets the absolute preview URL to the current store view front page. + * The preview url includes "nostodebug=true" parameter. + * + * @return string the url. + */ + public function getPreviewUrlFront() + { + $url = Mage::getUrl('', array('_store' => Mage::app()->getStore()->getId(), '_store_to_url' => true)); + return NostoHttpRequest::replaceQueryParamInUrl('nostodebug', 'true', $url); + } +} diff --git a/Nosto_Tagging/code/community/Nosto/Tagging/Model/Meta/Account/Iframe.php b/Nosto_Tagging/code/community/Nosto/Tagging/Model/Meta/Account/Iframe.php index c895df4a..2ddad638 100644 --- a/Nosto_Tagging/code/community/Nosto/Tagging/Model/Meta/Account/Iframe.php +++ b/Nosto_Tagging/code/community/Nosto/Tagging/Model/Meta/Account/Iframe.php @@ -91,19 +91,20 @@ public function __construct() /** @var Mage_Admin_Model_User $user */ $user = Mage::getSingleton('admin/session')->getUser(); + /** @var Nosto_Tagging_Helper_Url $urlHelper */ + $urlHelper = Mage::helper('nosto_tagging/url'); + $this->firstName = $user->getFirstname(); $this->lastName = $user->getLastname(); $this->email = $user->getEmail(); $this->languageIsoCode = substr(Mage::app()->getLocale()->getLocaleCode(), 0, 2); - - // todo - $this->languageIsoCodeShop = ''; - $this->uniqueId = ''; - $this->previewUrlProduct = ''; - $this->previewUrlCategory = ''; - $this->previewUrlSearch = ''; - $this->previewUrlCart = ''; - $this->previewUrlFront = ''; + $this->languageIsoCodeShop = substr(Mage::app()->getStore()->getConfig('general/locale/code'), 0, 2); + $this->uniqueId = 'todo-add-magento-installation-specific-id'; // todo: what do we use?? "global/crypt/key", or our own?? + $this->previewUrlProduct = $urlHelper->getPreviewUrlProduct(); + $this->previewUrlCategory = $urlHelper->getPreviewUrlCategory(); + $this->previewUrlSearch = $urlHelper->getPreviewUrlSearch(); + $this->previewUrlCart = $urlHelper->getPreviewUrlCart(); + $this->previewUrlFront = $urlHelper->getPreviewUrlFront(); } /** @@ -207,7 +208,8 @@ public function getVersionPlatform() */ public function getVersionModule() { - return '0.0.0'; // todo + // Path is hard-coded to be like in "etc/config.xml". + return Mage::getConfig()->getNode()->modules->Nosto_Tagging->version; } /** From aea3173cd390fc8596c79ac61bf88e0d783f2e53 Mon Sep 17 00:00:00 2001 From: Christoffer Lindqvist Date: Wed, 10 Dec 2014 14:04:48 +0200 Subject: [PATCH 10/71] Fix oauth --- .../community/Nosto/Tagging/Helper/Account.php | 4 +++- .../default/default/layout/nostotagging.xml | 6 +----- .../default/template/nostotagging/wizard.phtml | 16 +++++++--------- Nosto_Tagging/modman | 13 ++++++++----- 4 files changed, 19 insertions(+), 20 deletions(-) diff --git a/Nosto_Tagging/code/community/Nosto/Tagging/Helper/Account.php b/Nosto_Tagging/code/community/Nosto/Tagging/Helper/Account.php index fd2143fb..c588734a 100644 --- a/Nosto_Tagging/code/community/Nosto/Tagging/Helper/Account.php +++ b/Nosto_Tagging/code/community/Nosto/Tagging/Helper/Account.php @@ -59,6 +59,7 @@ public function save(NostoAccount $account, Mage_Core_Model_Store $store = null) $tokens[$token->name] = $token->value; } $config->saveConfig(self::XML_PATH_TOKENS, json_encode($tokens), 'stores', $store->getId()); + Mage::app()->getCacheInstance()->cleanType('config'); return true; } @@ -80,6 +81,7 @@ public function remove(Mage_Core_Model_Store $store = null) $config = Mage::getModel('core/config'); $config->saveConfig(self::XML_PATH_ACCOUNT, null, 'stores', $store->getId()); $config->saveConfig(self::XML_PATH_TOKENS, null, 'stores', $store->getId()); + Mage::app()->getCacheInstance()->cleanType('config'); return true; } @@ -98,7 +100,7 @@ public function find(Mage_Core_Model_Store $store = null) if (!empty($accountName)) { $account = new NostoAccount(); $account->name = $accountName; - $tokens = json_decode($store->getConfig(self::XML_PATH_TOKENS)); + $tokens = json_decode($store->getConfig(self::XML_PATH_TOKENS), true); if (is_array($tokens) && !empty($tokens)) { foreach ($tokens as $name => $value) { $token = new NostoApiToken(); diff --git a/Nosto_Tagging/design/adminhtml/default/default/layout/nostotagging.xml b/Nosto_Tagging/design/adminhtml/default/default/layout/nostotagging.xml index 778cb55c..328cc79d 100644 --- a/Nosto_Tagging/design/adminhtml/default/default/layout/nostotagging.xml +++ b/Nosto_Tagging/design/adminhtml/default/default/layout/nostotagging.xml @@ -4,11 +4,7 @@ - - skin_js - js/nostotagging/nostotagging-config.js - - + diff --git a/Nosto_Tagging/design/adminhtml/default/default/template/nostotagging/wizard.phtml b/Nosto_Tagging/design/adminhtml/default/default/template/nostotagging/wizard.phtml index ff4e118c..1635db2b 100644 --- a/Nosto_Tagging/design/adminhtml/default/default/template/nostotagging/wizard.phtml +++ b/Nosto_Tagging/design/adminhtml/default/default/template/nostotagging/wizard.phtml @@ -38,25 +38,23 @@ $nostoHelper = Mage::helper('nosto_tagging'); isSingleStoreMode() ): ?> getChildHtml('store_switcher'); ?> -getAccount() === null): ?> -
+
+ getAccount() === null): ?>

__('Add Nosto to your %s shop', $nostoHelper->escapeHtml(Mage::app()->getStore()->getName()));?>

__('Do you have an existing Nosto account?');?>

- + - +
getChildHtml('nosto.form.account.connect'); ?>
-
- -
+ __('Account settings');?>
getChildHtml('nosto.form.account.remove'); ?>
getIframeUrl()): ?>
getChildHtml('nosto.iframe'); ?>
-
- + +
diff --git a/Nosto_Tagging/modman b/Nosto_Tagging/modman index 481b1215..97a01197 100644 --- a/Nosto_Tagging/modman +++ b/Nosto_Tagging/modman @@ -1,6 +1,9 @@ # Nosto_Tagging module -code/community/Nosto/* app/code/community/Nosto/ -design/frontend/base/default/layout/nostotagging.xml app/design/frontend/base/default/layout/nostotagging.xml -design/frontend/base/default/layout/nostotagging.xml app/design/frontend/default/enterprise/layout/nostotagging.xml -design/frontend/base/default/template/nostotagging/* app/design/frontend/base/default/template/nostotagging/ -etc/modules/* app/etc/modules/ +code/community/Nosto/* app/code/community/Nosto/ +design/frontend/base/default/layout/nostotagging.xml app/design/frontend/base/default/layout/nostotagging.xml +design/frontend/base/default/template/nostotagging/* app/design/frontend/base/default/template/nostotagging/ +design/adminhtml/default/default/layout/nostotagging.xml app/design/adminhtml/default/default/layout/nostotagging.xml +design/adminhtml/default/default/template/nostotagging/* app/design/adminhtml/default/default/template/nostotagging/ +etc/modules/* app/etc/modules/ +vendor/nosto/* lib/nosto/* +js/* js/nosto/* From 3285cc3f23e5c5fc86e3e8f9b5224eeb05f98abe Mon Sep 17 00:00:00 2001 From: Christoffer Lindqvist Date: Wed, 10 Dec 2014 15:19:40 +0200 Subject: [PATCH 11/71] Only search for visible products when getting the product page preview url --- Nosto_Tagging/code/community/Nosto/Tagging/Helper/Url.php | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Nosto_Tagging/code/community/Nosto/Tagging/Helper/Url.php b/Nosto_Tagging/code/community/Nosto/Tagging/Helper/Url.php index db4390e6..0db65d99 100644 --- a/Nosto_Tagging/code/community/Nosto/Tagging/Helper/Url.php +++ b/Nosto_Tagging/code/community/Nosto/Tagging/Helper/Url.php @@ -40,11 +40,13 @@ public function getPreviewUrlProduct() ->addStoreFilter(Mage::app()->getStore()->getId()) ->addAttributeToSelect('*') ->addAttributeToFilter('status', array('eq' => Mage_Catalog_Model_Product_Status::STATUS_ENABLED)) + ->addFieldToFilter('visibility', Mage_Catalog_Model_Product_Visibility::VISIBILITY_BOTH) ->setPageSize(1) ->setCurPage(1); foreach ($collection as $product) { /** @var Mage_Catalog_Model_Product $product */ - $url = $product->getUrlInStore(); + $url = $product->getProductUrl(); + $url = NostoHttpRequest::replaceQueryParamInUrl('___store', Mage::app()->getStore()->getCode(), $url); return NostoHttpRequest::replaceQueryParamInUrl('nostodebug', 'true', $url); } return ''; From 9ae69d3411b7c32b092dad8510bc5ecfb24415f6 Mon Sep 17 00:00:00 2001 From: Christoffer Lindqvist Date: Wed, 10 Dec 2014 15:27:32 +0200 Subject: [PATCH 12/71] Add scopes to the oauth meta data --- .../code/community/Nosto/Tagging/Model/Meta/Oauth.php | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/Nosto_Tagging/code/community/Nosto/Tagging/Model/Meta/Oauth.php b/Nosto_Tagging/code/community/Nosto/Tagging/Model/Meta/Oauth.php index 39e87ded..3212b978 100644 --- a/Nosto_Tagging/code/community/Nosto/Tagging/Model/Meta/Oauth.php +++ b/Nosto_Tagging/code/community/Nosto/Tagging/Model/Meta/Oauth.php @@ -64,6 +64,15 @@ public function getClientSecret() return 'magento'; } + /** + * @inheritdoc + */ + public function getScopes() + { + // We want all the available Nosto API tokens. + return NostoApiToken::$tokenNames; + } + /** * @inheritdoc */ From d2b41af419cf1adeb0cd7fbc462a1d36d3cd319a Mon Sep 17 00:00:00 2001 From: Christoffer Lindqvist Date: Wed, 10 Dec 2014 15:46:55 +0200 Subject: [PATCH 13/71] Add class docblocks --- .../Block/Adminhtml/Form/Account/Connect.php | 8 ++++++ .../Block/Adminhtml/Form/Account/Create.php | 8 ++++++ .../Block/Adminhtml/Form/Account/Remove.php | 8 ++++++ .../Nosto/Tagging/Block/Adminhtml/Iframe.php | 8 ++++++ .../Nosto/Tagging/Block/Adminhtml/Wizard.php | 8 ++++++ .../Nosto/Tagging/Helper/Account.php | 8 ++++++ .../community/Nosto/Tagging/Helper/Oauth.php | 7 +++++ .../community/Nosto/Tagging/Helper/Url.php | 8 ++++++ .../Nosto/Tagging/Model/Meta/Account.php | 8 ++++++ .../Tagging/Model/Meta/Account/Billing.php | 8 ++++++ .../Tagging/Model/Meta/Account/Iframe.php | 7 +++++ .../Tagging/Model/Meta/Account/Owner.php | 8 ++++++ .../Nosto/Tagging/Model/Meta/Oauth.php | 7 +++++ .../controllers/Adminhtml/NostoController.php | 8 ++++++ .../Tagging/controllers/OauthController.php | 8 ++++++ .../default/default/layout/nostotagging.xml | 26 +++++++++++++++++++ Nosto_Tagging/js/nostotagging-config.js | 25 ++++++++++++++++++ 17 files changed, 168 insertions(+) diff --git a/Nosto_Tagging/code/community/Nosto/Tagging/Block/Adminhtml/Form/Account/Connect.php b/Nosto_Tagging/code/community/Nosto/Tagging/Block/Adminhtml/Form/Account/Connect.php index 03132b85..c250b298 100644 --- a/Nosto_Tagging/code/community/Nosto/Tagging/Block/Adminhtml/Form/Account/Connect.php +++ b/Nosto_Tagging/code/community/Nosto/Tagging/Block/Adminhtml/Form/Account/Connect.php @@ -24,6 +24,14 @@ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ +/** + * "Connect to Nosto" form block. + * Creates the html form needed for submitting the "Connect to Nosto" request to the admin controller. + * + * @category Nosto + * @package Nosto_Tagging + * @author Nosto Solutions Ltd + */ class Nosto_Tagging_Block_Adminhtml_Form_Account_Connect extends Mage_Adminhtml_Block_Widget_Form { /** diff --git a/Nosto_Tagging/code/community/Nosto/Tagging/Block/Adminhtml/Form/Account/Create.php b/Nosto_Tagging/code/community/Nosto/Tagging/Block/Adminhtml/Form/Account/Create.php index a2397659..88812c7f 100644 --- a/Nosto_Tagging/code/community/Nosto/Tagging/Block/Adminhtml/Form/Account/Create.php +++ b/Nosto_Tagging/code/community/Nosto/Tagging/Block/Adminhtml/Form/Account/Create.php @@ -24,6 +24,14 @@ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ +/** + * 'Create new account' form block. + * Creates the html form needed for submitting the 'Create new account' request to the admin controller. + * + * @category Nosto + * @package Nosto_Tagging + * @author Nosto Solutions Ltd + */ class Nosto_Tagging_Block_Adminhtml_Form_Account_Create extends Mage_Adminhtml_Block_Widget_Form { /** diff --git a/Nosto_Tagging/code/community/Nosto/Tagging/Block/Adminhtml/Form/Account/Remove.php b/Nosto_Tagging/code/community/Nosto/Tagging/Block/Adminhtml/Form/Account/Remove.php index 7cada30f..adee9953 100644 --- a/Nosto_Tagging/code/community/Nosto/Tagging/Block/Adminhtml/Form/Account/Remove.php +++ b/Nosto_Tagging/code/community/Nosto/Tagging/Block/Adminhtml/Form/Account/Remove.php @@ -24,6 +24,14 @@ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ +/** + * 'Remove Nosto' form block. + * Creates the html form needed for submitting 'Remove Nosto' requests to the admin controller. + * + * @category Nosto + * @package Nosto_Tagging + * @author Nosto Solutions Ltd + */ class Nosto_Tagging_Block_Adminhtml_Form_Account_Remove extends Mage_Adminhtml_Block_Widget_Form { /** diff --git a/Nosto_Tagging/code/community/Nosto/Tagging/Block/Adminhtml/Iframe.php b/Nosto_Tagging/code/community/Nosto/Tagging/Block/Adminhtml/Iframe.php index 732e76fa..c5f56cc3 100644 --- a/Nosto_Tagging/code/community/Nosto/Tagging/Block/Adminhtml/Iframe.php +++ b/Nosto_Tagging/code/community/Nosto/Tagging/Block/Adminhtml/Iframe.php @@ -24,6 +24,14 @@ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ +/** + * Nosto iframe block. + * Adds an iframe for configuring a Nosto account. + * + * @category Nosto + * @package Nosto_Tagging + * @author Nosto Solutions Ltd + */ class Nosto_tagging_Block_Adminhtml_Iframe extends Mage_Adminhtml_Block_Template { /** diff --git a/Nosto_Tagging/code/community/Nosto/Tagging/Block/Adminhtml/Wizard.php b/Nosto_Tagging/code/community/Nosto/Tagging/Block/Adminhtml/Wizard.php index 55181420..ef4e5bb5 100644 --- a/Nosto_Tagging/code/community/Nosto/Tagging/Block/Adminhtml/Wizard.php +++ b/Nosto_Tagging/code/community/Nosto/Tagging/Block/Adminhtml/Wizard.php @@ -24,6 +24,14 @@ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ +/** + * Nosto configuration wizard block. + * Adds the 'wizard' markup for creating and managing Nosto accounts. + * + * @category Nosto + * @package Nosto_Tagging + * @author Nosto Solutions Ltd + */ class Nosto_tagging_Block_Adminhtml_Wizard extends Mage_Adminhtml_Block_Template { /** diff --git a/Nosto_Tagging/code/community/Nosto/Tagging/Helper/Account.php b/Nosto_Tagging/code/community/Nosto/Tagging/Helper/Account.php index c588734a..59283b32 100644 --- a/Nosto_Tagging/code/community/Nosto/Tagging/Helper/Account.php +++ b/Nosto_Tagging/code/community/Nosto/Tagging/Helper/Account.php @@ -24,6 +24,14 @@ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ +/** + * Helper class for managing Nosto accounts. + * Includes methods for saving, removing and finding accounts for a specific store view. + * + * @category Nosto + * @package Nosto_Tagging + * @author Nosto Solutions Ltd + */ class Nosto_Tagging_Helper_Account extends Mage_Core_Helper_Abstract { /** diff --git a/Nosto_Tagging/code/community/Nosto/Tagging/Helper/Oauth.php b/Nosto_Tagging/code/community/Nosto/Tagging/Helper/Oauth.php index 4704ce3d..6648ecc4 100644 --- a/Nosto_Tagging/code/community/Nosto/Tagging/Helper/Oauth.php +++ b/Nosto_Tagging/code/community/Nosto/Tagging/Helper/Oauth.php @@ -24,6 +24,13 @@ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ +/** + * Helper class for OAuth2 related tasks. + * + * @category Nosto + * @package Nosto_Tagging + * @author Nosto Solutions Ltd + */ class Nosto_Tagging_Helper_Oauth extends Mage_Core_Helper_Abstract { /** diff --git a/Nosto_Tagging/code/community/Nosto/Tagging/Helper/Url.php b/Nosto_Tagging/code/community/Nosto/Tagging/Helper/Url.php index 0db65d99..c0419bc3 100644 --- a/Nosto_Tagging/code/community/Nosto/Tagging/Helper/Url.php +++ b/Nosto_Tagging/code/community/Nosto/Tagging/Helper/Url.php @@ -24,6 +24,14 @@ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ +/** + * Helper class for building urls. + * Includes getters for all preview urls for the Nosto account configuration iframe. + * + * @category Nosto + * @package Nosto_Tagging + * @author Nosto Solutions Ltd + */ class Nosto_Tagging_Helper_Url extends Mage_Core_Helper_Abstract { /** diff --git a/Nosto_Tagging/code/community/Nosto/Tagging/Model/Meta/Account.php b/Nosto_Tagging/code/community/Nosto/Tagging/Model/Meta/Account.php index 35479c89..cded2f63 100644 --- a/Nosto_Tagging/code/community/Nosto/Tagging/Model/Meta/Account.php +++ b/Nosto_Tagging/code/community/Nosto/Tagging/Model/Meta/Account.php @@ -24,6 +24,14 @@ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ +/** + * Meta data class which holds information about a new Nosto account. + * This is used during the Nosto account creation. + * + * @category Nosto + * @package Nosto_Tagging + * @author Nosto Solutions Ltd + */ class Nosto_Tagging_Model_Meta_Account extends Mage_Core_Model_Abstract implements NostoAccountMetaDataInterface { /** diff --git a/Nosto_Tagging/code/community/Nosto/Tagging/Model/Meta/Account/Billing.php b/Nosto_Tagging/code/community/Nosto/Tagging/Model/Meta/Account/Billing.php index a6b908fa..b7286cbe 100644 --- a/Nosto_Tagging/code/community/Nosto/Tagging/Model/Meta/Account/Billing.php +++ b/Nosto_Tagging/code/community/Nosto/Tagging/Model/Meta/Account/Billing.php @@ -24,6 +24,14 @@ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ +/** + * Meta data class which holds information about Nosto account billing. + * This is used during the Nosto account creation. + * + * @category Nosto + * @package Nosto_Tagging + * @author Nosto Solutions Ltd + */ class Nosto_Tagging_Model_Meta_Account_Billing extends Mage_Core_Model_Abstract implements NostoAccountMetaDataBillingDetailsInterface { /** diff --git a/Nosto_Tagging/code/community/Nosto/Tagging/Model/Meta/Account/Iframe.php b/Nosto_Tagging/code/community/Nosto/Tagging/Model/Meta/Account/Iframe.php index 2ddad638..b8a8b1e0 100644 --- a/Nosto_Tagging/code/community/Nosto/Tagging/Model/Meta/Account/Iframe.php +++ b/Nosto_Tagging/code/community/Nosto/Tagging/Model/Meta/Account/Iframe.php @@ -24,6 +24,13 @@ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ +/** + * Meta data class which holds information to be sent to the Nosto account configuration iframe. + * + * @category Nosto + * @package Nosto_Tagging + * @author Nosto Solutions Ltd + */ class Nosto_Tagging_Model_Meta_Account_Iframe extends Mage_Core_Model_Abstract implements NostoAccountMetaDataIframeInterface { /** diff --git a/Nosto_Tagging/code/community/Nosto/Tagging/Model/Meta/Account/Owner.php b/Nosto_Tagging/code/community/Nosto/Tagging/Model/Meta/Account/Owner.php index ae3b48dd..50c8cb94 100644 --- a/Nosto_Tagging/code/community/Nosto/Tagging/Model/Meta/Account/Owner.php +++ b/Nosto_Tagging/code/community/Nosto/Tagging/Model/Meta/Account/Owner.php @@ -24,6 +24,14 @@ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ +/** + * Meta data class which holds information about the Nosto account owner. + * This is used during the Nosto account creation. + * + * @category Nosto + * @package Nosto_Tagging + * @author Nosto Solutions Ltd + */ class Nosto_Tagging_Model_Meta_Account_Owner extends Mage_Core_Model_Abstract implements NostoAccountMetaDataOwnerInterface { /** diff --git a/Nosto_Tagging/code/community/Nosto/Tagging/Model/Meta/Oauth.php b/Nosto_Tagging/code/community/Nosto/Tagging/Model/Meta/Oauth.php index 3212b978..1300c142 100644 --- a/Nosto_Tagging/code/community/Nosto/Tagging/Model/Meta/Oauth.php +++ b/Nosto_Tagging/code/community/Nosto/Tagging/Model/Meta/Oauth.php @@ -24,6 +24,13 @@ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ +/** + * Meta data class which holds information needed to complete OAuth2 requests. + * + * @category Nosto + * @package Nosto_Tagging + * @author Nosto Solutions Ltd + */ class Nosto_Tagging_Model_Meta_Oauth extends Mage_Core_Model_Abstract implements NostoOAuthClientMetaDataInterface { /** diff --git a/Nosto_Tagging/code/community/Nosto/Tagging/controllers/Adminhtml/NostoController.php b/Nosto_Tagging/code/community/Nosto/Tagging/controllers/Adminhtml/NostoController.php index 53e81319..53582b4e 100644 --- a/Nosto_Tagging/code/community/Nosto/Tagging/controllers/Adminhtml/NostoController.php +++ b/Nosto_Tagging/code/community/Nosto/Tagging/controllers/Adminhtml/NostoController.php @@ -26,6 +26,14 @@ require_once(Mage::getBaseDir('lib').'/nosto/sdk/src/config.inc.php'); +/** + * Nosto admin controller. + * Handles all actions for the configuration wizard as well as redirecting logic for the OAuth2 authorization cycle. + * + * @category Nosto + * @package Nosto_Tagging + * @author Nosto Solutions Ltd + */ class Nosto_Tagging_Adminhtml_NostoController extends Mage_Adminhtml_Controller_Action { /** diff --git a/Nosto_Tagging/code/community/Nosto/Tagging/controllers/OauthController.php b/Nosto_Tagging/code/community/Nosto/Tagging/controllers/OauthController.php index 61e132cc..22e72c57 100644 --- a/Nosto_Tagging/code/community/Nosto/Tagging/controllers/OauthController.php +++ b/Nosto_Tagging/code/community/Nosto/Tagging/controllers/OauthController.php @@ -26,6 +26,14 @@ require_once(Mage::getBaseDir('lib').'/nosto/sdk/src/config.inc.php'); +/** + * OAuth2 controller. + * Handles the redirect from Nosto OAuth2 authorization server. + * + * @category Nosto + * @package Nosto_Tagging + * @author Nosto Solutions Ltd + */ class Nosto_tagging_OauthController extends Mage_Core_Controller_Front_Action { /** diff --git a/Nosto_Tagging/design/adminhtml/default/default/layout/nostotagging.xml b/Nosto_Tagging/design/adminhtml/default/default/layout/nostotagging.xml index 328cc79d..77c0840a 100644 --- a/Nosto_Tagging/design/adminhtml/default/default/layout/nostotagging.xml +++ b/Nosto_Tagging/design/adminhtml/default/default/layout/nostotagging.xml @@ -1,4 +1,30 @@ + diff --git a/Nosto_Tagging/js/nostotagging-config.js b/Nosto_Tagging/js/nostotagging-config.js index 25e18bf5..788f2dd3 100644 --- a/Nosto_Tagging/js/nostotagging-config.js +++ b/Nosto_Tagging/js/nostotagging-config.js @@ -1,3 +1,28 @@ +/** + * Magento + * + * NOTICE OF LICENSE + * + * This source file is subject to the Open Software License (OSL 3.0) + * that is bundled with this package in the file LICENSE.txt. + * It is also available through the world-wide-web at this URL: + * http://opensource.org/licenses/osl-3.0.php + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @category Nosto + * @package Nosto_Tagging + * @copyright Copyright (c) 2013 Nosto Solutions Ltd (http://www.nosto.com) + * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) + */ + document.observe("dom:loaded", function() { // Change event handler for "Do you have an existing Nosto account?". if ($("nosto_has_account") !== null) { From a68abd02df4c6d46ed1da786e536070c084f41d5 Mon Sep 17 00:00:00 2001 From: Christoffer Lindqvist Date: Wed, 10 Dec 2014 17:14:55 +0200 Subject: [PATCH 14/71] Restructure repo --- .../Block/Adminhtml/Form/Account/Connect.php | 0 .../Block/Adminhtml/Form/Account/Create.php | 0 .../Block/Adminhtml/Form/Account/Remove.php | 0 .../Nosto/Tagging/Block/Adminhtml/Iframe.php | 0 .../Nosto/Tagging/Block/Adminhtml/Wizard.php | 0 .../community/Nosto/Tagging/Block/Cart.php | 0 .../Nosto/Tagging/Block/Category.php | 0 .../Nosto/Tagging/Block/Customer.php | 0 .../community/Nosto/Tagging/Block/Element.php | 0 .../community/Nosto/Tagging/Block/Embed.php | 0 .../community/Nosto/Tagging/Block/Order.php | 0 .../community/Nosto/Tagging/Block/Product.php | 0 .../Nosto/Tagging/Helper/Account.php | 0 .../community/Nosto/Tagging/Helper/Data.php | 0 .../community/Nosto/Tagging/Helper/Oauth.php | 0 .../community/Nosto/Tagging/Helper/Price.php | 0 .../community/Nosto/Tagging/Helper/Url.php | 0 .../Nosto/Tagging/Model/Config/Account.php | 0 .../Nosto/Tagging/Model/Config/Enabled.php | 0 .../Nosto/Tagging/Model/Config/Server.php | 0 .../Nosto/Tagging/Model/Meta/Account.php | 0 .../Tagging/Model/Meta/Account/Billing.php | 0 .../Tagging/Model/Meta/Account/Iframe.php | 0 .../Tagging/Model/Meta/Account/Owner.php | 0 .../Nosto/Tagging/Model/Meta/Oauth.php | 0 .../Nosto/Tagging/Model/Observer.php | 0 .../Nosto/Tagging/Model/Resource/Setup.php | 0 .../controllers/Adminhtml/NostoController.php | 0 .../Tagging/controllers/OauthController.php | 0 .../data/tagging_setup/data-install-1.0.3.php | 0 .../community/Nosto/Tagging/etc/adminhtml.xml | 0 .../community/Nosto/Tagging/etc/config.xml | 0 .../community/Nosto/Tagging/etc/system.xml | 0 .../default/default/layout/nostotagging.xml | 0 .../nostotagging/form/account/connect.phtml | 0 .../nostotagging/form/account/create.phtml | 0 .../nostotagging/form/account/remove.phtml | 0 .../template/nostotagging/iframe.phtml | 0 .../template/nostotagging/wizard.phtml | 0 .../base/default/layout/nostotagging.xml | 0 .../default/template/nostotagging/cart.phtml | 0 .../template/nostotagging/category.phtml | 0 .../template/nostotagging/category/view.phtml | 0 .../template/nostotagging/customer.phtml | 0 .../template/nostotagging/element.phtml | 0 .../default/template/nostotagging/embed.phtml | 0 .../default/template/nostotagging/order.phtml | 0 .../template/nostotagging/product.phtml | 0 dist/Nosto_Tagging-1.0.3.tgz | Bin 12148 -> 0 bytes dist/Nosto_Tagging-1.0.4.tgz | Bin 12040 -> 0 bytes dist/Nosto_Tagging-1.0.5.tgz | Bin 12122 -> 0 bytes dist/Nosto_Tagging-1.0.6.tgz | Bin 12153 -> 0 bytes dist/Nosto_Tagging-1.1.0.tgz | Bin 12684 -> 0 bytes dist/Nosto_Tagging-1.1.1.tgz | Bin 12166 -> 0 bytes dist/Nosto_Tagging-1.1.2.tgz | Bin 12186 -> 0 bytes dist/Nosto_Tagging-1.1.3.tgz | Bin 12186 -> 0 bytes dist/Nosto_Tagging-1.1.4.tgz | Bin 12032 -> 0 bytes dist/Nosto_Tagging-1.1.5.tgz | Bin 12048 -> 0 bytes docs/RELEASE.txt | 29 ------------------ .../etc => etc}/modules/Nosto_Tagging.xml | 0 .../js => js}/nostotagging-config.js | 0 Nosto_Tagging/modman => modman | 0 62 files changed, 29 deletions(-) rename {Nosto_Tagging/code => code}/community/Nosto/Tagging/Block/Adminhtml/Form/Account/Connect.php (100%) rename {Nosto_Tagging/code => code}/community/Nosto/Tagging/Block/Adminhtml/Form/Account/Create.php (100%) rename {Nosto_Tagging/code => code}/community/Nosto/Tagging/Block/Adminhtml/Form/Account/Remove.php (100%) rename {Nosto_Tagging/code => code}/community/Nosto/Tagging/Block/Adminhtml/Iframe.php (100%) rename {Nosto_Tagging/code => code}/community/Nosto/Tagging/Block/Adminhtml/Wizard.php (100%) rename {Nosto_Tagging/code => code}/community/Nosto/Tagging/Block/Cart.php (100%) rename {Nosto_Tagging/code => code}/community/Nosto/Tagging/Block/Category.php (100%) rename {Nosto_Tagging/code => code}/community/Nosto/Tagging/Block/Customer.php (100%) rename {Nosto_Tagging/code => code}/community/Nosto/Tagging/Block/Element.php (100%) rename {Nosto_Tagging/code => code}/community/Nosto/Tagging/Block/Embed.php (100%) rename {Nosto_Tagging/code => code}/community/Nosto/Tagging/Block/Order.php (100%) rename {Nosto_Tagging/code => code}/community/Nosto/Tagging/Block/Product.php (100%) rename {Nosto_Tagging/code => code}/community/Nosto/Tagging/Helper/Account.php (100%) rename {Nosto_Tagging/code => code}/community/Nosto/Tagging/Helper/Data.php (100%) rename {Nosto_Tagging/code => code}/community/Nosto/Tagging/Helper/Oauth.php (100%) rename {Nosto_Tagging/code => code}/community/Nosto/Tagging/Helper/Price.php (100%) rename {Nosto_Tagging/code => code}/community/Nosto/Tagging/Helper/Url.php (100%) rename {Nosto_Tagging/code => code}/community/Nosto/Tagging/Model/Config/Account.php (100%) rename {Nosto_Tagging/code => code}/community/Nosto/Tagging/Model/Config/Enabled.php (100%) rename {Nosto_Tagging/code => code}/community/Nosto/Tagging/Model/Config/Server.php (100%) rename {Nosto_Tagging/code => code}/community/Nosto/Tagging/Model/Meta/Account.php (100%) rename {Nosto_Tagging/code => code}/community/Nosto/Tagging/Model/Meta/Account/Billing.php (100%) rename {Nosto_Tagging/code => code}/community/Nosto/Tagging/Model/Meta/Account/Iframe.php (100%) rename {Nosto_Tagging/code => code}/community/Nosto/Tagging/Model/Meta/Account/Owner.php (100%) rename {Nosto_Tagging/code => code}/community/Nosto/Tagging/Model/Meta/Oauth.php (100%) rename {Nosto_Tagging/code => code}/community/Nosto/Tagging/Model/Observer.php (100%) rename {Nosto_Tagging/code => code}/community/Nosto/Tagging/Model/Resource/Setup.php (100%) rename {Nosto_Tagging/code => code}/community/Nosto/Tagging/controllers/Adminhtml/NostoController.php (100%) rename {Nosto_Tagging/code => code}/community/Nosto/Tagging/controllers/OauthController.php (100%) rename {Nosto_Tagging/code => code}/community/Nosto/Tagging/data/tagging_setup/data-install-1.0.3.php (100%) rename {Nosto_Tagging/code => code}/community/Nosto/Tagging/etc/adminhtml.xml (100%) rename {Nosto_Tagging/code => code}/community/Nosto/Tagging/etc/config.xml (100%) rename {Nosto_Tagging/code => code}/community/Nosto/Tagging/etc/system.xml (100%) rename {Nosto_Tagging/design => design}/adminhtml/default/default/layout/nostotagging.xml (100%) rename {Nosto_Tagging/design => design}/adminhtml/default/default/template/nostotagging/form/account/connect.phtml (100%) rename {Nosto_Tagging/design => design}/adminhtml/default/default/template/nostotagging/form/account/create.phtml (100%) rename {Nosto_Tagging/design => design}/adminhtml/default/default/template/nostotagging/form/account/remove.phtml (100%) rename {Nosto_Tagging/design => design}/adminhtml/default/default/template/nostotagging/iframe.phtml (100%) rename {Nosto_Tagging/design => design}/adminhtml/default/default/template/nostotagging/wizard.phtml (100%) rename {Nosto_Tagging/design => design}/frontend/base/default/layout/nostotagging.xml (100%) rename {Nosto_Tagging/design => design}/frontend/base/default/template/nostotagging/cart.phtml (100%) rename {Nosto_Tagging/design => design}/frontend/base/default/template/nostotagging/category.phtml (100%) rename {Nosto_Tagging/design => design}/frontend/base/default/template/nostotagging/category/view.phtml (100%) rename {Nosto_Tagging/design => design}/frontend/base/default/template/nostotagging/customer.phtml (100%) rename {Nosto_Tagging/design => design}/frontend/base/default/template/nostotagging/element.phtml (100%) rename {Nosto_Tagging/design => design}/frontend/base/default/template/nostotagging/embed.phtml (100%) rename {Nosto_Tagging/design => design}/frontend/base/default/template/nostotagging/order.phtml (100%) rename {Nosto_Tagging/design => design}/frontend/base/default/template/nostotagging/product.phtml (100%) delete mode 100644 dist/Nosto_Tagging-1.0.3.tgz delete mode 100644 dist/Nosto_Tagging-1.0.4.tgz delete mode 100644 dist/Nosto_Tagging-1.0.5.tgz delete mode 100644 dist/Nosto_Tagging-1.0.6.tgz delete mode 100644 dist/Nosto_Tagging-1.1.0.tgz delete mode 100644 dist/Nosto_Tagging-1.1.1.tgz delete mode 100644 dist/Nosto_Tagging-1.1.2.tgz delete mode 100644 dist/Nosto_Tagging-1.1.3.tgz delete mode 100644 dist/Nosto_Tagging-1.1.4.tgz delete mode 100644 dist/Nosto_Tagging-1.1.5.tgz delete mode 100644 docs/RELEASE.txt rename {Nosto_Tagging/etc => etc}/modules/Nosto_Tagging.xml (100%) rename {Nosto_Tagging/js => js}/nostotagging-config.js (100%) rename Nosto_Tagging/modman => modman (100%) diff --git a/Nosto_Tagging/code/community/Nosto/Tagging/Block/Adminhtml/Form/Account/Connect.php b/code/community/Nosto/Tagging/Block/Adminhtml/Form/Account/Connect.php similarity index 100% rename from Nosto_Tagging/code/community/Nosto/Tagging/Block/Adminhtml/Form/Account/Connect.php rename to code/community/Nosto/Tagging/Block/Adminhtml/Form/Account/Connect.php diff --git a/Nosto_Tagging/code/community/Nosto/Tagging/Block/Adminhtml/Form/Account/Create.php b/code/community/Nosto/Tagging/Block/Adminhtml/Form/Account/Create.php similarity index 100% rename from Nosto_Tagging/code/community/Nosto/Tagging/Block/Adminhtml/Form/Account/Create.php rename to code/community/Nosto/Tagging/Block/Adminhtml/Form/Account/Create.php diff --git a/Nosto_Tagging/code/community/Nosto/Tagging/Block/Adminhtml/Form/Account/Remove.php b/code/community/Nosto/Tagging/Block/Adminhtml/Form/Account/Remove.php similarity index 100% rename from Nosto_Tagging/code/community/Nosto/Tagging/Block/Adminhtml/Form/Account/Remove.php rename to code/community/Nosto/Tagging/Block/Adminhtml/Form/Account/Remove.php diff --git a/Nosto_Tagging/code/community/Nosto/Tagging/Block/Adminhtml/Iframe.php b/code/community/Nosto/Tagging/Block/Adminhtml/Iframe.php similarity index 100% rename from Nosto_Tagging/code/community/Nosto/Tagging/Block/Adminhtml/Iframe.php rename to code/community/Nosto/Tagging/Block/Adminhtml/Iframe.php diff --git a/Nosto_Tagging/code/community/Nosto/Tagging/Block/Adminhtml/Wizard.php b/code/community/Nosto/Tagging/Block/Adminhtml/Wizard.php similarity index 100% rename from Nosto_Tagging/code/community/Nosto/Tagging/Block/Adminhtml/Wizard.php rename to code/community/Nosto/Tagging/Block/Adminhtml/Wizard.php diff --git a/Nosto_Tagging/code/community/Nosto/Tagging/Block/Cart.php b/code/community/Nosto/Tagging/Block/Cart.php similarity index 100% rename from Nosto_Tagging/code/community/Nosto/Tagging/Block/Cart.php rename to code/community/Nosto/Tagging/Block/Cart.php diff --git a/Nosto_Tagging/code/community/Nosto/Tagging/Block/Category.php b/code/community/Nosto/Tagging/Block/Category.php similarity index 100% rename from Nosto_Tagging/code/community/Nosto/Tagging/Block/Category.php rename to code/community/Nosto/Tagging/Block/Category.php diff --git a/Nosto_Tagging/code/community/Nosto/Tagging/Block/Customer.php b/code/community/Nosto/Tagging/Block/Customer.php similarity index 100% rename from Nosto_Tagging/code/community/Nosto/Tagging/Block/Customer.php rename to code/community/Nosto/Tagging/Block/Customer.php diff --git a/Nosto_Tagging/code/community/Nosto/Tagging/Block/Element.php b/code/community/Nosto/Tagging/Block/Element.php similarity index 100% rename from Nosto_Tagging/code/community/Nosto/Tagging/Block/Element.php rename to code/community/Nosto/Tagging/Block/Element.php diff --git a/Nosto_Tagging/code/community/Nosto/Tagging/Block/Embed.php b/code/community/Nosto/Tagging/Block/Embed.php similarity index 100% rename from Nosto_Tagging/code/community/Nosto/Tagging/Block/Embed.php rename to code/community/Nosto/Tagging/Block/Embed.php diff --git a/Nosto_Tagging/code/community/Nosto/Tagging/Block/Order.php b/code/community/Nosto/Tagging/Block/Order.php similarity index 100% rename from Nosto_Tagging/code/community/Nosto/Tagging/Block/Order.php rename to code/community/Nosto/Tagging/Block/Order.php diff --git a/Nosto_Tagging/code/community/Nosto/Tagging/Block/Product.php b/code/community/Nosto/Tagging/Block/Product.php similarity index 100% rename from Nosto_Tagging/code/community/Nosto/Tagging/Block/Product.php rename to code/community/Nosto/Tagging/Block/Product.php diff --git a/Nosto_Tagging/code/community/Nosto/Tagging/Helper/Account.php b/code/community/Nosto/Tagging/Helper/Account.php similarity index 100% rename from Nosto_Tagging/code/community/Nosto/Tagging/Helper/Account.php rename to code/community/Nosto/Tagging/Helper/Account.php diff --git a/Nosto_Tagging/code/community/Nosto/Tagging/Helper/Data.php b/code/community/Nosto/Tagging/Helper/Data.php similarity index 100% rename from Nosto_Tagging/code/community/Nosto/Tagging/Helper/Data.php rename to code/community/Nosto/Tagging/Helper/Data.php diff --git a/Nosto_Tagging/code/community/Nosto/Tagging/Helper/Oauth.php b/code/community/Nosto/Tagging/Helper/Oauth.php similarity index 100% rename from Nosto_Tagging/code/community/Nosto/Tagging/Helper/Oauth.php rename to code/community/Nosto/Tagging/Helper/Oauth.php diff --git a/Nosto_Tagging/code/community/Nosto/Tagging/Helper/Price.php b/code/community/Nosto/Tagging/Helper/Price.php similarity index 100% rename from Nosto_Tagging/code/community/Nosto/Tagging/Helper/Price.php rename to code/community/Nosto/Tagging/Helper/Price.php diff --git a/Nosto_Tagging/code/community/Nosto/Tagging/Helper/Url.php b/code/community/Nosto/Tagging/Helper/Url.php similarity index 100% rename from Nosto_Tagging/code/community/Nosto/Tagging/Helper/Url.php rename to code/community/Nosto/Tagging/Helper/Url.php diff --git a/Nosto_Tagging/code/community/Nosto/Tagging/Model/Config/Account.php b/code/community/Nosto/Tagging/Model/Config/Account.php similarity index 100% rename from Nosto_Tagging/code/community/Nosto/Tagging/Model/Config/Account.php rename to code/community/Nosto/Tagging/Model/Config/Account.php diff --git a/Nosto_Tagging/code/community/Nosto/Tagging/Model/Config/Enabled.php b/code/community/Nosto/Tagging/Model/Config/Enabled.php similarity index 100% rename from Nosto_Tagging/code/community/Nosto/Tagging/Model/Config/Enabled.php rename to code/community/Nosto/Tagging/Model/Config/Enabled.php diff --git a/Nosto_Tagging/code/community/Nosto/Tagging/Model/Config/Server.php b/code/community/Nosto/Tagging/Model/Config/Server.php similarity index 100% rename from Nosto_Tagging/code/community/Nosto/Tagging/Model/Config/Server.php rename to code/community/Nosto/Tagging/Model/Config/Server.php diff --git a/Nosto_Tagging/code/community/Nosto/Tagging/Model/Meta/Account.php b/code/community/Nosto/Tagging/Model/Meta/Account.php similarity index 100% rename from Nosto_Tagging/code/community/Nosto/Tagging/Model/Meta/Account.php rename to code/community/Nosto/Tagging/Model/Meta/Account.php diff --git a/Nosto_Tagging/code/community/Nosto/Tagging/Model/Meta/Account/Billing.php b/code/community/Nosto/Tagging/Model/Meta/Account/Billing.php similarity index 100% rename from Nosto_Tagging/code/community/Nosto/Tagging/Model/Meta/Account/Billing.php rename to code/community/Nosto/Tagging/Model/Meta/Account/Billing.php diff --git a/Nosto_Tagging/code/community/Nosto/Tagging/Model/Meta/Account/Iframe.php b/code/community/Nosto/Tagging/Model/Meta/Account/Iframe.php similarity index 100% rename from Nosto_Tagging/code/community/Nosto/Tagging/Model/Meta/Account/Iframe.php rename to code/community/Nosto/Tagging/Model/Meta/Account/Iframe.php diff --git a/Nosto_Tagging/code/community/Nosto/Tagging/Model/Meta/Account/Owner.php b/code/community/Nosto/Tagging/Model/Meta/Account/Owner.php similarity index 100% rename from Nosto_Tagging/code/community/Nosto/Tagging/Model/Meta/Account/Owner.php rename to code/community/Nosto/Tagging/Model/Meta/Account/Owner.php diff --git a/Nosto_Tagging/code/community/Nosto/Tagging/Model/Meta/Oauth.php b/code/community/Nosto/Tagging/Model/Meta/Oauth.php similarity index 100% rename from Nosto_Tagging/code/community/Nosto/Tagging/Model/Meta/Oauth.php rename to code/community/Nosto/Tagging/Model/Meta/Oauth.php diff --git a/Nosto_Tagging/code/community/Nosto/Tagging/Model/Observer.php b/code/community/Nosto/Tagging/Model/Observer.php similarity index 100% rename from Nosto_Tagging/code/community/Nosto/Tagging/Model/Observer.php rename to code/community/Nosto/Tagging/Model/Observer.php diff --git a/Nosto_Tagging/code/community/Nosto/Tagging/Model/Resource/Setup.php b/code/community/Nosto/Tagging/Model/Resource/Setup.php similarity index 100% rename from Nosto_Tagging/code/community/Nosto/Tagging/Model/Resource/Setup.php rename to code/community/Nosto/Tagging/Model/Resource/Setup.php diff --git a/Nosto_Tagging/code/community/Nosto/Tagging/controllers/Adminhtml/NostoController.php b/code/community/Nosto/Tagging/controllers/Adminhtml/NostoController.php similarity index 100% rename from Nosto_Tagging/code/community/Nosto/Tagging/controllers/Adminhtml/NostoController.php rename to code/community/Nosto/Tagging/controllers/Adminhtml/NostoController.php diff --git a/Nosto_Tagging/code/community/Nosto/Tagging/controllers/OauthController.php b/code/community/Nosto/Tagging/controllers/OauthController.php similarity index 100% rename from Nosto_Tagging/code/community/Nosto/Tagging/controllers/OauthController.php rename to code/community/Nosto/Tagging/controllers/OauthController.php diff --git a/Nosto_Tagging/code/community/Nosto/Tagging/data/tagging_setup/data-install-1.0.3.php b/code/community/Nosto/Tagging/data/tagging_setup/data-install-1.0.3.php similarity index 100% rename from Nosto_Tagging/code/community/Nosto/Tagging/data/tagging_setup/data-install-1.0.3.php rename to code/community/Nosto/Tagging/data/tagging_setup/data-install-1.0.3.php diff --git a/Nosto_Tagging/code/community/Nosto/Tagging/etc/adminhtml.xml b/code/community/Nosto/Tagging/etc/adminhtml.xml similarity index 100% rename from Nosto_Tagging/code/community/Nosto/Tagging/etc/adminhtml.xml rename to code/community/Nosto/Tagging/etc/adminhtml.xml diff --git a/Nosto_Tagging/code/community/Nosto/Tagging/etc/config.xml b/code/community/Nosto/Tagging/etc/config.xml similarity index 100% rename from Nosto_Tagging/code/community/Nosto/Tagging/etc/config.xml rename to code/community/Nosto/Tagging/etc/config.xml diff --git a/Nosto_Tagging/code/community/Nosto/Tagging/etc/system.xml b/code/community/Nosto/Tagging/etc/system.xml similarity index 100% rename from Nosto_Tagging/code/community/Nosto/Tagging/etc/system.xml rename to code/community/Nosto/Tagging/etc/system.xml diff --git a/Nosto_Tagging/design/adminhtml/default/default/layout/nostotagging.xml b/design/adminhtml/default/default/layout/nostotagging.xml similarity index 100% rename from Nosto_Tagging/design/adminhtml/default/default/layout/nostotagging.xml rename to design/adminhtml/default/default/layout/nostotagging.xml diff --git a/Nosto_Tagging/design/adminhtml/default/default/template/nostotagging/form/account/connect.phtml b/design/adminhtml/default/default/template/nostotagging/form/account/connect.phtml similarity index 100% rename from Nosto_Tagging/design/adminhtml/default/default/template/nostotagging/form/account/connect.phtml rename to design/adminhtml/default/default/template/nostotagging/form/account/connect.phtml diff --git a/Nosto_Tagging/design/adminhtml/default/default/template/nostotagging/form/account/create.phtml b/design/adminhtml/default/default/template/nostotagging/form/account/create.phtml similarity index 100% rename from Nosto_Tagging/design/adminhtml/default/default/template/nostotagging/form/account/create.phtml rename to design/adminhtml/default/default/template/nostotagging/form/account/create.phtml diff --git a/Nosto_Tagging/design/adminhtml/default/default/template/nostotagging/form/account/remove.phtml b/design/adminhtml/default/default/template/nostotagging/form/account/remove.phtml similarity index 100% rename from Nosto_Tagging/design/adminhtml/default/default/template/nostotagging/form/account/remove.phtml rename to design/adminhtml/default/default/template/nostotagging/form/account/remove.phtml diff --git a/Nosto_Tagging/design/adminhtml/default/default/template/nostotagging/iframe.phtml b/design/adminhtml/default/default/template/nostotagging/iframe.phtml similarity index 100% rename from Nosto_Tagging/design/adminhtml/default/default/template/nostotagging/iframe.phtml rename to design/adminhtml/default/default/template/nostotagging/iframe.phtml diff --git a/Nosto_Tagging/design/adminhtml/default/default/template/nostotagging/wizard.phtml b/design/adminhtml/default/default/template/nostotagging/wizard.phtml similarity index 100% rename from Nosto_Tagging/design/adminhtml/default/default/template/nostotagging/wizard.phtml rename to design/adminhtml/default/default/template/nostotagging/wizard.phtml diff --git a/Nosto_Tagging/design/frontend/base/default/layout/nostotagging.xml b/design/frontend/base/default/layout/nostotagging.xml similarity index 100% rename from Nosto_Tagging/design/frontend/base/default/layout/nostotagging.xml rename to design/frontend/base/default/layout/nostotagging.xml diff --git a/Nosto_Tagging/design/frontend/base/default/template/nostotagging/cart.phtml b/design/frontend/base/default/template/nostotagging/cart.phtml similarity index 100% rename from Nosto_Tagging/design/frontend/base/default/template/nostotagging/cart.phtml rename to design/frontend/base/default/template/nostotagging/cart.phtml diff --git a/Nosto_Tagging/design/frontend/base/default/template/nostotagging/category.phtml b/design/frontend/base/default/template/nostotagging/category.phtml similarity index 100% rename from Nosto_Tagging/design/frontend/base/default/template/nostotagging/category.phtml rename to design/frontend/base/default/template/nostotagging/category.phtml diff --git a/Nosto_Tagging/design/frontend/base/default/template/nostotagging/category/view.phtml b/design/frontend/base/default/template/nostotagging/category/view.phtml similarity index 100% rename from Nosto_Tagging/design/frontend/base/default/template/nostotagging/category/view.phtml rename to design/frontend/base/default/template/nostotagging/category/view.phtml diff --git a/Nosto_Tagging/design/frontend/base/default/template/nostotagging/customer.phtml b/design/frontend/base/default/template/nostotagging/customer.phtml similarity index 100% rename from Nosto_Tagging/design/frontend/base/default/template/nostotagging/customer.phtml rename to design/frontend/base/default/template/nostotagging/customer.phtml diff --git a/Nosto_Tagging/design/frontend/base/default/template/nostotagging/element.phtml b/design/frontend/base/default/template/nostotagging/element.phtml similarity index 100% rename from Nosto_Tagging/design/frontend/base/default/template/nostotagging/element.phtml rename to design/frontend/base/default/template/nostotagging/element.phtml diff --git a/Nosto_Tagging/design/frontend/base/default/template/nostotagging/embed.phtml b/design/frontend/base/default/template/nostotagging/embed.phtml similarity index 100% rename from Nosto_Tagging/design/frontend/base/default/template/nostotagging/embed.phtml rename to design/frontend/base/default/template/nostotagging/embed.phtml diff --git a/Nosto_Tagging/design/frontend/base/default/template/nostotagging/order.phtml b/design/frontend/base/default/template/nostotagging/order.phtml similarity index 100% rename from Nosto_Tagging/design/frontend/base/default/template/nostotagging/order.phtml rename to design/frontend/base/default/template/nostotagging/order.phtml diff --git a/Nosto_Tagging/design/frontend/base/default/template/nostotagging/product.phtml b/design/frontend/base/default/template/nostotagging/product.phtml similarity index 100% rename from Nosto_Tagging/design/frontend/base/default/template/nostotagging/product.phtml rename to design/frontend/base/default/template/nostotagging/product.phtml diff --git a/dist/Nosto_Tagging-1.0.3.tgz b/dist/Nosto_Tagging-1.0.3.tgz deleted file mode 100644 index 4c7238fc9bd3f9936134aad1bb3f71bc9a5f0189..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12148 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 diff --git a/dist/Nosto_Tagging-1.0.4.tgz b/dist/Nosto_Tagging-1.0.4.tgz deleted file mode 100644 index 07efa510c50f4a52a53a53d7143740c5da29c5a8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12040 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 Z{QtLU!T>oG6ac_NJ@xL_L5)L0{SOkR3L^jj diff --git a/dist/Nosto_Tagging-1.0.5.tgz b/dist/Nosto_Tagging-1.0.5.tgz deleted file mode 100644 index 464876bee70b0fb5da626c17460f287299be26c4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12122 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 diff --git a/dist/Nosto_Tagging-1.1.0.tgz b/dist/Nosto_Tagging-1.1.0.tgz deleted file mode 100644 index be4b8d4d268b58543142b398a8e71b1b48d12abb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12684 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 diff --git a/dist/Nosto_Tagging-1.1.1.tgz b/dist/Nosto_Tagging-1.1.1.tgz deleted file mode 100644 index faa73dc4bc23c212e6db5f948112bc1279eb60b3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12166 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
getChildHtml('nosto.form.account.remove'); ?>
getIframeUrl()): ?> -
getChildHtml('nosto.iframe'); ?>
+
getChildHtml('nosto.iframe'); ?>

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 diff --git a/dist/Nosto_Tagging-1.1.2.tgz b/dist/Nosto_Tagging-1.1.2.tgz deleted file mode 100644 index 94f8df101fd04a9a37649316fea0aba75019cd98..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12186 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 NQGr?;X7(M-{{TSCSv~*& diff --git a/dist/Nosto_Tagging-1.1.3.tgz b/dist/Nosto_Tagging-1.1.3.tgz deleted file mode 100644 index f915bea81ba618abe2b00ee53f3845a061f83986..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12186 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 diff --git a/dist/Nosto_Tagging-1.1.4.tgz b/dist/Nosto_Tagging-1.1.4.tgz deleted file mode 100644 index 19ca2421b01deb7a02defe4e8cfb3dca2db8748f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12032 zcmZXaRZyKvw5@S>cL)$%gF|q4cMt9^fxv>`9-QD1G`PD%a3{FCyTe-l-TRzf=jHap zsDA3I?yjD5e6uHI3=-780|xdyz|Lolzup!U2ZA?bx1pU({g}AwD7)CW=2mi-+n{tl zks}cBdg2<)qM})pS(Nll_j1*Og6gA?(pdtV`!ik%CQL%RK#d_E<<))VWhXw*xkZR1 z?zm@T)>RC+un%}-_YYKSGEpVRknK{(+^qP`dk*1v-l53V#yagTe8291oaU#0FHoL><|W#*JS@$uJaO zL{Bl^h#?O4HJE?`Wb1_sLh9;ObGOuU$q3RmInf^to{_`?wmD<9y#ah;Z}XW zx9&6PM~BFsLE2xXRv-tCdCd`|$%_Gdr?GB8~XQ|^qB;1*Du}^0x zg^WTh74-$B5Rst8v8p8qX1ElXRmA|iKE2RisZ^`iu)YP~XrqyNY?Y-_e_2a1jxS2? z8np;K<@R*)3yXezIX%zu-I-MpZ&SPZCf&mFM>?NikL~PTRw!dH;_vO)5-YVOylLA$ z%?>p2h=JdtnCARgQrsuxTZrfNMnESPOhDH`ZV zmU@|iLWA&~7JYX(agG71M{^cB(sgQ@L&Uxn3he34S|SqE|CXifJHt2(jQ)JGAZF@LOxP~@{e(G#IOjxE$3(7#y~_F<)pAFlxx@hZFAc!~av-N}cS35g1V?i{ z`86_{fErwZYPm_|x#K~moR<}eUr#7%>1+`^(a<$C8Hp%0aeVyYpgvBIdMS+X!JL-M zrRw=MzVuCO!ICYLX}8$0j`Ol_^q2+6U0R|@f5w(Kb#Kq2cuk2r7<0JE1VqpUX>Un? zX(fo>&V* zxs5R>Cu|SS5)W)r0j`X1)&kclap4vjwco%7GdiEejCiSY-TmgQ7cH26#2UzH3&$@L z)8shg7G?K}X_K5pb7(MBuVBp3!BHmY6El5vS?OT$6(>-SNbBk}NlItvV<=W?=#}&A zWZo3TaELyLk7onGkB+Z*Z%fnD)6uoqtlW-#jwP92W4;7)B(Z{(ifQMuSigGSKa%SS zYp!m_qyvKfCW~YuWg3n?(z*C)&j!!DlVHY)65XOclV+Tv&pB)H@J1nS*%1)!4;V`F zc}v_-5`6-iY60wET?6l=LS{3#vlQvyf9Rxx$Fw5jC+{n&--GLww8M$Y%J`F{CAX>K zPgn7Y+!eq4HF#c8W`GF;VQY(dEE8xGlp)tby^mJOWc=1?r%^aefkh(>sB<3VEKE7Z z!|GGc42dC&6eTq!#>WYAF8akORGUF&^Knipt7;YL^{s>NYAaV*bPUtRMLtn6{*dqf z@AOhBRF(SCU?w&FsTFLt-m=?|3f z^IOAxQ0<74sld+crW5xlDFdYvBl_bU&cMmpCg$x6c7S=Y5MdkTIM$y`cSTf*C8tSn=8BRp0@*-zqo>K0zmIO#q;dSMJv7HXHIj}!X(7Sr>Co_{8bUQD61r@fh9H;0NVyIUx4fY#W&McK>GqzQpkwxZ1x^f z2MT*DVmrcR03&jrN|(;b2!qB^b22=)++K|^55r5}bT<157k#2-92~D&&9HEbKIS`_ z=V*Ebxj2*@@#j;QdTObfXS~otg)iY2caSY-7peep5 z=6>w7=kO725uKsoMm9D2HX=^-w{~R0`==W+>(>gkmqu5LIlGCYCh~88rdLcp3$I|q zJ*FzM6o93C%=cS!$M0zG$?pDEO~(8XhMvE{tgznV zix(PdR+%c8Ue0OSyFJ3qYJS#o=2mTqv-#arfPP%79Ql%NP;k;bkQ=G3CT5-#MXUX1 z$4}G?MP}K7QeI&woUhw2W#7`MKe1}LvxGwdk#b8 zD??0qt^n<~f$m127|i~^R|q0~qr`8*$>{DvYna*sP$dt(2kh)|yT3!+y>GM8N7aBF zI3j-WP_to?J!W#qqd=6})Jqcd5|kQ$J=5N==|0KT#}vFZ!^iau6%ABmt|fK#I*UC! zdo9|qAmE6%xfpnuwgtLws>t~OzEzNYjS$(vc~3AMxMvQM{Fv7W6oGXoA-|Yj>25Ze z=V`?`3#Tux+!W{4YnDHR>N=B7Il)<#849uYVp6(q)=UNoR5FY0j zbnI;_ske3GS@B_YgUs!+9?2jZS&XMIv)5ANa8{nvte_Z!QkNQ09M9BGo<0GJ59!)W zn1wUVq<448TwOe&c}D(Y#@goyC^=*WFENhKDG?P2`rbyNB9($-0EP6Zu!#|f^& zbUA`wM~AMye|$(xrnV2j`zx(aT}~mJcBJs)S1Un2;ZXRaxWg|tyA~QOOQBu#Ci|Ta zZu|Z^`Cpf1WJ9TBC32wBk5p!?`v5xoGs2>?QGqPd6W7d9cx-s2j3-1IqLPomp;3Qc?5(< zImScBM-bH$Dt=jQPbO(Qlf+p>c+K-;(<}O5{l0w&g)qTh+e1WxnI@jtKBepc{oz0c zh1>%DIv9-Mj1NP zeRor*gP0=e+A=AF#Z#CrKk?bv{3uAVA^|hK0@epwBieb-HaXBY&rs}Vb+^)Z7o!Bn z5{;61?MQ9;NyVAZegZyn|J(vAUZ&i7 z;rju5Z+lSaIk@Hl>Um#P8iT0z%=%Fq++zBxlA~E0sM2TMQ1lA=1RtveeJ6YcxN^29 z-vI;WE-9jbD9I?8vJIel0_{T*)`9Xy;7*6Aqb2cis7*&?xmSnT{7_`U`p2=JpHL)e zMLD%YJ%B>RL)zk$ufj^LCAg+|%K=&Qamnow?fNI|2zRx9^LPcWwjMXUyG2^`EP$ zu{(G#o$?jnc9cK%X;iL(BcRrViGg;t}NrT!8gM;pSBPAe1NB++hTwUffbTB z!?|g&O@Ffctk4(hsSLAfjvn7TkP+bRNZ-2WyeoEXcgO%>S zNE~jkRa@HXd8|gQrVC0{EXns-5vbx;4qJY7zRGQvT7-V7xsqavsUdEH6V$6;q^V`C zgul6yvNDMF9mBhiR;_0Q!en$mEOQk~-8DnU zOwZrZX;0WyOMSJzg0c0CsH7FuL4i%HJAIrp!oRRAUSoRt_+e-z(4hU#A@`EQdp^=V z1(=0&3FuKn**bJl;=hqt+LQasJD!!YbG;j zg8Ff)GQM=^f@8!+PgOtz2SRWvX5Ov6m-(W7L)11&bYPui@)oK_uiypfrx*(xoLydu z8}{&SP1PjkZwL#Fau@y6dK8gO8@HPPYz!X$P9f zsCI4DGfS1~%qBJZt=-AY9Z!{COt52GyGgA`m*OOoQ1ayT>R{I^J_@i{q%t}&KFBzE zDw6blOz1^134_$JXoBzcUBWJed_wO2y>Lj)UdJQ;@DAx9;u+Q61>v}o?p%+PDICNs5~bh|l@qN^v#HBU@#WnSZR8jQ(y#q6emUH|-t>|@ zyfHt|n#+18d!5RDaC81jeP_Z-#uS8OaQ6L^`{!gsG_@7k)lljSfxk9MA5zpOB+Xx1 zQRq8nmsMm`c-SSk!f4sM6Ybiz^V_W46mR?>(LtzOsnd;dh{4)oD*a zeEThg?*vGNnEoqUSuda!?5g3Ne?0RDo3mNn$d?>OJ*&h=Z9{c)UOP&PYGa##;4xF{ z_|kb;5~vIBG^0ivbcDLW6n9-zSiw<_Lute4MU7J@z0kjB#WDw5@*`-r*?9uUddJE9 zf5iu=T)-T7#TrAnOzHqCW~rq!7IRf|ILtRTSG)bc7Dc_NgBLm@GlgtJO@m_c$Ll;i zQs_o7DMmtoC&5FzAaV?ix}sd7Ewm2P0at%yxz14%|6B4#GiO0oAt3P{Vm%_0QI&y*P$5~370+Q1esVOiq$F!jgV>=^MKv0d?2hzV#`k^QWe=O5YjowsT z=8)-c)$u4{Tg7w0_MqxAyXZcU-$LMVieHs@Jx^#tTlE=Lo ze}&xLT<5*`3q1{il(pYrM*-PkQ1?S)F{ST37<0os9uWQ~;Q%%Fz<=V>^afgaQS>v4 zK4`_Y!CtvhtFxKL^bv_9&7dqP%!qdIM_unL|KjV;e}&aOV-8h6q1QM*+tvy?jgKqU zdoK1KokuyRXs+Mhnars6fHA;H~fbn?=tT-i=eD`QT`*FBT!T6=!@wT;0{T@ z>&XUO_yLNb}BKiwz znS4WuPW9Rwo{9$X@8Ny~-lkZnA47e=Lf*n;mNynv&HcRcch4iy+I#BYZhutQk#G-A za@T^Q^i>t0wEFZ+DtDmj4JID8KS{1&jHUJ1#0um5VZoL3yfbR8WLHQ3Fb)H4h5gAY zHX4ECH*>VWyL0myo*6Dc>eDco^&r(=-`oIf67{K+n0|c26t%t+bqLA**WUlP|C%JQ z&m%OKw6Br6tZXmvyK}hJsCUuZ9AiluVj}MM{qJ`~ZiJzQq^-TTrG9lXFv&b)!}t&42{uXKa+NnO zE4+-|o7Hl0j#SC6eM>;pYm4qOMIw6S_h)?Sx}ol)EYH+ka@83;?zhKLG(j-R!W!e5 zsRb;Bw7j{qAG-awqHI(pZ%((Vvgbhgd2UM&-)n_o&LozUVI8~khOjM1(v7=NWKjKM{n|e7LYG2k85O}Z8 zJ$bIW{Q^fAvhbk-tBeqbvfpzM5cfMFMIscB$I<0WjU706AFwzO?OrW?(IK}ng*Pm2 z2^4QN2babpfLVYD1KmqtqZFxA#eH{KU|8OY5TCgHp#R*wCvQ!9MTJBq|k0KGIh_%K1NJez-k$y`s4Q)!kX<31g zqWQhtQGy|2|5i5s!)PDUN6L;WM)RvUP4KwVdA1#HQ&scZUi>o`=Pcm@g^xyD>wz`z*oMf-Qgkvo_ zDrc#UE2=tc6VGstscK^mBE6`Icyw{#88jv z%#<8_M2Q9%e|!SPzsF0AAE=B&9Q%H_(U1S-WX^@|D75K|X_N{}-6XP^M`j%vFGv-> zoLTZWWThC+A*0(lX8l&AOD2Qi_Q~XiGvMdLw}$i;;?<06MH4qBo_g=l zqX^CE7PCK;o_$~B-g6lFpF~ugbfwI8-*W=AjiAGo%_3;^#XFg*#Z=kpV;Trg`tN^d z<@o4SwvtjPzs?|G;S>l$hnLY2OgBuSt~UG4C!UBJbpdUgtyiIyJZz zgymElK9m|E`R14tkZ8(pyOh+)leliG-AlJNNrBGj`T-Z|X6*(B^!5 z&}+sStBmwc>F~_WGajs|$61m29BOJNdon|zCD_iF9Pey(VkV-KTW?Q|!+j9~zh{~t zG#kM)r`>3+aV5~Z0f}Hw3TWW1E4UN5DR_1{hCcbs0wAucCBK8@Aa}$qcO37O@$HhM zz;G|f`+L4e&-+q)Cfy!DfeSRqYB{?Art`1%Y>=8I%8_>$cfj-#7zcyefSxmm=(K$n z**ZsOTMU$p?@$I`D89D5r4RukA_48f(@7J}HBJu8Po}?yQD-yRmM9o7X{-W~;)klN z*4NaiuMmy` zdkHqro%=lhv&=;KB(ixaWTFLWfC475)T$uh5Z+nXwJHM5lSUwN;&L>-W7jnm^IsK7aGqCoP zauOOst2D{XMF=1x7SCPS2@t1f-y(eN%)hf)fCyrheG8L#;7S#mfr zuH*?}#4Z8v(z*bGtNTyX*^-@=44Bc4$`FbR(H%H zqix2u<^6@icm($DMyPU;>Cvf9U}|gJaR^5fs~X1hu*r(aQ}nR&xdrB90ix$Ge{G`n zz8@o(M`{XHiPKE)1F29yp@(~oKHa0=v7~i==uoP4C3Mb`c(oSzBUqP^aJ>LN~qZT%Pj)QI7X1*l5G~@-Qq0s@%+u7aqCOjtNP|{ z{owq}^oJdc{Q{T-oS4OhXx93SGQ9msIu`CGVEc^3ezUU!c8uzxm`jt_F;kyixw^~8hpQ6 z7i)Yf9N6lTWNOa4?ASJKD?0~ai0hsStRy{;`@%_O^VLG67a-oq6~f%+{tieL0Ry33 zxM9tGAs^Xj8P)ChTo+4Dw<_kF-N#9@Tgv;TQH+_jj;GBo1{NWn9-5QP&)XD}8sS|e z9W-AsIb;vlvVpHX6f-4Xhz1QHs?vHFQ|YlU&}n+?I2(LN(W>8%+14uUQEU?#nKil% z*8L(8%1f>svg>tlf2DNUa&dP{i|-2i)!vM*CdeM;h32nrtRRKaFe#+m8y|v<{UNF& zibsLdAPjC|;HLFCPlM2B639i^`Up_60(&81d?LUae42wk1e5zGaF#m-jJ@^jt8ZN$ zm9fuzwKa5?-G;^-k_w%^@#$%l$Z&QLXMExSPEkM zOc zxau`bzp=ex6S6~4h6j5eUN`Rj+!u7-JaMi)jPDG=&%+9(KE9>fJpX(RYCz!~i%N7( z`r*{+#eoWyQ(iP$^518)8N#9_-Am5l*hUyv5cpmq#?ytvc|qmisgW2Z$jD#WD=x0^$0gx6#ihXnX6+ z`&hX2YbZHiQcHkkswfuh%aTMc0R0Hix_(E00?fn?j{b@7^#8Yr4>#a}-aY?LS?noa z^SUxlp8kf6DlWEV_Cbo+WYIC}BcGXVZpaA%sbV2~GiGSh#x8k@78en?!-M(AuSurN zdAT^4t1=^)?c#$S;A8_7$D?jtzo#$GyT6HsV0ZrK4gZJ1HogI+BXFNB6uvE0Rx|XSw|=+{XXeH2A(b5j(|H(vRj|0KY$c12LU0e&=C59Yj6c^HfL9Qwn@Khf8w?zj2SlK) z_L%4*=5hsxkr_E5x9JEN$k3~{8grS$_g3M#LB{A=!QDamLC?Wab{hK+1gxs%DMc|W z@2j8IC5!IgJULu{1*(uATRCaC@D?PU_(I!p8!qZHb*ytkRMq_d z_}*3AthwEvji;BXQk};g2fQWh4PLRE27;?rOsc;Nq`a<1_wWzrSKt#3hCYdWw{DWV zYY=vL&qxZTqqi69SM(R})XpILN>}yJ^cQyVhsEu|_>raICg;u^X)s*X0QcS8lUlG) zRmGmE!@1z{>dno~xl04h>ydhu_L-+W>s&4@XZN@AgX-uZ7e(RhftL7-%&9SIwawQm zFy*v2DGw2bAkxlKMmW{8x36QMQ=z|K!hA-zO*&hFkCC>k8h6@88CaQjW8Zy+ZK69!E|SO@CXam-Zf@d&HqNi|-$<;VNrQ zRaR8pz^~kXzh~nB_fy+feao;~56+(KcNr>q8=&8X?8-FoH!kQITMP^Z#~WTX4D-iS z0bW@be4DP*d@a^XU>TvSm$c~St?@6P^~r4FA0;eVNY+Sc+kPP9sGt>oD{@V>-5J9k zU}5lP><^2HYz?TaWl%$2UA*bnE6_*2XAMQAL3%ATh#{2>v*;^Spu>eTrR}f#mih;q zer$ubNKXU=0p~3|Nbnf}=-NCz02j%~U5`7MehKtH;?oA%BR0A8hiCY)AX=QY8$6c& zTKXQJ+{(AjpO+ubMoie=k$FNFO=hfrdpi+B8s6tK9vR^XC$awn`O_nNg$3a`k1A1Gk~VagAJZ z{}!$HS-Q+xDVpID2_KsyeTT|qd496gXshWEB;7YGH>@8P-w9`s<9OA0!W`L031^zY zz`b7EBoya8dNFKt(F~_}O^+kco2YYoZbH{ax$i;M;db?dLcF`0`&PMY*u|@U9maqIt2J8~uE$#~UJ) zBXCQ+=YizUA%VSr9}K5G=;U}23@IbqH||WRWR)WpCLJUO8DJ~s zed|@(v#f^mM&b>^oachEvQ)xRS=S)x$D?i**T`t_S6}m;rA{+Hc+lp5dN=C_DP@f0 zo^@AcCx1O|8$6&EGJzko;hTyRx_`>Z)WUTZf5)4g+rxN+(xgUQ#h!Exgr&gEczJu< zfPTk(4Q5|%nF()RxSZX-E)yd0InFb}(|<`UbreaOTD5ds5dkFZe)tU_ znxB$yOoi|*e72}jS^20up807hAIr=nRTNlJ>E9A$B?VN(gC*Y8Rzh@7zERp=mMsWR&N`=HBl5uFt53U@? z6!935-udMl*xLmUTvStqN;KGT?qxp_35YRxB$u=#ud>3;%YXmXjR=AEq(==NW|Dot zoCx{JDa8GTSo^qOgD6E04%|A$lr;cqYrMH0wyyOeGU9~;kd`UpV}Jg}*1Yg}sQ!DF zd0M-4M%utaz9nO0MUC{k{0Sp=whZxpN!wwW@^N8hr!UyvAfkcd=Z8>?Yu-__!(wF* zB0kw<*Q(0`Zw?ZyIU!nO7%5`AaPe5lyL?rQs!NUtVun#X7cDO_znO|$&iWvpffc3s zw=~XdVq;@2e`((?82=ghDC)I31&gr(+oZTS7Ka%wOq*W+UziO&U&~HmHF?5eD{O3k zWmC-*Yepx+DZmU{Z>)%sQh2M!`XlIJgMT`sBO0V7vM|vj_s&!$E}s4V70gRwP_n4` z_G;czYKItsn8`~v2v!~o!QO`=pHiZ_o0waGJ*#yf%Ey;EocVm7b@+n}2OoL}&QErE zU1vO>usV$~|Cf4;1F?Y%6s&R+26_yY@5XtiUtSrQsDnk7#gE5kH>@?Dx0iQr^28_~|V7Ph~RZXlP~` z@A_?VM~;%5!rN=(m?E~F0|istiTBJt9C%cqcF3o`F09uk-b%%Ff3id*2*fpPxe3UV^u z!_a8^g5qcQB)`6dyrRuI2l;tVC5k~sZ#ZoaRbi^r5fTa_u1`W7$bCD~uN%a2=Cj-Q zrEeN>bfj{8y&>6k!*dS&d1=c z;M1}(#tl^oD;Bl2t<9D(CQ_gRr|Iys%?pguXs>a#AG-3^Y7LNOP-zRw$zk4C%?h8# z$>`|xYD6j1%-Mr~@`mBWDVz|ycq`IAnGput?1@^quG00ozDW^6)CZtz$- z1fJsxJ+{Cb3W#NyIc^A%L_Gu``CI?+1X8(XE;a$jMIUWJW@LPMX86}K%=Uo2AOCbc z@?k3cQ7o<-@RVU;Ur+x*ke(eQm_(9MZ$>PCFF62b41d^*)RxnXLLA`sB$BBb?SmedR>TNJHR$Nx)PyP&DNb{nO{~iW}g8g3gx^QU` zV;laR!pByiF8hl$V@FKi-RM33SssV-Ql&<1IYwAQPUN=Nmry}QrKeqqIWRTl%ZRMV hZDPW=eVYG&I_>lL&i+rYI{?5!y*+#PL(M=#{XbKvAI1Ox diff --git a/dist/Nosto_Tagging-1.1.5.tgz b/dist/Nosto_Tagging-1.1.5.tgz deleted file mode 100644 index b7e611b91d718196db33aec2b347bf2a6ec38467..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12048 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 Magento Connect -> Package Extensions" - -For more information on creating and maintaining Magento extensions, please refer to the official documentation at: -http://www.magentocommerce.com/magento-connect/create_your_extension/ diff --git a/Nosto_Tagging/etc/modules/Nosto_Tagging.xml b/etc/modules/Nosto_Tagging.xml similarity index 100% rename from Nosto_Tagging/etc/modules/Nosto_Tagging.xml rename to etc/modules/Nosto_Tagging.xml diff --git a/Nosto_Tagging/js/nostotagging-config.js b/js/nostotagging-config.js similarity index 100% rename from Nosto_Tagging/js/nostotagging-config.js rename to js/nostotagging-config.js diff --git a/Nosto_Tagging/modman b/modman similarity index 100% rename from Nosto_Tagging/modman rename to modman From ec2330ffab698cb5dcaab8739147f59f7b8f1f69 Mon Sep 17 00:00:00 2001 From: Christoffer Lindqvist Date: Wed, 10 Dec 2014 17:28:33 +0200 Subject: [PATCH 15/71] Add the PHP SDK using composer and ignore the vendor folder in this repo --- .gitignore | 1 + composer.json | 15 +++++++++++++++ composer.lock | 52 +++++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 68 insertions(+) create mode 100644 .gitignore create mode 100644 composer.json create mode 100644 composer.lock diff --git a/.gitignore b/.gitignore new file mode 100644 index 00000000..22d0d82f --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +vendor diff --git a/composer.json b/composer.json new file mode 100644 index 00000000..4cce4585 --- /dev/null +++ b/composer.json @@ -0,0 +1,15 @@ +{ + "name": "nosto/nosto-magento-extension", + "description": "Nosto Magento extension", + "license": "OSL v3.0", + "minimum-stability": "dev", + "repositories": [ + { + "type": "vcs", + "url": "git@github.com:nosto/php-sdk.git" + } + ], + "require": { + "nosto/php-sdk": "dev-develop" + } +} \ No newline at end of file diff --git a/composer.lock b/composer.lock new file mode 100644 index 00000000..2413d63e --- /dev/null +++ b/composer.lock @@ -0,0 +1,52 @@ +{ + "_readme": [ + "This file locks the dependencies of your project to a known state", + "Read more about it at http://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file", + "This file is @generated automatically" + ], + "hash": "d02f0b75138f72e2661734f4cc504c09", + "packages": [ + { + "name": "nosto/php-sdk", + "version": "dev-develop", + "source": { + "type": "git", + "url": "git@github.com:Nosto/php-sdk.git", + "reference": "eade023d965ab605533b40146093602a0946d62f" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/Nosto/php-sdk/zipball/eade023d965ab605533b40146093602a0946d62f", + "reference": "eade023d965ab605533b40146093602a0946d62f", + "shasum": "" + }, + "type": "library", + "license": [ + "BSD-3-Clause" + ], + "description": "PHP SDK for developing Nosto modules for e-commerce platforms", + "support": { + "source": "https://github.com/Nosto/php-sdk/tree/develop", + "issues": "https://github.com/Nosto/php-sdk/issues" + }, + "time": "2014-12-10 15:26:21" + } + ], + "packages-dev": [ + + ], + "aliases": [ + + ], + "minimum-stability": "dev", + "stability-flags": { + "nosto/php-sdk": 20 + }, + "prefer-stable": false, + "platform": [ + + ], + "platform-dev": [ + + ] +} From 626d9232158b254eaa6fc289a00914bc86aad283 Mon Sep 17 00:00:00 2001 From: Christoffer Lindqvist Date: Wed, 10 Dec 2014 17:45:15 +0200 Subject: [PATCH 16/71] Update to latest sdk --- composer.lock | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/composer.lock b/composer.lock index 2413d63e..c42dc066 100644 --- a/composer.lock +++ b/composer.lock @@ -12,12 +12,12 @@ "source": { "type": "git", "url": "git@github.com:Nosto/php-sdk.git", - "reference": "eade023d965ab605533b40146093602a0946d62f" + "reference": "9c4ceff6f1e0d3fed0642f34c190428375e75a86" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Nosto/php-sdk/zipball/eade023d965ab605533b40146093602a0946d62f", - "reference": "eade023d965ab605533b40146093602a0946d62f", + "url": "https://api.github.com/repos/Nosto/php-sdk/zipball/9c4ceff6f1e0d3fed0642f34c190428375e75a86", + "reference": "9c4ceff6f1e0d3fed0642f34c190428375e75a86", "shasum": "" }, "type": "library", @@ -29,7 +29,7 @@ "source": "https://github.com/Nosto/php-sdk/tree/develop", "issues": "https://github.com/Nosto/php-sdk/issues" }, - "time": "2014-12-10 15:26:21" + "time": "2014-12-10 15:42:25" } ], "packages-dev": [ From 92d2fe07a39839968e1d24698ba06a3b11809ce3 Mon Sep 17 00:00:00 2001 From: Christoffer Lindqvist Date: Mon, 15 Dec 2014 10:32:59 +0200 Subject: [PATCH 17/71] Make repo structure match magento structure Add iframe resizer --- .../Tagging/Block/Adminhtml/Form/Account/Connect.php | 0 .../Tagging/Block/Adminhtml/Form/Account/Create.php | 0 .../Tagging/Block/Adminhtml/Form/Account/Remove.php | 0 .../Nosto/Tagging/Block/Adminhtml/Iframe.php | 0 .../Nosto/Tagging/Block/Adminhtml/Wizard.php | 0 .../code}/community/Nosto/Tagging/Block/Cart.php | 0 .../code}/community/Nosto/Tagging/Block/Category.php | 0 .../code}/community/Nosto/Tagging/Block/Customer.php | 0 .../code}/community/Nosto/Tagging/Block/Element.php | 0 .../code}/community/Nosto/Tagging/Block/Embed.php | 0 .../code}/community/Nosto/Tagging/Block/Order.php | 0 .../code}/community/Nosto/Tagging/Block/Product.php | 0 .../code}/community/Nosto/Tagging/Helper/Account.php | 0 .../code}/community/Nosto/Tagging/Helper/Data.php | 0 .../code}/community/Nosto/Tagging/Helper/Oauth.php | 0 .../code}/community/Nosto/Tagging/Helper/Price.php | 0 .../code}/community/Nosto/Tagging/Helper/Url.php | 0 .../community/Nosto/Tagging/Model/Config/Account.php | 0 .../community/Nosto/Tagging/Model/Config/Enabled.php | 0 .../community/Nosto/Tagging/Model/Config/Server.php | 0 .../community/Nosto/Tagging/Model/Meta/Account.php | 0 .../Nosto/Tagging/Model/Meta/Account/Billing.php | 0 .../Nosto/Tagging/Model/Meta/Account/Iframe.php | 0 .../Nosto/Tagging/Model/Meta/Account/Owner.php | 0 .../community/Nosto/Tagging/Model/Meta/Oauth.php | 0 .../code}/community/Nosto/Tagging/Model/Observer.php | 0 .../community/Nosto/Tagging/Model/Resource/Setup.php | 0 .../controllers/Adminhtml/NostoController.php | 2 +- .../Nosto/Tagging/controllers/OauthController.php | 2 +- .../data/tagging_setup/data-install-1.0.3.php | 0 .../code}/community/Nosto/Tagging/etc/adminhtml.xml | 0 .../code}/community/Nosto/Tagging/etc/config.xml | 0 .../code}/community/Nosto/Tagging/etc/system.xml | 0 .../default/default/layout/nostotagging.xml | 1 + .../template/nostotagging/form/account/connect.phtml | 0 .../template/nostotagging/form/account/create.phtml | 0 .../template/nostotagging/form/account/remove.phtml | 0 .../default/template/nostotagging/iframe.phtml | 2 +- .../default/template/nostotagging/wizard.phtml | 2 +- .../frontend/base/default/layout/nostotagging.xml | 0 .../base/default/template/nostotagging/cart.phtml | 0 .../default/template/nostotagging/category.phtml | 0 .../template/nostotagging/category/view.phtml | 0 .../default/template/nostotagging/customer.phtml | 0 .../base/default/template/nostotagging/element.phtml | 0 .../base/default/template/nostotagging/embed.phtml | 0 .../base/default/template/nostotagging/order.phtml | 0 .../base/default/template/nostotagging/product.phtml | 0 {etc => app/etc}/modules/Nosto_Tagging.xml | 0 js/iframeresizer.min.js | 9 +++++++++ js/nostotagging-config.js | 6 ++++-- modman | 12 ++++++------ 52 files changed, 24 insertions(+), 12 deletions(-) rename {code => app/code}/community/Nosto/Tagging/Block/Adminhtml/Form/Account/Connect.php (100%) rename {code => app/code}/community/Nosto/Tagging/Block/Adminhtml/Form/Account/Create.php (100%) rename {code => app/code}/community/Nosto/Tagging/Block/Adminhtml/Form/Account/Remove.php (100%) rename {code => app/code}/community/Nosto/Tagging/Block/Adminhtml/Iframe.php (100%) rename {code => app/code}/community/Nosto/Tagging/Block/Adminhtml/Wizard.php (100%) rename {code => app/code}/community/Nosto/Tagging/Block/Cart.php (100%) rename {code => app/code}/community/Nosto/Tagging/Block/Category.php (100%) rename {code => app/code}/community/Nosto/Tagging/Block/Customer.php (100%) rename {code => app/code}/community/Nosto/Tagging/Block/Element.php (100%) rename {code => app/code}/community/Nosto/Tagging/Block/Embed.php (100%) rename {code => app/code}/community/Nosto/Tagging/Block/Order.php (100%) rename {code => app/code}/community/Nosto/Tagging/Block/Product.php (100%) rename {code => app/code}/community/Nosto/Tagging/Helper/Account.php (100%) rename {code => app/code}/community/Nosto/Tagging/Helper/Data.php (100%) rename {code => app/code}/community/Nosto/Tagging/Helper/Oauth.php (100%) rename {code => app/code}/community/Nosto/Tagging/Helper/Price.php (100%) rename {code => app/code}/community/Nosto/Tagging/Helper/Url.php (100%) rename {code => app/code}/community/Nosto/Tagging/Model/Config/Account.php (100%) rename {code => app/code}/community/Nosto/Tagging/Model/Config/Enabled.php (100%) rename {code => app/code}/community/Nosto/Tagging/Model/Config/Server.php (100%) rename {code => app/code}/community/Nosto/Tagging/Model/Meta/Account.php (100%) rename {code => app/code}/community/Nosto/Tagging/Model/Meta/Account/Billing.php (100%) rename {code => app/code}/community/Nosto/Tagging/Model/Meta/Account/Iframe.php (100%) rename {code => app/code}/community/Nosto/Tagging/Model/Meta/Account/Owner.php (100%) rename {code => app/code}/community/Nosto/Tagging/Model/Meta/Oauth.php (100%) rename {code => app/code}/community/Nosto/Tagging/Model/Observer.php (100%) rename {code => app/code}/community/Nosto/Tagging/Model/Resource/Setup.php (100%) rename {code => app/code}/community/Nosto/Tagging/controllers/Adminhtml/NostoController.php (98%) rename {code => app/code}/community/Nosto/Tagging/controllers/OauthController.php (97%) rename {code => app/code}/community/Nosto/Tagging/data/tagging_setup/data-install-1.0.3.php (100%) rename {code => app/code}/community/Nosto/Tagging/etc/adminhtml.xml (100%) rename {code => app/code}/community/Nosto/Tagging/etc/config.xml (100%) rename {code => app/code}/community/Nosto/Tagging/etc/system.xml (100%) rename {design => app/design}/adminhtml/default/default/layout/nostotagging.xml (96%) rename {design => app/design}/adminhtml/default/default/template/nostotagging/form/account/connect.phtml (100%) rename {design => app/design}/adminhtml/default/default/template/nostotagging/form/account/create.phtml (100%) rename {design => app/design}/adminhtml/default/default/template/nostotagging/form/account/remove.phtml (100%) rename {design => app/design}/adminhtml/default/default/template/nostotagging/iframe.phtml (86%) rename {design => app/design}/adminhtml/default/default/template/nostotagging/wizard.phtml (96%) rename {design => app/design}/frontend/base/default/layout/nostotagging.xml (100%) rename {design => app/design}/frontend/base/default/template/nostotagging/cart.phtml (100%) rename {design => app/design}/frontend/base/default/template/nostotagging/category.phtml (100%) rename {design => app/design}/frontend/base/default/template/nostotagging/category/view.phtml (100%) rename {design => app/design}/frontend/base/default/template/nostotagging/customer.phtml (100%) rename {design => app/design}/frontend/base/default/template/nostotagging/element.phtml (100%) rename {design => app/design}/frontend/base/default/template/nostotagging/embed.phtml (100%) rename {design => app/design}/frontend/base/default/template/nostotagging/order.phtml (100%) rename {design => app/design}/frontend/base/default/template/nostotagging/product.phtml (100%) rename {etc => app/etc}/modules/Nosto_Tagging.xml (100%) create mode 100644 js/iframeresizer.min.js diff --git a/code/community/Nosto/Tagging/Block/Adminhtml/Form/Account/Connect.php b/app/code/community/Nosto/Tagging/Block/Adminhtml/Form/Account/Connect.php similarity index 100% rename from code/community/Nosto/Tagging/Block/Adminhtml/Form/Account/Connect.php rename to app/code/community/Nosto/Tagging/Block/Adminhtml/Form/Account/Connect.php diff --git a/code/community/Nosto/Tagging/Block/Adminhtml/Form/Account/Create.php b/app/code/community/Nosto/Tagging/Block/Adminhtml/Form/Account/Create.php similarity index 100% rename from code/community/Nosto/Tagging/Block/Adminhtml/Form/Account/Create.php rename to app/code/community/Nosto/Tagging/Block/Adminhtml/Form/Account/Create.php diff --git a/code/community/Nosto/Tagging/Block/Adminhtml/Form/Account/Remove.php b/app/code/community/Nosto/Tagging/Block/Adminhtml/Form/Account/Remove.php similarity index 100% rename from code/community/Nosto/Tagging/Block/Adminhtml/Form/Account/Remove.php rename to app/code/community/Nosto/Tagging/Block/Adminhtml/Form/Account/Remove.php diff --git a/code/community/Nosto/Tagging/Block/Adminhtml/Iframe.php b/app/code/community/Nosto/Tagging/Block/Adminhtml/Iframe.php similarity index 100% rename from code/community/Nosto/Tagging/Block/Adminhtml/Iframe.php rename to app/code/community/Nosto/Tagging/Block/Adminhtml/Iframe.php diff --git a/code/community/Nosto/Tagging/Block/Adminhtml/Wizard.php b/app/code/community/Nosto/Tagging/Block/Adminhtml/Wizard.php similarity index 100% rename from code/community/Nosto/Tagging/Block/Adminhtml/Wizard.php rename to app/code/community/Nosto/Tagging/Block/Adminhtml/Wizard.php diff --git a/code/community/Nosto/Tagging/Block/Cart.php b/app/code/community/Nosto/Tagging/Block/Cart.php similarity index 100% rename from code/community/Nosto/Tagging/Block/Cart.php rename to app/code/community/Nosto/Tagging/Block/Cart.php diff --git a/code/community/Nosto/Tagging/Block/Category.php b/app/code/community/Nosto/Tagging/Block/Category.php similarity index 100% rename from code/community/Nosto/Tagging/Block/Category.php rename to app/code/community/Nosto/Tagging/Block/Category.php diff --git a/code/community/Nosto/Tagging/Block/Customer.php b/app/code/community/Nosto/Tagging/Block/Customer.php similarity index 100% rename from code/community/Nosto/Tagging/Block/Customer.php rename to app/code/community/Nosto/Tagging/Block/Customer.php diff --git a/code/community/Nosto/Tagging/Block/Element.php b/app/code/community/Nosto/Tagging/Block/Element.php similarity index 100% rename from code/community/Nosto/Tagging/Block/Element.php rename to app/code/community/Nosto/Tagging/Block/Element.php diff --git a/code/community/Nosto/Tagging/Block/Embed.php b/app/code/community/Nosto/Tagging/Block/Embed.php similarity index 100% rename from code/community/Nosto/Tagging/Block/Embed.php rename to app/code/community/Nosto/Tagging/Block/Embed.php diff --git a/code/community/Nosto/Tagging/Block/Order.php b/app/code/community/Nosto/Tagging/Block/Order.php similarity index 100% rename from code/community/Nosto/Tagging/Block/Order.php rename to app/code/community/Nosto/Tagging/Block/Order.php diff --git a/code/community/Nosto/Tagging/Block/Product.php b/app/code/community/Nosto/Tagging/Block/Product.php similarity index 100% rename from code/community/Nosto/Tagging/Block/Product.php rename to app/code/community/Nosto/Tagging/Block/Product.php diff --git a/code/community/Nosto/Tagging/Helper/Account.php b/app/code/community/Nosto/Tagging/Helper/Account.php similarity index 100% rename from code/community/Nosto/Tagging/Helper/Account.php rename to app/code/community/Nosto/Tagging/Helper/Account.php diff --git a/code/community/Nosto/Tagging/Helper/Data.php b/app/code/community/Nosto/Tagging/Helper/Data.php similarity index 100% rename from code/community/Nosto/Tagging/Helper/Data.php rename to app/code/community/Nosto/Tagging/Helper/Data.php diff --git a/code/community/Nosto/Tagging/Helper/Oauth.php b/app/code/community/Nosto/Tagging/Helper/Oauth.php similarity index 100% rename from code/community/Nosto/Tagging/Helper/Oauth.php rename to app/code/community/Nosto/Tagging/Helper/Oauth.php diff --git a/code/community/Nosto/Tagging/Helper/Price.php b/app/code/community/Nosto/Tagging/Helper/Price.php similarity index 100% rename from code/community/Nosto/Tagging/Helper/Price.php rename to app/code/community/Nosto/Tagging/Helper/Price.php diff --git a/code/community/Nosto/Tagging/Helper/Url.php b/app/code/community/Nosto/Tagging/Helper/Url.php similarity index 100% rename from code/community/Nosto/Tagging/Helper/Url.php rename to app/code/community/Nosto/Tagging/Helper/Url.php diff --git a/code/community/Nosto/Tagging/Model/Config/Account.php b/app/code/community/Nosto/Tagging/Model/Config/Account.php similarity index 100% rename from code/community/Nosto/Tagging/Model/Config/Account.php rename to app/code/community/Nosto/Tagging/Model/Config/Account.php diff --git a/code/community/Nosto/Tagging/Model/Config/Enabled.php b/app/code/community/Nosto/Tagging/Model/Config/Enabled.php similarity index 100% rename from code/community/Nosto/Tagging/Model/Config/Enabled.php rename to app/code/community/Nosto/Tagging/Model/Config/Enabled.php diff --git a/code/community/Nosto/Tagging/Model/Config/Server.php b/app/code/community/Nosto/Tagging/Model/Config/Server.php similarity index 100% rename from code/community/Nosto/Tagging/Model/Config/Server.php rename to app/code/community/Nosto/Tagging/Model/Config/Server.php diff --git a/code/community/Nosto/Tagging/Model/Meta/Account.php b/app/code/community/Nosto/Tagging/Model/Meta/Account.php similarity index 100% rename from code/community/Nosto/Tagging/Model/Meta/Account.php rename to app/code/community/Nosto/Tagging/Model/Meta/Account.php diff --git a/code/community/Nosto/Tagging/Model/Meta/Account/Billing.php b/app/code/community/Nosto/Tagging/Model/Meta/Account/Billing.php similarity index 100% rename from code/community/Nosto/Tagging/Model/Meta/Account/Billing.php rename to app/code/community/Nosto/Tagging/Model/Meta/Account/Billing.php diff --git a/code/community/Nosto/Tagging/Model/Meta/Account/Iframe.php b/app/code/community/Nosto/Tagging/Model/Meta/Account/Iframe.php similarity index 100% rename from code/community/Nosto/Tagging/Model/Meta/Account/Iframe.php rename to app/code/community/Nosto/Tagging/Model/Meta/Account/Iframe.php diff --git a/code/community/Nosto/Tagging/Model/Meta/Account/Owner.php b/app/code/community/Nosto/Tagging/Model/Meta/Account/Owner.php similarity index 100% rename from code/community/Nosto/Tagging/Model/Meta/Account/Owner.php rename to app/code/community/Nosto/Tagging/Model/Meta/Account/Owner.php diff --git a/code/community/Nosto/Tagging/Model/Meta/Oauth.php b/app/code/community/Nosto/Tagging/Model/Meta/Oauth.php similarity index 100% rename from code/community/Nosto/Tagging/Model/Meta/Oauth.php rename to app/code/community/Nosto/Tagging/Model/Meta/Oauth.php diff --git a/code/community/Nosto/Tagging/Model/Observer.php b/app/code/community/Nosto/Tagging/Model/Observer.php similarity index 100% rename from code/community/Nosto/Tagging/Model/Observer.php rename to app/code/community/Nosto/Tagging/Model/Observer.php diff --git a/code/community/Nosto/Tagging/Model/Resource/Setup.php b/app/code/community/Nosto/Tagging/Model/Resource/Setup.php similarity index 100% rename from code/community/Nosto/Tagging/Model/Resource/Setup.php rename to app/code/community/Nosto/Tagging/Model/Resource/Setup.php diff --git a/code/community/Nosto/Tagging/controllers/Adminhtml/NostoController.php b/app/code/community/Nosto/Tagging/controllers/Adminhtml/NostoController.php similarity index 98% rename from code/community/Nosto/Tagging/controllers/Adminhtml/NostoController.php rename to app/code/community/Nosto/Tagging/controllers/Adminhtml/NostoController.php index 53582b4e..7fbf0ceb 100644 --- a/code/community/Nosto/Tagging/controllers/Adminhtml/NostoController.php +++ b/app/code/community/Nosto/Tagging/controllers/Adminhtml/NostoController.php @@ -24,7 +24,7 @@ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ -require_once(Mage::getBaseDir('lib').'/nosto/sdk/src/config.inc.php'); +require_once(Mage::getBaseDir('lib').'/nosto/php-sdk/src/config.inc.php'); /** * Nosto admin controller. diff --git a/code/community/Nosto/Tagging/controllers/OauthController.php b/app/code/community/Nosto/Tagging/controllers/OauthController.php similarity index 97% rename from code/community/Nosto/Tagging/controllers/OauthController.php rename to app/code/community/Nosto/Tagging/controllers/OauthController.php index 22e72c57..1ecacd70 100644 --- a/code/community/Nosto/Tagging/controllers/OauthController.php +++ b/app/code/community/Nosto/Tagging/controllers/OauthController.php @@ -24,7 +24,7 @@ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ -require_once(Mage::getBaseDir('lib').'/nosto/sdk/src/config.inc.php'); +require_once(Mage::getBaseDir('lib').'/nosto/php-sdk/src/config.inc.php'); /** * OAuth2 controller. diff --git a/code/community/Nosto/Tagging/data/tagging_setup/data-install-1.0.3.php b/app/code/community/Nosto/Tagging/data/tagging_setup/data-install-1.0.3.php similarity index 100% rename from code/community/Nosto/Tagging/data/tagging_setup/data-install-1.0.3.php rename to app/code/community/Nosto/Tagging/data/tagging_setup/data-install-1.0.3.php diff --git a/code/community/Nosto/Tagging/etc/adminhtml.xml b/app/code/community/Nosto/Tagging/etc/adminhtml.xml similarity index 100% rename from code/community/Nosto/Tagging/etc/adminhtml.xml rename to app/code/community/Nosto/Tagging/etc/adminhtml.xml diff --git a/code/community/Nosto/Tagging/etc/config.xml b/app/code/community/Nosto/Tagging/etc/config.xml similarity index 100% rename from code/community/Nosto/Tagging/etc/config.xml rename to app/code/community/Nosto/Tagging/etc/config.xml diff --git a/code/community/Nosto/Tagging/etc/system.xml b/app/code/community/Nosto/Tagging/etc/system.xml similarity index 100% rename from code/community/Nosto/Tagging/etc/system.xml rename to app/code/community/Nosto/Tagging/etc/system.xml diff --git a/design/adminhtml/default/default/layout/nostotagging.xml b/app/design/adminhtml/default/default/layout/nostotagging.xml similarity index 96% rename from design/adminhtml/default/default/layout/nostotagging.xml rename to app/design/adminhtml/default/default/layout/nostotagging.xml index 77c0840a..6dcd4db6 100644 --- a/design/adminhtml/default/default/layout/nostotagging.xml +++ b/app/design/adminhtml/default/default/layout/nostotagging.xml @@ -30,6 +30,7 @@ + diff --git a/design/adminhtml/default/default/template/nostotagging/form/account/connect.phtml b/app/design/adminhtml/default/default/template/nostotagging/form/account/connect.phtml similarity index 100% rename from design/adminhtml/default/default/template/nostotagging/form/account/connect.phtml rename to app/design/adminhtml/default/default/template/nostotagging/form/account/connect.phtml diff --git a/design/adminhtml/default/default/template/nostotagging/form/account/create.phtml b/app/design/adminhtml/default/default/template/nostotagging/form/account/create.phtml similarity index 100% rename from design/adminhtml/default/default/template/nostotagging/form/account/create.phtml rename to app/design/adminhtml/default/default/template/nostotagging/form/account/create.phtml diff --git a/design/adminhtml/default/default/template/nostotagging/form/account/remove.phtml b/app/design/adminhtml/default/default/template/nostotagging/form/account/remove.phtml similarity index 100% rename from design/adminhtml/default/default/template/nostotagging/form/account/remove.phtml rename to app/design/adminhtml/default/default/template/nostotagging/form/account/remove.phtml diff --git a/design/adminhtml/default/default/template/nostotagging/iframe.phtml b/app/design/adminhtml/default/default/template/nostotagging/iframe.phtml similarity index 86% rename from design/adminhtml/default/default/template/nostotagging/iframe.phtml rename to app/design/adminhtml/default/default/template/nostotagging/iframe.phtml index 44ff9828..34990c88 100644 --- a/design/adminhtml/default/default/template/nostotagging/iframe.phtml +++ b/app/design/adminhtml/default/default/template/nostotagging/iframe.phtml @@ -30,4 +30,4 @@ * @var $this Nosto_Tagging_Block_Adminhtml_Iframe */ ?> - \ No newline at end of file + \ No newline at end of file diff --git a/design/adminhtml/default/default/template/nostotagging/wizard.phtml b/app/design/adminhtml/default/default/template/nostotagging/wizard.phtml similarity index 96% rename from design/adminhtml/default/default/template/nostotagging/wizard.phtml rename to app/design/adminhtml/default/default/template/nostotagging/wizard.phtml index 1635db2b..9c249fe0 100644 --- a/design/adminhtml/default/default/template/nostotagging/wizard.phtml +++ b/app/design/adminhtml/default/default/template/nostotagging/wizard.phtml @@ -54,7 +54,7 @@ $nostoHelper = Mage::helper('nosto_tagging'); __('Account settings');?>

diff --git a/design/frontend/base/default/layout/nostotagging.xml b/app/design/frontend/base/default/layout/nostotagging.xml similarity index 100% rename from design/frontend/base/default/layout/nostotagging.xml rename to app/design/frontend/base/default/layout/nostotagging.xml diff --git a/design/frontend/base/default/template/nostotagging/cart.phtml b/app/design/frontend/base/default/template/nostotagging/cart.phtml similarity index 100% rename from design/frontend/base/default/template/nostotagging/cart.phtml rename to app/design/frontend/base/default/template/nostotagging/cart.phtml diff --git a/design/frontend/base/default/template/nostotagging/category.phtml b/app/design/frontend/base/default/template/nostotagging/category.phtml similarity index 100% rename from design/frontend/base/default/template/nostotagging/category.phtml rename to app/design/frontend/base/default/template/nostotagging/category.phtml diff --git a/design/frontend/base/default/template/nostotagging/category/view.phtml b/app/design/frontend/base/default/template/nostotagging/category/view.phtml similarity index 100% rename from design/frontend/base/default/template/nostotagging/category/view.phtml rename to app/design/frontend/base/default/template/nostotagging/category/view.phtml diff --git a/design/frontend/base/default/template/nostotagging/customer.phtml b/app/design/frontend/base/default/template/nostotagging/customer.phtml similarity index 100% rename from design/frontend/base/default/template/nostotagging/customer.phtml rename to app/design/frontend/base/default/template/nostotagging/customer.phtml diff --git a/design/frontend/base/default/template/nostotagging/element.phtml b/app/design/frontend/base/default/template/nostotagging/element.phtml similarity index 100% rename from design/frontend/base/default/template/nostotagging/element.phtml rename to app/design/frontend/base/default/template/nostotagging/element.phtml diff --git a/design/frontend/base/default/template/nostotagging/embed.phtml b/app/design/frontend/base/default/template/nostotagging/embed.phtml similarity index 100% rename from design/frontend/base/default/template/nostotagging/embed.phtml rename to app/design/frontend/base/default/template/nostotagging/embed.phtml diff --git a/design/frontend/base/default/template/nostotagging/order.phtml b/app/design/frontend/base/default/template/nostotagging/order.phtml similarity index 100% rename from design/frontend/base/default/template/nostotagging/order.phtml rename to app/design/frontend/base/default/template/nostotagging/order.phtml diff --git a/design/frontend/base/default/template/nostotagging/product.phtml b/app/design/frontend/base/default/template/nostotagging/product.phtml similarity index 100% rename from design/frontend/base/default/template/nostotagging/product.phtml rename to app/design/frontend/base/default/template/nostotagging/product.phtml diff --git a/etc/modules/Nosto_Tagging.xml b/app/etc/modules/Nosto_Tagging.xml similarity index 100% rename from etc/modules/Nosto_Tagging.xml rename to app/etc/modules/Nosto_Tagging.xml diff --git a/js/iframeresizer.min.js b/js/iframeresizer.min.js new file mode 100644 index 00000000..365a5636 --- /dev/null +++ b/js/iframeresizer.min.js @@ -0,0 +1,9 @@ +/** + * iFrame Resizer (iframesizer.min.js ) - v2.6.2 - 2014-10-11 + * Desc: Force cross domain iframes to size to content. + * Requires: iframeResizer.contentWindow.min.js to be loaded into the target frame. + * Copyright: (c) 2014 David J. Bradshaw - dave@bradshaw.net + * License: MIT + */ + +!function(){"use strict";function a(a,b,c){"addEventListener"in window?a.addEventListener(b,c,!1):"attachEvent"in window&&a.attachEvent("on"+b,c)}function b(){var a,b=["moz","webkit","o","ms"];for(a=0;ab)throw new Error("Value for min"+a+" can not be greater than max"+a);c(" Checking "+e+" is in range "+d+"-"+b),d>f&&(f=d,c(" Set "+e+" to min value")),f>b&&(f=b,c(" Set "+e+" to max value")),z[e]=""+f}function k(){var b=a.origin,d=z.iframe.src.split("/").slice(0,3).join("/");if(y.checkOrigin&&(c(" Checking connection is from: "+d),""+b!="null"&&b!==d))throw new Error("Unexpected message received from: "+b+" for "+z.iframe.id+". Message was: "+a.data+". This error can be disabled by adding the checkOrigin: false option.");return!0}function l(){return s===(""+x).substr(0,t)}function m(){var a=z.type in{"true":1,"false":1};return a&&c(" Ignoring init message from meta parent page"),a}function n(){var a=x.substr(x.indexOf(":")+r+6);c(" MessageCallback passed: {iframe: "+z.iframe.id+", message: "+a+"}"),y.messageCallback({iframe:z.iframe,message:a}),c(" --")}function o(){if(null===z.iframe)throw new Error("iFrame ("+z.id+") does not exist on "+u);return!0}function q(){c(" Reposition requested from iFrame"),v={x:z.width,y:z.height},f()}function w(){switch(z.type){case"close":d(z.iframe),y.resizedCallback(z);break;case"message":n();break;case"scrollTo":q();break;case"reset":g(z);break;case"init":b(),y.initCallback(z.iframe);break;default:b()}}var x=a.data,z={};l()&&(c(" Received: "+x),z=e(),j("Height"),j("Width"),!m()&&o()&&k()&&(w(),p=!1))}function e(){null===v&&(v={x:void 0!==window.pageXOffset?window.pageXOffset:document.documentElement.scrollLeft,y:void 0!==window.pageYOffset?window.pageYOffset:document.documentElement.scrollTop},c(" Get position: "+v.x+","+v.y))}function f(){null!==v&&(window.scrollTo(v.x,v.y),c(" Set position: "+v.x+","+v.y),v=null)}function g(a){function b(){h(a),j("reset","reset",a.iframe)}c(" Size reset requested by "+("init"===a.type?"host page":"iFrame")),e(),i(b,a,"init")}function h(a){function b(b){a.iframe.style[b]=a[b]+"px",c(" IFrame ("+a.iframe.id+") "+b+" set to "+a[b]+"px")}y.sizeHeight&&b("height"),y.sizeWidth&&b("width")}function i(a,b,d){d!==b.type&&w?(c(" Requesting animation frame"),w(a)):a()}function j(a,b,d){c("["+a+"] Sending msg to iframe ("+b+")"),d.contentWindow.postMessage(s+b,"*")}function k(){function b(){function a(a){1/0!==y[a]&&0!==y[a]&&(k.style[a]=y[a]+"px",c(" Set "+a+" = "+y[a]+"px"))}a("maxHeight"),a("minHeight"),a("maxWidth"),a("minWidth")}function d(a){return""===a&&(k.id=a="iFrameResizer"+o++,c(" Added missing iframe ID: "+a+" ("+k.src+")")),a}function e(){c(" IFrame scrolling "+(y.scrolling?"enabled":"disabled")+" for "+l),k.style.overflow=!1===y.scrolling?"hidden":"auto",k.scrolling=!1===y.scrolling?"no":"yes"}function f(){("number"==typeof y.bodyMargin||"0"===y.bodyMargin)&&(y.bodyMarginV1=y.bodyMargin,y.bodyMargin=""+y.bodyMargin+"px")}function h(){return l+":"+y.bodyMarginV1+":"+y.sizeWidth+":"+y.log+":"+y.interval+":"+y.enablePublicMethods+":"+y.autoResize+":"+y.bodyMargin+":"+y.heightCalculationMethod+":"+y.bodyBackground+":"+y.bodyPadding+":"+y.tolerance}function i(b){a(k,"load",function(){var a=p;j("iFrame.onload",b,k),!a&&y.heightCalculationMethod in x&&g({iframe:k,height:0,width:0,type:"init"})}),j("init",b,k)}var k=this,l=d(k.id);e(),b(),f(),i(h())}function l(a){if("object"!=typeof a)throw new TypeError("Options is not an object.")}function m(){function a(a){if("IFRAME"!==a.tagName.toUpperCase())throw new TypeError("Expected \ No newline at end of file + From 23557c9d1a1fa94bc89cbd9798fb760e39391cf2 Mon Sep 17 00:00:00 2001 From: Christoffer Lindqvist Date: Tue, 13 Jan 2015 13:28:31 +0200 Subject: [PATCH 36/71] Add localisation files --- .../Block/Adminhtml/Form/Account/Create.php | 2 +- .../community/Nosto/Tagging/etc/config.xml | 9 ++++++++ app/locale/de_DE/Nosto_Tagging.csv | 21 +++++++++++++++++++ app/locale/es_ES/Nosto_Tagging.csv | 21 +++++++++++++++++++ app/locale/fr_FR/Nosto_Tagging.csv | 21 +++++++++++++++++++ modman | 7 +++++-- 6 files changed, 78 insertions(+), 3 deletions(-) create mode 100644 app/locale/de_DE/Nosto_Tagging.csv create mode 100644 app/locale/es_ES/Nosto_Tagging.csv create mode 100644 app/locale/fr_FR/Nosto_Tagging.csv diff --git a/app/code/community/Nosto/Tagging/Block/Adminhtml/Form/Account/Create.php b/app/code/community/Nosto/Tagging/Block/Adminhtml/Form/Account/Create.php index 88812c7f..464ccdc5 100644 --- a/app/code/community/Nosto/Tagging/Block/Adminhtml/Form/Account/Create.php +++ b/app/code/community/Nosto/Tagging/Block/Adminhtml/Form/Account/Create.php @@ -59,7 +59,7 @@ protected function _prepareForm() 'class' => 'required-entry validate-email', )); $form->addField('nosto_terms_and_conditions', 'note', array( - 'text' => $this->__('By creating a new account you agree to Nosto\'s Terms and Conditions') + 'text' => $this->__('By creating a new account you agree to Nosto\'s') . ' ' . $this->__('Terms and Conditions') . '', )); $form->addField('nosto_create_account_submit', 'submit', array( 'class' => 'form-button', diff --git a/app/code/community/Nosto/Tagging/etc/config.xml b/app/code/community/Nosto/Tagging/etc/config.xml index 91d28db0..bab86c92 100644 --- a/app/code/community/Nosto/Tagging/etc/config.xml +++ b/app/code/community/Nosto/Tagging/etc/config.xml @@ -64,6 +64,15 @@
+ + + + + Nosto_Tagging.csv + + + + diff --git a/app/locale/de_DE/Nosto_Tagging.csv b/app/locale/de_DE/Nosto_Tagging.csv new file mode 100644 index 00000000..921157f0 --- /dev/null +++ b/app/locale/de_DE/Nosto_Tagging.csv @@ -0,0 +1,21 @@ +"Please choose a shop to configure Nosto for.","Bitte wählen Sie einen Shop, auf dem Sie Nosto konfigurieren möchten." +"Add Nosto to your %s shop","Fügen Sie Nosto zu Ihrem %s Shop hinzu" +"Do you have an existing Nosto account?","Haben Sie bereits ein Nostokonto erstellt?" +"Add Nosto","Nosto hinzufügen" +"Email","Email" +"By creating a new account you agree to Nosto's","Mit der Eröffnung des Kontos stimmen" +"Terms and Conditions","Sie den Allgemeinen Geschäftsbedinungen von Nosto zu." +"Create Nosto","Neues Konto erstellen" +"You have added Nosto to your %s shop","Sie haben Nosto zu Ihrem %s Shop hinzugefügt" +"Your account ID is %s","Ihre Konto ID lautet %s" +"If you want to change the account, you need to remove the existing one first","Wenn Sie das Konto ändern möchten, müssen Sie zunächst das bestehende löschen" +"Remove Nosto","Nosto löschen" +"Yes","Ja" +"No","Nein" +"Account settings","Konto Setup" +"Account %s successfully connected to Nosto.","Das Konto %s wurde erfolgreich mit Nosto angebunden." +"Account could not be connected to Nosto. Please contact Nosto support.","Das Konto konnte nicht an Nosto angebunden werden. Bitte kontaktieren Sie den Nosto Support." +"Account could not be connected to Nosto. You rejected the connection request.","Das Konto konnte nicht an Nosto angebunden werden. Sie haben die Verbindung abgewiesen." +"Account created. Please check your email and follow the instructions to set a password for your new account within three days.","Konto erstellt. Bitte checken Sie Ihre Emails und folgen Sie den Anweisungen um ein Passwort für Ihr neues Konto innerhalb von drei Tagen zu erstellen." +"Account could not be automatically created. Please visit nosto.com to create a new account.","Das Nosto Konto konnte nicht automatisch erstellt werden. Bitte besuchen Sie nosto.com um ein neues Konto anzulegen." +"Account successfully removed.","Konto erfolgreich entfernt." \ No newline at end of file diff --git a/app/locale/es_ES/Nosto_Tagging.csv b/app/locale/es_ES/Nosto_Tagging.csv new file mode 100644 index 00000000..b9667e94 --- /dev/null +++ b/app/locale/es_ES/Nosto_Tagging.csv @@ -0,0 +1,21 @@ +"Please choose a shop to configure Nosto for.","Por favor selecciona la tienda en la que quieres configurar Nosto" +"Add Nosto to your %s shop","Activa Nosto en tu tienda %s" +"Do you have an existing Nosto account?","¿Ya tienes una cuenta Nosto?" +"Add Nosto","Activar Nosto" +"Email","Email" +"By creating a new account you agree to Nosto's","Al crear una cuenta nueva aceptas los" +"Terms and Conditions","términos y condiciones de Nosto." +"Create Nosto","Crear una cuenta nueva" +"You have added Nosto to your %s shop","Has activado Nosto en tu tienda %s" +"Your account ID is %s","El ID de tu cuenta es %s" +"If you want to change the account, you need to remove the existing one first","Si deseas cambiar la cuenta, debes desactivar la cuenta existente primero" +"Remove Nosto","Desactivar Nosto" +"Yes","Si" +"No","No" +"Account settings","Configuración de cuentas" +"Account %s successfully connected to Nosto.","La cuenta %s se ha conectado exitosamente a Nosto." +"Account could not be connected to Nosto. Please contact Nosto support.","La cuenta no se ha conectado exitosamente a Nosto. Por favor contacta Nosto Support." +"Account could not be connected to Nosto. You rejected the connection request.","La cuenta no se ha conectado exitosamente a Nosto. Has rechazado la solicitud de conexión." +"Account created. Please check your email and follow the instructions to set a password for your new account within three days.","La cuenta ha sido creada. Por favor revisa tu email y sigue las instrucciones para escoger una contraseña para tu nueva cuenta en los próximos 3 días." +"Account could not be automatically created. Please visit nosto.com to create a new account.","La cuenta no ha podido ser creada automáticamente. Por favor visita nosto.com para crear una nueva cuenta" +"Account successfully removed.","Cuenta eliminado correctamente." \ No newline at end of file diff --git a/app/locale/fr_FR/Nosto_Tagging.csv b/app/locale/fr_FR/Nosto_Tagging.csv new file mode 100644 index 00000000..f71fe021 --- /dev/null +++ b/app/locale/fr_FR/Nosto_Tagging.csv @@ -0,0 +1,21 @@ +"Please choose a shop to configure Nosto for.","Veuillez choisir sur quelle boutique vous souhaitez installer Nosto." +"Add Nosto to your %s shop","Ajouter Nosto sur votre boutique %s." +"Do you have an existing Nosto account?","Avez-vous déjà un compte Nosto ?" +"Add Nosto","Ajouter Nosto" +"Email","E-mail" +"By creating a new account you agree to Nosto's","En créant un nouveau compte, vous acceptez les" +"Terms and Conditions","termes et conditions" +"Create Nosto","Créer un nouveau compte" +"You have added Nosto to your %s shop","Vous avez installé Nosto sur votre boutique %s." +"Your account ID is %s","Votre numéro de compte est %s" +"If you want to change the account, you need to remove the existing one first","Si vous voulez changer de compte, vous devez tout d\'abord supprimer le compte existant." +"Remove Nosto","Supprimer Nosto" +"Yes","Oui" +"No","Non" +"Account settings","Configuration du compte" +"Account %s successfully connected to Nosto.","Connexion entre le compte %s et Nosto réussie." +"Account could not be connected to Nosto. Please contact Nosto support.","Le compte n\'a pas pu être connecté à Nosto. Veuillez contacter le support Nosto." +"Account could not be connected to Nosto. You rejected the connection request.","Le compte n\'a pas pu être connecté à Nosto. Vous avez refusé la demande de connexion." +"Account created. Please check your email and follow the instructions to set a password for your new account within three days.","Compte créé ! Veuillez consulter vos e-mails et suivre les instructions pour définir votre mot de passe dans les trois prochains jours." +"Account could not be automatically created. Please visit nosto.com to create a new account.","Le compte n\'a pas pu être créé automatiquement. Veuillez consulter www.nosto.com pour créer un nouveau compte." +"Account successfully removed.","Compte supprimé avec succès." \ No newline at end of file diff --git a/modman b/modman index 827329dd..e4d0f3f6 100644 --- a/modman +++ b/modman @@ -5,5 +5,8 @@ app/design/frontend/base/default/template/nostotagging/* app/design/frontend/ba app/design/adminhtml/default/default/layout/nostotagging.xml app/design/adminhtml/default/default/layout/nostotagging.xml app/design/adminhtml/default/default/template/nostotagging/* app/design/adminhtml/default/default/template/nostotagging/ app/etc/modules/* app/etc/modules/ -vendor/nosto/* lib/nosto/* -js/* js/nosto/* +app/locale/de_DE/Nosto_Tagging.csv app/locale/de_DE/Nosto_Tagging.csv +app/locale/es_ES/Nosto_Tagging.csv app/locale/es_ES/Nosto_Tagging.csv +app/locale/fr_FR/Nosto_Tagging.csv app/locale/fr_FR/Nosto_Tagging.csv +vendor/nosto/* lib/nosto/ +js/* js/nosto/ From 4c5a74baf89b7a48889257940481e64ec0b4f373 Mon Sep 17 00:00:00 2001 From: Christoffer Lindqvist Date: Tue, 13 Jan 2015 14:55:39 +0200 Subject: [PATCH 37/71] Change position of the "account settings" link and make it a magenta button --- .../template/nostotagging/wizard.phtml | 40 +++++++++++-------- 1 file changed, 24 insertions(+), 16 deletions(-) diff --git a/app/design/adminhtml/default/default/template/nostotagging/wizard.phtml b/app/design/adminhtml/default/default/template/nostotagging/wizard.phtml index 9c249fe0..86a54372 100644 --- a/app/design/adminhtml/default/default/template/nostotagging/wizard.phtml +++ b/app/design/adminhtml/default/default/template/nostotagging/wizard.phtml @@ -38,23 +38,31 @@ $nostoHelper = Mage::helper('nosto_tagging'); isSingleStoreMode() ): ?> getChildHtml('store_switcher'); ?> -
- getAccount() === null): ?> -

__('Add Nosto to your %s shop', $nostoHelper->escapeHtml(Mage::app()->getStore()->getName()));?>

-

__('Do you have an existing Nosto account?');?>

-
- - - - +
+ getAccount() !== null): ?> +
+

__('Add Nosto to your %s shop', $nostoHelper->escapeHtml(Mage::app()->getStore()->getName()));?>

+

__('Do you have an existing Nosto account?');?>

+
+ + + + +
+
getChildHtml('nosto.form.account.connect'); ?>
+
-
getChildHtml('nosto.form.account.connect'); ?>
- - __('Account settings');?> -
getChildHtml('nosto.form.account.remove'); ?>
- getIframeUrl()): ?> -
getChildHtml('nosto.iframe'); ?>
- + +
+
getChildHtml('nosto.form.account.remove'); ?>
+ getIframeUrl()): ?> +
getChildHtml('nosto.iframe'); ?>
+ +
From 0660c417ed36d1e7891b0d9986a2762da1865a5f Mon Sep 17 00:00:00 2001 From: Christoffer Lindqvist Date: Tue, 13 Jan 2015 15:25:47 +0200 Subject: [PATCH 38/71] Update copyright info --- .../Nosto/Tagging/Block/Adminhtml/Form/Account/Connect.php | 6 +++--- .../Nosto/Tagging/Block/Adminhtml/Form/Account/Create.php | 6 +++--- .../Nosto/Tagging/Block/Adminhtml/Form/Account/Remove.php | 6 +++--- app/code/community/Nosto/Tagging/Block/Adminhtml/Iframe.php | 6 +++--- app/code/community/Nosto/Tagging/Block/Adminhtml/Wizard.php | 6 +++--- app/code/community/Nosto/Tagging/Block/Cart.php | 2 +- app/code/community/Nosto/Tagging/Block/Category.php | 2 +- app/code/community/Nosto/Tagging/Block/Customer.php | 2 +- app/code/community/Nosto/Tagging/Block/Element.php | 2 +- app/code/community/Nosto/Tagging/Block/Embed.php | 2 +- app/code/community/Nosto/Tagging/Block/Order.php | 2 +- app/code/community/Nosto/Tagging/Block/Product.php | 2 +- app/code/community/Nosto/Tagging/Helper/Account.php | 6 +++--- app/code/community/Nosto/Tagging/Helper/Data.php | 2 +- app/code/community/Nosto/Tagging/Helper/Oauth.php | 6 +++--- app/code/community/Nosto/Tagging/Helper/Price.php | 2 +- app/code/community/Nosto/Tagging/Helper/Url.php | 6 +++--- app/code/community/Nosto/Tagging/Model/Meta/Account.php | 6 +++--- .../community/Nosto/Tagging/Model/Meta/Account/Billing.php | 6 +++--- .../community/Nosto/Tagging/Model/Meta/Account/Iframe.php | 6 +++--- .../community/Nosto/Tagging/Model/Meta/Account/Owner.php | 6 +++--- app/code/community/Nosto/Tagging/Model/Meta/Oauth.php | 6 +++--- app/code/community/Nosto/Tagging/Model/Observer.php | 2 +- app/code/community/Nosto/Tagging/Model/Resource/Setup.php | 2 +- .../Nosto/Tagging/controllers/Adminhtml/NostoController.php | 6 +++--- .../community/Nosto/Tagging/controllers/OauthController.php | 6 +++--- app/code/community/Nosto/Tagging/etc/adminhtml.xml | 2 +- app/code/community/Nosto/Tagging/etc/config.xml | 2 +- .../adminhtml/default/default/layout/nostotagging.xml | 6 +++--- .../template/nostotagging/form/account/connect.phtml | 4 ++-- .../default/template/nostotagging/form/account/create.phtml | 4 ++-- .../default/template/nostotagging/form/account/remove.phtml | 4 ++-- .../default/default/template/nostotagging/iframe.phtml | 4 ++-- .../default/default/template/nostotagging/wizard.phtml | 4 ++-- app/design/frontend/base/default/layout/nostotagging.xml | 6 +++--- .../frontend/base/default/template/nostotagging/cart.phtml | 4 ++-- .../base/default/template/nostotagging/category.phtml | 4 ++-- .../base/default/template/nostotagging/category/view.phtml | 4 ++-- .../base/default/template/nostotagging/customer.phtml | 4 ++-- .../base/default/template/nostotagging/element.phtml | 4 ++-- .../frontend/base/default/template/nostotagging/embed.phtml | 4 ++-- .../frontend/base/default/template/nostotagging/order.phtml | 4 ++-- .../base/default/template/nostotagging/product.phtml | 4 ++-- app/etc/modules/Nosto_Tagging.xml | 2 +- js/nostotagging-config.js | 2 +- 45 files changed, 92 insertions(+), 92 deletions(-) diff --git a/app/code/community/Nosto/Tagging/Block/Adminhtml/Form/Account/Connect.php b/app/code/community/Nosto/Tagging/Block/Adminhtml/Form/Account/Connect.php index c250b298..4ae25eb6 100644 --- a/app/code/community/Nosto/Tagging/Block/Adminhtml/Form/Account/Connect.php +++ b/app/code/community/Nosto/Tagging/Block/Adminhtml/Form/Account/Connect.php @@ -18,9 +18,9 @@ * versions in the future. If you wish to customize Magento for your * needs please refer to http://www.magentocommerce.com for more information. * - * @category design - * @package base_default - * @copyright Copyright (c) 2013 Nosto Solutions Ltd (http://www.nosto.com) + * @category Nosto + * @package Nosto_Tagging + * @copyright Copyright (c) 2013-2015 Nosto Solutions Ltd (http://www.nosto.com) * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ diff --git a/app/code/community/Nosto/Tagging/Block/Adminhtml/Form/Account/Create.php b/app/code/community/Nosto/Tagging/Block/Adminhtml/Form/Account/Create.php index 88812c7f..66ed18f7 100644 --- a/app/code/community/Nosto/Tagging/Block/Adminhtml/Form/Account/Create.php +++ b/app/code/community/Nosto/Tagging/Block/Adminhtml/Form/Account/Create.php @@ -18,9 +18,9 @@ * versions in the future. If you wish to customize Magento for your * needs please refer to http://www.magentocommerce.com for more information. * - * @category design - * @package base_default - * @copyright Copyright (c) 2013 Nosto Solutions Ltd (http://www.nosto.com) + * @category Nosto + * @package Nosto_Tagging + * @copyright Copyright (c) 2013-2015 Nosto Solutions Ltd (http://www.nosto.com) * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ diff --git a/app/code/community/Nosto/Tagging/Block/Adminhtml/Form/Account/Remove.php b/app/code/community/Nosto/Tagging/Block/Adminhtml/Form/Account/Remove.php index adee9953..6e18e8d7 100644 --- a/app/code/community/Nosto/Tagging/Block/Adminhtml/Form/Account/Remove.php +++ b/app/code/community/Nosto/Tagging/Block/Adminhtml/Form/Account/Remove.php @@ -18,9 +18,9 @@ * versions in the future. If you wish to customize Magento for your * needs please refer to http://www.magentocommerce.com for more information. * - * @category design - * @package base_default - * @copyright Copyright (c) 2013 Nosto Solutions Ltd (http://www.nosto.com) + * @category Nosto + * @package Nosto_Tagging + * @copyright Copyright (c) 2013-2015 Nosto Solutions Ltd (http://www.nosto.com) * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ diff --git a/app/code/community/Nosto/Tagging/Block/Adminhtml/Iframe.php b/app/code/community/Nosto/Tagging/Block/Adminhtml/Iframe.php index c5f56cc3..7a167418 100644 --- a/app/code/community/Nosto/Tagging/Block/Adminhtml/Iframe.php +++ b/app/code/community/Nosto/Tagging/Block/Adminhtml/Iframe.php @@ -18,9 +18,9 @@ * versions in the future. If you wish to customize Magento for your * needs please refer to http://www.magentocommerce.com for more information. * - * @category design - * @package base_default - * @copyright Copyright (c) 2013 Nosto Solutions Ltd (http://www.nosto.com) + * @category Nosto + * @package Nosto_Tagging + * @copyright Copyright (c) 2013-2015 Nosto Solutions Ltd (http://www.nosto.com) * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ diff --git a/app/code/community/Nosto/Tagging/Block/Adminhtml/Wizard.php b/app/code/community/Nosto/Tagging/Block/Adminhtml/Wizard.php index ef4e5bb5..f0553b9c 100644 --- a/app/code/community/Nosto/Tagging/Block/Adminhtml/Wizard.php +++ b/app/code/community/Nosto/Tagging/Block/Adminhtml/Wizard.php @@ -18,9 +18,9 @@ * versions in the future. If you wish to customize Magento for your * needs please refer to http://www.magentocommerce.com for more information. * - * @category design - * @package base_default - * @copyright Copyright (c) 2013 Nosto Solutions Ltd (http://www.nosto.com) + * @category Nosto + * @package Nosto_Tagging + * @copyright Copyright (c) 2013-2015 Nosto Solutions Ltd (http://www.nosto.com) * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ diff --git a/app/code/community/Nosto/Tagging/Block/Cart.php b/app/code/community/Nosto/Tagging/Block/Cart.php index 8194172a..dfdb7599 100644 --- a/app/code/community/Nosto/Tagging/Block/Cart.php +++ b/app/code/community/Nosto/Tagging/Block/Cart.php @@ -20,7 +20,7 @@ * * @category Nosto * @package Nosto_Tagging - * @copyright Copyright (c) 2013 Nosto Solutions Ltd (http://www.nosto.com) + * @copyright Copyright (c) 2013-2015 Nosto Solutions Ltd (http://www.nosto.com) * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ diff --git a/app/code/community/Nosto/Tagging/Block/Category.php b/app/code/community/Nosto/Tagging/Block/Category.php index 0bd05a44..cd764e59 100644 --- a/app/code/community/Nosto/Tagging/Block/Category.php +++ b/app/code/community/Nosto/Tagging/Block/Category.php @@ -20,7 +20,7 @@ * * @category Nosto * @package Nosto_Tagging - * @copyright Copyright (c) 2013 Nosto Solutions Ltd (http://www.nosto.com) + * @copyright Copyright (c) 2013-2015 Nosto Solutions Ltd (http://www.nosto.com) * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ diff --git a/app/code/community/Nosto/Tagging/Block/Customer.php b/app/code/community/Nosto/Tagging/Block/Customer.php index 72cfc4af..7f5e5570 100644 --- a/app/code/community/Nosto/Tagging/Block/Customer.php +++ b/app/code/community/Nosto/Tagging/Block/Customer.php @@ -20,7 +20,7 @@ * * @category Nosto * @package Nosto_Tagging - * @copyright Copyright (c) 2013 Nosto Solutions Ltd (http://www.nosto.com) + * @copyright Copyright (c) 2013-2015 Nosto Solutions Ltd (http://www.nosto.com) * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ diff --git a/app/code/community/Nosto/Tagging/Block/Element.php b/app/code/community/Nosto/Tagging/Block/Element.php index 25c94dba..725c0e29 100644 --- a/app/code/community/Nosto/Tagging/Block/Element.php +++ b/app/code/community/Nosto/Tagging/Block/Element.php @@ -20,7 +20,7 @@ * * @category Nosto * @package Nosto_Tagging - * @copyright Copyright (c) 2013 Nosto Solutions Ltd (http://www.nosto.com) + * @copyright Copyright (c) 2013-2015 Nosto Solutions Ltd (http://www.nosto.com) * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ diff --git a/app/code/community/Nosto/Tagging/Block/Embed.php b/app/code/community/Nosto/Tagging/Block/Embed.php index ce96b249..f8dc7440 100644 --- a/app/code/community/Nosto/Tagging/Block/Embed.php +++ b/app/code/community/Nosto/Tagging/Block/Embed.php @@ -20,7 +20,7 @@ * * @category Nosto * @package Nosto_Tagging - * @copyright Copyright (c) 2013 Nosto Solutions Ltd (http://www.nosto.com) + * @copyright Copyright (c) 2013-2015 Nosto Solutions Ltd (http://www.nosto.com) * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ diff --git a/app/code/community/Nosto/Tagging/Block/Order.php b/app/code/community/Nosto/Tagging/Block/Order.php index 7bb68f8a..a5d2a8d8 100644 --- a/app/code/community/Nosto/Tagging/Block/Order.php +++ b/app/code/community/Nosto/Tagging/Block/Order.php @@ -20,7 +20,7 @@ * * @category Nosto * @package Nosto_Tagging - * @copyright Copyright (c) 2013 Nosto Solutions Ltd (http://www.nosto.com) + * @copyright Copyright (c) 2013-2015 Nosto Solutions Ltd (http://www.nosto.com) * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ diff --git a/app/code/community/Nosto/Tagging/Block/Product.php b/app/code/community/Nosto/Tagging/Block/Product.php index f68f5689..79f13c39 100644 --- a/app/code/community/Nosto/Tagging/Block/Product.php +++ b/app/code/community/Nosto/Tagging/Block/Product.php @@ -20,7 +20,7 @@ * * @category Nosto * @package Nosto_Tagging - * @copyright Copyright (c) 2013 Nosto Solutions Ltd (http://www.nosto.com) + * @copyright Copyright (c) 2013-2015 Nosto Solutions Ltd (http://www.nosto.com) * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ diff --git a/app/code/community/Nosto/Tagging/Helper/Account.php b/app/code/community/Nosto/Tagging/Helper/Account.php index 0a737cab..26d60327 100644 --- a/app/code/community/Nosto/Tagging/Helper/Account.php +++ b/app/code/community/Nosto/Tagging/Helper/Account.php @@ -18,9 +18,9 @@ * versions in the future. If you wish to customize Magento for your * needs please refer to http://www.magentocommerce.com for more information. * - * @category design - * @package base_default - * @copyright Copyright (c) 2013 Nosto Solutions Ltd (http://www.nosto.com) + * @category Nosto + * @package Nosto_Tagging + * @copyright Copyright (c) 2013-2015 Nosto Solutions Ltd (http://www.nosto.com) * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ diff --git a/app/code/community/Nosto/Tagging/Helper/Data.php b/app/code/community/Nosto/Tagging/Helper/Data.php index 7167499f..eb104f43 100644 --- a/app/code/community/Nosto/Tagging/Helper/Data.php +++ b/app/code/community/Nosto/Tagging/Helper/Data.php @@ -20,7 +20,7 @@ * * @category Nosto * @package Nosto_Tagging - * @copyright Copyright (c) 2013 Nosto Solutions Ltd (http://www.nosto.com) + * @copyright Copyright (c) 2013-2015 Nosto Solutions Ltd (http://www.nosto.com) * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ diff --git a/app/code/community/Nosto/Tagging/Helper/Oauth.php b/app/code/community/Nosto/Tagging/Helper/Oauth.php index ac10fd99..410a845f 100644 --- a/app/code/community/Nosto/Tagging/Helper/Oauth.php +++ b/app/code/community/Nosto/Tagging/Helper/Oauth.php @@ -18,9 +18,9 @@ * versions in the future. If you wish to customize Magento for your * needs please refer to http://www.magentocommerce.com for more information. * - * @category design - * @package base_default - * @copyright Copyright (c) 2013 Nosto Solutions Ltd (http://www.nosto.com) + * @category Nosto + * @package Nosto_Tagging + * @copyright Copyright (c) 2013-2015 Nosto Solutions Ltd (http://www.nosto.com) * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ diff --git a/app/code/community/Nosto/Tagging/Helper/Price.php b/app/code/community/Nosto/Tagging/Helper/Price.php index 0ea7d646..b1e09e67 100644 --- a/app/code/community/Nosto/Tagging/Helper/Price.php +++ b/app/code/community/Nosto/Tagging/Helper/Price.php @@ -20,7 +20,7 @@ * * @category Nosto * @package Nosto_Tagging - * @copyright Copyright (c) 2013 Nosto Solutions Ltd (http://www.nosto.com) + * @copyright Copyright (c) 2013-2015 Nosto Solutions Ltd (http://www.nosto.com) * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ diff --git a/app/code/community/Nosto/Tagging/Helper/Url.php b/app/code/community/Nosto/Tagging/Helper/Url.php index c0419bc3..b368230b 100644 --- a/app/code/community/Nosto/Tagging/Helper/Url.php +++ b/app/code/community/Nosto/Tagging/Helper/Url.php @@ -18,9 +18,9 @@ * versions in the future. If you wish to customize Magento for your * needs please refer to http://www.magentocommerce.com for more information. * -* @category design -* @package base_default -* @copyright Copyright (c) 2013 Nosto Solutions Ltd (http://www.nosto.com) +* @category Nosto +* @package Nosto_Tagging +* @copyright Copyright (c) 2013-2015 Nosto Solutions Ltd (http://www.nosto.com) * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ diff --git a/app/code/community/Nosto/Tagging/Model/Meta/Account.php b/app/code/community/Nosto/Tagging/Model/Meta/Account.php index 949f850a..55ce4837 100644 --- a/app/code/community/Nosto/Tagging/Model/Meta/Account.php +++ b/app/code/community/Nosto/Tagging/Model/Meta/Account.php @@ -18,9 +18,9 @@ * versions in the future. If you wish to customize Magento for your * needs please refer to http://www.magentocommerce.com for more information. * - * @category design - * @package base_default - * @copyright Copyright (c) 2013 Nosto Solutions Ltd (http://www.nosto.com) + * @category Nosto + * @package Nosto_Tagging + * @copyright Copyright (c) 2013-2015 Nosto Solutions Ltd (http://www.nosto.com) * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ diff --git a/app/code/community/Nosto/Tagging/Model/Meta/Account/Billing.php b/app/code/community/Nosto/Tagging/Model/Meta/Account/Billing.php index 03e80bd4..5ec62a49 100644 --- a/app/code/community/Nosto/Tagging/Model/Meta/Account/Billing.php +++ b/app/code/community/Nosto/Tagging/Model/Meta/Account/Billing.php @@ -18,9 +18,9 @@ * versions in the future. If you wish to customize Magento for your * needs please refer to http://www.magentocommerce.com for more information. * - * @category design - * @package base_default - * @copyright Copyright (c) 2013 Nosto Solutions Ltd (http://www.nosto.com) + * @category Nosto + * @package Nosto_Tagging + * @copyright Copyright (c) 2013-2015 Nosto Solutions Ltd (http://www.nosto.com) * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ diff --git a/app/code/community/Nosto/Tagging/Model/Meta/Account/Iframe.php b/app/code/community/Nosto/Tagging/Model/Meta/Account/Iframe.php index 86531149..b5dbd6a9 100644 --- a/app/code/community/Nosto/Tagging/Model/Meta/Account/Iframe.php +++ b/app/code/community/Nosto/Tagging/Model/Meta/Account/Iframe.php @@ -18,9 +18,9 @@ * versions in the future. If you wish to customize Magento for your * needs please refer to http://www.magentocommerce.com for more information. * - * @category design - * @package base_default - * @copyright Copyright (c) 2013 Nosto Solutions Ltd (http://www.nosto.com) + * @category Nosto + * @package Nosto_Tagging + * @copyright Copyright (c) 2013-2015 Nosto Solutions Ltd (http://www.nosto.com) * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ diff --git a/app/code/community/Nosto/Tagging/Model/Meta/Account/Owner.php b/app/code/community/Nosto/Tagging/Model/Meta/Account/Owner.php index 50c8cb94..c70a4e92 100644 --- a/app/code/community/Nosto/Tagging/Model/Meta/Account/Owner.php +++ b/app/code/community/Nosto/Tagging/Model/Meta/Account/Owner.php @@ -18,9 +18,9 @@ * versions in the future. If you wish to customize Magento for your * needs please refer to http://www.magentocommerce.com for more information. * - * @category design - * @package base_default - * @copyright Copyright (c) 2013 Nosto Solutions Ltd (http://www.nosto.com) + * @category Nosto + * @package Nosto_Tagging + * @copyright Copyright (c) 2013-2015 Nosto Solutions Ltd (http://www.nosto.com) * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ diff --git a/app/code/community/Nosto/Tagging/Model/Meta/Oauth.php b/app/code/community/Nosto/Tagging/Model/Meta/Oauth.php index 1300c142..8db79785 100644 --- a/app/code/community/Nosto/Tagging/Model/Meta/Oauth.php +++ b/app/code/community/Nosto/Tagging/Model/Meta/Oauth.php @@ -18,9 +18,9 @@ * versions in the future. If you wish to customize Magento for your * needs please refer to http://www.magentocommerce.com for more information. * - * @category design - * @package base_default - * @copyright Copyright (c) 2013 Nosto Solutions Ltd (http://www.nosto.com) + * @category Nosto + * @package Nosto_Tagging + * @copyright Copyright (c) 2013-2015 Nosto Solutions Ltd (http://www.nosto.com) * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ diff --git a/app/code/community/Nosto/Tagging/Model/Observer.php b/app/code/community/Nosto/Tagging/Model/Observer.php index 29252c26..9f07a8d6 100644 --- a/app/code/community/Nosto/Tagging/Model/Observer.php +++ b/app/code/community/Nosto/Tagging/Model/Observer.php @@ -20,7 +20,7 @@ * * @category Nosto * @package Nosto_Tagging - * @copyright Copyright (c) 2013 Nosto Solutions Ltd (http://www.nosto.com) + * @copyright Copyright (c) 2013-2015 Nosto Solutions Ltd (http://www.nosto.com) * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ diff --git a/app/code/community/Nosto/Tagging/Model/Resource/Setup.php b/app/code/community/Nosto/Tagging/Model/Resource/Setup.php index 00cd2054..88f94d11 100644 --- a/app/code/community/Nosto/Tagging/Model/Resource/Setup.php +++ b/app/code/community/Nosto/Tagging/Model/Resource/Setup.php @@ -20,7 +20,7 @@ * * @category Nosto * @package Nosto_Tagging - * @copyright Copyright (c) 2013 Nosto Solutions Ltd (http://www.nosto.com) + * @copyright Copyright (c) 2013-2015 Nosto Solutions Ltd (http://www.nosto.com) * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ diff --git a/app/code/community/Nosto/Tagging/controllers/Adminhtml/NostoController.php b/app/code/community/Nosto/Tagging/controllers/Adminhtml/NostoController.php index 7fbf0ceb..57af5494 100644 --- a/app/code/community/Nosto/Tagging/controllers/Adminhtml/NostoController.php +++ b/app/code/community/Nosto/Tagging/controllers/Adminhtml/NostoController.php @@ -18,9 +18,9 @@ * versions in the future. If you wish to customize Magento for your * needs please refer to http://www.magentocommerce.com for more information. * - * @category design - * @package base_default - * @copyright Copyright (c) 2013 Nosto Solutions Ltd (http://www.nosto.com) + * @category Nosto + * @package Nosto_Tagging + * @copyright Copyright (c) 2013-2015 Nosto Solutions Ltd (http://www.nosto.com) * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ diff --git a/app/code/community/Nosto/Tagging/controllers/OauthController.php b/app/code/community/Nosto/Tagging/controllers/OauthController.php index 1ecacd70..4478d22d 100644 --- a/app/code/community/Nosto/Tagging/controllers/OauthController.php +++ b/app/code/community/Nosto/Tagging/controllers/OauthController.php @@ -18,9 +18,9 @@ * versions in the future. If you wish to customize Magento for your * needs please refer to http://www.magentocommerce.com for more information. * - * @category design - * @package base_default - * @copyright Copyright (c) 2013 Nosto Solutions Ltd (http://www.nosto.com) + * @category Nosto + * @package Nosto_Tagging + * @copyright Copyright (c) 2013-2015 Nosto Solutions Ltd (http://www.nosto.com) * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ diff --git a/app/code/community/Nosto/Tagging/etc/adminhtml.xml b/app/code/community/Nosto/Tagging/etc/adminhtml.xml index d70ec0cf..c5a8f58a 100644 --- a/app/code/community/Nosto/Tagging/etc/adminhtml.xml +++ b/app/code/community/Nosto/Tagging/etc/adminhtml.xml @@ -21,7 +21,7 @@ * * @category Nosto * @package Nosto_Tagging - * @copyright Copyright (c) 2013 Nosto Solutions Ltd (http://www.nosto.com) + * @copyright Copyright (c) 2013-2015 Nosto Solutions Ltd (http://www.nosto.com) * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ --> diff --git a/app/code/community/Nosto/Tagging/etc/config.xml b/app/code/community/Nosto/Tagging/etc/config.xml index 91d28db0..55660f9d 100644 --- a/app/code/community/Nosto/Tagging/etc/config.xml +++ b/app/code/community/Nosto/Tagging/etc/config.xml @@ -21,7 +21,7 @@ * * @category Nosto * @package Nosto_Tagging - * @copyright Copyright (c) 2013 Nosto Solutions Ltd (http://www.nosto.com) + * @copyright Copyright (c) 2013-2015 Nosto Solutions Ltd (http://www.nosto.com) * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ --> diff --git a/app/design/adminhtml/default/default/layout/nostotagging.xml b/app/design/adminhtml/default/default/layout/nostotagging.xml index 6dcd4db6..1b235280 100644 --- a/app/design/adminhtml/default/default/layout/nostotagging.xml +++ b/app/design/adminhtml/default/default/layout/nostotagging.xml @@ -19,9 +19,9 @@ * versions in the future. If you wish to customize Magento for your * needs please refer to http://www.magentocommerce.com for more information. * -* @category Nosto -* @package Nosto_Tagging -* @copyright Copyright (c) 2013 Nosto Solutions Ltd (http://www.nosto.com) +* @category design +* @package adminhtml_default_default +* @copyright Copyright (c) 2013-2015 Nosto Solutions Ltd (http://www.nosto.com) * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ --> diff --git a/app/design/adminhtml/default/default/template/nostotagging/form/account/connect.phtml b/app/design/adminhtml/default/default/template/nostotagging/form/account/connect.phtml index a2102e15..1b417470 100644 --- a/app/design/adminhtml/default/default/template/nostotagging/form/account/connect.phtml +++ b/app/design/adminhtml/default/default/template/nostotagging/form/account/connect.phtml @@ -19,8 +19,8 @@ * needs please refer to http://www.magentocommerce.com for more information. * * @category design - * @package base_default - * @copyright Copyright (c) 2013 Nosto Solutions Ltd (http://www.nosto.com) + * @package adminhtml_default_default + * @copyright Copyright (c) 2013-2015 Nosto Solutions Ltd (http://www.nosto.com) * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ ?> diff --git a/app/design/adminhtml/default/default/template/nostotagging/form/account/create.phtml b/app/design/adminhtml/default/default/template/nostotagging/form/account/create.phtml index 6605a642..7bd4242d 100644 --- a/app/design/adminhtml/default/default/template/nostotagging/form/account/create.phtml +++ b/app/design/adminhtml/default/default/template/nostotagging/form/account/create.phtml @@ -19,8 +19,8 @@ * needs please refer to http://www.magentocommerce.com for more information. * * @category design - * @package base_default - * @copyright Copyright (c) 2013 Nosto Solutions Ltd (http://www.nosto.com) + * @package adminhtml_default_default + * @copyright Copyright (c) 2013-2015 Nosto Solutions Ltd (http://www.nosto.com) * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ ?> diff --git a/app/design/adminhtml/default/default/template/nostotagging/form/account/remove.phtml b/app/design/adminhtml/default/default/template/nostotagging/form/account/remove.phtml index b44c2c1e..f555ff23 100644 --- a/app/design/adminhtml/default/default/template/nostotagging/form/account/remove.phtml +++ b/app/design/adminhtml/default/default/template/nostotagging/form/account/remove.phtml @@ -19,8 +19,8 @@ * needs please refer to http://www.magentocommerce.com for more information. * * @category design - * @package base_default - * @copyright Copyright (c) 2013 Nosto Solutions Ltd (http://www.nosto.com) + * @package adminhtml_default_default + * @copyright Copyright (c) 2013-2015 Nosto Solutions Ltd (http://www.nosto.com) * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ ?> diff --git a/app/design/adminhtml/default/default/template/nostotagging/iframe.phtml b/app/design/adminhtml/default/default/template/nostotagging/iframe.phtml index af3ebd14..70e8fd97 100644 --- a/app/design/adminhtml/default/default/template/nostotagging/iframe.phtml +++ b/app/design/adminhtml/default/default/template/nostotagging/iframe.phtml @@ -19,8 +19,8 @@ * needs please refer to http://www.magentocommerce.com for more information. * * @category design - * @package base_default - * @copyright Copyright (c) 2013 Nosto Solutions Ltd (http://www.nosto.com) + * @package adminhtml_default_default + * @copyright Copyright (c) 2013-2015 Nosto Solutions Ltd (http://www.nosto.com) * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ ?> diff --git a/app/design/adminhtml/default/default/template/nostotagging/wizard.phtml b/app/design/adminhtml/default/default/template/nostotagging/wizard.phtml index 86a54372..92868868 100644 --- a/app/design/adminhtml/default/default/template/nostotagging/wizard.phtml +++ b/app/design/adminhtml/default/default/template/nostotagging/wizard.phtml @@ -19,8 +19,8 @@ * needs please refer to http://www.magentocommerce.com for more information. * * @category design - * @package base_default - * @copyright Copyright (c) 2013 Nosto Solutions Ltd (http://www.nosto.com) + * @package adminhtml_default_default + * @copyright Copyright (c) 2013-2015 Nosto Solutions Ltd (http://www.nosto.com) * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ ?> diff --git a/app/design/frontend/base/default/layout/nostotagging.xml b/app/design/frontend/base/default/layout/nostotagging.xml index a83a055c..797da32f 100644 --- a/app/design/frontend/base/default/layout/nostotagging.xml +++ b/app/design/frontend/base/default/layout/nostotagging.xml @@ -19,9 +19,9 @@ * versions in the future. If you wish to customize Magento for your * needs please refer to http://www.magentocommerce.com for more information. * - * @category Nosto - * @package Nosto_Tagging - * @copyright Copyright (c) 2013 Nosto Solutions Ltd (http://www.nosto.com) + * @category design + * @package frontend_base_default + * @copyright Copyright (c) 2013-2015 Nosto Solutions Ltd (http://www.nosto.com) * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ --> diff --git a/app/design/frontend/base/default/template/nostotagging/cart.phtml b/app/design/frontend/base/default/template/nostotagging/cart.phtml index 15007559..a27bff6b 100644 --- a/app/design/frontend/base/default/template/nostotagging/cart.phtml +++ b/app/design/frontend/base/default/template/nostotagging/cart.phtml @@ -19,8 +19,8 @@ * needs please refer to http://www.magentocommerce.com for more information. * * @category design - * @package base_default - * @copyright Copyright (c) 2013 Nosto Solutions Ltd (http://www.nosto.com) + * @package frontend_base_default + * @copyright Copyright (c) 2013-2015 Nosto Solutions Ltd (http://www.nosto.com) * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ ?> diff --git a/app/design/frontend/base/default/template/nostotagging/category.phtml b/app/design/frontend/base/default/template/nostotagging/category.phtml index d286e7c6..e7573eb0 100644 --- a/app/design/frontend/base/default/template/nostotagging/category.phtml +++ b/app/design/frontend/base/default/template/nostotagging/category.phtml @@ -19,8 +19,8 @@ * needs please refer to http://www.magentocommerce.com for more information. * * @category design - * @package base_default - * @copyright Copyright (c) 2013 Nosto Solutions Ltd (http://www.nosto.com) + * @package frontend_base_default + * @copyright Copyright (c) 2013-2015 Nosto Solutions Ltd (http://www.nosto.com) * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ ?> diff --git a/app/design/frontend/base/default/template/nostotagging/category/view.phtml b/app/design/frontend/base/default/template/nostotagging/category/view.phtml index 6a293cd5..8054a644 100644 --- a/app/design/frontend/base/default/template/nostotagging/category/view.phtml +++ b/app/design/frontend/base/default/template/nostotagging/category/view.phtml @@ -19,8 +19,8 @@ * needs please refer to http://www.magentocommerce.com for more information. * * @category design - * @package base_default - * @copyright Copyright (c) 2013 Nosto Solutions Ltd (http://www.nosto.com) + * @package frontend_base_default + * @copyright Copyright (c) 2013-2015 Nosto Solutions Ltd (http://www.nosto.com) * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ ?> diff --git a/app/design/frontend/base/default/template/nostotagging/customer.phtml b/app/design/frontend/base/default/template/nostotagging/customer.phtml index f7d53447..29e4d544 100644 --- a/app/design/frontend/base/default/template/nostotagging/customer.phtml +++ b/app/design/frontend/base/default/template/nostotagging/customer.phtml @@ -19,8 +19,8 @@ * needs please refer to http://www.magentocommerce.com for more information. * * @category design - * @package base_default - * @copyright Copyright (c) 2013 Nosto Solutions Ltd (http://www.nosto.com) + * @package frontend_base_default + * @copyright Copyright (c) 2013-2015 Nosto Solutions Ltd (http://www.nosto.com) * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ ?> diff --git a/app/design/frontend/base/default/template/nostotagging/element.phtml b/app/design/frontend/base/default/template/nostotagging/element.phtml index 1b6212a6..0d8256a7 100644 --- a/app/design/frontend/base/default/template/nostotagging/element.phtml +++ b/app/design/frontend/base/default/template/nostotagging/element.phtml @@ -19,8 +19,8 @@ * needs please refer to http://www.magentocommerce.com for more information. * * @category design - * @package base_default - * @copyright Copyright (c) 2013 Nosto Solutions Ltd (http://www.nosto.com) + * @package frontend_base_default + * @copyright Copyright (c) 2013-2015 Nosto Solutions Ltd (http://www.nosto.com) * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ ?> diff --git a/app/design/frontend/base/default/template/nostotagging/embed.phtml b/app/design/frontend/base/default/template/nostotagging/embed.phtml index e11957a5..c438e2af 100644 --- a/app/design/frontend/base/default/template/nostotagging/embed.phtml +++ b/app/design/frontend/base/default/template/nostotagging/embed.phtml @@ -19,8 +19,8 @@ * needs please refer to http://www.magentocommerce.com for more information. * * @category design - * @package base_default - * @copyright Copyright (c) 2013 Nosto Solutions Ltd (http://www.nosto.com) + * @package frontend_base_default + * @copyright Copyright (c) 2013-2015 Nosto Solutions Ltd (http://www.nosto.com) * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ ?> diff --git a/app/design/frontend/base/default/template/nostotagging/order.phtml b/app/design/frontend/base/default/template/nostotagging/order.phtml index 2945516c..9822f18d 100644 --- a/app/design/frontend/base/default/template/nostotagging/order.phtml +++ b/app/design/frontend/base/default/template/nostotagging/order.phtml @@ -19,8 +19,8 @@ * needs please refer to http://www.magentocommerce.com for more information. * * @category design - * @package base_default - * @copyright Copyright (c) 2013 Nosto Solutions Ltd (http://www.nosto.com) + * @package frontend_base_default + * @copyright Copyright (c) 2013-2015 Nosto Solutions Ltd (http://www.nosto.com) * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ ?> diff --git a/app/design/frontend/base/default/template/nostotagging/product.phtml b/app/design/frontend/base/default/template/nostotagging/product.phtml index d0bacf0a..0844d875 100644 --- a/app/design/frontend/base/default/template/nostotagging/product.phtml +++ b/app/design/frontend/base/default/template/nostotagging/product.phtml @@ -19,8 +19,8 @@ * needs please refer to http://www.magentocommerce.com for more information. * * @category design - * @package base_default - * @copyright Copyright (c) 2013 Nosto Solutions Ltd (http://www.nosto.com) + * @package frontend_base_default + * @copyright Copyright (c) 2013-2015 Nosto Solutions Ltd (http://www.nosto.com) * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ ?> diff --git a/app/etc/modules/Nosto_Tagging.xml b/app/etc/modules/Nosto_Tagging.xml index 0e9dfab1..e0e08141 100644 --- a/app/etc/modules/Nosto_Tagging.xml +++ b/app/etc/modules/Nosto_Tagging.xml @@ -21,7 +21,7 @@ * * @category Nosto * @package Nosto_Tagging - * @copyright Copyright (c) 2013 Nosto Solutions Ltd (http://www.nosto.com) + * @copyright Copyright (c) 2013-2015 Nosto Solutions Ltd (http://www.nosto.com) * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ --> diff --git a/js/nostotagging-config.js b/js/nostotagging-config.js index 3be48122..ae8664aa 100644 --- a/js/nostotagging-config.js +++ b/js/nostotagging-config.js @@ -19,7 +19,7 @@ * * @category Nosto * @package Nosto_Tagging - * @copyright Copyright (c) 2013 Nosto Solutions Ltd (http://www.nosto.com) + * @copyright Copyright (c) 2013-2015 Nosto Solutions Ltd (http://www.nosto.com) * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ From dcc90eca06638ad4cac071a31e9eb027f87cdc79 Mon Sep 17 00:00:00 2001 From: Christoffer Lindqvist Date: Tue, 13 Jan 2015 15:59:15 +0200 Subject: [PATCH 39/71] Update admin cal for menu item --- .../community/Nosto/Tagging/etc/adminhtml.xml | 15 ++++----------- 1 file changed, 4 insertions(+), 11 deletions(-) diff --git a/app/code/community/Nosto/Tagging/etc/adminhtml.xml b/app/code/community/Nosto/Tagging/etc/adminhtml.xml index c5a8f58a..a4d39acc 100644 --- a/app/code/community/Nosto/Tagging/etc/adminhtml.xml +++ b/app/code/community/Nosto/Tagging/etc/adminhtml.xml @@ -37,17 +37,10 @@ - - - - - - Nosto Tagging - - - - - + + Nosto + 500 + From 8da3c892cfaaba1d5f7db0c7b57e81fc0ff84a9e Mon Sep 17 00:00:00 2001 From: Mridang Agarwalla Date: Wed, 14 Jan 2015 10:05:29 +0200 Subject: [PATCH 40/71] Fix wizard view logic error --- .../default/default/template/nostotagging/wizard.phtml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/design/adminhtml/default/default/template/nostotagging/wizard.phtml b/app/design/adminhtml/default/default/template/nostotagging/wizard.phtml index 92868868..2df17166 100644 --- a/app/design/adminhtml/default/default/template/nostotagging/wizard.phtml +++ b/app/design/adminhtml/default/default/template/nostotagging/wizard.phtml @@ -39,7 +39,7 @@ $nostoHelper = Mage::helper('nosto_tagging'); getChildHtml('store_switcher'); ?>
- getAccount() !== null): ?> + getAccount() === null): ?>

__('Add Nosto to your %s shop', $nostoHelper->escapeHtml(Mage::app()->getStore()->getName()));?>

__('Do you have an existing Nosto account?');?>

From afcae28c87ed8904486d48c1fa9c72a40269bb27 Mon Sep 17 00:00:00 2001 From: Mridang Agarwalla Date: Wed, 14 Jan 2015 11:23:04 +0200 Subject: [PATCH 41/71] Fix for module version getter --- app/code/community/Nosto/Tagging/Model/Meta/Account/Iframe.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/code/community/Nosto/Tagging/Model/Meta/Account/Iframe.php b/app/code/community/Nosto/Tagging/Model/Meta/Account/Iframe.php index 1cb441bd..4ff95987 100644 --- a/app/code/community/Nosto/Tagging/Model/Meta/Account/Iframe.php +++ b/app/code/community/Nosto/Tagging/Model/Meta/Account/Iframe.php @@ -239,7 +239,7 @@ public function getVersionPlatform() public function getVersionModule() { // Path is hard-coded to be like in "etc/config.xml". - return Mage::getConfig()->getNode()->modules->Nosto_Tagging->version; + return (string)Mage::getConfig()->getNode('modules/Nosto_Tagging/version'); } /** From 0bdd97700c95f4ddeda3ab9e5cdf2802f37f03e4 Mon Sep 17 00:00:00 2001 From: Mridang Agarwalla Date: Wed, 14 Jan 2015 11:32:15 +0200 Subject: [PATCH 42/71] Added the store_to_url parameter to the OAuth redirect URL --- app/code/community/Nosto/Tagging/Model/Meta/Oauth.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/code/community/Nosto/Tagging/Model/Meta/Oauth.php b/app/code/community/Nosto/Tagging/Model/Meta/Oauth.php index adec0229..c8533e54 100644 --- a/app/code/community/Nosto/Tagging/Model/Meta/Oauth.php +++ b/app/code/community/Nosto/Tagging/Model/Meta/Oauth.php @@ -51,7 +51,7 @@ public function __construct() { parent::__construct(); - $this->redirectUrl = Mage::getUrl('nosto/oauth', array('_store' => Mage::app()->getStore()->getId())); + $this->redirectUrl = Mage::getUrl('nosto/oauth', array('_store' => Mage::app()->getStore()->getId(), '_store_to_url' => true)); $this->languageIsoCode = substr(Mage::app()->getLocale()->getLocaleCode(), 0, 2); } From 977a63763f8396ab3e78de37f0027c702003fa13 Mon Sep 17 00:00:00 2001 From: Mridang Agarwalla Date: Wed, 14 Jan 2015 11:43:36 +0200 Subject: [PATCH 43/71] Added the store group name to the account name. --- app/code/community/Nosto/Tagging/Model/Meta/Account.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/code/community/Nosto/Tagging/Model/Meta/Account.php b/app/code/community/Nosto/Tagging/Model/Meta/Account.php index 746994a0..0f7d58d0 100644 --- a/app/code/community/Nosto/Tagging/Model/Meta/Account.php +++ b/app/code/community/Nosto/Tagging/Model/Meta/Account.php @@ -87,7 +87,7 @@ public function __construct() parent::__construct(); $store = Mage::app()->getStore(); - $this->title = $store->getWebsite()->getName() . ' - ' . $store->getName(); + $this->title = $store->getWebsite()->getName() . ' - ' . $store->getGroup()->getName() . ' - ' . $store->getName(); $this->name = substr(sha1(rand()), 0, 8); $this->frontPageUrl = NostoHttpRequest::replaceQueryParamInUrl('___store', $store->getCode(), $store->getBaseUrl(Mage_Core_Model_Store::URL_TYPE_WEB)); $this->currencyCode = $store->getBaseCurrencyCode(); From efcfaa36afafe343474d5e1f40972097462346a5 Mon Sep 17 00:00:00 2001 From: Mridang Agarwalla Date: Wed, 14 Jan 2015 12:43:31 +0200 Subject: [PATCH 44/71] Convert brand name to string so that default value false (boolean) will be converted to an empty string --- app/code/community/Nosto/Tagging/Model/Meta/Product.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/code/community/Nosto/Tagging/Model/Meta/Product.php b/app/code/community/Nosto/Tagging/Model/Meta/Product.php index 83b26399..afb3536b 100644 --- a/app/code/community/Nosto/Tagging/Model/Meta/Product.php +++ b/app/code/community/Nosto/Tagging/Model/Meta/Product.php @@ -252,7 +252,7 @@ public function loadData(Mage_Catalog_Model_Product $product) $this->categories = $this->getProductCategories($product); $this->description = $product->getDescription(); - $this->brand = $product->getAttributeText('manufacturer'); + $this->brand = (string)$product->getAttributeText('manufacturer'); $this->datePublished = $product->getCreatedAt(); } From acc7dd28b6422a789b8b8cc6162b9f7c0aed48df Mon Sep 17 00:00:00 2001 From: Christoffer Lindqvist Date: Wed, 14 Jan 2015 17:00:00 +0200 Subject: [PATCH 45/71] Add missing rec divs on front page --- .../base/default/layout/nostotagging.xml | 35 +++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/app/design/frontend/base/default/layout/nostotagging.xml b/app/design/frontend/base/default/layout/nostotagging.xml index 797da32f..d787b831 100644 --- a/app/design/frontend/base/default/layout/nostotagging.xml +++ b/app/design/frontend/base/default/layout/nostotagging.xml @@ -126,6 +126,41 @@ + + + + + + + div_id + frontpage-nosto-1 + + + + + div_id + frontpage-nosto-2 + + + + + div_id + frontpage-nosto-3 + + + + + div_id + frontpage-nosto-4 + + + + + From 5d560377892d176e6e0af3a146bf08f02c17e309 Mon Sep 17 00:00:00 2001 From: Christoffer Lindqvist Date: Wed, 14 Jan 2015 17:08:08 +0200 Subject: [PATCH 46/71] Tag empty shopping carts --- app/code/community/Nosto/Tagging/Block/Cart.php | 5 +++-- .../frontend/base/default/template/nostotagging/cart.phtml | 4 +--- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/app/code/community/Nosto/Tagging/Block/Cart.php b/app/code/community/Nosto/Tagging/Block/Cart.php index 5738df3d..96b4a1b2 100644 --- a/app/code/community/Nosto/Tagging/Block/Cart.php +++ b/app/code/community/Nosto/Tagging/Block/Cart.php @@ -50,7 +50,6 @@ protected function _toHtml() { if (!Mage::helper('nosto_tagging')->isModuleEnabled() || !Mage::helper('nosto_tagging/account')->existsAndIsConnected() - || count($this->getItems()) === 0 ) { return ''; } @@ -62,7 +61,9 @@ protected function _toHtml() // The ideal place to run it would be once when the customer goes to the `checkout/cart` page, but there are // no events that are fired on that page only, and the cart page recommendation elements we output come // through a generic block that cannot be used for this specific action. - Mage::helper('nosto_tagging/customer')->updateNostoId(); + if (count($this->getItems()) > 0) { + Mage::helper('nosto_tagging/customer')->updateNostoId(); + } return parent::_toHtml(); } diff --git a/app/design/frontend/base/default/template/nostotagging/cart.phtml b/app/design/frontend/base/default/template/nostotagging/cart.phtml index a27bff6b..e3e478a8 100644 --- a/app/design/frontend/base/default/template/nostotagging/cart.phtml +++ b/app/design/frontend/base/default/template/nostotagging/cart.phtml @@ -37,7 +37,6 @@ $nostoHelper = Mage::helper('nosto_tagging'); $nostoPriceHelper = Mage::helper('nosto_tagging/price'); ?> - -
- \ No newline at end of file +
\ No newline at end of file From 4b12cf53df22bcad6b5ebb36e5fa409255abb9c2 Mon Sep 17 00:00:00 2001 From: Christoffer Lindqvist Date: Wed, 14 Jan 2015 17:46:04 +0200 Subject: [PATCH 47/71] Fixed history data export collection offset --- .../Tagging/controllers/ExportController.php | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/app/code/community/Nosto/Tagging/controllers/ExportController.php b/app/code/community/Nosto/Tagging/controllers/ExportController.php index 8450f04c..92bb1b6c 100644 --- a/app/code/community/Nosto/Tagging/controllers/ExportController.php +++ b/app/code/community/Nosto/Tagging/controllers/ExportController.php @@ -44,12 +44,17 @@ class Nosto_tagging_ExportController extends Mage_Core_Controller_Front_Action public function orderAction() { if (Mage::helper('nosto_tagging')->isModuleEnabled()) { + $pageSize = (int)$this->getRequest()->getParam('limit', 100); + $currentPage = (int)$this->getRequest()->getParam('offset', 0) + 1; $orders = Mage::getModel('sales/order') ->getCollection() ->addFieldToFilter('store_id', Mage::app()->getStore()->getId()) ->addAttributeToFilter('status', Mage_Sales_Model_Order::STATE_COMPLETE) - ->setPageSize((int)$this->getRequest()->getParam('limit', 100)) - ->setCurPage((int)$this->getRequest()->getParam('offset', 1)); + ->setPageSize($pageSize) + ->setCurPage($currentPage); + if ($currentPage > $orders->getLastPageNumber()) { + $orders = array(); + } $collection = new NostoExportOrderCollection(); foreach ($orders as $order) { $meta = new Nosto_Tagging_Model_Meta_Order(); @@ -67,14 +72,19 @@ public function orderAction() public function productAction() { if (Mage::helper('nosto_tagging')->isModuleEnabled()) { + $pageSize = (int)$this->getRequest()->getParam('limit', 100); + $currentPage = (int)$this->getRequest()->getParam('offset', 0) + 1; $products = Mage::getModel('catalog/product') ->getCollection() ->addStoreFilter(Mage::app()->getStore()->getId()) ->addAttributeToSelect('*') ->addAttributeToFilter('status', array('eq' => Mage_Catalog_Model_Product_Status::STATUS_ENABLED)) ->addFieldToFilter('visibility', Mage_Catalog_Model_Product_Visibility::VISIBILITY_BOTH) - ->setPageSize((int)$this->getRequest()->getParam('limit', 100)) - ->setCurPage((int)$this->getRequest()->getParam('offset', 1)); + ->setPageSize($pageSize) + ->setCurPage($currentPage); + if ($currentPage > $products->getLastPageNumber()) { + $products = array(); + } $collection = new NostoExportProductCollection(); foreach ($products as $product) { if ($product->getTypeId() === Mage_Catalog_Model_Product_Type::TYPE_BUNDLE From bc2f5bbbb8b3dd44694e4e63290e9593fe5c8c37 Mon Sep 17 00:00:00 2001 From: Christoffer Lindqvist Date: Wed, 14 Jan 2015 18:05:34 +0200 Subject: [PATCH 48/71] Update copyrights --- app/code/community/Nosto/Tagging/Helper/Customer.php | 2 +- app/code/community/Nosto/Tagging/Helper/Date.php | 2 +- app/code/community/Nosto/Tagging/Model/Customer.php | 2 +- app/code/community/Nosto/Tagging/Model/Meta/Order.php | 2 +- app/code/community/Nosto/Tagging/Model/Meta/Order/Buyer.php | 2 +- app/code/community/Nosto/Tagging/Model/Meta/Order/Item.php | 2 +- app/code/community/Nosto/Tagging/Model/Meta/Product.php | 2 +- .../community/Nosto/Tagging/Model/Resource/Customer.php | 2 +- .../Nosto/Tagging/Model/Resource/Customer/Collection.php | 2 +- .../Nosto/Tagging/controllers/ExportController.php | 6 +++--- .../Tagging/sql/tagging_setup/mysql4-install-1.2.0.php | 2 +- 11 files changed, 13 insertions(+), 13 deletions(-) diff --git a/app/code/community/Nosto/Tagging/Helper/Customer.php b/app/code/community/Nosto/Tagging/Helper/Customer.php index ed7f8d69..e7b1cded 100644 --- a/app/code/community/Nosto/Tagging/Helper/Customer.php +++ b/app/code/community/Nosto/Tagging/Helper/Customer.php @@ -20,7 +20,7 @@ * * @category Nosto * @package Nosto_Tagging - * @copyright Copyright (c) 2015 Nosto Solutions Ltd (http://www.nosto.com) + * @copyright Copyright (c) 2013-2015 Nosto Solutions Ltd (http://www.nosto.com) * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ diff --git a/app/code/community/Nosto/Tagging/Helper/Date.php b/app/code/community/Nosto/Tagging/Helper/Date.php index 4fa1ff62..139e2b7a 100644 --- a/app/code/community/Nosto/Tagging/Helper/Date.php +++ b/app/code/community/Nosto/Tagging/Helper/Date.php @@ -20,7 +20,7 @@ * * @category Nosto * @package Nosto_Tagging - * @copyright Copyright (c) 2013 Nosto Solutions Ltd (http://www.nosto.com) + * @copyright Copyright (c) 2013-2015 Nosto Solutions Ltd (http://www.nosto.com) * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ diff --git a/app/code/community/Nosto/Tagging/Model/Customer.php b/app/code/community/Nosto/Tagging/Model/Customer.php index c7581353..e07c0894 100644 --- a/app/code/community/Nosto/Tagging/Model/Customer.php +++ b/app/code/community/Nosto/Tagging/Model/Customer.php @@ -20,7 +20,7 @@ * * @category Nosto * @package Nosto_Tagging - * @copyright Copyright (c) 2015 Nosto Solutions Ltd (http://www.nosto.com) + * @copyright Copyright (c) 2013-2015 Nosto Solutions Ltd (http://www.nosto.com) * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ diff --git a/app/code/community/Nosto/Tagging/Model/Meta/Order.php b/app/code/community/Nosto/Tagging/Model/Meta/Order.php index 1d635e07..69626350 100644 --- a/app/code/community/Nosto/Tagging/Model/Meta/Order.php +++ b/app/code/community/Nosto/Tagging/Model/Meta/Order.php @@ -20,7 +20,7 @@ * * @category Nosto * @package Nosto_Tagging - * @copyright Copyright (c) 2015 Nosto Solutions Ltd (http://www.nosto.com) + * @copyright Copyright (c) 2013-2015 Nosto Solutions Ltd (http://www.nosto.com) * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ diff --git a/app/code/community/Nosto/Tagging/Model/Meta/Order/Buyer.php b/app/code/community/Nosto/Tagging/Model/Meta/Order/Buyer.php index f94a55d6..bac9bcb4 100644 --- a/app/code/community/Nosto/Tagging/Model/Meta/Order/Buyer.php +++ b/app/code/community/Nosto/Tagging/Model/Meta/Order/Buyer.php @@ -20,7 +20,7 @@ * * @category Nosto * @package Nosto_Tagging - * @copyright Copyright (c) 2015 Nosto Solutions Ltd (http://www.nosto.com) + * @copyright Copyright (c) 2013-2015 Nosto Solutions Ltd (http://www.nosto.com) * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ diff --git a/app/code/community/Nosto/Tagging/Model/Meta/Order/Item.php b/app/code/community/Nosto/Tagging/Model/Meta/Order/Item.php index 819a013a..50ddc6f6 100644 --- a/app/code/community/Nosto/Tagging/Model/Meta/Order/Item.php +++ b/app/code/community/Nosto/Tagging/Model/Meta/Order/Item.php @@ -20,7 +20,7 @@ * * @category Nosto * @package Nosto_Tagging - * @copyright Copyright (c) 2015 Nosto Solutions Ltd (http://www.nosto.com) + * @copyright Copyright (c) 2013-2015 Nosto Solutions Ltd (http://www.nosto.com) * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ diff --git a/app/code/community/Nosto/Tagging/Model/Meta/Product.php b/app/code/community/Nosto/Tagging/Model/Meta/Product.php index afb3536b..896aaf91 100644 --- a/app/code/community/Nosto/Tagging/Model/Meta/Product.php +++ b/app/code/community/Nosto/Tagging/Model/Meta/Product.php @@ -20,7 +20,7 @@ * * @category Nosto * @package Nosto_Tagging - * @copyright Copyright (c) 2015 Nosto Solutions Ltd (http://www.nosto.com) + * @copyright Copyright (c) 2013-2015 Nosto Solutions Ltd (http://www.nosto.com) * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ diff --git a/app/code/community/Nosto/Tagging/Model/Resource/Customer.php b/app/code/community/Nosto/Tagging/Model/Resource/Customer.php index 10586783..796a71e5 100644 --- a/app/code/community/Nosto/Tagging/Model/Resource/Customer.php +++ b/app/code/community/Nosto/Tagging/Model/Resource/Customer.php @@ -20,7 +20,7 @@ * * @category Nosto * @package Nosto_Tagging - * @copyright Copyright (c) 2015 Nosto Solutions Ltd (http://www.nosto.com) + * @copyright Copyright (c) 2013-2015 Nosto Solutions Ltd (http://www.nosto.com) * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ diff --git a/app/code/community/Nosto/Tagging/Model/Resource/Customer/Collection.php b/app/code/community/Nosto/Tagging/Model/Resource/Customer/Collection.php index be9cc988..b761d2be 100644 --- a/app/code/community/Nosto/Tagging/Model/Resource/Customer/Collection.php +++ b/app/code/community/Nosto/Tagging/Model/Resource/Customer/Collection.php @@ -20,7 +20,7 @@ * * @category Nosto * @package Nosto_Tagging - * @copyright Copyright (c) 2015 Nosto Solutions Ltd (http://www.nosto.com) + * @copyright Copyright (c) 2013-2015 Nosto Solutions Ltd (http://www.nosto.com) * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ diff --git a/app/code/community/Nosto/Tagging/controllers/ExportController.php b/app/code/community/Nosto/Tagging/controllers/ExportController.php index 92bb1b6c..ee644442 100644 --- a/app/code/community/Nosto/Tagging/controllers/ExportController.php +++ b/app/code/community/Nosto/Tagging/controllers/ExportController.php @@ -18,9 +18,9 @@ * versions in the future. If you wish to customize Magento for your * needs please refer to http://www.magentocommerce.com for more information. * - * @category design - * @package base_default - * @copyright Copyright (c) 2013 Nosto Solutions Ltd (http://www.nosto.com) + * @category Nosto + * @package Nosto_Tagging + * @copyright Copyright (c) 2013-2015 Nosto Solutions Ltd (http://www.nosto.com) * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ diff --git a/app/code/community/Nosto/Tagging/sql/tagging_setup/mysql4-install-1.2.0.php b/app/code/community/Nosto/Tagging/sql/tagging_setup/mysql4-install-1.2.0.php index 546f3c81..e43680ec 100644 --- a/app/code/community/Nosto/Tagging/sql/tagging_setup/mysql4-install-1.2.0.php +++ b/app/code/community/Nosto/Tagging/sql/tagging_setup/mysql4-install-1.2.0.php @@ -20,7 +20,7 @@ * * @category Nosto * @package Nosto_Tagging - * @copyright Copyright (c) 2015 Nosto Solutions Ltd (http://www.nosto.com) + * @copyright Copyright (c) 2013-2015 Nosto Solutions Ltd (http://www.nosto.com) * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ From 3787d6928c68bbc04fc1d72cecfd08bca713c92c Mon Sep 17 00:00:00 2001 From: Christoffer Lindqvist Date: Wed, 14 Jan 2015 18:24:08 +0200 Subject: [PATCH 49/71] Improve "Account settings" button location and add "Back" button when on the account settings page --- .../nostotagging/form/account/remove.phtml | 1 - .../template/nostotagging/wizard.phtml | 29 +++++++++++++++---- js/nostotagging-config.js | 12 ++++++-- 3 files changed, 33 insertions(+), 9 deletions(-) diff --git a/app/design/adminhtml/default/default/template/nostotagging/form/account/remove.phtml b/app/design/adminhtml/default/default/template/nostotagging/form/account/remove.phtml index f555ff23..d3e3a98b 100644 --- a/app/design/adminhtml/default/default/template/nostotagging/form/account/remove.phtml +++ b/app/design/adminhtml/default/default/template/nostotagging/form/account/remove.phtml @@ -37,7 +37,6 @@ $nostoHelper = Mage::helper('nosto_tagging');

__('Your account ID is %s', $nostoHelper->escapeHtml($this->getAccountName())); ?>

__('If you want to change the account, you need to remove the existing one first'); ?>

- __('Back'); ?> getFormHtml(); ?>
\ No newline at end of file diff --git a/app/design/adminhtml/default/default/template/nostotagging/wizard.phtml b/app/design/adminhtml/default/default/template/nostotagging/wizard.phtml index 2df17166..0ac40d02 100644 --- a/app/design/adminhtml/default/default/template/nostotagging/wizard.phtml +++ b/app/design/adminhtml/default/default/template/nostotagging/wizard.phtml @@ -33,7 +33,29 @@ $nostoHelper = Mage::helper('nosto_tagging'); ?>
-

__('Nosto'); ?>

+ + + + + + + +
+

__('Nosto'); ?>

+
+ getAccount() !== null): ?> + + + + + +
isSingleStoreMode() ): ?> getChildHtml('store_switcher'); ?> @@ -53,11 +75,6 @@ $nostoHelper = Mage::helper('nosto_tagging');
-
getChildHtml('nosto.form.account.remove'); ?>
getIframeUrl()): ?> diff --git a/js/nostotagging-config.js b/js/nostotagging-config.js index ae8664aa..a4501aa3 100644 --- a/js/nostotagging-config.js +++ b/js/nostotagging-config.js @@ -44,10 +44,14 @@ document.observe("dom:loaded", function() { $("nosto_account_settings").on("click", function(event) { event.preventDefault(); var iframe = $("nosto_iframe_container"), - installedView = $("nosto_installed"); + installedView = $("nosto_installed"), + backButton = $("nosto_back_to_iframe"), + settingsButton = $("nosto_account_settings"); if (installedView && iframe) { installedView.show(); + backButton.show(); iframe.hide(); + settingsButton.hide(); } }); } @@ -56,10 +60,14 @@ document.observe("dom:loaded", function() { $("nosto_back_to_iframe").on("click", function(event) { event.preventDefault(); var iframe = $("nosto_iframe_container"), - installedView = $("nosto_installed"); + installedView = $("nosto_installed"), + backButton = $("nosto_back_to_iframe"), + settingsButton = $("nosto_account_settings"); if (installedView && iframe) { iframe.show(); + settingsButton.show(); installedView.hide(); + backButton.hide(); } }); } From ffd04c65552c96de5edab0b7b9de99c47079d942 Mon Sep 17 00:00:00 2001 From: Christoffer Lindqvist Date: Sun, 18 Jan 2015 12:23:39 +0200 Subject: [PATCH 50/71] Add upgrade script when upgrading the module from version 1.1.7 --- .../tagging_setup/mysql4-install-1.2.0.php | 3 + .../mysql4-upgrade-1.1.7-1.2.0.php | 66 +++++++++++++++++++ 2 files changed, 69 insertions(+) create mode 100644 app/code/community/Nosto/Tagging/sql/tagging_setup/mysql4-upgrade-1.1.7-1.2.0.php diff --git a/app/code/community/Nosto/Tagging/sql/tagging_setup/mysql4-install-1.2.0.php b/app/code/community/Nosto/Tagging/sql/tagging_setup/mysql4-install-1.2.0.php index e43680ec..1cb33c05 100644 --- a/app/code/community/Nosto/Tagging/sql/tagging_setup/mysql4-install-1.2.0.php +++ b/app/code/community/Nosto/Tagging/sql/tagging_setup/mysql4-install-1.2.0.php @@ -25,6 +25,9 @@ */ /** + * This install script will run only when installing the module with version 1.2.0 or above, + * i.e. when no "tagging_setup" entry is present in the `core_resource` table. + * * Creates the db table needed for matching Magento shopping cart quotes to nosto customer ids. * * @var Nosto_Tagging_Model_Resource_Setup $installer diff --git a/app/code/community/Nosto/Tagging/sql/tagging_setup/mysql4-upgrade-1.1.7-1.2.0.php b/app/code/community/Nosto/Tagging/sql/tagging_setup/mysql4-upgrade-1.1.7-1.2.0.php new file mode 100644 index 00000000..90aa91b7 --- /dev/null +++ b/app/code/community/Nosto/Tagging/sql/tagging_setup/mysql4-upgrade-1.1.7-1.2.0.php @@ -0,0 +1,66 @@ +startSetup(); + +$table = $installer + ->getConnection() + ->newTable($installer->getTable('nosto_tagging/customer')) + ->addColumn('customer_id', Varien_Db_Ddl_Table::TYPE_INTEGER, 10, array( + 'unsigned' => true, + 'nullable' => false, + 'primary' => true, + 'identity' => true + )) + ->addColumn('quote_id', Varien_Db_Ddl_Table::TYPE_INTEGER, 10, array( + 'unsigned' => true, + 'nullable' => false + )) + ->addColumn('nosto_id', Varien_Db_Ddl_Table::TYPE_VARCHAR, 255, array( + 'nullable' => false + )) + ->addColumn('created_at', Varien_Db_Ddl_Table::TYPE_DATETIME, null, array( + 'nullable' => false + )) + ->addColumn('updated_at', Varien_Db_Ddl_Table::TYPE_DATETIME, null, array( + 'nullable' => true + )) + ->addIndex($installer->getIdxName('nosto_tagging/customer', array('quote_id', 'nosto_id'), + Varien_Db_Adapter_Interface::INDEX_TYPE_UNIQUE), array('quote_id', 'nosto_id'), array( + 'type' => Varien_Db_Adapter_Interface::INDEX_TYPE_UNIQUE + )); +$installer->getConnection()->createTable($table); + +$installer->endSetup(); From f34ba59c4ebf31b2ca2271da0e843bcf96e05dcb Mon Sep 17 00:00:00 2001 From: Christoffer Lindqvist Date: Sun, 18 Jan 2015 12:39:51 +0200 Subject: [PATCH 51/71] Delete all existing module configurations when upgrading the module from 1.1.7 --- .../Tagging/sql/tagging_setup/mysql4-upgrade-1.1.7-1.2.0.php | 3 +++ 1 file changed, 3 insertions(+) diff --git a/app/code/community/Nosto/Tagging/sql/tagging_setup/mysql4-upgrade-1.1.7-1.2.0.php b/app/code/community/Nosto/Tagging/sql/tagging_setup/mysql4-upgrade-1.1.7-1.2.0.php index 90aa91b7..248f48a9 100644 --- a/app/code/community/Nosto/Tagging/sql/tagging_setup/mysql4-upgrade-1.1.7-1.2.0.php +++ b/app/code/community/Nosto/Tagging/sql/tagging_setup/mysql4-upgrade-1.1.7-1.2.0.php @@ -27,6 +27,7 @@ /** * This upgrade script will run only when upgrading from version 1.1.7 to 1.2.0 or above. * + * Deletes all existing module configurations. * Creates the db table needed for matching Magento shopping cart quotes to nosto customer ids. * * @var Nosto_Tagging_Model_Resource_Setup $installer @@ -35,6 +36,8 @@ $installer = $this; $installer->startSetup(); +$installer->getConnection()->delete($installer->getTable('core/config_data'), '`path` LIKE "nosto_tagging/%"'); + $table = $installer ->getConnection() ->newTable($installer->getTable('nosto_tagging/customer')) From 657a91d555e7f2662caeed6075793643a4e705f7 Mon Sep 17 00:00:00 2001 From: Christoffer Lindqvist Date: Sun, 18 Jan 2015 12:54:01 +0200 Subject: [PATCH 52/71] Update the php-sdk to stable version 1.0.0 --- composer.json | 3 +-- composer.lock | 56 +++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 57 insertions(+), 2 deletions(-) create mode 100644 composer.lock diff --git a/composer.json b/composer.json index 4cce4585..e9a64fc0 100644 --- a/composer.json +++ b/composer.json @@ -2,7 +2,6 @@ "name": "nosto/nosto-magento-extension", "description": "Nosto Magento extension", "license": "OSL v3.0", - "minimum-stability": "dev", "repositories": [ { "type": "vcs", @@ -10,6 +9,6 @@ } ], "require": { - "nosto/php-sdk": "dev-develop" + "nosto/php-sdk": "1.0.0" } } \ No newline at end of file diff --git a/composer.lock b/composer.lock new file mode 100644 index 00000000..012977fd --- /dev/null +++ b/composer.lock @@ -0,0 +1,56 @@ +{ + "_readme": [ + "This file locks the dependencies of your project to a known state", + "Read more about it at http://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file", + "This file is @generated automatically" + ], + "hash": "3f0311766f79e97d23259808a87c1d42", + "packages": [ + { + "name": "nosto/php-sdk", + "version": "1.0.0", + "source": { + "type": "git", + "url": "git@github.com:Nosto/php-sdk.git", + "reference": "98e088caef084b5882bd5afcfe76df57b26f07ea" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/Nosto/php-sdk/zipball/98e088caef084b5882bd5afcfe76df57b26f07ea", + "reference": "98e088caef084b5882bd5afcfe76df57b26f07ea", + "shasum": "" + }, + "require-dev": { + "codeception/codeception": "@stable", + "codeception/specify": "@stable" + }, + "type": "library", + "license": [ + "BSD-3-Clause" + ], + "description": "PHP SDK for developing Nosto modules for e-commerce platforms", + "support": { + "source": "https://github.com/Nosto/php-sdk/tree/1.0.0", + "issues": "https://github.com/Nosto/php-sdk/issues" + }, + "time": "2015-01-18 10:51:26" + } + ], + "packages-dev": [ + + ], + "aliases": [ + + ], + "minimum-stability": "stable", + "stability-flags": [ + + ], + "prefer-stable": false, + "platform": [ + + ], + "platform-dev": [ + + ] +} From d1ea4b20ea35b2bb21a64730099bd75ba02bcf39 Mon Sep 17 00:00:00 2001 From: Christoffer Lindqvist Date: Mon, 19 Jan 2015 09:44:53 +0200 Subject: [PATCH 53/71] Update readme --- README.md | 59 ++++++++++++++++++++++++++++++------------------------- 1 file changed, 32 insertions(+), 27 deletions(-) diff --git a/README.md b/README.md index b3d5a201..48cc4c94 100644 --- a/README.md +++ b/README.md @@ -6,19 +6,13 @@ If the store uses a layout similar to the Magento default layout, the required t to the correct places. If the layout is heavily customized, the tagging blocks must be added manually to the correct places in the layout. -The extension has 4 store specific settings in Magento Backend: - -* Nosto account name -* Enable/Disable Nosto tagging -* Nosto server name (default: connect.nosto.com) -* Collect email-addresses (default: Yes) - After Nosto tagging has been implemented to the store, Nosto can produce product recommendations and other elements back to the store. These elements are called Nosto elements and they can be added to the store by dropping simple placeholder div-elements to correct places in the store. By default the extension creates the following nosto elements: +* 4 elements on the front page ( "frontpage-nosto-1", "frontpage-nosto-2", "frontpage-nosto-3", "frontpage-nosto-4" ) * 3 elements to the product page ( "nosto-page-product1", "nosto-page-product2", "nosto-page-product3" ) * 3 elements to the shopping cart page ( "nosto-page-cart1", "nosto-page-car2, "nosto-page-cart3" ) * 2 elements to the product category page, top and bottom ( "nosto-page-category1" and "nosto-page-category2" ) @@ -47,26 +41,27 @@ layout: Please refer to the Magento documentation in order to get the module to appear in your site backend. -After installing the module, go to your site backend and navigate to the "System/Configuration/" section. Locate -the "Nosto Tagging" settings under the "Services" section of the configuration. The settings page for Nosto Tagging -contains four settings: - -* Enable/Disable switch - - This will enable/disable the extension output in the same way as the built-in "Disable Modules Output" setting -* Server address - - The Nosto server address - - Pre-filled, so no need to change this -* Account name - - Name of your Nosto account. If you do not have such an account yet, please refer to the Nosto documentation at - http://support.nosto.com. -* Collect email-addresses - - Enable triggered e-mail campaigns separately from the Nosto admin panel - - The default is "Yes" - -After entering your account information you can safely save the configuration. Now the extension is ready for use. -Please note that the extension will not make any visual changes to your shops front office at this time. This is normal -procedure as configurations in the Nosto backend are required for the extension to be able to show any product -recommendations. +After installing the module, go to your site backend and click the "Nosto" menu item in the top menu. If you cannot see +this menu item, please clear the cache and try again. On the settings page you can create a Nosto account or attach a +existing Nosto account to each store you have configured in Magento. You will need one Nosto account per store where +you want to use Nosto. + +In order to create a new account for a store, you first choose the store in the drop down menu at the top left of the +page. After this you choose "No" where it says "Do you have an existing Nosto account?". This shows you a input field, +where you should put the email address of the Nosto account owner, and a create button. Clocking this button will create +a new account through Nosto's API, and show you the configuration page for this account. You need to repeat this +procedure for each store you want to configure Nosto for. + +If you already have a Nosto account, you can attach it to any of your stores by simply choosing "Yes" where it says +"Do you have an existing Nosto account?" and clicking the add button. This will take you to Nosto where you need to +authenticate by logging in with your Nosto account credentials. After this you are presented with a choice of Nosto +accounts that are linked with your Nosto user. You need to choose the account you want to attach to your store and +click the accept button. This will take you back to your shops backend and you should see the configuration page for +you account. Please note that you can abort the "attaching process" at any time. + +Now the extension is ready for use. Please note that the extension will not make any visual changes to your shops front +office at this time. This is normal procedure as configurations in the Nosto backend are required for the extension to +be able to show any product recommendations. Please refer to the Nosto documentation, or contact Nosto support, for information and instructions on how to proceed: [Nosto support] (http://support.nosto.com) @@ -102,6 +97,16 @@ The extension is released under Open Software License ("OSL") v3.0 ## Changelog +### 1.2.0 +* New configuration page for the extension in the store backend +* Support for creating new Nosto accounts from the store backend +* Support for linking existing Nosto accounts from the store backend +* Support for German, Spanish and French localizations in the store backend +* Support for additional recommendation blocks on the shops home page +* Support for server-to-server order confirmations +* Support for order/product history data export upon Nosto account creation +* Support for product data re-crawling when product data changes in the store + ### 1.1.7 * Magento CE 1.9 dependency version fix From 40ecece3a084982c1fbc34e0417791156425af3c Mon Sep 17 00:00:00 2001 From: Christoffer Lindqvist Date: Mon, 19 Jan 2015 11:39:49 +0200 Subject: [PATCH 54/71] Coding standards --- .../Block/Adminhtml/Form/Account/Connect.php | 48 +- .../Block/Adminhtml/Form/Account/Create.php | 70 +-- .../Block/Adminhtml/Form/Account/Remove.php | 74 +-- .../Nosto/Tagging/Block/Adminhtml/Iframe.php | 26 +- .../Nosto/Tagging/Block/Adminhtml/Wizard.php | 84 +-- .../community/Nosto/Tagging/Block/Cart.php | 24 +- .../Nosto/Tagging/Block/Category.php | 6 +- .../Nosto/Tagging/Block/Customer.php | 2 +- .../community/Nosto/Tagging/Block/Element.php | 4 +- .../community/Nosto/Tagging/Block/Embed.php | 52 +- .../community/Nosto/Tagging/Block/Order.php | 16 +- .../community/Nosto/Tagging/Block/Product.php | 2 +- .../Nosto/Tagging/Helper/Account.php | 208 ++++---- .../Nosto/Tagging/Helper/Customer.php | 96 ++-- .../community/Nosto/Tagging/Helper/Data.php | 40 +- .../community/Nosto/Tagging/Helper/Date.php | 22 +- .../community/Nosto/Tagging/Helper/Oauth.php | 20 +- .../community/Nosto/Tagging/Helper/Price.php | 2 +- .../community/Nosto/Tagging/Helper/Url.php | 216 ++++---- .../Nosto/Tagging/Model/Customer.php | 14 +- .../Nosto/Tagging/Model/Meta/Account.php | 420 +++++++-------- .../Tagging/Model/Meta/Account/Billing.php | 72 +-- .../Tagging/Model/Meta/Account/Iframe.php | 492 ++++++++--------- .../Tagging/Model/Meta/Account/Owner.php | 160 +++--- .../Nosto/Tagging/Model/Meta/Oauth.php | 158 +++--- .../Nosto/Tagging/Model/Meta/Order.php | 258 ++++----- .../Nosto/Tagging/Model/Meta/Order/Buyer.php | 102 ++-- .../Nosto/Tagging/Model/Meta/Order/Item.php | 302 +++++------ .../Nosto/Tagging/Model/Meta/Product.php | 504 +++++++++--------- .../Nosto/Tagging/Model/Observer.php | 136 ++--- .../Nosto/Tagging/Model/Resource/Customer.php | 14 +- .../Model/Resource/Customer/Collection.php | 14 +- .../controllers/Adminhtml/NostoController.php | 190 +++---- .../Tagging/controllers/ExportController.php | 152 +++--- .../Tagging/controllers/OauthController.php | 90 ++-- .../tagging_setup/mysql4-install-1.2.0.php | 50 +- .../mysql4-upgrade-1.1.7-1.2.0.php | 50 +- 37 files changed, 2095 insertions(+), 2095 deletions(-) diff --git a/app/code/community/Nosto/Tagging/Block/Adminhtml/Form/Account/Connect.php b/app/code/community/Nosto/Tagging/Block/Adminhtml/Form/Account/Connect.php index 4ae25eb6..fa124c49 100644 --- a/app/code/community/Nosto/Tagging/Block/Adminhtml/Form/Account/Connect.php +++ b/app/code/community/Nosto/Tagging/Block/Adminhtml/Form/Account/Connect.php @@ -34,29 +34,29 @@ */ class Nosto_Tagging_Block_Adminhtml_Form_Account_Connect extends Mage_Adminhtml_Block_Widget_Form { - /** - * @inheritdoc - */ - protected function _prepareForm() - { - $form = new Varien_Data_Form(array( - 'id' => 'nosto_connect_account_form', - 'action' => $this->getUrl('*/*/connectAccount'), - 'method' => 'post', - 'enctype' => 'multipart/form-data' - )); - $form->setUseContainer(true); - $form->addField('store', 'hidden', array( - 'name' => 'store', - 'value' => $this->getRequest()->getParam('store', 0), - )); - $form->addField('nosto_connect_account_submit', 'submit', array( - 'class' => 'form-button', - 'name' => 'nosto_connect_account_submit', - 'value' => $this->__('Add Nosto'), - )); - $this->setForm($form); + /** + * @inheritdoc + */ + protected function _prepareForm() + { + $form = new Varien_Data_Form(array( + 'id' => 'nosto_connect_account_form', + 'action' => $this->getUrl('*/*/connectAccount'), + 'method' => 'post', + 'enctype' => 'multipart/form-data' + )); + $form->setUseContainer(true); + $form->addField('store', 'hidden', array( + 'name' => 'store', + 'value' => $this->getRequest()->getParam('store', 0), + )); + $form->addField('nosto_connect_account_submit', 'submit', array( + 'class' => 'form-button', + 'name' => 'nosto_connect_account_submit', + 'value' => $this->__('Add Nosto'), + )); + $this->setForm($form); - return parent::_prepareForm(); - } + return parent::_prepareForm(); + } } diff --git a/app/code/community/Nosto/Tagging/Block/Adminhtml/Form/Account/Create.php b/app/code/community/Nosto/Tagging/Block/Adminhtml/Form/Account/Create.php index 7f03becd..9d2a288c 100644 --- a/app/code/community/Nosto/Tagging/Block/Adminhtml/Form/Account/Create.php +++ b/app/code/community/Nosto/Tagging/Block/Adminhtml/Form/Account/Create.php @@ -34,40 +34,40 @@ */ class Nosto_Tagging_Block_Adminhtml_Form_Account_Create extends Mage_Adminhtml_Block_Widget_Form { - /** - * @inheritdoc - */ - protected function _prepareForm() - { - $form = new Varien_Data_Form(array( - 'id' => 'nosto_create_account_form', - 'action' => $this->getUrl('*/*/createAccount'), - 'method' => 'post', - 'enctype' => 'multipart/form-data' - )); - $form->setUseContainer(true); - $form->addField('store', 'hidden', array( - 'name' => 'store', - 'value' => $this->getRequest()->getParam('store', 0), - )); - /** @var Mage_Admin_Model_User $user */ - $user = Mage::getSingleton('admin/session')->getUser(); - $form->addField('nosto_create_account_email', 'text', array( - 'label' => $this->__('Email'), - 'name' => 'nosto_create_account_email', - 'value' => $user->getEmail(), - 'class' => 'required-entry validate-email', - )); - $form->addField('nosto_terms_and_conditions', 'note', array( - 'text' => $this->__('By creating a new account you agree to Nosto\'s') . ' ' . $this->__('Terms and Conditions') . '', - )); - $form->addField('nosto_create_account_submit', 'submit', array( - 'class' => 'form-button', - 'name' => 'nosto_create_account_submit', - 'value' => $this->__('Create Nosto'), - )); - $this->setForm($form); + /** + * @inheritdoc + */ + protected function _prepareForm() + { + $form = new Varien_Data_Form(array( + 'id' => 'nosto_create_account_form', + 'action' => $this->getUrl('*/*/createAccount'), + 'method' => 'post', + 'enctype' => 'multipart/form-data' + )); + $form->setUseContainer(true); + $form->addField('store', 'hidden', array( + 'name' => 'store', + 'value' => $this->getRequest()->getParam('store', 0), + )); + /** @var Mage_Admin_Model_User $user */ + $user = Mage::getSingleton('admin/session')->getUser(); + $form->addField('nosto_create_account_email', 'text', array( + 'label' => $this->__('Email'), + 'name' => 'nosto_create_account_email', + 'value' => $user->getEmail(), + 'class' => 'required-entry validate-email', + )); + $form->addField('nosto_terms_and_conditions', 'note', array( + 'text' => $this->__('By creating a new account you agree to Nosto\'s') . ' ' . $this->__('Terms and Conditions') . '', + )); + $form->addField('nosto_create_account_submit', 'submit', array( + 'class' => 'form-button', + 'name' => 'nosto_create_account_submit', + 'value' => $this->__('Create Nosto'), + )); + $this->setForm($form); - return parent::_prepareForm(); - } + return parent::_prepareForm(); + } } \ No newline at end of file diff --git a/app/code/community/Nosto/Tagging/Block/Adminhtml/Form/Account/Remove.php b/app/code/community/Nosto/Tagging/Block/Adminhtml/Form/Account/Remove.php index 6e18e8d7..491f0212 100644 --- a/app/code/community/Nosto/Tagging/Block/Adminhtml/Form/Account/Remove.php +++ b/app/code/community/Nosto/Tagging/Block/Adminhtml/Form/Account/Remove.php @@ -34,43 +34,43 @@ */ class Nosto_Tagging_Block_Adminhtml_Form_Account_Remove extends Mage_Adminhtml_Block_Widget_Form { - /** - * @inheritdoc - */ - protected function _prepareForm() - { - $form = new Varien_Data_Form(array( - 'id' => 'nosto_remove_account_form', - 'action' => $this->getUrl('*/*/removeAccount'), - 'method' => 'post', - 'enctype' => 'multipart/form-data' - )); - $form->setUseContainer(true); - $form->addField('store', 'hidden', array( - 'name' => 'store', - 'value' => $this->getRequest()->getParam('store', 0), - )); - $form->addField('nosto_remove_account_submit', 'submit', array( - 'class' => 'form-button', - 'name' => 'nosto_remove_account_submit', - 'value' => $this->__('Remove Nosto'), - )); - $this->setForm($form); + /** + * @inheritdoc + */ + protected function _prepareForm() + { + $form = new Varien_Data_Form(array( + 'id' => 'nosto_remove_account_form', + 'action' => $this->getUrl('*/*/removeAccount'), + 'method' => 'post', + 'enctype' => 'multipart/form-data' + )); + $form->setUseContainer(true); + $form->addField('store', 'hidden', array( + 'name' => 'store', + 'value' => $this->getRequest()->getParam('store', 0), + )); + $form->addField('nosto_remove_account_submit', 'submit', array( + 'class' => 'form-button', + 'name' => 'nosto_remove_account_submit', + 'value' => $this->__('Remove Nosto'), + )); + $this->setForm($form); - return parent::_prepareForm(); - } + return parent::_prepareForm(); + } - /** - * Gets the Nosto account name from the parent block, which should be Nosto_tagging_Block_Adminhtml_Wizard. - * - * @return string the account name or empty string if not found in parent. - */ - public function getAccountName() - { - $parent = $this->getParentBlock(); - if ($parent instanceof Nosto_tagging_Block_Adminhtml_Wizard) { - return $parent->getAccount()->name; - } - return ''; - } + /** + * Gets the Nosto account name from the parent block, which should be Nosto_tagging_Block_Adminhtml_Wizard. + * + * @return string the account name or empty string if not found in parent. + */ + public function getAccountName() + { + $parent = $this->getParentBlock(); + if ($parent instanceof Nosto_tagging_Block_Adminhtml_Wizard) { + return $parent->getAccount()->name; + } + return ''; + } } diff --git a/app/code/community/Nosto/Tagging/Block/Adminhtml/Iframe.php b/app/code/community/Nosto/Tagging/Block/Adminhtml/Iframe.php index 7a167418..b37ced88 100644 --- a/app/code/community/Nosto/Tagging/Block/Adminhtml/Iframe.php +++ b/app/code/community/Nosto/Tagging/Block/Adminhtml/Iframe.php @@ -34,17 +34,17 @@ */ class Nosto_tagging_Block_Adminhtml_Iframe extends Mage_Adminhtml_Block_Template { - /** - * Gets the iframe url from parent block, which should be Nosto_tagging_Block_Adminhtml_Wizard. - * - * @return string the iframe url or empty string if cannot be found in parent. - */ - public function getIframeUrl() - { - $parent = $this->getParentBlock(); - if ($parent instanceof Nosto_tagging_Block_Adminhtml_Wizard) { - return $parent->getIframeUrl(); - } - return ''; - } + /** + * Gets the iframe url from parent block, which should be Nosto_tagging_Block_Adminhtml_Wizard. + * + * @return string the iframe url or empty string if cannot be found in parent. + */ + public function getIframeUrl() + { + $parent = $this->getParentBlock(); + if ($parent instanceof Nosto_tagging_Block_Adminhtml_Wizard) { + return $parent->getIframeUrl(); + } + return ''; + } } diff --git a/app/code/community/Nosto/Tagging/Block/Adminhtml/Wizard.php b/app/code/community/Nosto/Tagging/Block/Adminhtml/Wizard.php index f0553b9c..ff963f30 100644 --- a/app/code/community/Nosto/Tagging/Block/Adminhtml/Wizard.php +++ b/app/code/community/Nosto/Tagging/Block/Adminhtml/Wizard.php @@ -34,49 +34,49 @@ */ class Nosto_tagging_Block_Adminhtml_Wizard extends Mage_Adminhtml_Block_Template { - /** - * @var NostoAccount the Nosto account for current store view scope. - */ - private $_account; + /** + * @var NostoAccount the Nosto account for current store view scope. + */ + private $_account; - /** - * @var string the iframe url if SSO to Nosto can be made. - */ - private $_iframeUrl; + /** + * @var string the iframe url if SSO to Nosto can be made. + */ + private $_iframeUrl; - /** - * Gets the iframe url for the account settings page from Nosto. - * This url is only returned if the current admin user can be logged in with SSO to Nosto. - * - * @return string the iframe url or empty string if it cannot be created. - */ - public function getIframeUrl() - { - if ($this->_iframeUrl !== null) { - return $this->_iframeUrl; - } - $account = $this->getAccount(); - if ($account) { - try { - $meta = new Nosto_Tagging_Model_Meta_Account_Iframe(); - return $this->_iframeUrl = $account->getIframeUrl($meta); - } catch (NostoException $e) { - Mage::log("\n" . $e->__toString(), Zend_Log::ERR, 'nostotagging.log'); - } - } - return $this->_iframeUrl = ''; - } + /** + * Gets the iframe url for the account settings page from Nosto. + * This url is only returned if the current admin user can be logged in with SSO to Nosto. + * + * @return string the iframe url or empty string if it cannot be created. + */ + public function getIframeUrl() + { + if ($this->_iframeUrl !== null) { + return $this->_iframeUrl; + } + $account = $this->getAccount(); + if ($account) { + try { + $meta = new Nosto_Tagging_Model_Meta_Account_Iframe(); + return $this->_iframeUrl = $account->getIframeUrl($meta); + } catch (NostoException $e) { + Mage::log("\n" . $e->__toString(), Zend_Log::ERR, 'nostotagging.log'); + } + } + return $this->_iframeUrl = ''; + } - /** - * Gets the Nosto account for the current active store view scope. - * - * @return NostoAccount|null the account or null if it cannot be found. - */ - public function getAccount() - { - if ($this->_account !== null) { - return $this->_account; - } - return $this->_account = Mage::helper('nosto_tagging/account')->find(); - } + /** + * Gets the Nosto account for the current active store view scope. + * + * @return NostoAccount|null the account or null if it cannot be found. + */ + public function getAccount() + { + if ($this->_account !== null) { + return $this->_account; + } + return $this->_account = Mage::helper('nosto_tagging/account')->find(); + } } diff --git a/app/code/community/Nosto/Tagging/Block/Cart.php b/app/code/community/Nosto/Tagging/Block/Cart.php index 96b4a1b2..df6b1322 100644 --- a/app/code/community/Nosto/Tagging/Block/Cart.php +++ b/app/code/community/Nosto/Tagging/Block/Cart.php @@ -49,21 +49,21 @@ class Nosto_Tagging_Block_Cart extends Mage_Checkout_Block_Cart_Abstract protected function _toHtml() { if (!Mage::helper('nosto_tagging')->isModuleEnabled() - || !Mage::helper('nosto_tagging/account')->existsAndIsConnected() - ) { + || !Mage::helper('nosto_tagging/account')->existsAndIsConnected() + ) { return ''; } - // If we have items in the cart, then update the Nosto customer quote link. - // This is done to enable server-to-server order confirmation requests once the quote is turned into an order. - // We do it here as this will be run on every request when we have a quote. This is important as the Nosto - // customer ID will change after a period of time while the Mage quote ID can be the same. - // The ideal place to run it would be once when the customer goes to the `checkout/cart` page, but there are - // no events that are fired on that page only, and the cart page recommendation elements we output come - // through a generic block that cannot be used for this specific action. - if (count($this->getItems()) > 0) { - Mage::helper('nosto_tagging/customer')->updateNostoId(); - } + // If we have items in the cart, then update the Nosto customer quote link. + // This is done to enable server-to-server order confirmation requests once the quote is turned into an order. + // We do it here as this will be run on every request when we have a quote. This is important as the Nosto + // customer ID will change after a period of time while the Mage quote ID can be the same. + // The ideal place to run it would be once when the customer goes to the `checkout/cart` page, but there are + // no events that are fired on that page only, and the cart page recommendation elements we output come + // through a generic block that cannot be used for this specific action. + if (count($this->getItems()) > 0) { + Mage::helper('nosto_tagging/customer')->updateNostoId(); + } return parent::_toHtml(); } diff --git a/app/code/community/Nosto/Tagging/Block/Category.php b/app/code/community/Nosto/Tagging/Block/Category.php index 383a76e0..58ff408c 100644 --- a/app/code/community/Nosto/Tagging/Block/Category.php +++ b/app/code/community/Nosto/Tagging/Block/Category.php @@ -49,9 +49,9 @@ class Nosto_Tagging_Block_Category extends Mage_Core_Block_Template protected function _toHtml() { if (!Mage::helper('nosto_tagging')->isModuleEnabled() - || !Mage::helper('nosto_tagging/account')->existsAndIsConnected() - || !$this->getCategory() - ) { + || !Mage::helper('nosto_tagging/account')->existsAndIsConnected() + || !$this->getCategory() + ) { return ''; } diff --git a/app/code/community/Nosto/Tagging/Block/Customer.php b/app/code/community/Nosto/Tagging/Block/Customer.php index cb51ad33..db612ea0 100644 --- a/app/code/community/Nosto/Tagging/Block/Customer.php +++ b/app/code/community/Nosto/Tagging/Block/Customer.php @@ -44,7 +44,7 @@ protected function _toHtml() { if (!$this->helper('customer')->isLoggedIn() || !$this->helper('nosto_tagging')->isModuleEnabled() - || !Mage::helper('nosto_tagging/account')->existsAndIsConnected() + || !Mage::helper('nosto_tagging/account')->existsAndIsConnected() ) { return ''; } diff --git a/app/code/community/Nosto/Tagging/Block/Element.php b/app/code/community/Nosto/Tagging/Block/Element.php index c91f1f9d..8258f552 100644 --- a/app/code/community/Nosto/Tagging/Block/Element.php +++ b/app/code/community/Nosto/Tagging/Block/Element.php @@ -49,8 +49,8 @@ class Nosto_Tagging_Block_Element extends Mage_Core_Block_Template protected function _toHtml() { if (!Mage::helper('nosto_tagging')->isModuleEnabled() - || !Mage::helper('nosto_tagging/account')->existsAndIsConnected() - ) { + || !Mage::helper('nosto_tagging/account')->existsAndIsConnected() + ) { return ''; } return parent::_toHtml(); diff --git a/app/code/community/Nosto/Tagging/Block/Embed.php b/app/code/community/Nosto/Tagging/Block/Embed.php index 477ca3cc..553df812 100644 --- a/app/code/community/Nosto/Tagging/Block/Embed.php +++ b/app/code/community/Nosto/Tagging/Block/Embed.php @@ -35,7 +35,7 @@ */ class Nosto_Tagging_Block_Embed extends Mage_Core_Block_Template { - const DEFAULT_SERVER_ADDRESS = 'connect.nosto.com'; + const DEFAULT_SERVER_ADDRESS = 'connect.nosto.com'; /** * Render JavaScript that handles the data gathering and displaying of recommended products @@ -46,36 +46,36 @@ class Nosto_Tagging_Block_Embed extends Mage_Core_Block_Template protected function _toHtml() { if (!Mage::helper('nosto_tagging')->isModuleEnabled() - || !Mage::helper('nosto_tagging/account')->existsAndIsConnected() - ) { + || !Mage::helper('nosto_tagging/account')->existsAndIsConnected() + ) { return ''; } return parent::_toHtml(); } - /** - * Gets the account name for the current store scope. - * - * @return string the account name or empty string if account is not found. - */ - public function getAccountName() - { - $account = Mage::helper('nosto_tagging/account')->find(); - if ($account !== null) { - return $account->name; - } - return ''; - } + /** + * Gets the account name for the current store scope. + * + * @return string the account name or empty string if account is not found. + */ + public function getAccountName() + { + $account = Mage::helper('nosto_tagging/account')->find(); + if ($account !== null) { + return $account->name; + } + return ''; + } - /** - * Gets the Nosto server address. - * This is either taken from the local environment if exists or else it defaults to "connect.nosto.com". - * - * @return string the url. - */ - public function getServerAddress() - { - return isset($_ENV['NOSTO_SERVER_URL']) ? $_ENV['NOSTO_SERVER_URL'] : self::DEFAULT_SERVER_ADDRESS; - } + /** + * Gets the Nosto server address. + * This is either taken from the local environment if exists or else it defaults to "connect.nosto.com". + * + * @return string the url. + */ + public function getServerAddress() + { + return isset($_ENV['NOSTO_SERVER_URL']) ? $_ENV['NOSTO_SERVER_URL'] : self::DEFAULT_SERVER_ADDRESS; + } } diff --git a/app/code/community/Nosto/Tagging/Block/Order.php b/app/code/community/Nosto/Tagging/Block/Order.php index 59f24cf3..17165fed 100644 --- a/app/code/community/Nosto/Tagging/Block/Order.php +++ b/app/code/community/Nosto/Tagging/Block/Order.php @@ -42,8 +42,8 @@ class Nosto_Tagging_Block_Order extends Mage_Checkout_Block_Success protected function _toHtml() { if (!Mage::helper('nosto_tagging')->isModuleEnabled() - || !Mage::helper('nosto_tagging/account')->existsAndIsConnected() - ) { + || !Mage::helper('nosto_tagging/account')->existsAndIsConnected() + ) { return ''; } @@ -118,8 +118,8 @@ protected function _orderModelToItem($model) { return (object)array( 'productId' => $this->getProductId($model), - 'quantity' => (int)$model->getQtyOrdered(), - 'name' => $model->getName(), + 'quantity' => (int)$model->getQtyOrdered(), + 'name' => $model->getName(), 'unitPrice' => $model->getPriceInclTax(), ); } @@ -140,8 +140,8 @@ protected function _getOrderSpecialItems($order) if ($discount = $order->getDiscountAmount()) { $items[] = (object)array( 'productId' => -1, - 'quantity' => 1, - 'name' => 'Discount', + 'quantity' => 1, + 'name' => 'Discount', 'unitPrice' => $discount, ); } @@ -149,8 +149,8 @@ protected function _getOrderSpecialItems($order) if ($shippingInclTax = $order->getShippingInclTax()) { $items[] = (object)array( 'productId' => -1, - 'quantity' => 1, - 'name' => 'Shipping and handling', + 'quantity' => 1, + 'name' => 'Shipping and handling', 'unitPrice' => $shippingInclTax, ); } diff --git a/app/code/community/Nosto/Tagging/Block/Product.php b/app/code/community/Nosto/Tagging/Block/Product.php index 2ceca4be..7c1680da 100644 --- a/app/code/community/Nosto/Tagging/Block/Product.php +++ b/app/code/community/Nosto/Tagging/Block/Product.php @@ -55,7 +55,7 @@ protected function _toHtml() { $product = $this->getProduct(); if (!Mage::helper('nosto_tagging')->isModuleEnabled() - || !Mage::helper('nosto_tagging/account')->existsAndIsConnected() + || !Mage::helper('nosto_tagging/account')->existsAndIsConnected() || ($product->getTypeId() === Mage_Catalog_Model_Product_Type::TYPE_BUNDLE && (int)$product->getPriceType() === Mage_Bundle_Model_Product_Price::PRICE_TYPE_FIXED) ) { diff --git a/app/code/community/Nosto/Tagging/Helper/Account.php b/app/code/community/Nosto/Tagging/Helper/Account.php index 8abc7582..c3355d1a 100644 --- a/app/code/community/Nosto/Tagging/Helper/Account.php +++ b/app/code/community/Nosto/Tagging/Helper/Account.php @@ -24,7 +24,7 @@ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ -require_once(Mage::getBaseDir('lib').'/nosto/php-sdk/src/config.inc.php'); +require_once(Mage::getBaseDir('lib') . '/nosto/php-sdk/src/config.inc.php'); /** * Helper class for managing Nosto accounts. @@ -36,113 +36,113 @@ */ class Nosto_Tagging_Helper_Account extends Mage_Core_Helper_Abstract { - /** - * Path to store config nosto account name. - */ - const XML_PATH_ACCOUNT = 'nosto_tagging/settings/account'; + /** + * Path to store config nosto account name. + */ + const XML_PATH_ACCOUNT = 'nosto_tagging/settings/account'; - /** - * Path to store config nosto account tokens. - */ - const XML_PATH_TOKENS = 'nosto_tagging/settings/tokens'; + /** + * Path to store config nosto account tokens. + */ + const XML_PATH_TOKENS = 'nosto_tagging/settings/tokens'; - /** - * Saves the account and the associated api tokens for the store view scope. - * - * @param NostoAccount $account the account to save. - * @param Mage_Core_Model_Store|null $store the store view to save it for (defaults to current). - * @return bool true on success, false otherwise. - */ - public function save(NostoAccount $account, Mage_Core_Model_Store $store = null) - { - if ($store === null) { - $store = Mage::app()->getStore(); - } - if ((int)$store->getId() < 1) { - return false; - } - /** @var Mage_Core_Model_Config $config */ - $config = Mage::getModel('core/config'); - $config->saveConfig(self::XML_PATH_ACCOUNT, $account->name, 'stores', $store->getId()); - $tokens = array(); - foreach ($account->tokens as $token) { - $tokens[$token->name] = $token->value; - } - $config->saveConfig(self::XML_PATH_TOKENS, json_encode($tokens), 'stores', $store->getId()); - Mage::app()->getCacheInstance()->cleanType('config'); - return true; - } + /** + * Saves the account and the associated api tokens for the store view scope. + * + * @param NostoAccount $account the account to save. + * @param Mage_Core_Model_Store|null $store the store view to save it for (defaults to current). + * @return bool true on success, false otherwise. + */ + public function save(NostoAccount $account, Mage_Core_Model_Store $store = null) + { + if ($store === null) { + $store = Mage::app()->getStore(); + } + if ((int)$store->getId() < 1) { + return false; + } + /** @var Mage_Core_Model_Config $config */ + $config = Mage::getModel('core/config'); + $config->saveConfig(self::XML_PATH_ACCOUNT, $account->name, 'stores', $store->getId()); + $tokens = array(); + foreach ($account->tokens as $token) { + $tokens[$token->name] = $token->value; + } + $config->saveConfig(self::XML_PATH_TOKENS, json_encode($tokens), 'stores', $store->getId()); + Mage::app()->getCacheInstance()->cleanType('config'); + return true; + } - /** - * Removes an account with associated api tokens for the store view scope. - * - * @param Mage_Core_Model_Store|null $store the store view to remove it for (defaults to current). - * @return bool true on success, false otherwise. - */ - public function remove(Mage_Core_Model_Store $store = null) - { - if ($store === null) { - $store = Mage::app()->getStore(); - } - if ((int)$store->getId() < 1) { - return false; - } - /** @var Mage_Core_Model_Config $config */ - $config = Mage::getModel('core/config'); - $config->saveConfig(self::XML_PATH_ACCOUNT, null, 'stores', $store->getId()); - $config->saveConfig(self::XML_PATH_TOKENS, null, 'stores', $store->getId()); - Mage::app()->getCacheInstance()->cleanType('config'); - return true; - } + /** + * Removes an account with associated api tokens for the store view scope. + * + * @param Mage_Core_Model_Store|null $store the store view to remove it for (defaults to current). + * @return bool true on success, false otherwise. + */ + public function remove(Mage_Core_Model_Store $store = null) + { + if ($store === null) { + $store = Mage::app()->getStore(); + } + if ((int)$store->getId() < 1) { + return false; + } + /** @var Mage_Core_Model_Config $config */ + $config = Mage::getModel('core/config'); + $config->saveConfig(self::XML_PATH_ACCOUNT, null, 'stores', $store->getId()); + $config->saveConfig(self::XML_PATH_TOKENS, null, 'stores', $store->getId()); + Mage::app()->getCacheInstance()->cleanType('config'); + return true; + } - /** - * Returns the account with associated api tokens for the store view scope. - * - * @param Mage_Core_Model_Store|null $store the store view to find the account for (defaults to current). - * @return NostoAccount|null the account or null if not found. - */ - public function find(Mage_Core_Model_Store $store = null) - { - if ($store === null) { - $store = Mage::app()->getStore(); - } - $accountName = $store->getConfig(self::XML_PATH_ACCOUNT); - if (!empty($accountName)) { - $account = new NostoAccount(); - $account->name = $accountName; - $tokens = json_decode($store->getConfig(self::XML_PATH_TOKENS), true); - if (is_array($tokens) && !empty($tokens)) { - foreach ($tokens as $name => $value) { - $token = new NostoApiToken(); - $token->name = $name; - $token->value = $value; - $account->tokens[] = $token; - } - } - return $account; - } - return null; - } + /** + * Returns the account with associated api tokens for the store view scope. + * + * @param Mage_Core_Model_Store|null $store the store view to find the account for (defaults to current). + * @return NostoAccount|null the account or null if not found. + */ + public function find(Mage_Core_Model_Store $store = null) + { + if ($store === null) { + $store = Mage::app()->getStore(); + } + $accountName = $store->getConfig(self::XML_PATH_ACCOUNT); + if (!empty($accountName)) { + $account = new NostoAccount(); + $account->name = $accountName; + $tokens = json_decode($store->getConfig(self::XML_PATH_TOKENS), true); + if (is_array($tokens) && !empty($tokens)) { + foreach ($tokens as $name => $value) { + $token = new NostoApiToken(); + $token->name = $name; + $token->value = $value; + $account->tokens[] = $token; + } + } + return $account; + } + return null; + } - /** - * Checks that an account exists for the given store and that it is connected to nosto. - * - * @param Mage_Core_Model_Store $store the store to check the account for (defaults to current active store). - * @return bool true if the account exists and is connected, false otherwise. - */ - public function existsAndIsConnected(Mage_Core_Model_Store $store = null) - { - $account = $this->find($store); - return ($account !== null && $account->isConnectedToNosto()); - } + /** + * Checks that an account exists for the given store and that it is connected to nosto. + * + * @param Mage_Core_Model_Store $store the store to check the account for (defaults to current active store). + * @return bool true if the account exists and is connected, false otherwise. + */ + public function existsAndIsConnected(Mage_Core_Model_Store $store = null) + { + $account = $this->find($store); + return ($account !== null && $account->isConnectedToNosto()); + } - /** - * Returns the meta data model needed for creating a new nosto account using the Nosto SDk. - * - * @return Nosto_Tagging_Model_Meta_Account the meta data instance. - */ - public function getMetaData() - { - return new Nosto_Tagging_Model_Meta_Account(); - } + /** + * Returns the meta data model needed for creating a new nosto account using the Nosto SDk. + * + * @return Nosto_Tagging_Model_Meta_Account the meta data instance. + */ + public function getMetaData() + { + return new Nosto_Tagging_Model_Meta_Account(); + } } diff --git a/app/code/community/Nosto/Tagging/Helper/Customer.php b/app/code/community/Nosto/Tagging/Helper/Customer.php index e7b1cded..75a10d63 100644 --- a/app/code/community/Nosto/Tagging/Helper/Customer.php +++ b/app/code/community/Nosto/Tagging/Helper/Customer.php @@ -33,54 +33,54 @@ */ class Nosto_Tagging_Helper_Customer extends Mage_Core_Helper_Abstract { - /** - * @var string the name of the cookie where the Nosto ID can be found. - */ - const COOKIE_NAME = '2c_cId'; + /** + * @var string the name of the cookie where the Nosto ID can be found. + */ + const COOKIE_NAME = '2c_cId'; - /** - * Gets the Nosto ID for an order model. - * The Nosto ID represents the customer who placed to the order on Nosto's side. - * - * @param Mage_Sales_Model_Order $order the order to get the Nosto ID for. - * @return bool|string the Nosto ID or false if not found for order. - */ - public function getNostoId(Mage_Sales_Model_Order $order) - { - /** @var Nosto_Tagging_Model_Customer $customer */ - $customer = Mage::getModel('nosto_tagging/customer'); - $customer->load($order->getQuoteId(), 'quote_id'); - return $customer->hasData('nosto_id') ? $customer->getNostoId() : false; - } + /** + * Gets the Nosto ID for an order model. + * The Nosto ID represents the customer who placed to the order on Nosto's side. + * + * @param Mage_Sales_Model_Order $order the order to get the Nosto ID for. + * @return bool|string the Nosto ID or false if not found for order. + */ + public function getNostoId(Mage_Sales_Model_Order $order) + { + /** @var Nosto_Tagging_Model_Customer $customer */ + $customer = Mage::getModel('nosto_tagging/customer'); + $customer->load($order->getQuoteId(), 'quote_id'); + return $customer->hasData('nosto_id') ? $customer->getNostoId() : false; + } - /** - * Update the Nosto ID form the current quote if it exists. - * The Nosto ID is present in a cookie set by the JavaScript loaded from Nosto. - */ - public function updateNostoId() - { - /** @var Mage_Checkout_Model_Cart $cart */ - $cart = Mage::getModel('checkout/cart'); - /** @var Mage_Core_Model_Cookie $cookie */ - $cookie = Mage::getModel('core/cookie'); - $quoteId = ($cart->getQuote() !== null) ? $cart->getQuote()->getId() : false; - $nostoId = $cookie->get(self::COOKIE_NAME); - if (!empty($quoteId) && !empty($nostoId)) { - /** @var Nosto_Tagging_Model_Customer $customer */ - $customer = Mage::getModel('nosto_tagging/customer') - ->getCollection() - ->addFieldToFilter('quote_id', $quoteId) - ->addFieldToFilter('nosto_id', $nostoId) - ->getFirstItem(); - if ($customer->hasData()) { - $customer->setUpdatedAt(date('Y-m-d H:i:s')); - $customer->save(); - } else { - $customer->setQuoteId($quoteId); - $customer->setNostoId($nostoId); - $customer->setCreatedAt(date('Y-m-d H:i:s')); - $customer->save(); - } - } - } + /** + * Update the Nosto ID form the current quote if it exists. + * The Nosto ID is present in a cookie set by the JavaScript loaded from Nosto. + */ + public function updateNostoId() + { + /** @var Mage_Checkout_Model_Cart $cart */ + $cart = Mage::getModel('checkout/cart'); + /** @var Mage_Core_Model_Cookie $cookie */ + $cookie = Mage::getModel('core/cookie'); + $quoteId = ($cart->getQuote() !== null) ? $cart->getQuote()->getId() : false; + $nostoId = $cookie->get(self::COOKIE_NAME); + if (!empty($quoteId) && !empty($nostoId)) { + /** @var Nosto_Tagging_Model_Customer $customer */ + $customer = Mage::getModel('nosto_tagging/customer') + ->getCollection() + ->addFieldToFilter('quote_id', $quoteId) + ->addFieldToFilter('nosto_id', $nostoId) + ->getFirstItem(); + if ($customer->hasData()) { + $customer->setUpdatedAt(date('Y-m-d H:i:s')); + $customer->save(); + } else { + $customer->setQuoteId($quoteId); + $customer->setNostoId($nostoId); + $customer->setCreatedAt(date('Y-m-d H:i:s')); + $customer->save(); + } + } + } } diff --git a/app/code/community/Nosto/Tagging/Helper/Data.php b/app/code/community/Nosto/Tagging/Helper/Data.php index ed225162..25afe811 100644 --- a/app/code/community/Nosto/Tagging/Helper/Data.php +++ b/app/code/community/Nosto/Tagging/Helper/Data.php @@ -33,7 +33,7 @@ */ class Nosto_Tagging_Helper_Data extends Mage_Core_Helper_Abstract { - const XML_PATH_INSTALLATION_ID = 'nosto_tagging/installation/id'; + const XML_PATH_INSTALLATION_ID = 'nosto_tagging/installation/id'; /** * Builds a tagging string of the given category including all its parent categories. @@ -77,23 +77,23 @@ public function getFormattedDate($date) return date('Y-m-d', strtotime($date)); } - /** - * Returns a unique ID that identifies this Magento installation. - * This ID is sent to the Nosto account config iframe and used to link all Nosto accounts used on this installation. - * - * @return string the ID. - */ - public function getInstallationId() - { - $installationId = Mage::getStoreConfig(self::XML_PATH_INSTALLATION_ID); - if (empty($installationId)) { - // Running bin2hex() will make the ID string length 64 characters. - $installationId = bin2hex(NostoCryptRandom::getRandomString(32)); - /** @var Mage_Core_Model_Config $config */ - $config = Mage::getModel('core/config'); - $config->saveConfig(self::XML_PATH_INSTALLATION_ID, $installationId, 'default', 0); - Mage::app()->getCacheInstance()->cleanType('config'); - } - return $installationId; - } + /** + * Returns a unique ID that identifies this Magento installation. + * This ID is sent to the Nosto account config iframe and used to link all Nosto accounts used on this installation. + * + * @return string the ID. + */ + public function getInstallationId() + { + $installationId = Mage::getStoreConfig(self::XML_PATH_INSTALLATION_ID); + if (empty($installationId)) { + // Running bin2hex() will make the ID string length 64 characters. + $installationId = bin2hex(NostoCryptRandom::getRandomString(32)); + /** @var Mage_Core_Model_Config $config */ + $config = Mage::getModel('core/config'); + $config->saveConfig(self::XML_PATH_INSTALLATION_ID, $installationId, 'default', 0); + Mage::app()->getCacheInstance()->cleanType('config'); + } + return $installationId; + } } diff --git a/app/code/community/Nosto/Tagging/Helper/Date.php b/app/code/community/Nosto/Tagging/Helper/Date.php index 139e2b7a..5146a429 100644 --- a/app/code/community/Nosto/Tagging/Helper/Date.php +++ b/app/code/community/Nosto/Tagging/Helper/Date.php @@ -33,15 +33,15 @@ */ class Nosto_Tagging_Helper_Date extends Mage_Core_Helper_Abstract { - /** - * Formats date into Nosto format, i.e. Y-m-d. - * - * @param string $date the dat to format. - * - * @return string the formatted date. - */ - public function getFormattedDate($date) - { - return date('Y-m-d', strtotime($date)); - } + /** + * Formats date into Nosto format, i.e. Y-m-d. + * + * @param string $date the dat to format. + * + * @return string the formatted date. + */ + public function getFormattedDate($date) + { + return date('Y-m-d', strtotime($date)); + } } diff --git a/app/code/community/Nosto/Tagging/Helper/Oauth.php b/app/code/community/Nosto/Tagging/Helper/Oauth.php index 410a845f..b10dbd9d 100644 --- a/app/code/community/Nosto/Tagging/Helper/Oauth.php +++ b/app/code/community/Nosto/Tagging/Helper/Oauth.php @@ -24,7 +24,7 @@ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ -require_once(Mage::getBaseDir('lib').'/nosto/php-sdk/src/config.inc.php'); +require_once(Mage::getBaseDir('lib') . '/nosto/php-sdk/src/config.inc.php'); /** * Helper class for OAuth2 related tasks. @@ -35,13 +35,13 @@ */ class Nosto_Tagging_Helper_Oauth extends Mage_Core_Helper_Abstract { - /** - * Returns the meta data model needed for using the OAuth2 client included in the Nosto SDk. - * - * @return Nosto_Tagging_Model_Meta_Oauth the meta data instance. - */ - public function getMetaData() - { - return new Nosto_Tagging_Model_Meta_Oauth(); - } + /** + * Returns the meta data model needed for using the OAuth2 client included in the Nosto SDk. + * + * @return Nosto_Tagging_Model_Meta_Oauth the meta data instance. + */ + public function getMetaData() + { + return new Nosto_Tagging_Model_Meta_Oauth(); + } } diff --git a/app/code/community/Nosto/Tagging/Helper/Price.php b/app/code/community/Nosto/Tagging/Helper/Price.php index b1e09e67..4cf6e066 100644 --- a/app/code/community/Nosto/Tagging/Helper/Price.php +++ b/app/code/community/Nosto/Tagging/Helper/Price.php @@ -73,7 +73,7 @@ public function getProductFinalPrice($product) * Get unit/final price for a product model. * * @param Mage_Catalog_Model_Product $product - * @param bool $finalPrice + * @param bool $finalPrice * * @return float */ diff --git a/app/code/community/Nosto/Tagging/Helper/Url.php b/app/code/community/Nosto/Tagging/Helper/Url.php index b368230b..bd41d185 100644 --- a/app/code/community/Nosto/Tagging/Helper/Url.php +++ b/app/code/community/Nosto/Tagging/Helper/Url.php @@ -1,28 +1,28 @@ getCollection() - ->addStoreFilter(Mage::app()->getStore()->getId()) - ->addAttributeToSelect('*') - ->addAttributeToFilter('status', array('eq' => Mage_Catalog_Model_Product_Status::STATUS_ENABLED)) - ->addFieldToFilter('visibility', Mage_Catalog_Model_Product_Visibility::VISIBILITY_BOTH) - ->setPageSize(1) - ->setCurPage(1); - foreach ($collection as $product) { - /** @var Mage_Catalog_Model_Product $product */ - $url = $product->getProductUrl(); - $url = NostoHttpRequest::replaceQueryParamInUrl('___store', Mage::app()->getStore()->getCode(), $url); - return NostoHttpRequest::replaceQueryParamInUrl('nostodebug', 'true', $url); - } - return ''; - } + /** + * Gets the absolute preview URL to the current store view product page. + * The product is the first one found in the database for the store. + * The preview url includes "nostodebug=true" parameter. + * + * @return string the url. + */ + public function getPreviewUrlProduct() + { + $collection = Mage::getModel('catalog/product') + ->getCollection() + ->addStoreFilter(Mage::app()->getStore()->getId()) + ->addAttributeToSelect('*') + ->addAttributeToFilter('status', array('eq' => Mage_Catalog_Model_Product_Status::STATUS_ENABLED)) + ->addFieldToFilter('visibility', Mage_Catalog_Model_Product_Visibility::VISIBILITY_BOTH) + ->setPageSize(1) + ->setCurPage(1); + foreach ($collection as $product) { + /** @var Mage_Catalog_Model_Product $product */ + $url = $product->getProductUrl(); + $url = NostoHttpRequest::replaceQueryParamInUrl('___store', Mage::app()->getStore()->getCode(), $url); + return NostoHttpRequest::replaceQueryParamInUrl('nostodebug', 'true', $url); + } + return ''; + } - /** - * Gets the absolute preview URL to the current store view category page. - * The category is the first one found in the database for the store. - * The preview url includes "nostodebug=true" parameter. - * - * @return string the url. - */ - public function getPreviewUrlCategory() - { - $rootCategoryId = (int)Mage::app()->getStore()->getRootCategoryId(); - $collection = Mage::getModel('catalog/category') - ->getCollection() - ->addFieldToFilter('is_active', 1) - ->addFieldToFilter('path', array('like' => "1/$rootCategoryId/%")) - ->addAttributeToSelect('*') - ->setPageSize(1) - ->setCurPage(1); - foreach ($collection as $category) { - /** @var Mage_Catalog_Model_Category $category */ - $url = $category->getUrl(); - $url = NostoHttpRequest::replaceQueryParamInUrl('___store', Mage::app()->getStore()->getCode(), $url); - return NostoHttpRequest::replaceQueryParamInUrl('nostodebug', 'true', $url); - } - return ''; - } + /** + * Gets the absolute preview URL to the current store view category page. + * The category is the first one found in the database for the store. + * The preview url includes "nostodebug=true" parameter. + * + * @return string the url. + */ + public function getPreviewUrlCategory() + { + $rootCategoryId = (int)Mage::app()->getStore()->getRootCategoryId(); + $collection = Mage::getModel('catalog/category') + ->getCollection() + ->addFieldToFilter('is_active', 1) + ->addFieldToFilter('path', array('like' => "1/$rootCategoryId/%")) + ->addAttributeToSelect('*') + ->setPageSize(1) + ->setCurPage(1); + foreach ($collection as $category) { + /** @var Mage_Catalog_Model_Category $category */ + $url = $category->getUrl(); + $url = NostoHttpRequest::replaceQueryParamInUrl('___store', Mage::app()->getStore()->getCode(), $url); + return NostoHttpRequest::replaceQueryParamInUrl('nostodebug', 'true', $url); + } + return ''; + } - /** - * Gets the absolute preview URL to the current store view search page. - * The search query in the URL is "q=nosto". - * The preview url includes "nostodebug=true" parameter. - * - * @return string the url. - */ - public function getPreviewUrlSearch() - { - $url = Mage::getUrl('catalogsearch/result', array('_store' => Mage::app()->getStore()->getId(), '_store_to_url' => true)); - $url = NostoHttpRequest::replaceQueryParamInUrl('q', 'nosto', $url); - return NostoHttpRequest::replaceQueryParamInUrl('nostodebug', 'true', $url); - } + /** + * Gets the absolute preview URL to the current store view search page. + * The search query in the URL is "q=nosto". + * The preview url includes "nostodebug=true" parameter. + * + * @return string the url. + */ + public function getPreviewUrlSearch() + { + $url = Mage::getUrl('catalogsearch/result', array('_store' => Mage::app()->getStore()->getId(), '_store_to_url' => true)); + $url = NostoHttpRequest::replaceQueryParamInUrl('q', 'nosto', $url); + return NostoHttpRequest::replaceQueryParamInUrl('nostodebug', 'true', $url); + } - /** - * Gets the absolute preview URL to the current store view cart page. - * The preview url includes "nostodebug=true" parameter. - * - * @return string the url. - */ - public function getPreviewUrlCart() - { - $url = Mage::getUrl('checkout/cart', array('_store' => Mage::app()->getStore()->getId(), '_store_to_url' => true)); - return NostoHttpRequest::replaceQueryParamInUrl('nostodebug', 'true', $url); - } + /** + * Gets the absolute preview URL to the current store view cart page. + * The preview url includes "nostodebug=true" parameter. + * + * @return string the url. + */ + public function getPreviewUrlCart() + { + $url = Mage::getUrl('checkout/cart', array('_store' => Mage::app()->getStore()->getId(), '_store_to_url' => true)); + return NostoHttpRequest::replaceQueryParamInUrl('nostodebug', 'true', $url); + } - /** - * Gets the absolute preview URL to the current store view front page. - * The preview url includes "nostodebug=true" parameter. - * - * @return string the url. - */ - public function getPreviewUrlFront() - { - $url = Mage::getUrl('', array('_store' => Mage::app()->getStore()->getId(), '_store_to_url' => true)); - return NostoHttpRequest::replaceQueryParamInUrl('nostodebug', 'true', $url); - } + /** + * Gets the absolute preview URL to the current store view front page. + * The preview url includes "nostodebug=true" parameter. + * + * @return string the url. + */ + public function getPreviewUrlFront() + { + $url = Mage::getUrl('', array('_store' => Mage::app()->getStore()->getId(), '_store_to_url' => true)); + return NostoHttpRequest::replaceQueryParamInUrl('nostodebug', 'true', $url); + } } diff --git a/app/code/community/Nosto/Tagging/Model/Customer.php b/app/code/community/Nosto/Tagging/Model/Customer.php index e07c0894..1cb77009 100644 --- a/app/code/community/Nosto/Tagging/Model/Customer.php +++ b/app/code/community/Nosto/Tagging/Model/Customer.php @@ -43,11 +43,11 @@ */ class Nosto_Tagging_Model_Customer extends Mage_Core_Model_Abstract { - /** - * @inheritdoc - */ - protected function _construct() - { - $this->_init('nosto_tagging/customer'); - } + /** + * @inheritdoc + */ + protected function _construct() + { + $this->_init('nosto_tagging/customer'); + } } diff --git a/app/code/community/Nosto/Tagging/Model/Meta/Account.php b/app/code/community/Nosto/Tagging/Model/Meta/Account.php index 0f7d58d0..2b9c22a0 100644 --- a/app/code/community/Nosto/Tagging/Model/Meta/Account.php +++ b/app/code/community/Nosto/Tagging/Model/Meta/Account.php @@ -34,214 +34,214 @@ */ class Nosto_Tagging_Model_Meta_Account extends Mage_Core_Model_Abstract implements NostoAccountMetaDataInterface { - /** - * @var string the store name. - */ - protected $title; - - /** - * @var string the account name. - */ - protected $name; - - /** - * @var string the store front end url. - */ - protected $frontPageUrl; - - /** - * @var string the store currency ISO (ISO 4217) code. - */ - protected $currencyCode; - - /** - * @var string the store language ISO (ISO 639-1) code. - */ - protected $languageCode; - - /** - * @var string the owner language ISO (ISO 639-1) code. - */ - protected $ownerLanguageCode; - - /** - * @var Nosto_Tagging_Model_Meta_Account_Owner the account owner meta data model. - */ - protected $owner; - - /** - * @var Nosto_Tagging_Model_Meta_Account_Billing the account billing details meta data model. - */ - protected $billing; - - /** - * @var string the API token used to identify an account creation. - */ - protected $signUpApiToken = 'YBDKYwSqTCzSsU8Bwbg4im2pkHMcgTy9cCX7vevjJwON1UISJIwXOLMM0a8nZY7h'; - - /** - * Constructor. - */ - public function __construct() - { - parent::__construct(); - - $store = Mage::app()->getStore(); - $this->title = $store->getWebsite()->getName() . ' - ' . $store->getGroup()->getName() . ' - ' . $store->getName(); - $this->name = substr(sha1(rand()), 0, 8); - $this->frontPageUrl = NostoHttpRequest::replaceQueryParamInUrl('___store', $store->getCode(), $store->getBaseUrl(Mage_Core_Model_Store::URL_TYPE_WEB)); - $this->currencyCode = $store->getBaseCurrencyCode(); - $this->languageCode = substr($store->getConfig('general/locale/code'), 0, 2); - $this->ownerLanguageCode = substr(Mage::app()->getLocale()->getLocaleCode(), 0, 2); - $this->owner = new Nosto_Tagging_Model_Meta_Account_Owner(); - $this->billing = new Nosto_Tagging_Model_Meta_Account_Billing(); - } - - /** - * @inheritdoc - */ - protected function _construct() - { - $this->_init('nosto_tagging/meta_account'); - } - - /** - * Sets the store title. - * - * @param string $title the store title. - */ - public function setTitle($title) - { - $this->title = $title; - } - - /** - * @inheritdoc - */ - public function getTitle() - { - return $this->title; - } - - /** - * Sets the account name. - * - * @param string $name the account name. - */ - public function setName($name) - { - $this->name = $name; - } - - /** - * @inheritdoc - */ - public function getName() - { - return $this->name; - } - - /** - * @inheritdoc - */ - public function getPlatform() - { - return 'magento'; - } - - /** - * Sets the store front page url. - * - * @param string $url the front page url. - */ - public function setFrontPageUrl($url) - { - $this->frontPageUrl = $url; - } - - /** - * @inheritdoc - */ - public function getFrontPageUrl() - { - return $this->frontPageUrl; - } - - /** - * Sets the store currency ISO (ISO 4217) code. - * - * @param string $code the currency ISO code. - */ - public function setCurrencyCode($code) - { - $this->currencyCode = $code; - } - - /** - * @inheritdoc - */ - public function getCurrencyCode() - { - return $this->currencyCode; - } - - /** - * Sets the store language ISO (ISO 639-1) code. - * - * @param string $languageCode the language ISO code. - */ - public function setLanguageCode($languageCode) - { - $this->languageCode = $languageCode; - } - - /** - * @inheritdoc - */ - public function getLanguageCode() - { - return $this->languageCode; - } - - /** - * Sets the owner language ISO (ISO 639-1) code. - * - * @param string $languageCode the language ISO code. - */ - public function setOwnerLanguageCode($languageCode) - { - $this->ownerLanguageCode = $languageCode; - } - - /** - * @inheritdoc - */ - public function getOwnerLanguageCode() - { - return $this->ownerLanguageCode; - } - - /** - * @inheritdoc - */ - public function getOwner() - { - return $this->owner; - } - - /** - * @inheritdoc - */ - public function getBillingDetails() - { - return $this->billing; - } - - /** - * @inheritdoc - */ - public function getSignUpApiToken() - { - return $this->signUpApiToken; - } + /** + * @var string the store name. + */ + protected $title; + + /** + * @var string the account name. + */ + protected $name; + + /** + * @var string the store front end url. + */ + protected $frontPageUrl; + + /** + * @var string the store currency ISO (ISO 4217) code. + */ + protected $currencyCode; + + /** + * @var string the store language ISO (ISO 639-1) code. + */ + protected $languageCode; + + /** + * @var string the owner language ISO (ISO 639-1) code. + */ + protected $ownerLanguageCode; + + /** + * @var Nosto_Tagging_Model_Meta_Account_Owner the account owner meta data model. + */ + protected $owner; + + /** + * @var Nosto_Tagging_Model_Meta_Account_Billing the account billing details meta data model. + */ + protected $billing; + + /** + * @var string the API token used to identify an account creation. + */ + protected $signUpApiToken = 'YBDKYwSqTCzSsU8Bwbg4im2pkHMcgTy9cCX7vevjJwON1UISJIwXOLMM0a8nZY7h'; + + /** + * Constructor. + */ + public function __construct() + { + parent::__construct(); + + $store = Mage::app()->getStore(); + $this->title = $store->getWebsite()->getName() . ' - ' . $store->getGroup()->getName() . ' - ' . $store->getName(); + $this->name = substr(sha1(rand()), 0, 8); + $this->frontPageUrl = NostoHttpRequest::replaceQueryParamInUrl('___store', $store->getCode(), $store->getBaseUrl(Mage_Core_Model_Store::URL_TYPE_WEB)); + $this->currencyCode = $store->getBaseCurrencyCode(); + $this->languageCode = substr($store->getConfig('general/locale/code'), 0, 2); + $this->ownerLanguageCode = substr(Mage::app()->getLocale()->getLocaleCode(), 0, 2); + $this->owner = new Nosto_Tagging_Model_Meta_Account_Owner(); + $this->billing = new Nosto_Tagging_Model_Meta_Account_Billing(); + } + + /** + * @inheritdoc + */ + protected function _construct() + { + $this->_init('nosto_tagging/meta_account'); + } + + /** + * Sets the store title. + * + * @param string $title the store title. + */ + public function setTitle($title) + { + $this->title = $title; + } + + /** + * @inheritdoc + */ + public function getTitle() + { + return $this->title; + } + + /** + * Sets the account name. + * + * @param string $name the account name. + */ + public function setName($name) + { + $this->name = $name; + } + + /** + * @inheritdoc + */ + public function getName() + { + return $this->name; + } + + /** + * @inheritdoc + */ + public function getPlatform() + { + return 'magento'; + } + + /** + * Sets the store front page url. + * + * @param string $url the front page url. + */ + public function setFrontPageUrl($url) + { + $this->frontPageUrl = $url; + } + + /** + * @inheritdoc + */ + public function getFrontPageUrl() + { + return $this->frontPageUrl; + } + + /** + * Sets the store currency ISO (ISO 4217) code. + * + * @param string $code the currency ISO code. + */ + public function setCurrencyCode($code) + { + $this->currencyCode = $code; + } + + /** + * @inheritdoc + */ + public function getCurrencyCode() + { + return $this->currencyCode; + } + + /** + * Sets the store language ISO (ISO 639-1) code. + * + * @param string $languageCode the language ISO code. + */ + public function setLanguageCode($languageCode) + { + $this->languageCode = $languageCode; + } + + /** + * @inheritdoc + */ + public function getLanguageCode() + { + return $this->languageCode; + } + + /** + * Sets the owner language ISO (ISO 639-1) code. + * + * @param string $languageCode the language ISO code. + */ + public function setOwnerLanguageCode($languageCode) + { + $this->ownerLanguageCode = $languageCode; + } + + /** + * @inheritdoc + */ + public function getOwnerLanguageCode() + { + return $this->ownerLanguageCode; + } + + /** + * @inheritdoc + */ + public function getOwner() + { + return $this->owner; + } + + /** + * @inheritdoc + */ + public function getBillingDetails() + { + return $this->billing; + } + + /** + * @inheritdoc + */ + public function getSignUpApiToken() + { + return $this->signUpApiToken; + } } diff --git a/app/code/community/Nosto/Tagging/Model/Meta/Account/Billing.php b/app/code/community/Nosto/Tagging/Model/Meta/Account/Billing.php index 6fec7284..9974733b 100644 --- a/app/code/community/Nosto/Tagging/Model/Meta/Account/Billing.php +++ b/app/code/community/Nosto/Tagging/Model/Meta/Account/Billing.php @@ -34,45 +34,45 @@ */ class Nosto_Tagging_Model_Meta_Account_Billing extends Mage_Core_Model_Abstract implements NostoAccountMetaDataBillingDetailsInterface { - /** - * @var string country ISO (ISO 3166-1 alpha-2) code for the account billing details. - */ - protected $country; + /** + * @var string country ISO (ISO 3166-1 alpha-2) code for the account billing details. + */ + protected $country; - /** - * Constructor. - * Sets initial values for the account billing details. - */ - public function __construct() - { - parent::__construct(); + /** + * Constructor. + * Sets initial values for the account billing details. + */ + public function __construct() + { + parent::__construct(); - $this->country = Mage::app()->getStore()->getConfig('general/country/default'); - } + $this->country = Mage::app()->getStore()->getConfig('general/country/default'); + } - /** - * @inheritdoc - */ - protected function _construct() - { - $this->_init('nosto_tagging/meta_account_billing'); - } + /** + * @inheritdoc + */ + protected function _construct() + { + $this->_init('nosto_tagging/meta_account_billing'); + } - /** - * Sets the account billing details country ISO (ISO 3166-1 alpha-2) code. - * - * @param string $country the country ISO code. - */ - public function setCountry($country) - { - $this->country = $country; - } + /** + * Sets the account billing details country ISO (ISO 3166-1 alpha-2) code. + * + * @param string $country the country ISO code. + */ + public function setCountry($country) + { + $this->country = $country; + } - /** - * @inheritdoc - */ - public function getCountry() - { - return $this->country; - } + /** + * @inheritdoc + */ + public function getCountry() + { + return $this->country; + } } diff --git a/app/code/community/Nosto/Tagging/Model/Meta/Account/Iframe.php b/app/code/community/Nosto/Tagging/Model/Meta/Account/Iframe.php index 4ff95987..4077abde 100644 --- a/app/code/community/Nosto/Tagging/Model/Meta/Account/Iframe.php +++ b/app/code/community/Nosto/Tagging/Model/Meta/Account/Iframe.php @@ -33,252 +33,252 @@ */ class Nosto_Tagging_Model_Meta_Account_Iframe extends Mage_Core_Model_Abstract implements NostoAccountMetaDataIframeInterface { - /** - * @var string the name of the platform the iframe is used on. - */ - protected $platform = 'magento'; - - /** - * @var string the admin user first name. - */ - protected $firstName; - - /** - * @var string the admin user last name. - */ - protected $lastName; - - /** - * @var string the admin user email address. - */ - protected $email; - - /** - * @var string the language ISO (ISO 639-1) code for localization on oauth2 server. - */ - protected $languageIsoCode; - - /** - * @var string the language ISO (ISO 639-1) for the store view scope. - */ - protected $languageIsoCodeShop; - - /** - * @var string unique ID that identifies the Magento installation and all the accounts within. - */ - protected $uniqueId; - - /** - * @var string preview url for the product page in the active store view scope. - */ - protected $previewUrlProduct; - - /** - * @var string preview url for the category page in the active store view scope. - */ - protected $previewUrlCategory; - - /** - * @var string preview url for the search page in the active store view scope. - */ - protected $previewUrlSearch; - - /** - * @var string preview url for the cart page in the active store view scope. - */ - protected $previewUrlCart; - - /** - * @var string preview url for the front page in the active store view scope. - */ - protected $previewUrlFront; - - /** - * Constructor. - * Sets initial values. - */ - public function __construct() - { - parent::__construct(); - - /** @var Mage_Admin_Model_User $user */ - $user = Mage::getSingleton('admin/session')->getUser(); - /** @var Nosto_Tagging_Helper_Url $urlHelper */ - $urlHelper = Mage::helper('nosto_tagging/url'); - /** @var Nosto_Tagging_Helper_Data $dataHelper */ - $dataHelper = Mage::helper('nosto_tagging/data'); - - $this->firstName = $user->getFirstname(); - $this->lastName = $user->getLastname(); - $this->email = $user->getEmail(); - $this->languageIsoCode = substr(Mage::app()->getLocale()->getLocaleCode(), 0, 2); - $this->languageIsoCodeShop = substr(Mage::app()->getStore()->getConfig('general/locale/code'), 0, 2); - $this->uniqueId = $dataHelper->getInstallationId(); - $this->previewUrlProduct = $urlHelper->getPreviewUrlProduct(); - $this->previewUrlCategory = $urlHelper->getPreviewUrlCategory(); - $this->previewUrlSearch = $urlHelper->getPreviewUrlSearch(); - $this->previewUrlCart = $urlHelper->getPreviewUrlCart(); - $this->previewUrlFront = $urlHelper->getPreviewUrlFront(); - } - - /** - * @inheritdoc - */ - protected function _construct() - { - $this->_init('nosto_tagging/meta_account_iframe'); - } - - /** - * @inheritdoc - */ - public function getPlatform() - { - return $this->platform; + /** + * @var string the name of the platform the iframe is used on. + */ + protected $platform = 'magento'; + + /** + * @var string the admin user first name. + */ + protected $firstName; + + /** + * @var string the admin user last name. + */ + protected $lastName; + + /** + * @var string the admin user email address. + */ + protected $email; + + /** + * @var string the language ISO (ISO 639-1) code for localization on oauth2 server. + */ + protected $languageIsoCode; + + /** + * @var string the language ISO (ISO 639-1) for the store view scope. + */ + protected $languageIsoCodeShop; + + /** + * @var string unique ID that identifies the Magento installation and all the accounts within. + */ + protected $uniqueId; + + /** + * @var string preview url for the product page in the active store view scope. + */ + protected $previewUrlProduct; + + /** + * @var string preview url for the category page in the active store view scope. + */ + protected $previewUrlCategory; + + /** + * @var string preview url for the search page in the active store view scope. + */ + protected $previewUrlSearch; + + /** + * @var string preview url for the cart page in the active store view scope. + */ + protected $previewUrlCart; + + /** + * @var string preview url for the front page in the active store view scope. + */ + protected $previewUrlFront; + + /** + * Constructor. + * Sets initial values. + */ + public function __construct() + { + parent::__construct(); + + /** @var Mage_Admin_Model_User $user */ + $user = Mage::getSingleton('admin/session')->getUser(); + /** @var Nosto_Tagging_Helper_Url $urlHelper */ + $urlHelper = Mage::helper('nosto_tagging/url'); + /** @var Nosto_Tagging_Helper_Data $dataHelper */ + $dataHelper = Mage::helper('nosto_tagging/data'); + + $this->firstName = $user->getFirstname(); + $this->lastName = $user->getLastname(); + $this->email = $user->getEmail(); + $this->languageIsoCode = substr(Mage::app()->getLocale()->getLocaleCode(), 0, 2); + $this->languageIsoCodeShop = substr(Mage::app()->getStore()->getConfig('general/locale/code'), 0, 2); + $this->uniqueId = $dataHelper->getInstallationId(); + $this->previewUrlProduct = $urlHelper->getPreviewUrlProduct(); + $this->previewUrlCategory = $urlHelper->getPreviewUrlCategory(); + $this->previewUrlSearch = $urlHelper->getPreviewUrlSearch(); + $this->previewUrlCart = $urlHelper->getPreviewUrlCart(); + $this->previewUrlFront = $urlHelper->getPreviewUrlFront(); } - /** - * Sets the first name of the admin user. - * - * @param string $firstName the first name. - */ - public function setFirstName($firstName) - { - $this->firstName = $firstName; - } - - /** - * @inheritdoc - */ - public function getFirstName() - { - return $this->firstName; - } - - /** - * Sets the last name of the admin user. - * - * @param string $lastName the last name. - */ - public function setLastName($lastName) - { - $this->lastName = $lastName; - } - - /** - * @inheritdoc - */ - public function getLastName() - { - return $this->lastName; - } - - /** - * Sets the email address of the admin user. - * - * @param string $email the email address. - */ - public function setEmail($email) - { - $this->email = $email; - } - - /** - * @inheritdoc - */ - public function getEmail() - { - return $this->email; - } - - /** - * Sets the language ISO code. - * - * @param string $code the ISO code. - */ - public function setLanguageIsoCode($code) - { - $this->languageIsoCode = $code; - } - - /** - * @inheritdoc - */ - public function getLanguageIsoCode() - { - return $this->languageIsoCode; - } - - /** - * @inheritdoc - */ - public function getLanguageIsoCodeShop() - { - return $this->languageIsoCodeShop; - } - - /** - * @inheritdoc - */ - public function getUniqueId() - { - return $this->uniqueId; - } - - /** - * @inheritdoc - */ - public function getVersionPlatform() - { - return Mage::getVersion(); - } - - /** - * @inheritdoc - */ - public function getVersionModule() - { - // Path is hard-coded to be like in "etc/config.xml". - return (string)Mage::getConfig()->getNode('modules/Nosto_Tagging/version'); - } - - /** - * @inheritdoc - */ - public function getPreviewUrlProduct() - { - return $this->previewUrlProduct; - } - - /** - * @inheritdoc - */ - public function getPreviewUrlCategory() - { - return $this->previewUrlCategory; - } - - /** - * @inheritdoc - */ - public function getPreviewUrlSearch() - { - return $this->previewUrlSearch; - } - - /** - * @inheritdoc - */ - public function getPreviewUrlCart() - { - return $this->previewUrlCart; - } - - /** - * @inheritdoc - */ - public function getPreviewUrlFront() - { - return $this->previewUrlFront; - } + /** + * @inheritdoc + */ + protected function _construct() + { + $this->_init('nosto_tagging/meta_account_iframe'); + } + + /** + * @inheritdoc + */ + public function getPlatform() + { + return $this->platform; + } + + /** + * Sets the first name of the admin user. + * + * @param string $firstName the first name. + */ + public function setFirstName($firstName) + { + $this->firstName = $firstName; + } + + /** + * @inheritdoc + */ + public function getFirstName() + { + return $this->firstName; + } + + /** + * Sets the last name of the admin user. + * + * @param string $lastName the last name. + */ + public function setLastName($lastName) + { + $this->lastName = $lastName; + } + + /** + * @inheritdoc + */ + public function getLastName() + { + return $this->lastName; + } + + /** + * Sets the email address of the admin user. + * + * @param string $email the email address. + */ + public function setEmail($email) + { + $this->email = $email; + } + + /** + * @inheritdoc + */ + public function getEmail() + { + return $this->email; + } + + /** + * Sets the language ISO code. + * + * @param string $code the ISO code. + */ + public function setLanguageIsoCode($code) + { + $this->languageIsoCode = $code; + } + + /** + * @inheritdoc + */ + public function getLanguageIsoCode() + { + return $this->languageIsoCode; + } + + /** + * @inheritdoc + */ + public function getLanguageIsoCodeShop() + { + return $this->languageIsoCodeShop; + } + + /** + * @inheritdoc + */ + public function getUniqueId() + { + return $this->uniqueId; + } + + /** + * @inheritdoc + */ + public function getVersionPlatform() + { + return Mage::getVersion(); + } + + /** + * @inheritdoc + */ + public function getVersionModule() + { + // Path is hard-coded to be like in "etc/config.xml". + return (string)Mage::getConfig()->getNode('modules/Nosto_Tagging/version'); + } + + /** + * @inheritdoc + */ + public function getPreviewUrlProduct() + { + return $this->previewUrlProduct; + } + + /** + * @inheritdoc + */ + public function getPreviewUrlCategory() + { + return $this->previewUrlCategory; + } + + /** + * @inheritdoc + */ + public function getPreviewUrlSearch() + { + return $this->previewUrlSearch; + } + + /** + * @inheritdoc + */ + public function getPreviewUrlCart() + { + return $this->previewUrlCart; + } + + /** + * @inheritdoc + */ + public function getPreviewUrlFront() + { + return $this->previewUrlFront; + } } diff --git a/app/code/community/Nosto/Tagging/Model/Meta/Account/Owner.php b/app/code/community/Nosto/Tagging/Model/Meta/Account/Owner.php index b72c26bd..a23667b5 100644 --- a/app/code/community/Nosto/Tagging/Model/Meta/Account/Owner.php +++ b/app/code/community/Nosto/Tagging/Model/Meta/Account/Owner.php @@ -34,95 +34,95 @@ */ class Nosto_Tagging_Model_Meta_Account_Owner extends Mage_Core_Model_Abstract implements NostoAccountMetaDataOwnerInterface { - /** - * @var string the account owner first name. - */ - protected $firstName; + /** + * @var string the account owner first name. + */ + protected $firstName; - /** - * @var string the account owner last name. - */ - protected $lastName; + /** + * @var string the account owner last name. + */ + protected $lastName; - /** - * @var string the account owner email address. - */ - protected $email; + /** + * @var string the account owner email address. + */ + protected $email; - /** - * Constructor. - * Sets initial values of the account owner. - */ - public function __construct() - { - parent::__construct(); + /** + * Constructor. + * Sets initial values of the account owner. + */ + public function __construct() + { + parent::__construct(); - /** @var Mage_Admin_Model_User $user */ - $user = Mage::getSingleton('admin/session')->getUser(); - $this->firstName = $user->getFirstname(); - $this->lastName = $user->getLastname(); - $this->email = $user->getEmail(); - } + /** @var Mage_Admin_Model_User $user */ + $user = Mage::getSingleton('admin/session')->getUser(); + $this->firstName = $user->getFirstname(); + $this->lastName = $user->getLastname(); + $this->email = $user->getEmail(); + } - /** - * @inheritdoc - */ - protected function _construct() - { - $this->_init('nosto_tagging/meta_account_owner'); - } + /** + * @inheritdoc + */ + protected function _construct() + { + $this->_init('nosto_tagging/meta_account_owner'); + } - /** - * Sets the first name of the account owner. - * - * @param string $firstName the first name. - */ - public function setFirstName($firstName) - { - $this->firstName = $firstName; - } + /** + * Sets the first name of the account owner. + * + * @param string $firstName the first name. + */ + public function setFirstName($firstName) + { + $this->firstName = $firstName; + } - /** - * @inheritdoc - */ - public function getFirstName() - { - return $this->firstName; - } + /** + * @inheritdoc + */ + public function getFirstName() + { + return $this->firstName; + } - /** - * Sets the last name of the account owner. - * - * @param string $lastName the last name. - */ - public function setLastName($lastName) - { - $this->lastName = $lastName; - } + /** + * Sets the last name of the account owner. + * + * @param string $lastName the last name. + */ + public function setLastName($lastName) + { + $this->lastName = $lastName; + } - /** - * @inheritdoc - */ - public function getLastName() - { - return $this->lastName; - } + /** + * @inheritdoc + */ + public function getLastName() + { + return $this->lastName; + } - /** - * Sets the email address of the account owner. - * - * @param string $email the email address. - */ - public function setEmail($email) - { - $this->email = $email; - } + /** + * Sets the email address of the account owner. + * + * @param string $email the email address. + */ + public function setEmail($email) + { + $this->email = $email; + } - /** - * @inheritdoc - */ - public function getEmail() - { - return $this->email; - } + /** + * @inheritdoc + */ + public function getEmail() + { + return $this->email; + } } diff --git a/app/code/community/Nosto/Tagging/Model/Meta/Oauth.php b/app/code/community/Nosto/Tagging/Model/Meta/Oauth.php index c8533e54..a4ece40b 100644 --- a/app/code/community/Nosto/Tagging/Model/Meta/Oauth.php +++ b/app/code/community/Nosto/Tagging/Model/Meta/Oauth.php @@ -33,94 +33,94 @@ */ class Nosto_Tagging_Model_Meta_Oauth extends Mage_Core_Model_Abstract implements NostoOAuthClientMetaDataInterface { - /** - * @var string the url where the oauth2 server should redirect after authorization is done. - */ - protected $redirectUrl; + /** + * @var string the url where the oauth2 server should redirect after authorization is done. + */ + protected $redirectUrl; - /** - * @var string the language ISO code for localization on oauth2 server. - */ - protected $languageIsoCode; + /** + * @var string the language ISO code for localization on oauth2 server. + */ + protected $languageIsoCode; - /** - * Constructor. - * Sets initial values. - */ - public function __construct() - { - parent::__construct(); + /** + * Constructor. + * Sets initial values. + */ + public function __construct() + { + parent::__construct(); - $this->redirectUrl = Mage::getUrl('nosto/oauth', array('_store' => Mage::app()->getStore()->getId(), '_store_to_url' => true)); - $this->languageIsoCode = substr(Mage::app()->getLocale()->getLocaleCode(), 0, 2); - } + $this->redirectUrl = Mage::getUrl('nosto/oauth', array('_store' => Mage::app()->getStore()->getId(), '_store_to_url' => true)); + $this->languageIsoCode = substr(Mage::app()->getLocale()->getLocaleCode(), 0, 2); + } - /** - * @inheritdoc - */ - protected function _construct() - { - $this->_init('nosto_tagging/meta_oauth'); - } + /** + * @inheritdoc + */ + protected function _construct() + { + $this->_init('nosto_tagging/meta_oauth'); + } - /** - * @inheritdoc - */ - public function getClientId() - { - return 'magento'; - } + /** + * @inheritdoc + */ + public function getClientId() + { + return 'magento'; + } - /** - * @inheritdoc - */ - public function getClientSecret() - { - return 'magento'; - } + /** + * @inheritdoc + */ + public function getClientSecret() + { + return 'magento'; + } - /** - * @inheritdoc - */ - public function getScopes() - { - // We want all the available Nosto API tokens. - return NostoApiToken::$tokenNames; - } + /** + * @inheritdoc + */ + public function getScopes() + { + // We want all the available Nosto API tokens. + return NostoApiToken::$tokenNames; + } - /** - * @inheritdoc - */ - public function getRedirectUrl() - { - return $this->redirectUrl; - } + /** + * @inheritdoc + */ + public function getRedirectUrl() + { + return $this->redirectUrl; + } - /** - * Sets the redirect url. - * - * @param string $url the url. - */ - public function setRedirectUrl($url) - { - $this->redirectUrl = $url; - } + /** + * Sets the redirect url. + * + * @param string $url the url. + */ + public function setRedirectUrl($url) + { + $this->redirectUrl = $url; + } - /** - * @inheritdoc - */ - public function getLanguageIsoCode() - { - return $this->languageIsoCode; - } + /** + * @inheritdoc + */ + public function getLanguageIsoCode() + { + return $this->languageIsoCode; + } - /** - * Sets the language ISO code. - * - * @param string $code the ISO code. - */ - public function setLanguageIsoCode($code) - { - $this->languageIsoCode = $code; - } + /** + * Sets the language ISO code. + * + * @param string $code the ISO code. + */ + public function setLanguageIsoCode($code) + { + $this->languageIsoCode = $code; + } } diff --git a/app/code/community/Nosto/Tagging/Model/Meta/Order.php b/app/code/community/Nosto/Tagging/Model/Meta/Order.php index 69626350..7ccd1a4f 100644 --- a/app/code/community/Nosto/Tagging/Model/Meta/Order.php +++ b/app/code/community/Nosto/Tagging/Model/Meta/Order.php @@ -34,133 +34,133 @@ */ class Nosto_Tagging_Model_Meta_Order extends Mage_Core_Model_Abstract implements NostoOrderInterface { - /** - * @var string|int the unique order number identifying the order. - */ - protected $orderNumber; - - /** - * @var string the date when the order was placed. - */ - protected $createdDate; - - /** - * @var string the payment provider used for placing the order, formatted according to "[provider name] [provider version]". - */ - protected $paymentProvider; - - /** - * @var Nosto_Tagging_Model_Meta_Order_Buyer The buyer info of the user who placed the order. - */ - protected $buyer; - - /** - * @var Nosto_Tagging_Model_Meta_Order_Item[] the purchased items which were included in the order. - */ - protected $items = array(); - - /** - * @inheritdoc - */ - protected function _construct() - { - $this->_init('nosto_tagging/meta_order'); - } - - /** - * @inheritdoc - */ - public function getOrderNumber() - { - return $this->orderNumber; - } - - /** - * @inheritdoc - */ - public function getCreatedDate() - { - return $this->createdDate; - } - - /** - * @inheritdoc - */ - public function getPaymentProvider() - { - return $this->paymentProvider; - } - - /** - * @inheritdoc - */ - public function getBuyerInfo() - { - return $this->buyer; - } - - /** - * @inheritdoc - */ - public function getPurchasedItems() - { - return $this->items; - } - - /** - * Loads the order info from a Magento order model. - * - * @param Mage_Sales_Model_Order $order the order model. - */ - public function loadData(Mage_Sales_Model_Order $order) - { - $this->orderNumber = $order->getId(); - $this->createdDate = $order->getCreatedAt(); - - $method = $order->getPayment()->getMethodInstance(); - $this->paymentProvider = $method->getCode(); - - $this->buyer = new Nosto_Tagging_Model_Meta_Order_Buyer(); - $this->buyer->loadData($order); - - /** @var $item Mage_Sales_Model_Order_Item */ - foreach ($order->getAllVisibleItems() as $item) { - /** @var Mage_Catalog_Model_Product $product */ - $product = Mage::getModel('catalog/product')->load($item->getProductId()); - if ($product->getTypeId() === Mage_Catalog_Model_Product_Type::TYPE_BUNDLE) { - if ((int)$product->getPriceType() === Mage_Bundle_Model_Product_Price::PRICE_TYPE_FIXED) { - continue; - } - foreach ($item->getChildrenItems() as $child) { - $orderItem = new Nosto_Tagging_Model_Meta_Order_Item(); - $orderItem->loadData($child); - $this->items[] = $orderItem; - } - } else { - $orderItem = new Nosto_Tagging_Model_Meta_Order_Item(); - $orderItem->loadData($item); - $this->items[] = $orderItem; - } - } - - if ($discount = $order->getDiscountAmount()) { - $orderItem = new Nosto_Tagging_Model_Meta_Order_Item(); - $orderItem->setProductId(-1); - $orderItem->setQuantity(1); - $orderItem->setName('Discount'); - $orderItem->setUnitPrice($discount); - $orderItem->setCurrencyCode($order->getOrderCurrencyCode()); - $this->items[] = $orderItem; - } - - if ($shippingInclTax = $order->getShippingInclTax()) { - $orderItem = new Nosto_Tagging_Model_Meta_Order_Item(); - $orderItem->setProductId(-1); - $orderItem->setQuantity(1); - $orderItem->setName('Shipping and handling'); - $orderItem->setUnitPrice($shippingInclTax); - $orderItem->setCurrencyCode($order->getOrderCurrencyCode()); - $this->items[] = $orderItem; - } - } + /** + * @var string|int the unique order number identifying the order. + */ + protected $orderNumber; + + /** + * @var string the date when the order was placed. + */ + protected $createdDate; + + /** + * @var string the payment provider used for placing the order, formatted according to "[provider name] [provider version]". + */ + protected $paymentProvider; + + /** + * @var Nosto_Tagging_Model_Meta_Order_Buyer The buyer info of the user who placed the order. + */ + protected $buyer; + + /** + * @var Nosto_Tagging_Model_Meta_Order_Item[] the purchased items which were included in the order. + */ + protected $items = array(); + + /** + * @inheritdoc + */ + protected function _construct() + { + $this->_init('nosto_tagging/meta_order'); + } + + /** + * @inheritdoc + */ + public function getOrderNumber() + { + return $this->orderNumber; + } + + /** + * @inheritdoc + */ + public function getCreatedDate() + { + return $this->createdDate; + } + + /** + * @inheritdoc + */ + public function getPaymentProvider() + { + return $this->paymentProvider; + } + + /** + * @inheritdoc + */ + public function getBuyerInfo() + { + return $this->buyer; + } + + /** + * @inheritdoc + */ + public function getPurchasedItems() + { + return $this->items; + } + + /** + * Loads the order info from a Magento order model. + * + * @param Mage_Sales_Model_Order $order the order model. + */ + public function loadData(Mage_Sales_Model_Order $order) + { + $this->orderNumber = $order->getId(); + $this->createdDate = $order->getCreatedAt(); + + $method = $order->getPayment()->getMethodInstance(); + $this->paymentProvider = $method->getCode(); + + $this->buyer = new Nosto_Tagging_Model_Meta_Order_Buyer(); + $this->buyer->loadData($order); + + /** @var $item Mage_Sales_Model_Order_Item */ + foreach ($order->getAllVisibleItems() as $item) { + /** @var Mage_Catalog_Model_Product $product */ + $product = Mage::getModel('catalog/product')->load($item->getProductId()); + if ($product->getTypeId() === Mage_Catalog_Model_Product_Type::TYPE_BUNDLE) { + if ((int)$product->getPriceType() === Mage_Bundle_Model_Product_Price::PRICE_TYPE_FIXED) { + continue; + } + foreach ($item->getChildrenItems() as $child) { + $orderItem = new Nosto_Tagging_Model_Meta_Order_Item(); + $orderItem->loadData($child); + $this->items[] = $orderItem; + } + } else { + $orderItem = new Nosto_Tagging_Model_Meta_Order_Item(); + $orderItem->loadData($item); + $this->items[] = $orderItem; + } + } + + if ($discount = $order->getDiscountAmount()) { + $orderItem = new Nosto_Tagging_Model_Meta_Order_Item(); + $orderItem->setProductId(-1); + $orderItem->setQuantity(1); + $orderItem->setName('Discount'); + $orderItem->setUnitPrice($discount); + $orderItem->setCurrencyCode($order->getOrderCurrencyCode()); + $this->items[] = $orderItem; + } + + if ($shippingInclTax = $order->getShippingInclTax()) { + $orderItem = new Nosto_Tagging_Model_Meta_Order_Item(); + $orderItem->setProductId(-1); + $orderItem->setQuantity(1); + $orderItem->setName('Shipping and handling'); + $orderItem->setUnitPrice($shippingInclTax); + $orderItem->setCurrencyCode($order->getOrderCurrencyCode()); + $this->items[] = $orderItem; + } + } } diff --git a/app/code/community/Nosto/Tagging/Model/Meta/Order/Buyer.php b/app/code/community/Nosto/Tagging/Model/Meta/Order/Buyer.php index bac9bcb4..ac9a5d37 100644 --- a/app/code/community/Nosto/Tagging/Model/Meta/Order/Buyer.php +++ b/app/code/community/Nosto/Tagging/Model/Meta/Order/Buyer.php @@ -34,62 +34,62 @@ */ class Nosto_Tagging_Model_Meta_Order_Buyer extends Mage_Core_Model_Abstract implements NostoOrderBuyerInterface { - /** - * @var string the first name of the user who placed the order. - */ - protected $firstName; + /** + * @var string the first name of the user who placed the order. + */ + protected $firstName; - /** - * @var string the last name of the user who placed the order. - */ - protected $lastName; + /** + * @var string the last name of the user who placed the order. + */ + protected $lastName; - /** - * @var string the email address of the user who placed the order. - */ - protected $email; + /** + * @var string the email address of the user who placed the order. + */ + protected $email; - /** - * @inheritdoc - */ - protected function _construct() - { - $this->_init('nosto_tagging/meta_order_buyer'); - } + /** + * @inheritdoc + */ + protected function _construct() + { + $this->_init('nosto_tagging/meta_order_buyer'); + } - /** - * @inheritdoc - */ - public function getFirstName() - { - return $this->firstName; - } + /** + * @inheritdoc + */ + public function getFirstName() + { + return $this->firstName; + } - /** - * @inheritdoc - */ - public function getLastName() - { - return $this->lastName; - } + /** + * @inheritdoc + */ + public function getLastName() + { + return $this->lastName; + } - /** - * @inheritdoc - */ - public function getEmail() - { - return $this->email; - } + /** + * @inheritdoc + */ + public function getEmail() + { + return $this->email; + } - /** - * Loads the buyer info from a Magento order model. - * - * @param Mage_Sales_Model_Order $order the order model to get the data from. - */ - public function loadData(Mage_Sales_Model_Order $order) - { - $this->firstName = $order->getCustomerFirstname(); - $this->lastName = $order->getCustomerLastname(); - $this->email = $order->getCustomerEmail(); - } + /** + * Loads the buyer info from a Magento order model. + * + * @param Mage_Sales_Model_Order $order the order model to get the data from. + */ + public function loadData(Mage_Sales_Model_Order $order) + { + $this->firstName = $order->getCustomerFirstname(); + $this->lastName = $order->getCustomerLastname(); + $this->email = $order->getCustomerEmail(); + } } diff --git a/app/code/community/Nosto/Tagging/Model/Meta/Order/Item.php b/app/code/community/Nosto/Tagging/Model/Meta/Order/Item.php index 50ddc6f6..8ade5fc9 100644 --- a/app/code/community/Nosto/Tagging/Model/Meta/Order/Item.php +++ b/app/code/community/Nosto/Tagging/Model/Meta/Order/Item.php @@ -34,155 +34,155 @@ */ class Nosto_Tagging_Model_Meta_Order_Item extends Mage_Core_Model_Abstract implements NostoOrderPurchasedItemInterface { - /** - * @var string|int the unique identifier of the purchased item. - * If this item is for discounts or shipping cost, the id can be 0. - */ - protected $productId; - - /** - * @var int the quantity of the item included in the order. - */ - protected $quantity; - - /** - * @var string the name of the item included in the order. - */ - protected $name; - - /** - * @var float The unit price of the item included in the order. - */ - protected $unitPrice; - - /** - * @var string the 3-letter ISO code (ISO 4217) for the currency the item was purchased in. - */ - protected $currencyCode; - - /** - * @inheritdoc - */ - protected function _construct() - { - $this->_init('nosto_tagging/meta_order_item'); - } - - /** - * @inheritdoc - */ - public function getProductId() - { - return $this->productId; - } - - /** - * Sets the unique identifier for the item. - * - * @param string|int $id the product id. - */ - public function setProductId($id) - { - $this->productId = $id; - } - - /** - * @inheritdoc - */ - public function getQuantity() - { - return $this->quantity; - } - - /** - * Sets the item quantity. - * - * @param int $qty the quantity. - */ - public function setQuantity($qty) - { - $this->quantity = $qty; - } - - /** - * @inheritdoc - */ - public function getName() - { - return $this->name; - } - - /** - * Sets the item name. - * - * @param string $name the item name. - */ - public function setName($name) - { - $this->name = $name; - } - - /** - * @inheritdoc - */ - public function getUnitPrice() - { - return $this->unitPrice; - } - - /** - * Sets the item unit price. - * - * @param float $price the item unit price. - */ - public function setUnitPrice($price) - { - $this->unitPrice = $price; - } - - /** - * @inheritdoc - */ - public function getCurrencyCode() - { - return $this->currencyCode; - } - - /** - * Sets the items currency code (ISO 4217). - * - * @param string $code the currency ISO code. - */ - public function setCurrencyCode($code) - { - $this->currencyCode = $code; - } - - /** - * Loads the item info from the Magento order item model. - * - * @param Mage_Sales_Model_Order_Item $item the item model. - */ - public function loadData(Mage_Sales_Model_Order_Item $item) - { - switch ($item->getProductType()) { - case Mage_Catalog_Model_Product_Type::TYPE_GROUPED: - $info = $item->getProductOptionByCode('info_buyRequest'); - if ($info !== null && isset($info['super_product_config']['product_id'])) { - $this->productId = (int)$info['super_product_config']['product_id']; - } else { - $this->productId = (int)$item->getProductId(); - } - break; - - default: - $this->productId = (int)$item->getProductId(); - break; - } - - $this->quantity = (int)$item->getQtyOrdered(); - $this->name = $item->getName(); - $this->unitPrice = $item->getPriceInclTax(); - $this->currencyCode = $item->getOrder()->getOrderCurrencyCode(); - } + /** + * @var string|int the unique identifier of the purchased item. + * If this item is for discounts or shipping cost, the id can be 0. + */ + protected $productId; + + /** + * @var int the quantity of the item included in the order. + */ + protected $quantity; + + /** + * @var string the name of the item included in the order. + */ + protected $name; + + /** + * @var float The unit price of the item included in the order. + */ + protected $unitPrice; + + /** + * @var string the 3-letter ISO code (ISO 4217) for the currency the item was purchased in. + */ + protected $currencyCode; + + /** + * @inheritdoc + */ + protected function _construct() + { + $this->_init('nosto_tagging/meta_order_item'); + } + + /** + * @inheritdoc + */ + public function getProductId() + { + return $this->productId; + } + + /** + * Sets the unique identifier for the item. + * + * @param string|int $id the product id. + */ + public function setProductId($id) + { + $this->productId = $id; + } + + /** + * @inheritdoc + */ + public function getQuantity() + { + return $this->quantity; + } + + /** + * Sets the item quantity. + * + * @param int $qty the quantity. + */ + public function setQuantity($qty) + { + $this->quantity = $qty; + } + + /** + * @inheritdoc + */ + public function getName() + { + return $this->name; + } + + /** + * Sets the item name. + * + * @param string $name the item name. + */ + public function setName($name) + { + $this->name = $name; + } + + /** + * @inheritdoc + */ + public function getUnitPrice() + { + return $this->unitPrice; + } + + /** + * Sets the item unit price. + * + * @param float $price the item unit price. + */ + public function setUnitPrice($price) + { + $this->unitPrice = $price; + } + + /** + * @inheritdoc + */ + public function getCurrencyCode() + { + return $this->currencyCode; + } + + /** + * Sets the items currency code (ISO 4217). + * + * @param string $code the currency ISO code. + */ + public function setCurrencyCode($code) + { + $this->currencyCode = $code; + } + + /** + * Loads the item info from the Magento order item model. + * + * @param Mage_Sales_Model_Order_Item $item the item model. + */ + public function loadData(Mage_Sales_Model_Order_Item $item) + { + switch ($item->getProductType()) { + case Mage_Catalog_Model_Product_Type::TYPE_GROUPED: + $info = $item->getProductOptionByCode('info_buyRequest'); + if ($info !== null && isset($info['super_product_config']['product_id'])) { + $this->productId = (int)$info['super_product_config']['product_id']; + } else { + $this->productId = (int)$item->getProductId(); + } + break; + + default: + $this->productId = (int)$item->getProductId(); + break; + } + + $this->quantity = (int)$item->getQtyOrdered(); + $this->name = $item->getName(); + $this->unitPrice = $item->getPriceInclTax(); + $this->currencyCode = $item->getOrder()->getOrderCurrencyCode(); + } } diff --git a/app/code/community/Nosto/Tagging/Model/Meta/Product.php b/app/code/community/Nosto/Tagging/Model/Meta/Product.php index 896aaf91..54280ddb 100644 --- a/app/code/community/Nosto/Tagging/Model/Meta/Product.php +++ b/app/code/community/Nosto/Tagging/Model/Meta/Product.php @@ -34,256 +34,256 @@ */ class Nosto_Tagging_Model_Meta_Product extends Mage_Core_Model_Abstract implements NostoProductInterface { - /** - * Product "in stock" tagging string. - */ - const PRODUCT_IN_STOCK = 'InStock'; - - /** - * Product "out of stock" tagging string. - */ - const PRODUCT_OUT_OF_STOCK = 'OutOfStock'; - - /** - * @var string the absolute url to the product page in the shop frontend. - */ - protected $url; - - /** - * @var string the product's unique identifier. - */ - protected $productId; - - /** - * @var string the name of the product. - */ - protected $name; - - /** - * @var string the absolute url the one of the product images in the shop frontend. - */ - protected $imageUrl; - - /** - * @var string the price of the product including possible discounts and taxes. - */ - protected $price; - - /** - * @var string the list price of the product without discounts but including possible taxes. - */ - protected $listPrice; - - /** - * @var string the currency code (ISO 4217) the product is sold in. - */ - protected $currencyCode; - - /** - * @var string the availability of the product, i.e. if it is in stock or not. - */ - protected $availability; - - /** - * @var array the tags for the product. - */ - protected $tags = array(); - - /** - * @var array the categories the product is located in. - */ - protected $categories = array(); - - /** - * @var string the product description. - */ - protected $description; - - /** - * @var string the product brand name. - */ - protected $brand; - - /** - * @var string the product publication date in the shop. - */ - protected $datePublished; - - /** - * @inheritdoc - */ - protected function _construct() - { - $this->_init('nosto_tagging/meta_product'); - } - - /** - * @inheritdoc - */ - public function getUrl() - { - return $this->url; - } - - /** - * @inheritdoc - */ - public function getProductId() - { - return $this->productId; - } - - /** - * @inheritdoc - */ - public function getName() - { - return $this->name; - } - - /** - * @inheritdoc - */ - public function getImageUrl() - { - return $this->imageUrl; - } - - /** - * @inheritdoc - */ - public function getPrice() - { - return $this->price; - } - - /** - * @inheritdoc - */ - public function getListPrice() - { - return $this->listPrice; - } - - /** - * @inheritdoc - */ - public function getCurrencyCode() - { - return $this->currencyCode; - } - - /** - * @inheritdoc - */ - public function getAvailability() - { - return $this->availability; - } - - /** - * @inheritdoc - */ - public function getTags() - { - return $this->tags; - } - - /** - * @inheritdoc - */ - public function getCategories() - { - return $this->categories; - } - - /** - * @inheritdoc - */ - public function getDescription() - { - return $this->description; - } - - /** - * @inheritdoc - */ - public function getBrand() - { - return $this->brand; - } - - /** - * @inheritdoc - */ - public function getDatePublished() - { - return $this->datePublished; - } - - /** - * Loads the product info from a Magento product model. - * - * @param Mage_Catalog_Model_Product $product the product model. - */ - public function loadData(Mage_Catalog_Model_Product $product) - { - $this->url = $product->getProductUrl(); - $this->productId = $product->getId(); - $this->name = $product->getName(); - - if ($product->getImage() == 'no_selection') { - $this->imageUrl = $product->getImageUrl(); - } else { - $this->imageUrl = $product->getMediaConfig()->getMediaUrl($product->getImage()); - } - - $this->price = Mage::helper('tax')->getPrice($product, Mage::helper('nosto_tagging/price')->getProductFinalPrice($product), true); - $this->listPrice = Mage::helper('tax')->getPrice($product, Mage::helper('nosto_tagging/price')->getProductPrice($product), true); - $this->currencyCode = Mage::app()->getStore()->getCurrentCurrencyCode(); - - if ($product instanceof Mage_Catalog_Model_Product && $product->isAvailable()) { - $this->availability = self::PRODUCT_IN_STOCK; - } else { - $this->availability = self::PRODUCT_OUT_OF_STOCK; - } - - // todo: $this->tags = array(); - - $this->categories = $this->getProductCategories($product); - $this->description = $product->getDescription(); - $this->brand = (string)$product->getAttributeText('manufacturer'); - $this->datePublished = $product->getCreatedAt(); - - } - - /** - * Return array of categories for the product. - * The items in the array are strings combined of the complete category path to the products own category. - * - * Structure: - * array ( - * /Electronics/Computers - * ) - * - * @param Mage_Catalog_Model_Product $product - * - * @return array - */ - public function getProductCategories(Mage_Catalog_Model_Product $product) - { - $data = array(); - - if ($product instanceof Mage_Catalog_Model_Product) { - $categoryCollection = $product->getCategoryCollection(); - foreach ($categoryCollection as $category) { - $categoryString = Mage::helper('nosto_tagging')->buildCategoryString($category); - if (!empty($categoryString)) { - $data[] = $categoryString; - } - } - } - - return $data; - } + /** + * Product "in stock" tagging string. + */ + const PRODUCT_IN_STOCK = 'InStock'; + + /** + * Product "out of stock" tagging string. + */ + const PRODUCT_OUT_OF_STOCK = 'OutOfStock'; + + /** + * @var string the absolute url to the product page in the shop frontend. + */ + protected $url; + + /** + * @var string the product's unique identifier. + */ + protected $productId; + + /** + * @var string the name of the product. + */ + protected $name; + + /** + * @var string the absolute url the one of the product images in the shop frontend. + */ + protected $imageUrl; + + /** + * @var string the price of the product including possible discounts and taxes. + */ + protected $price; + + /** + * @var string the list price of the product without discounts but including possible taxes. + */ + protected $listPrice; + + /** + * @var string the currency code (ISO 4217) the product is sold in. + */ + protected $currencyCode; + + /** + * @var string the availability of the product, i.e. if it is in stock or not. + */ + protected $availability; + + /** + * @var array the tags for the product. + */ + protected $tags = array(); + + /** + * @var array the categories the product is located in. + */ + protected $categories = array(); + + /** + * @var string the product description. + */ + protected $description; + + /** + * @var string the product brand name. + */ + protected $brand; + + /** + * @var string the product publication date in the shop. + */ + protected $datePublished; + + /** + * @inheritdoc + */ + protected function _construct() + { + $this->_init('nosto_tagging/meta_product'); + } + + /** + * @inheritdoc + */ + public function getUrl() + { + return $this->url; + } + + /** + * @inheritdoc + */ + public function getProductId() + { + return $this->productId; + } + + /** + * @inheritdoc + */ + public function getName() + { + return $this->name; + } + + /** + * @inheritdoc + */ + public function getImageUrl() + { + return $this->imageUrl; + } + + /** + * @inheritdoc + */ + public function getPrice() + { + return $this->price; + } + + /** + * @inheritdoc + */ + public function getListPrice() + { + return $this->listPrice; + } + + /** + * @inheritdoc + */ + public function getCurrencyCode() + { + return $this->currencyCode; + } + + /** + * @inheritdoc + */ + public function getAvailability() + { + return $this->availability; + } + + /** + * @inheritdoc + */ + public function getTags() + { + return $this->tags; + } + + /** + * @inheritdoc + */ + public function getCategories() + { + return $this->categories; + } + + /** + * @inheritdoc + */ + public function getDescription() + { + return $this->description; + } + + /** + * @inheritdoc + */ + public function getBrand() + { + return $this->brand; + } + + /** + * @inheritdoc + */ + public function getDatePublished() + { + return $this->datePublished; + } + + /** + * Loads the product info from a Magento product model. + * + * @param Mage_Catalog_Model_Product $product the product model. + */ + public function loadData(Mage_Catalog_Model_Product $product) + { + $this->url = $product->getProductUrl(); + $this->productId = $product->getId(); + $this->name = $product->getName(); + + if ($product->getImage() == 'no_selection') { + $this->imageUrl = $product->getImageUrl(); + } else { + $this->imageUrl = $product->getMediaConfig()->getMediaUrl($product->getImage()); + } + + $this->price = Mage::helper('tax')->getPrice($product, Mage::helper('nosto_tagging/price')->getProductFinalPrice($product), true); + $this->listPrice = Mage::helper('tax')->getPrice($product, Mage::helper('nosto_tagging/price')->getProductPrice($product), true); + $this->currencyCode = Mage::app()->getStore()->getCurrentCurrencyCode(); + + if ($product instanceof Mage_Catalog_Model_Product && $product->isAvailable()) { + $this->availability = self::PRODUCT_IN_STOCK; + } else { + $this->availability = self::PRODUCT_OUT_OF_STOCK; + } + + // todo: $this->tags = array(); + + $this->categories = $this->getProductCategories($product); + $this->description = $product->getDescription(); + $this->brand = (string)$product->getAttributeText('manufacturer'); + $this->datePublished = $product->getCreatedAt(); + + } + + /** + * Return array of categories for the product. + * The items in the array are strings combined of the complete category path to the products own category. + * + * Structure: + * array ( + * /Electronics/Computers + * ) + * + * @param Mage_Catalog_Model_Product $product + * + * @return array + */ + public function getProductCategories(Mage_Catalog_Model_Product $product) + { + $data = array(); + + if ($product instanceof Mage_Catalog_Model_Product) { + $categoryCollection = $product->getCategoryCollection(); + foreach ($categoryCollection as $category) { + $categoryString = Mage::helper('nosto_tagging')->buildCategoryString($category); + if (!empty($categoryString)) { + $data[] = $categoryString; + } + } + } + + return $data; + } } diff --git a/app/code/community/Nosto/Tagging/Model/Observer.php b/app/code/community/Nosto/Tagging/Model/Observer.php index 8a8f0cb0..e214636c 100644 --- a/app/code/community/Nosto/Tagging/Model/Observer.php +++ b/app/code/community/Nosto/Tagging/Model/Observer.php @@ -24,7 +24,7 @@ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ -require_once(Mage::getBaseDir('lib').'/nosto/php-sdk/src/config.inc.php'); +require_once(Mage::getBaseDir('lib') . '/nosto/php-sdk/src/config.inc.php'); /** * Event observer model. @@ -61,74 +61,74 @@ public function addBlockAfterMainContent(Varien_Event_Observer $observer) return $this; } - /** - * Event handler for the "catalog_product_save_after" event. - * Sends a product re-crawl API call to Nosto. - * - * @param Varien_Event_Observer $observer the event observer. - * - * @return Nosto_Tagging_Model_Observer - */ - public function recrawlProduct(Varien_Event_Observer $observer) - { - if (Mage::helper('nosto_tagging')->isModuleEnabled()) { - try { - /** @var Mage_Catalog_Model_Product $mageProduct */ - $mageProduct = $observer->getEvent()->getProduct(); - $product = new Nosto_Tagging_Model_Meta_Product(); - $product->loadData($mageProduct); - // If the product does not have the store id set. - if ((int)$mageProduct->getStoreId() === 0) { - // Then assume that the product has been modified for all stores. - $stores = Mage::app()->getStores(); - } else { - // Otherwise only re-crawl the product for the specific store. - $stores = array(Mage::app()->getStore($mageProduct->getStoreId())); - } - foreach ($stores as $store) { - /** @var NostoAccount $account */ - $account = Mage::helper('nosto_tagging/account')->find($store); - if ($account === null || !$account->isConnectedToNosto()) { - continue; - } - NostoProductReCrawl::send($product, $account); - } - } catch (NostoException $e) { - Mage::log("\n" . $e->__toString(), Zend_Log::ERR, 'nostotagging.log'); - } - } + /** + * Event handler for the "catalog_product_save_after" event. + * Sends a product re-crawl API call to Nosto. + * + * @param Varien_Event_Observer $observer the event observer. + * + * @return Nosto_Tagging_Model_Observer + */ + public function recrawlProduct(Varien_Event_Observer $observer) + { + if (Mage::helper('nosto_tagging')->isModuleEnabled()) { + try { + /** @var Mage_Catalog_Model_Product $mageProduct */ + $mageProduct = $observer->getEvent()->getProduct(); + $product = new Nosto_Tagging_Model_Meta_Product(); + $product->loadData($mageProduct); + // If the product does not have the store id set. + if ((int)$mageProduct->getStoreId() === 0) { + // Then assume that the product has been modified for all stores. + $stores = Mage::app()->getStores(); + } else { + // Otherwise only re-crawl the product for the specific store. + $stores = array(Mage::app()->getStore($mageProduct->getStoreId())); + } + foreach ($stores as $store) { + /** @var NostoAccount $account */ + $account = Mage::helper('nosto_tagging/account')->find($store); + if ($account === null || !$account->isConnectedToNosto()) { + continue; + } + NostoProductReCrawl::send($product, $account); + } + } catch (NostoException $e) { + Mage::log("\n" . $e->__toString(), Zend_Log::ERR, 'nostotagging.log'); + } + } + + return $this; + } - return $this; - } - /** - * Sends an order confirmation API request to Nosto if the order is completed. - * - * Event 'sales_order_save_commit_after'. - * - * @param Varien_Event_Observer $observer - * - * @return Nosto_Tagging_Model_Observer - */ - public function sendOrderConfirmation(Varien_Event_Observer $observer) - { - if (Mage::helper('nosto_tagging')->isModuleEnabled()) { - try { - /** @var Mage_Sales_Model_Order $mageOrder */ - $mageOrder = $observer->getEvent()->getOrder(); - $order = new Nosto_Tagging_Model_Meta_Order(); - $order->loadData($mageOrder); - /** @var NostoAccount $account */ - $account = Mage::helper('nosto_tagging/account')->find($mageOrder->getStore()); - $customerId = Mage::helper('nosto_tagging/customer')->getNostoId($mageOrder); - if ($account !== null && $account->isConnectedToNosto() && !empty($customerId)) { - NostoOrderConfirmation::send($order, $account, $customerId); - } - } catch (NostoException $e) { - Mage::log("\n" . $e->__toString(), Zend_Log::ERR, 'nostotagging.log'); - } - } + * Sends an order confirmation API request to Nosto if the order is completed. + * + * Event 'sales_order_save_commit_after'. + * + * @param Varien_Event_Observer $observer + * + * @return Nosto_Tagging_Model_Observer + */ + public function sendOrderConfirmation(Varien_Event_Observer $observer) + { + if (Mage::helper('nosto_tagging')->isModuleEnabled()) { + try { + /** @var Mage_Sales_Model_Order $mageOrder */ + $mageOrder = $observer->getEvent()->getOrder(); + $order = new Nosto_Tagging_Model_Meta_Order(); + $order->loadData($mageOrder); + /** @var NostoAccount $account */ + $account = Mage::helper('nosto_tagging/account')->find($mageOrder->getStore()); + $customerId = Mage::helper('nosto_tagging/customer')->getNostoId($mageOrder); + if ($account !== null && $account->isConnectedToNosto() && !empty($customerId)) { + NostoOrderConfirmation::send($order, $account, $customerId); + } + } catch (NostoException $e) { + Mage::log("\n" . $e->__toString(), Zend_Log::ERR, 'nostotagging.log'); + } + } - return $this; - } + return $this; + } } diff --git a/app/code/community/Nosto/Tagging/Model/Resource/Customer.php b/app/code/community/Nosto/Tagging/Model/Resource/Customer.php index 796a71e5..6730807e 100644 --- a/app/code/community/Nosto/Tagging/Model/Resource/Customer.php +++ b/app/code/community/Nosto/Tagging/Model/Resource/Customer.php @@ -34,11 +34,11 @@ */ class Nosto_Tagging_Model_Resource_Customer extends Mage_Core_Model_Resource_Db_Abstract { - /** - * @inheritdoc - */ - protected function _construct() - { - $this->_init('nosto_tagging/customer', 'customer_id'); - } + /** + * @inheritdoc + */ + protected function _construct() + { + $this->_init('nosto_tagging/customer', 'customer_id'); + } } diff --git a/app/code/community/Nosto/Tagging/Model/Resource/Customer/Collection.php b/app/code/community/Nosto/Tagging/Model/Resource/Customer/Collection.php index b761d2be..29be9a69 100644 --- a/app/code/community/Nosto/Tagging/Model/Resource/Customer/Collection.php +++ b/app/code/community/Nosto/Tagging/Model/Resource/Customer/Collection.php @@ -34,11 +34,11 @@ */ class Nosto_Tagging_Model_Resource_Customer_Collection extends Mage_Core_Model_Resource_Db_Collection_Abstract { - /** - * @inheritdoc - */ - protected function _construct() - { - $this->_init('nosto_tagging/customer'); - } + /** + * @inheritdoc + */ + protected function _construct() + { + $this->_init('nosto_tagging/customer'); + } } diff --git a/app/code/community/Nosto/Tagging/controllers/Adminhtml/NostoController.php b/app/code/community/Nosto/Tagging/controllers/Adminhtml/NostoController.php index 57af5494..08349823 100644 --- a/app/code/community/Nosto/Tagging/controllers/Adminhtml/NostoController.php +++ b/app/code/community/Nosto/Tagging/controllers/Adminhtml/NostoController.php @@ -24,7 +24,7 @@ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ -require_once(Mage::getBaseDir('lib').'/nosto/php-sdk/src/config.inc.php'); +require_once(Mage::getBaseDir('lib') . '/nosto/php-sdk/src/config.inc.php'); /** * Nosto admin controller. @@ -36,104 +36,104 @@ */ class Nosto_Tagging_Adminhtml_NostoController extends Mage_Adminhtml_Controller_Action { - /** - * @inheritdoc - */ - protected $_publicActions = array('redirectProxy'); + /** + * @inheritdoc + */ + protected $_publicActions = array('redirectProxy'); - /** - * Redirect action that acts as a proxy when the front end oauth controller redirects the admin user back to the - * backend after finishing the oauth authorization cycle. - * This is a workaround as you cannot redirect directly to a protected action in the backend end from the front end. - * The action also handles setting any error/success messages in the notification system. - */ - public function redirectProxyAction() - { - if (($success = $this->getRequest()->getParam('success')) !== null) { - Mage::getSingleton('core/session')->addSuccess($success); - } - if (($error = $this->getRequest()->getParam('error')) !== null) { - Mage::getSingleton('core/session')->addError($error); - } - $this->_redirect('*/*/index', array('store' => (int)$this->getRequest()->getParam('store'))); - } + /** + * Redirect action that acts as a proxy when the front end oauth controller redirects the admin user back to the + * backend after finishing the oauth authorization cycle. + * This is a workaround as you cannot redirect directly to a protected action in the backend end from the front end. + * The action also handles setting any error/success messages in the notification system. + */ + public function redirectProxyAction() + { + if (($success = $this->getRequest()->getParam('success')) !== null) { + Mage::getSingleton('core/session')->addSuccess($success); + } + if (($error = $this->getRequest()->getParam('error')) !== null) { + Mage::getSingleton('core/session')->addError($error); + } + $this->_redirect('*/*/index', array('store' => (int)$this->getRequest()->getParam('store'))); + } - /** - * Shows the main config page for the extension. - */ - public function indexAction() - { - $this->_title($this->__('Nosto')); - if (!$this->checkStoreScope()) { - Mage::getSingleton('core/session')->addNotice($this->__('Please choose a shop to configure Nosto for.')); - } - $this->loadLayout(); - $this->renderLayout(); - } + /** + * Shows the main config page for the extension. + */ + public function indexAction() + { + $this->_title($this->__('Nosto')); + if (!$this->checkStoreScope()) { + Mage::getSingleton('core/session')->addNotice($this->__('Please choose a shop to configure Nosto for.')); + } + $this->loadLayout(); + $this->renderLayout(); + } - /** - * Redirects user to the Nosto OAuth 2 authorization server to connect and existing nosto account to current scope. - */ - public function connectAccountAction() - { - if ($this->getRequest()->isPost() && $this->checkStoreScope()) { - $client = new NostoOAuthClient(Mage::helper('nosto_tagging/oauth')->getMetaData()); - $this->_redirectUrl($client->getAuthorizationUrl()); - } else { - $this->_redirect('*/*/index', array('store' => (int)$this->getRequest()->getParam('store'))); - } - } + /** + * Redirects user to the Nosto OAuth 2 authorization server to connect and existing nosto account to current scope. + */ + public function connectAccountAction() + { + if ($this->getRequest()->isPost() && $this->checkStoreScope()) { + $client = new NostoOAuthClient(Mage::helper('nosto_tagging/oauth')->getMetaData()); + $this->_redirectUrl($client->getAuthorizationUrl()); + } else { + $this->_redirect('*/*/index', array('store' => (int)$this->getRequest()->getParam('store'))); + } + } - /** - * Creates a new Nosto account for the current scope using the Nosto API. - */ - public function createAccountAction() - { - if ($this->getRequest()->isPost() && $this->checkStoreScope()) { - try { - $email = $this->getRequest()->getPost('nosto_create_account_email'); - /** @var Nosto_Tagging_Model_Meta_Account $meta */ - $meta = Mage::helper('nosto_tagging/account')->getMetaData(); - if (Zend_Validate::is($email, 'EmailAddress')) { - $meta->getOwner()->setEmail($email); - } - $account = NostoAccount::create($meta); - if (Mage::helper('nosto_tagging/account')->save($account)) { - Mage::getSingleton('core/session')->addSuccess($this->__('Account created. Please check your email and follow the instructions to set a password for your new account within three days.')); - } - } catch (NostoException $e) { - Mage::log("\n" . $e->__toString(), Zend_Log::ERR, 'nostotagging.log'); - Mage::getSingleton('core/session')->addException($e, $this->__('Account could not be automatically created. Please visit nosto.com to create a new account.')); - } - } - $this->_redirect('*/*/index', array('store' => (int)$this->getRequest()->getParam('store'))); - } + /** + * Creates a new Nosto account for the current scope using the Nosto API. + */ + public function createAccountAction() + { + if ($this->getRequest()->isPost() && $this->checkStoreScope()) { + try { + $email = $this->getRequest()->getPost('nosto_create_account_email'); + /** @var Nosto_Tagging_Model_Meta_Account $meta */ + $meta = Mage::helper('nosto_tagging/account')->getMetaData(); + if (Zend_Validate::is($email, 'EmailAddress')) { + $meta->getOwner()->setEmail($email); + } + $account = NostoAccount::create($meta); + if (Mage::helper('nosto_tagging/account')->save($account)) { + Mage::getSingleton('core/session')->addSuccess($this->__('Account created. Please check your email and follow the instructions to set a password for your new account within three days.')); + } + } catch (NostoException $e) { + Mage::log("\n" . $e->__toString(), Zend_Log::ERR, 'nostotagging.log'); + Mage::getSingleton('core/session')->addException($e, $this->__('Account could not be automatically created. Please visit nosto.com to create a new account.')); + } + } + $this->_redirect('*/*/index', array('store' => (int)$this->getRequest()->getParam('store'))); + } - /** - * Removes a Nosto account from the current scope. - */ - public function removeAccountAction() - { - if ($this->getRequest()->isPost() && $this->checkStoreScope()) { - if (Mage::helper('nosto_tagging/account')->remove()) { - Mage::getSingleton('core/session')->addSuccess($this->__('Account successfully removed.')); - } - } - $this->_redirect('*/*/index', array('store' => (int)$this->getRequest()->getParam('store'))); - } + /** + * Removes a Nosto account from the current scope. + */ + public function removeAccountAction() + { + if ($this->getRequest()->isPost() && $this->checkStoreScope()) { + if (Mage::helper('nosto_tagging/account')->remove()) { + Mage::getSingleton('core/session')->addSuccess($this->__('Account successfully removed.')); + } + } + $this->_redirect('*/*/index', array('store' => (int)$this->getRequest()->getParam('store'))); + } - /** - * Checks that a valid store view scope id has been passed in the request params and set that as current store. - * - * @return bool if the current store is valid, false otherwise. - */ - protected function checkStoreScope() - { - $storeId = (int)$this->getRequest()->getParam('store'); - if ($storeId > 0) { - Mage::app()->setCurrentStore($storeId); - return true; - } - return false; - } + /** + * Checks that a valid store view scope id has been passed in the request params and set that as current store. + * + * @return bool if the current store is valid, false otherwise. + */ + protected function checkStoreScope() + { + $storeId = (int)$this->getRequest()->getParam('store'); + if ($storeId > 0) { + Mage::app()->setCurrentStore($storeId); + return true; + } + return false; + } } diff --git a/app/code/community/Nosto/Tagging/controllers/ExportController.php b/app/code/community/Nosto/Tagging/controllers/ExportController.php index ee644442..32e2ae68 100644 --- a/app/code/community/Nosto/Tagging/controllers/ExportController.php +++ b/app/code/community/Nosto/Tagging/controllers/ExportController.php @@ -24,7 +24,7 @@ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ -require_once(Mage::getBaseDir('lib').'/nosto/php-sdk/src/config.inc.php'); +require_once(Mage::getBaseDir('lib') . '/nosto/php-sdk/src/config.inc.php'); /** * History data export controller. @@ -37,81 +37,81 @@ */ class Nosto_tagging_ExportController extends Mage_Core_Controller_Front_Action { - /** - * Exports completed orders from the current store. - * Result can be limited by the `limit` and `offset` GET parameters. - */ - public function orderAction() - { - if (Mage::helper('nosto_tagging')->isModuleEnabled()) { - $pageSize = (int)$this->getRequest()->getParam('limit', 100); - $currentPage = (int)$this->getRequest()->getParam('offset', 0) + 1; - $orders = Mage::getModel('sales/order') - ->getCollection() - ->addFieldToFilter('store_id', Mage::app()->getStore()->getId()) - ->addAttributeToFilter('status', Mage_Sales_Model_Order::STATE_COMPLETE) - ->setPageSize($pageSize) - ->setCurPage($currentPage); - if ($currentPage > $orders->getLastPageNumber()) { - $orders = array(); - } - $collection = new NostoExportOrderCollection(); - foreach ($orders as $order) { - $meta = new Nosto_Tagging_Model_Meta_Order(); - $meta->loadData($order); - $collection[] = $meta; - } - $this->export($collection); - } - } + /** + * Exports completed orders from the current store. + * Result can be limited by the `limit` and `offset` GET parameters. + */ + public function orderAction() + { + if (Mage::helper('nosto_tagging')->isModuleEnabled()) { + $pageSize = (int)$this->getRequest()->getParam('limit', 100); + $currentPage = (int)$this->getRequest()->getParam('offset', 0) + 1; + $orders = Mage::getModel('sales/order') + ->getCollection() + ->addFieldToFilter('store_id', Mage::app()->getStore()->getId()) + ->addAttributeToFilter('status', Mage_Sales_Model_Order::STATE_COMPLETE) + ->setPageSize($pageSize) + ->setCurPage($currentPage); + if ($currentPage > $orders->getLastPageNumber()) { + $orders = array(); + } + $collection = new NostoExportOrderCollection(); + foreach ($orders as $order) { + $meta = new Nosto_Tagging_Model_Meta_Order(); + $meta->loadData($order); + $collection[] = $meta; + } + $this->export($collection); + } + } - /** - * Exports visible products from the current store. - * Result can be limited by the `limit` and `offset` GET parameters. - */ - public function productAction() - { - if (Mage::helper('nosto_tagging')->isModuleEnabled()) { - $pageSize = (int)$this->getRequest()->getParam('limit', 100); - $currentPage = (int)$this->getRequest()->getParam('offset', 0) + 1; - $products = Mage::getModel('catalog/product') - ->getCollection() - ->addStoreFilter(Mage::app()->getStore()->getId()) - ->addAttributeToSelect('*') - ->addAttributeToFilter('status', array('eq' => Mage_Catalog_Model_Product_Status::STATUS_ENABLED)) - ->addFieldToFilter('visibility', Mage_Catalog_Model_Product_Visibility::VISIBILITY_BOTH) - ->setPageSize($pageSize) - ->setCurPage($currentPage); - if ($currentPage > $products->getLastPageNumber()) { - $products = array(); - } - $collection = new NostoExportProductCollection(); - foreach ($products as $product) { - if ($product->getTypeId() === Mage_Catalog_Model_Product_Type::TYPE_BUNDLE - && (int)$product->getPriceType() === Mage_Bundle_Model_Product_Price::PRICE_TYPE_FIXED - ) { - continue; - } - $meta = new Nosto_Tagging_Model_Meta_Product(); - $meta->loadData($product); - $collection[] = $meta; - } - $this->export($collection); - } - } + /** + * Exports visible products from the current store. + * Result can be limited by the `limit` and `offset` GET parameters. + */ + public function productAction() + { + if (Mage::helper('nosto_tagging')->isModuleEnabled()) { + $pageSize = (int)$this->getRequest()->getParam('limit', 100); + $currentPage = (int)$this->getRequest()->getParam('offset', 0) + 1; + $products = Mage::getModel('catalog/product') + ->getCollection() + ->addStoreFilter(Mage::app()->getStore()->getId()) + ->addAttributeToSelect('*') + ->addAttributeToFilter('status', array('eq' => Mage_Catalog_Model_Product_Status::STATUS_ENABLED)) + ->addFieldToFilter('visibility', Mage_Catalog_Model_Product_Visibility::VISIBILITY_BOTH) + ->setPageSize($pageSize) + ->setCurPage($currentPage); + if ($currentPage > $products->getLastPageNumber()) { + $products = array(); + } + $collection = new NostoExportProductCollection(); + foreach ($products as $product) { + if ($product->getTypeId() === Mage_Catalog_Model_Product_Type::TYPE_BUNDLE + && (int)$product->getPriceType() === Mage_Bundle_Model_Product_Price::PRICE_TYPE_FIXED + ) { + continue; + } + $meta = new Nosto_Tagging_Model_Meta_Product(); + $meta->loadData($product); + $collection[] = $meta; + } + $this->export($collection); + } + } - /** - * Encrypts the export collection and outputs it to the browser. - * - * @param NostoExportCollection $collection the data collection to export. - */ - protected function export(NostoExportCollection $collection) - { - $account = Mage::helper('nosto_tagging/account')->find(); - if ($account !== null) { - $cipher_text = NostoExporter::export($account, $collection); - echo $cipher_text; - } - die(); - } + /** + * Encrypts the export collection and outputs it to the browser. + * + * @param NostoExportCollection $collection the data collection to export. + */ + protected function export(NostoExportCollection $collection) + { + $account = Mage::helper('nosto_tagging/account')->find(); + if ($account !== null) { + $cipher_text = NostoExporter::export($account, $collection); + echo $cipher_text; + } + die(); + } } diff --git a/app/code/community/Nosto/Tagging/controllers/OauthController.php b/app/code/community/Nosto/Tagging/controllers/OauthController.php index 4478d22d..548ccdf0 100644 --- a/app/code/community/Nosto/Tagging/controllers/OauthController.php +++ b/app/code/community/Nosto/Tagging/controllers/OauthController.php @@ -24,7 +24,7 @@ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ -require_once(Mage::getBaseDir('lib').'/nosto/php-sdk/src/config.inc.php'); +require_once(Mage::getBaseDir('lib') . '/nosto/php-sdk/src/config.inc.php'); /** * OAuth2 controller. @@ -36,48 +36,48 @@ */ class Nosto_tagging_OauthController extends Mage_Core_Controller_Front_Action { - /** - * Handles the redirect from Nosto oauth2 authorization server when an existing account is connected to a store. - * This is handled in the front end as the oauth2 server validates the "return_url" sent in the first step of the - * authorization cycle, and requires it to be from the same domain that the account is configured for and only - * redirects to that domain. - */ - public function indexAction() - { - if (($code = $this->getRequest()->getParam('code')) !== null) { - try { - $account = NostoAccount::syncFromNosto(Mage::helper('nosto_tagging/oauth')->getMetaData(), $code); - if (Mage::helper('nosto_tagging/account')->save($account)) { - $params = array( - 'success' => $this->__('Account %s successfully connected to Nosto.', $account->name), - 'store' => (int)Mage::app()->getStore()->getId(), - ); - } else { - throw new NostoException('Failed to connect account'); - } - } catch (NostoException $e) { - Mage::log("\n" . $e->__toString(), Zend_Log::ERR, 'nostotagging.log'); - $params = array( - 'error' => $this->__('Account could not be connected to Nosto. Please contact Nosto support.'), - 'store' => (int)Mage::app()->getStore()->getId(), - ); - } - $this->_redirect('adminhtml/nosto/redirectProxy', $params); - } elseif (($error = $this->getRequest()->getParam('error')) !== null) { - $parts = array($error); - if (($reason = $this->getRequest()->getParam('error_reason')) !== null) { - $parts[] = $reason; - } - if (($desc = $this->getRequest()->getParam('error_description')) !== null) { - $parts[] = $desc; - } - Mage::log("\n" . implode(' - ', $parts), Zend_Log::ERR, 'nostotagging.log'); - $this->_redirect('adminhtml/nosto/redirectProxy', array( - 'error' => $this->__('Account could not be connected to Nosto. You rejected the connection request.'), - 'store' => (int)Mage::app()->getStore()->getId(), - )); - } else { - $this->norouteAction(); - } - } + /** + * Handles the redirect from Nosto oauth2 authorization server when an existing account is connected to a store. + * This is handled in the front end as the oauth2 server validates the "return_url" sent in the first step of the + * authorization cycle, and requires it to be from the same domain that the account is configured for and only + * redirects to that domain. + */ + public function indexAction() + { + if (($code = $this->getRequest()->getParam('code')) !== null) { + try { + $account = NostoAccount::syncFromNosto(Mage::helper('nosto_tagging/oauth')->getMetaData(), $code); + if (Mage::helper('nosto_tagging/account')->save($account)) { + $params = array( + 'success' => $this->__('Account %s successfully connected to Nosto.', $account->name), + 'store' => (int)Mage::app()->getStore()->getId(), + ); + } else { + throw new NostoException('Failed to connect account'); + } + } catch (NostoException $e) { + Mage::log("\n" . $e->__toString(), Zend_Log::ERR, 'nostotagging.log'); + $params = array( + 'error' => $this->__('Account could not be connected to Nosto. Please contact Nosto support.'), + 'store' => (int)Mage::app()->getStore()->getId(), + ); + } + $this->_redirect('adminhtml/nosto/redirectProxy', $params); + } elseif (($error = $this->getRequest()->getParam('error')) !== null) { + $parts = array($error); + if (($reason = $this->getRequest()->getParam('error_reason')) !== null) { + $parts[] = $reason; + } + if (($desc = $this->getRequest()->getParam('error_description')) !== null) { + $parts[] = $desc; + } + Mage::log("\n" . implode(' - ', $parts), Zend_Log::ERR, 'nostotagging.log'); + $this->_redirect('adminhtml/nosto/redirectProxy', array( + 'error' => $this->__('Account could not be connected to Nosto. You rejected the connection request.'), + 'store' => (int)Mage::app()->getStore()->getId(), + )); + } else { + $this->norouteAction(); + } + } } diff --git a/app/code/community/Nosto/Tagging/sql/tagging_setup/mysql4-install-1.2.0.php b/app/code/community/Nosto/Tagging/sql/tagging_setup/mysql4-install-1.2.0.php index 1cb33c05..7db1d9cc 100644 --- a/app/code/community/Nosto/Tagging/sql/tagging_setup/mysql4-install-1.2.0.php +++ b/app/code/community/Nosto/Tagging/sql/tagging_setup/mysql4-install-1.2.0.php @@ -37,31 +37,31 @@ $installer->startSetup(); $table = $installer - ->getConnection() - ->newTable($installer->getTable('nosto_tagging/customer')) - ->addColumn('customer_id', Varien_Db_Ddl_Table::TYPE_INTEGER, 10, array( - 'unsigned' => true, - 'nullable' => false, - 'primary' => true, - 'identity' => true - )) - ->addColumn('quote_id', Varien_Db_Ddl_Table::TYPE_INTEGER, 10, array( - 'unsigned' => true, - 'nullable' => false - )) - ->addColumn('nosto_id', Varien_Db_Ddl_Table::TYPE_VARCHAR, 255, array( - 'nullable' => false - )) - ->addColumn('created_at', Varien_Db_Ddl_Table::TYPE_DATETIME, null, array( - 'nullable' => false - )) - ->addColumn('updated_at', Varien_Db_Ddl_Table::TYPE_DATETIME, null, array( - 'nullable' => true - )) - ->addIndex($installer->getIdxName('nosto_tagging/customer', array('quote_id', 'nosto_id'), - Varien_Db_Adapter_Interface::INDEX_TYPE_UNIQUE), array('quote_id', 'nosto_id'), array( - 'type' => Varien_Db_Adapter_Interface::INDEX_TYPE_UNIQUE - )); + ->getConnection() + ->newTable($installer->getTable('nosto_tagging/customer')) + ->addColumn('customer_id', Varien_Db_Ddl_Table::TYPE_INTEGER, 10, array( + 'unsigned' => true, + 'nullable' => false, + 'primary' => true, + 'identity' => true + )) + ->addColumn('quote_id', Varien_Db_Ddl_Table::TYPE_INTEGER, 10, array( + 'unsigned' => true, + 'nullable' => false + )) + ->addColumn('nosto_id', Varien_Db_Ddl_Table::TYPE_VARCHAR, 255, array( + 'nullable' => false + )) + ->addColumn('created_at', Varien_Db_Ddl_Table::TYPE_DATETIME, null, array( + 'nullable' => false + )) + ->addColumn('updated_at', Varien_Db_Ddl_Table::TYPE_DATETIME, null, array( + 'nullable' => true + )) + ->addIndex($installer->getIdxName('nosto_tagging/customer', array('quote_id', 'nosto_id'), + Varien_Db_Adapter_Interface::INDEX_TYPE_UNIQUE), array('quote_id', 'nosto_id'), array( + 'type' => Varien_Db_Adapter_Interface::INDEX_TYPE_UNIQUE + )); $installer->getConnection()->createTable($table); $installer->endSetup(); diff --git a/app/code/community/Nosto/Tagging/sql/tagging_setup/mysql4-upgrade-1.1.7-1.2.0.php b/app/code/community/Nosto/Tagging/sql/tagging_setup/mysql4-upgrade-1.1.7-1.2.0.php index 248f48a9..c466b40c 100644 --- a/app/code/community/Nosto/Tagging/sql/tagging_setup/mysql4-upgrade-1.1.7-1.2.0.php +++ b/app/code/community/Nosto/Tagging/sql/tagging_setup/mysql4-upgrade-1.1.7-1.2.0.php @@ -39,31 +39,31 @@ $installer->getConnection()->delete($installer->getTable('core/config_data'), '`path` LIKE "nosto_tagging/%"'); $table = $installer - ->getConnection() - ->newTable($installer->getTable('nosto_tagging/customer')) - ->addColumn('customer_id', Varien_Db_Ddl_Table::TYPE_INTEGER, 10, array( - 'unsigned' => true, - 'nullable' => false, - 'primary' => true, - 'identity' => true - )) - ->addColumn('quote_id', Varien_Db_Ddl_Table::TYPE_INTEGER, 10, array( - 'unsigned' => true, - 'nullable' => false - )) - ->addColumn('nosto_id', Varien_Db_Ddl_Table::TYPE_VARCHAR, 255, array( - 'nullable' => false - )) - ->addColumn('created_at', Varien_Db_Ddl_Table::TYPE_DATETIME, null, array( - 'nullable' => false - )) - ->addColumn('updated_at', Varien_Db_Ddl_Table::TYPE_DATETIME, null, array( - 'nullable' => true - )) - ->addIndex($installer->getIdxName('nosto_tagging/customer', array('quote_id', 'nosto_id'), - Varien_Db_Adapter_Interface::INDEX_TYPE_UNIQUE), array('quote_id', 'nosto_id'), array( - 'type' => Varien_Db_Adapter_Interface::INDEX_TYPE_UNIQUE - )); + ->getConnection() + ->newTable($installer->getTable('nosto_tagging/customer')) + ->addColumn('customer_id', Varien_Db_Ddl_Table::TYPE_INTEGER, 10, array( + 'unsigned' => true, + 'nullable' => false, + 'primary' => true, + 'identity' => true + )) + ->addColumn('quote_id', Varien_Db_Ddl_Table::TYPE_INTEGER, 10, array( + 'unsigned' => true, + 'nullable' => false + )) + ->addColumn('nosto_id', Varien_Db_Ddl_Table::TYPE_VARCHAR, 255, array( + 'nullable' => false + )) + ->addColumn('created_at', Varien_Db_Ddl_Table::TYPE_DATETIME, null, array( + 'nullable' => false + )) + ->addColumn('updated_at', Varien_Db_Ddl_Table::TYPE_DATETIME, null, array( + 'nullable' => true + )) + ->addIndex($installer->getIdxName('nosto_tagging/customer', array('quote_id', 'nosto_id'), + Varien_Db_Adapter_Interface::INDEX_TYPE_UNIQUE), array('quote_id', 'nosto_id'), array( + 'type' => Varien_Db_Adapter_Interface::INDEX_TYPE_UNIQUE + )); $installer->getConnection()->createTable($table); $installer->endSetup(); From caf141a92d4994ae38c540f5891233792b7751ed Mon Sep 17 00:00:00 2001 From: Christoffer Lindqvist Date: Mon, 19 Jan 2015 13:33:29 +0200 Subject: [PATCH 55/71] Coding standards --- .../Block/Adminhtml/Form/Account/Connect.php | 18 +-- .../Block/Adminhtml/Form/Account/Create.php | 18 +-- .../Block/Adminhtml/Form/Account/Remove.php | 18 +-- .../Nosto/Tagging/Block/Adminhtml/Iframe.php | 14 +-- .../Nosto/Tagging/Block/Adminhtml/Wizard.php | 14 +-- .../community/Nosto/Tagging/Block/Cart.php | 14 +-- .../Nosto/Tagging/Block/Category.php | 14 +-- .../Nosto/Tagging/Block/Customer.php | 14 +-- .../community/Nosto/Tagging/Block/Element.php | 14 +-- .../community/Nosto/Tagging/Block/Embed.php | 14 +-- .../community/Nosto/Tagging/Block/Order.php | 14 +-- .../community/Nosto/Tagging/Block/Product.php | 14 +-- .../Nosto/Tagging/Helper/Account.php | 16 +-- .../Nosto/Tagging/Helper/Customer.php | 14 +-- .../community/Nosto/Tagging/Helper/Data.php | 14 +-- .../community/Nosto/Tagging/Helper/Date.php | 14 +-- .../community/Nosto/Tagging/Helper/Oauth.php | 16 +-- .../community/Nosto/Tagging/Helper/Price.php | 14 +-- .../community/Nosto/Tagging/Helper/Url.php | 14 +-- .../Nosto/Tagging/Model/Customer.php | 18 +-- .../Nosto/Tagging/Model/Meta/Account.php | 61 +++++++--- .../Tagging/Model/Meta/Account/Billing.php | 22 ++-- .../Tagging/Model/Meta/Account/Iframe.php | 86 +++++++++++---- .../Tagging/Model/Meta/Account/Owner.php | 18 +-- .../Nosto/Tagging/Model/Meta/Oauth.php | 42 ++++--- .../Nosto/Tagging/Model/Meta/Order.php | 50 ++++++--- .../Nosto/Tagging/Model/Meta/Order/Buyer.php | 30 +++-- .../Nosto/Tagging/Model/Meta/Order/Item.php | 41 ++++--- .../Nosto/Tagging/Model/Meta/Product.php | 104 ++++++++++++------ .../Nosto/Tagging/Model/Observer.php | 35 +++--- .../Nosto/Tagging/Model/Resource/Customer.php | 18 +-- .../Model/Resource/Customer/Collection.php | 18 +-- .../Nosto/Tagging/Model/Resource/Setup.php | 14 +-- .../controllers/Adminhtml/NostoController.php | 18 +-- .../Tagging/controllers/ExportController.php | 16 +-- .../Tagging/controllers/OauthController.php | 16 +-- .../community/Nosto/Tagging/etc/adminhtml.xml | 8 +- .../community/Nosto/Tagging/etc/config.xml | 8 +- .../tagging_setup/mysql4-install-1.2.0.php | 73 +++++++----- .../mysql4-upgrade-1.1.7-1.2.0.php | 79 ++++++++----- .../default/default/layout/nostotagging.xml | 8 +- .../nostotagging/form/account/connect.phtml | 8 +- .../nostotagging/form/account/create.phtml | 8 +- .../nostotagging/form/account/remove.phtml | 8 +- .../template/nostotagging/iframe.phtml | 8 +- .../template/nostotagging/wizard.phtml | 8 +- .../base/default/layout/nostotagging.xml | 8 +- .../default/template/nostotagging/cart.phtml | 8 +- .../template/nostotagging/category.phtml | 8 +- .../template/nostotagging/category/view.phtml | 8 +- .../template/nostotagging/customer.phtml | 8 +- .../template/nostotagging/element.phtml | 8 +- .../default/template/nostotagging/embed.phtml | 8 +- .../default/template/nostotagging/order.phtml | 8 +- .../template/nostotagging/product.phtml | 8 +- app/etc/modules/Nosto_Tagging.xml | 8 +- js/nostotagging-config.js | 8 +- 57 files changed, 707 insertions(+), 486 deletions(-) diff --git a/app/code/community/Nosto/Tagging/Block/Adminhtml/Form/Account/Connect.php b/app/code/community/Nosto/Tagging/Block/Adminhtml/Form/Account/Connect.php index fa124c49..e99fc57b 100644 --- a/app/code/community/Nosto/Tagging/Block/Adminhtml/Form/Account/Connect.php +++ b/app/code/community/Nosto/Tagging/Block/Adminhtml/Form/Account/Connect.php @@ -18,24 +18,26 @@ * versions in the future. If you wish to customize Magento for your * needs please refer to http://www.magentocommerce.com for more information. * - * @category Nosto - * @package Nosto_Tagging - * @copyright Copyright (c) 2013-2015 Nosto Solutions Ltd (http://www.nosto.com) - * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) + * @category Nosto + * @package Nosto_Tagging + * @copyright Copyright (c) 2013-2015 Nosto Solutions Ltd (http://www.nosto.com) + * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ /** * "Connect to Nosto" form block. * Creates the html form needed for submitting the "Connect to Nosto" request to the admin controller. * - * @category Nosto - * @package Nosto_Tagging - * @author Nosto Solutions Ltd + * @category Nosto + * @package Nosto_Tagging + * @author Nosto Solutions Ltd */ class Nosto_Tagging_Block_Adminhtml_Form_Account_Connect extends Mage_Adminhtml_Block_Widget_Form { /** - * @inheritdoc + * Prepare form before rendering HTML + * + * @return Mage_Adminhtml_Block_Widget_Form */ protected function _prepareForm() { diff --git a/app/code/community/Nosto/Tagging/Block/Adminhtml/Form/Account/Create.php b/app/code/community/Nosto/Tagging/Block/Adminhtml/Form/Account/Create.php index 9d2a288c..2562e932 100644 --- a/app/code/community/Nosto/Tagging/Block/Adminhtml/Form/Account/Create.php +++ b/app/code/community/Nosto/Tagging/Block/Adminhtml/Form/Account/Create.php @@ -18,24 +18,26 @@ * versions in the future. If you wish to customize Magento for your * needs please refer to http://www.magentocommerce.com for more information. * - * @category Nosto - * @package Nosto_Tagging - * @copyright Copyright (c) 2013-2015 Nosto Solutions Ltd (http://www.nosto.com) - * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) + * @category Nosto + * @package Nosto_Tagging + * @copyright Copyright (c) 2013-2015 Nosto Solutions Ltd (http://www.nosto.com) + * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ /** * 'Create new account' form block. * Creates the html form needed for submitting the 'Create new account' request to the admin controller. * - * @category Nosto - * @package Nosto_Tagging - * @author Nosto Solutions Ltd + * @category Nosto + * @package Nosto_Tagging + * @author Nosto Solutions Ltd */ class Nosto_Tagging_Block_Adminhtml_Form_Account_Create extends Mage_Adminhtml_Block_Widget_Form { /** - * @inheritdoc + * Prepare form before rendering HTML + * + * @return Mage_Adminhtml_Block_Widget_Form */ protected function _prepareForm() { diff --git a/app/code/community/Nosto/Tagging/Block/Adminhtml/Form/Account/Remove.php b/app/code/community/Nosto/Tagging/Block/Adminhtml/Form/Account/Remove.php index 491f0212..9afe8e8f 100644 --- a/app/code/community/Nosto/Tagging/Block/Adminhtml/Form/Account/Remove.php +++ b/app/code/community/Nosto/Tagging/Block/Adminhtml/Form/Account/Remove.php @@ -18,24 +18,26 @@ * versions in the future. If you wish to customize Magento for your * needs please refer to http://www.magentocommerce.com for more information. * - * @category Nosto - * @package Nosto_Tagging - * @copyright Copyright (c) 2013-2015 Nosto Solutions Ltd (http://www.nosto.com) - * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) + * @category Nosto + * @package Nosto_Tagging + * @copyright Copyright (c) 2013-2015 Nosto Solutions Ltd (http://www.nosto.com) + * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ /** * 'Remove Nosto' form block. * Creates the html form needed for submitting 'Remove Nosto' requests to the admin controller. * - * @category Nosto - * @package Nosto_Tagging - * @author Nosto Solutions Ltd + * @category Nosto + * @package Nosto_Tagging + * @author Nosto Solutions Ltd */ class Nosto_Tagging_Block_Adminhtml_Form_Account_Remove extends Mage_Adminhtml_Block_Widget_Form { /** - * @inheritdoc + * Prepare form before rendering HTML + * + * @return Mage_Adminhtml_Block_Widget_Form */ protected function _prepareForm() { diff --git a/app/code/community/Nosto/Tagging/Block/Adminhtml/Iframe.php b/app/code/community/Nosto/Tagging/Block/Adminhtml/Iframe.php index b37ced88..d1ab6718 100644 --- a/app/code/community/Nosto/Tagging/Block/Adminhtml/Iframe.php +++ b/app/code/community/Nosto/Tagging/Block/Adminhtml/Iframe.php @@ -18,19 +18,19 @@ * versions in the future. If you wish to customize Magento for your * needs please refer to http://www.magentocommerce.com for more information. * - * @category Nosto - * @package Nosto_Tagging - * @copyright Copyright (c) 2013-2015 Nosto Solutions Ltd (http://www.nosto.com) - * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) + * @category Nosto + * @package Nosto_Tagging + * @copyright Copyright (c) 2013-2015 Nosto Solutions Ltd (http://www.nosto.com) + * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ /** * Nosto iframe block. * Adds an iframe for configuring a Nosto account. * - * @category Nosto - * @package Nosto_Tagging - * @author Nosto Solutions Ltd + * @category Nosto + * @package Nosto_Tagging + * @author Nosto Solutions Ltd */ class Nosto_tagging_Block_Adminhtml_Iframe extends Mage_Adminhtml_Block_Template { diff --git a/app/code/community/Nosto/Tagging/Block/Adminhtml/Wizard.php b/app/code/community/Nosto/Tagging/Block/Adminhtml/Wizard.php index ff963f30..ddd7647c 100644 --- a/app/code/community/Nosto/Tagging/Block/Adminhtml/Wizard.php +++ b/app/code/community/Nosto/Tagging/Block/Adminhtml/Wizard.php @@ -18,19 +18,19 @@ * versions in the future. If you wish to customize Magento for your * needs please refer to http://www.magentocommerce.com for more information. * - * @category Nosto - * @package Nosto_Tagging - * @copyright Copyright (c) 2013-2015 Nosto Solutions Ltd (http://www.nosto.com) - * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) + * @category Nosto + * @package Nosto_Tagging + * @copyright Copyright (c) 2013-2015 Nosto Solutions Ltd (http://www.nosto.com) + * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ /** * Nosto configuration wizard block. * Adds the 'wizard' markup for creating and managing Nosto accounts. * - * @category Nosto - * @package Nosto_Tagging - * @author Nosto Solutions Ltd + * @category Nosto + * @package Nosto_Tagging + * @author Nosto Solutions Ltd */ class Nosto_tagging_Block_Adminhtml_Wizard extends Mage_Adminhtml_Block_Template { diff --git a/app/code/community/Nosto/Tagging/Block/Cart.php b/app/code/community/Nosto/Tagging/Block/Cart.php index df6b1322..8a81542f 100644 --- a/app/code/community/Nosto/Tagging/Block/Cart.php +++ b/app/code/community/Nosto/Tagging/Block/Cart.php @@ -18,19 +18,19 @@ * versions in the future. If you wish to customize Magento for your * needs please refer to http://www.magentocommerce.com for more information. * - * @category Nosto - * @package Nosto_Tagging - * @copyright Copyright (c) 2013-2015 Nosto Solutions Ltd (http://www.nosto.com) - * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) + * @category Nosto + * @package Nosto_Tagging + * @copyright Copyright (c) 2013-2015 Nosto Solutions Ltd (http://www.nosto.com) + * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ /** * Shopping cart content tagging block. * Adds meta-data to the HTML document for shopping cart content. * - * @category Nosto - * @package Nosto_Tagging - * @author Nosto Solutions Ltd + * @category Nosto + * @package Nosto_Tagging + * @author Nosto Solutions Ltd */ class Nosto_Tagging_Block_Cart extends Mage_Checkout_Block_Cart_Abstract { diff --git a/app/code/community/Nosto/Tagging/Block/Category.php b/app/code/community/Nosto/Tagging/Block/Category.php index 58ff408c..b4410e19 100644 --- a/app/code/community/Nosto/Tagging/Block/Category.php +++ b/app/code/community/Nosto/Tagging/Block/Category.php @@ -18,19 +18,19 @@ * versions in the future. If you wish to customize Magento for your * needs please refer to http://www.magentocommerce.com for more information. * - * @category Nosto - * @package Nosto_Tagging - * @copyright Copyright (c) 2013-2015 Nosto Solutions Ltd (http://www.nosto.com) - * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) + * @category Nosto + * @package Nosto_Tagging + * @copyright Copyright (c) 2013-2015 Nosto Solutions Ltd (http://www.nosto.com) + * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ /** * Current category tagging block. * Adds meta-data to the HTML document for the current catalog category (including parent categories). * - * @category Nosto - * @package Nosto_Tagging - * @author Nosto Solutions Ltd + * @category Nosto + * @package Nosto_Tagging + * @author Nosto Solutions Ltd */ class Nosto_Tagging_Block_Category extends Mage_Core_Block_Template { diff --git a/app/code/community/Nosto/Tagging/Block/Customer.php b/app/code/community/Nosto/Tagging/Block/Customer.php index db612ea0..ee5a51a6 100644 --- a/app/code/community/Nosto/Tagging/Block/Customer.php +++ b/app/code/community/Nosto/Tagging/Block/Customer.php @@ -18,19 +18,19 @@ * versions in the future. If you wish to customize Magento for your * needs please refer to http://www.magentocommerce.com for more information. * - * @category Nosto - * @package Nosto_Tagging - * @copyright Copyright (c) 2013-2015 Nosto Solutions Ltd (http://www.nosto.com) - * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) + * @category Nosto + * @package Nosto_Tagging + * @copyright Copyright (c) 2013-2015 Nosto Solutions Ltd (http://www.nosto.com) + * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ /** * Customer info tagging block. * Adds meta-data to the HTML document for logged in customer. * - * @category Nosto - * @package Nosto_Tagging - * @author Nosto Solutions Ltd + * @category Nosto + * @package Nosto_Tagging + * @author Nosto Solutions Ltd */ class Nosto_Tagging_Block_Customer extends Mage_Customer_Block_Account_Dashboard { diff --git a/app/code/community/Nosto/Tagging/Block/Element.php b/app/code/community/Nosto/Tagging/Block/Element.php index 8258f552..9a543504 100644 --- a/app/code/community/Nosto/Tagging/Block/Element.php +++ b/app/code/community/Nosto/Tagging/Block/Element.php @@ -18,10 +18,10 @@ * versions in the future. If you wish to customize Magento for your * needs please refer to http://www.magentocommerce.com for more information. * - * @category Nosto - * @package Nosto_Tagging - * @copyright Copyright (c) 2013-2015 Nosto Solutions Ltd (http://www.nosto.com) - * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) + * @category Nosto + * @package Nosto_Tagging + * @copyright Copyright (c) 2013-2015 Nosto Solutions Ltd (http://www.nosto.com) + * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ /** @@ -30,9 +30,9 @@ * * @method string getDivId() Return the id of the element (defined in layout xml). * - * @category Nosto - * @package Nosto_Tagging - * @author Nosto Solutions Ltd + * @category Nosto + * @package Nosto_Tagging + * @author Nosto Solutions Ltd */ class Nosto_Tagging_Block_Element extends Mage_Core_Block_Template { diff --git a/app/code/community/Nosto/Tagging/Block/Embed.php b/app/code/community/Nosto/Tagging/Block/Embed.php index 553df812..b3dfe6a5 100644 --- a/app/code/community/Nosto/Tagging/Block/Embed.php +++ b/app/code/community/Nosto/Tagging/Block/Embed.php @@ -18,10 +18,10 @@ * versions in the future. If you wish to customize Magento for your * needs please refer to http://www.magentocommerce.com for more information. * - * @category Nosto - * @package Nosto_Tagging - * @copyright Copyright (c) 2013-2015 Nosto Solutions Ltd (http://www.nosto.com) - * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) + * @category Nosto + * @package Nosto_Tagging + * @copyright Copyright (c) 2013-2015 Nosto Solutions Ltd (http://www.nosto.com) + * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ /** @@ -29,9 +29,9 @@ * Adds JavaScript to the document HEAD that takes care of the meta-data gathering * and displaying of recommended products. * - * @category Nosto - * @package Nosto_Tagging - * @author Nosto Solutions Ltd + * @category Nosto + * @package Nosto_Tagging + * @author Nosto Solutions Ltd */ class Nosto_Tagging_Block_Embed extends Mage_Core_Block_Template { diff --git a/app/code/community/Nosto/Tagging/Block/Order.php b/app/code/community/Nosto/Tagging/Block/Order.php index 17165fed..2003fe17 100644 --- a/app/code/community/Nosto/Tagging/Block/Order.php +++ b/app/code/community/Nosto/Tagging/Block/Order.php @@ -18,19 +18,19 @@ * versions in the future. If you wish to customize Magento for your * needs please refer to http://www.magentocommerce.com for more information. * - * @category Nosto - * @package Nosto_Tagging - * @copyright Copyright (c) 2013-2015 Nosto Solutions Ltd (http://www.nosto.com) - * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) + * @category Nosto + * @package Nosto_Tagging + * @copyright Copyright (c) 2013-2015 Nosto Solutions Ltd (http://www.nosto.com) + * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ /** * Order tagging block. * Adds meta-data to the HTML document for successful orders. * - * @category Nosto - * @package Nosto_Tagging - * @author Nosto Solutions Ltd + * @category Nosto + * @package Nosto_Tagging + * @author Nosto Solutions Ltd */ class Nosto_Tagging_Block_Order extends Mage_Checkout_Block_Success { diff --git a/app/code/community/Nosto/Tagging/Block/Product.php b/app/code/community/Nosto/Tagging/Block/Product.php index 7c1680da..93df1b61 100644 --- a/app/code/community/Nosto/Tagging/Block/Product.php +++ b/app/code/community/Nosto/Tagging/Block/Product.php @@ -18,19 +18,19 @@ * versions in the future. If you wish to customize Magento for your * needs please refer to http://www.magentocommerce.com for more information. * - * @category Nosto - * @package Nosto_Tagging - * @copyright Copyright (c) 2013-2015 Nosto Solutions Ltd (http://www.nosto.com) - * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) + * @category Nosto + * @package Nosto_Tagging + * @copyright Copyright (c) 2013-2015 Nosto Solutions Ltd (http://www.nosto.com) + * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ /** * Product tagging block. * Adds meta-data to the HTML document for the currently viewed product. * - * @category Nosto - * @package Nosto_Tagging - * @author Nosto Solutions Ltd + * @category Nosto + * @package Nosto_Tagging + * @author Nosto Solutions Ltd */ class Nosto_Tagging_Block_Product extends Mage_Catalog_Block_Product_Abstract { diff --git a/app/code/community/Nosto/Tagging/Helper/Account.php b/app/code/community/Nosto/Tagging/Helper/Account.php index c3355d1a..e3a88259 100644 --- a/app/code/community/Nosto/Tagging/Helper/Account.php +++ b/app/code/community/Nosto/Tagging/Helper/Account.php @@ -18,21 +18,21 @@ * versions in the future. If you wish to customize Magento for your * needs please refer to http://www.magentocommerce.com for more information. * - * @category Nosto - * @package Nosto_Tagging - * @copyright Copyright (c) 2013-2015 Nosto Solutions Ltd (http://www.nosto.com) - * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) + * @category Nosto + * @package Nosto_Tagging + * @copyright Copyright (c) 2013-2015 Nosto Solutions Ltd (http://www.nosto.com) + * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ -require_once(Mage::getBaseDir('lib') . '/nosto/php-sdk/src/config.inc.php'); +require_once Mage::getBaseDir('lib') . '/nosto/php-sdk/src/config.inc.php'; /** * Helper class for managing Nosto accounts. * Includes methods for saving, removing and finding accounts for a specific store view. * - * @category Nosto - * @package Nosto_Tagging - * @author Nosto Solutions Ltd + * @category Nosto + * @package Nosto_Tagging + * @author Nosto Solutions Ltd */ class Nosto_Tagging_Helper_Account extends Mage_Core_Helper_Abstract { diff --git a/app/code/community/Nosto/Tagging/Helper/Customer.php b/app/code/community/Nosto/Tagging/Helper/Customer.php index 75a10d63..b806cef4 100644 --- a/app/code/community/Nosto/Tagging/Helper/Customer.php +++ b/app/code/community/Nosto/Tagging/Helper/Customer.php @@ -18,18 +18,18 @@ * versions in the future. If you wish to customize Magento for your * needs please refer to http://www.magentocommerce.com for more information. * - * @category Nosto - * @package Nosto_Tagging - * @copyright Copyright (c) 2013-2015 Nosto Solutions Ltd (http://www.nosto.com) - * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) + * @category Nosto + * @package Nosto_Tagging + * @copyright Copyright (c) 2013-2015 Nosto Solutions Ltd (http://www.nosto.com) + * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ /** * Helper class for Nosto customer related actions. * - * @category Nosto - * @package Nosto_Tagging - * @author Nosto Solutions Ltd + * @category Nosto + * @package Nosto_Tagging + * @author Nosto Solutions Ltd */ class Nosto_Tagging_Helper_Customer extends Mage_Core_Helper_Abstract { diff --git a/app/code/community/Nosto/Tagging/Helper/Data.php b/app/code/community/Nosto/Tagging/Helper/Data.php index 25afe811..7914e573 100644 --- a/app/code/community/Nosto/Tagging/Helper/Data.php +++ b/app/code/community/Nosto/Tagging/Helper/Data.php @@ -18,18 +18,18 @@ * versions in the future. If you wish to customize Magento for your * needs please refer to http://www.magentocommerce.com for more information. * - * @category Nosto - * @package Nosto_Tagging - * @copyright Copyright (c) 2013-2015 Nosto Solutions Ltd (http://www.nosto.com) - * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) + * @category Nosto + * @package Nosto_Tagging + * @copyright Copyright (c) 2013-2015 Nosto Solutions Ltd (http://www.nosto.com) + * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ /** * Helper class for common operations. * - * @category Nosto - * @package Nosto_Tagging - * @author Nosto Solutions Ltd + * @category Nosto + * @package Nosto_Tagging + * @author Nosto Solutions Ltd */ class Nosto_Tagging_Helper_Data extends Mage_Core_Helper_Abstract { diff --git a/app/code/community/Nosto/Tagging/Helper/Date.php b/app/code/community/Nosto/Tagging/Helper/Date.php index 5146a429..05fb2c4a 100644 --- a/app/code/community/Nosto/Tagging/Helper/Date.php +++ b/app/code/community/Nosto/Tagging/Helper/Date.php @@ -18,18 +18,18 @@ * versions in the future. If you wish to customize Magento for your * needs please refer to http://www.magentocommerce.com for more information. * - * @category Nosto - * @package Nosto_Tagging - * @copyright Copyright (c) 2013-2015 Nosto Solutions Ltd (http://www.nosto.com) - * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) + * @category Nosto + * @package Nosto_Tagging + * @copyright Copyright (c) 2013-2015 Nosto Solutions Ltd (http://www.nosto.com) + * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ /** * Helper class for common date operations. * - * @category Nosto - * @package Nosto_Tagging - * @author Nosto Solutions Ltd + * @category Nosto + * @package Nosto_Tagging + * @author Nosto Solutions Ltd */ class Nosto_Tagging_Helper_Date extends Mage_Core_Helper_Abstract { diff --git a/app/code/community/Nosto/Tagging/Helper/Oauth.php b/app/code/community/Nosto/Tagging/Helper/Oauth.php index b10dbd9d..bb9f23db 100644 --- a/app/code/community/Nosto/Tagging/Helper/Oauth.php +++ b/app/code/community/Nosto/Tagging/Helper/Oauth.php @@ -18,20 +18,20 @@ * versions in the future. If you wish to customize Magento for your * needs please refer to http://www.magentocommerce.com for more information. * - * @category Nosto - * @package Nosto_Tagging - * @copyright Copyright (c) 2013-2015 Nosto Solutions Ltd (http://www.nosto.com) - * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) + * @category Nosto + * @package Nosto_Tagging + * @copyright Copyright (c) 2013-2015 Nosto Solutions Ltd (http://www.nosto.com) + * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ -require_once(Mage::getBaseDir('lib') . '/nosto/php-sdk/src/config.inc.php'); +require_once Mage::getBaseDir('lib') . '/nosto/php-sdk/src/config.inc.php'; /** * Helper class for OAuth2 related tasks. * - * @category Nosto - * @package Nosto_Tagging - * @author Nosto Solutions Ltd + * @category Nosto + * @package Nosto_Tagging + * @author Nosto Solutions Ltd */ class Nosto_Tagging_Helper_Oauth extends Mage_Core_Helper_Abstract { diff --git a/app/code/community/Nosto/Tagging/Helper/Price.php b/app/code/community/Nosto/Tagging/Helper/Price.php index 4cf6e066..788b6884 100644 --- a/app/code/community/Nosto/Tagging/Helper/Price.php +++ b/app/code/community/Nosto/Tagging/Helper/Price.php @@ -18,18 +18,18 @@ * versions in the future. If you wish to customize Magento for your * needs please refer to http://www.magentocommerce.com for more information. * - * @category Nosto - * @package Nosto_Tagging - * @copyright Copyright (c) 2013-2015 Nosto Solutions Ltd (http://www.nosto.com) - * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) + * @category Nosto + * @package Nosto_Tagging + * @copyright Copyright (c) 2013-2015 Nosto Solutions Ltd (http://www.nosto.com) + * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ /** * Helper class for common price operations. * - * @category Nosto - * @package Nosto_Tagging - * @author Nosto Solutions Ltd + * @category Nosto + * @package Nosto_Tagging + * @author Nosto Solutions Ltd */ class Nosto_Tagging_Helper_Price extends Mage_Core_Helper_Abstract { diff --git a/app/code/community/Nosto/Tagging/Helper/Url.php b/app/code/community/Nosto/Tagging/Helper/Url.php index bd41d185..56ea3284 100644 --- a/app/code/community/Nosto/Tagging/Helper/Url.php +++ b/app/code/community/Nosto/Tagging/Helper/Url.php @@ -18,19 +18,19 @@ * versions in the future. If you wish to customize Magento for your * needs please refer to http://www.magentocommerce.com for more information. * - * @category Nosto - * @package Nosto_Tagging - * @copyright Copyright (c) 2013-2015 Nosto Solutions Ltd (http://www.nosto.com) - * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) + * @category Nosto + * @package Nosto_Tagging + * @copyright Copyright (c) 2013-2015 Nosto Solutions Ltd (http://www.nosto.com) + * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ /** * Helper class for building urls. * Includes getters for all preview urls for the Nosto account configuration iframe. * - * @category Nosto - * @package Nosto_Tagging - * @author Nosto Solutions Ltd + * @category Nosto + * @package Nosto_Tagging + * @author Nosto Solutions Ltd */ class Nosto_Tagging_Helper_Url extends Mage_Core_Helper_Abstract { diff --git a/app/code/community/Nosto/Tagging/Model/Customer.php b/app/code/community/Nosto/Tagging/Model/Customer.php index 1cb77009..326703c5 100644 --- a/app/code/community/Nosto/Tagging/Model/Customer.php +++ b/app/code/community/Nosto/Tagging/Model/Customer.php @@ -18,10 +18,10 @@ * versions in the future. If you wish to customize Magento for your * needs please refer to http://www.magentocommerce.com for more information. * - * @category Nosto - * @package Nosto_Tagging - * @copyright Copyright (c) 2013-2015 Nosto Solutions Ltd (http://www.nosto.com) - * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) + * @category Nosto + * @package Nosto_Tagging + * @copyright Copyright (c) 2013-2015 Nosto Solutions Ltd (http://www.nosto.com) + * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ /** @@ -37,14 +37,16 @@ * @method void setCreatedAt($createdAt) * @method string getCreatedAt() * - * @category Nosto - * @package Nosto_Tagging - * @author Nosto Solutions Ltd + * @category Nosto + * @package Nosto_Tagging + * @author Nosto Solutions Ltd */ class Nosto_Tagging_Model_Customer extends Mage_Core_Model_Abstract { /** - * @inheritdoc + * Internal Magento constructor. + * + * @return void */ protected function _construct() { diff --git a/app/code/community/Nosto/Tagging/Model/Meta/Account.php b/app/code/community/Nosto/Tagging/Model/Meta/Account.php index 2b9c22a0..1d740fb4 100644 --- a/app/code/community/Nosto/Tagging/Model/Meta/Account.php +++ b/app/code/community/Nosto/Tagging/Model/Meta/Account.php @@ -18,19 +18,19 @@ * versions in the future. If you wish to customize Magento for your * needs please refer to http://www.magentocommerce.com for more information. * - * @category Nosto - * @package Nosto_Tagging - * @copyright Copyright (c) 2013-2015 Nosto Solutions Ltd (http://www.nosto.com) - * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) + * @category Nosto + * @package Nosto_Tagging + * @copyright Copyright (c) 2013-2015 Nosto Solutions Ltd (http://www.nosto.com) + * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ /** * Meta data class which holds information about a new Nosto account. * This is used during the Nosto account creation. * - * @category Nosto - * @package Nosto_Tagging - * @author Nosto Solutions Ltd + * @category Nosto + * @package Nosto_Tagging + * @author Nosto Solutions Ltd */ class Nosto_Tagging_Model_Meta_Account extends Mage_Core_Model_Abstract implements NostoAccountMetaDataInterface { @@ -98,7 +98,9 @@ public function __construct() } /** - * @inheritdoc + * Internal Magento constructor. + * + * @return void */ protected function _construct() { @@ -116,7 +118,9 @@ public function setTitle($title) } /** - * @inheritdoc + * The shops name for which the account is to be created for. + * + * @return string the name. */ public function getTitle() { @@ -134,7 +138,10 @@ public function setName($name) } /** - * @inheritdoc + * The name of the account to create. + * This has to follow the pattern of "[platform name]-[8 character lowercase alpha numeric string]". + * + * @return string the account name. */ public function getName() { @@ -142,7 +149,10 @@ public function getName() } /** - * @inheritdoc + * The name of the platform the account is used on. + * A list of valid platform names is issued by Nosto. + * + * @return string the platform names. */ public function getPlatform() { @@ -160,7 +170,9 @@ public function setFrontPageUrl($url) } /** - * @inheritdoc + * Absolute url to the front page of the shop for which the account is created for. + * + * @return string the url. */ public function getFrontPageUrl() { @@ -178,7 +190,9 @@ public function setCurrencyCode($code) } /** - * @inheritdoc + * The 3-letter ISO code (ISO 4217) for the currency used by the shop for which the account is created for. + * + * @return string the currency ISO code. */ public function getCurrencyCode() { @@ -196,7 +210,9 @@ public function setLanguageCode($languageCode) } /** - * @inheritdoc + * The 2-letter ISO code (ISO 639-1) for the language used by the shop for which the account is created for. + * + * @return string the language ISO code. */ public function getLanguageCode() { @@ -214,7 +230,9 @@ public function setOwnerLanguageCode($languageCode) } /** - * @inheritdoc + * The 2-letter ISO code (ISO 639-1) for the language of the account owner who is creating the account. + * + * @return string the language ISO code. */ public function getOwnerLanguageCode() { @@ -222,7 +240,9 @@ public function getOwnerLanguageCode() } /** - * @inheritdoc + * Meta data model for the account owner who is creating the account. + * + * @return NostoAccountMetaDataOwnerInterface the meta data model. */ public function getOwner() { @@ -230,7 +250,9 @@ public function getOwner() } /** - * @inheritdoc + * Meta data model for the account billing details. + * + * @return NostoAccountMetaDataBillingDetailsInterface the meta data model. */ public function getBillingDetails() { @@ -238,7 +260,10 @@ public function getBillingDetails() } /** - * @inheritdoc + * The API token used to identify an account creation. + * This token is platform specific and issued by Nosto. + * + * @return string the API token. */ public function getSignUpApiToken() { diff --git a/app/code/community/Nosto/Tagging/Model/Meta/Account/Billing.php b/app/code/community/Nosto/Tagging/Model/Meta/Account/Billing.php index 9974733b..9fc92eb1 100644 --- a/app/code/community/Nosto/Tagging/Model/Meta/Account/Billing.php +++ b/app/code/community/Nosto/Tagging/Model/Meta/Account/Billing.php @@ -18,19 +18,19 @@ * versions in the future. If you wish to customize Magento for your * needs please refer to http://www.magentocommerce.com for more information. * - * @category Nosto - * @package Nosto_Tagging - * @copyright Copyright (c) 2013-2015 Nosto Solutions Ltd (http://www.nosto.com) - * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) + * @category Nosto + * @package Nosto_Tagging + * @copyright Copyright (c) 2013-2015 Nosto Solutions Ltd (http://www.nosto.com) + * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ /** * Meta data class which holds information about Nosto account billing. * This is used during the Nosto account creation. * - * @category Nosto - * @package Nosto_Tagging - * @author Nosto Solutions Ltd + * @category Nosto + * @package Nosto_Tagging + * @author Nosto Solutions Ltd */ class Nosto_Tagging_Model_Meta_Account_Billing extends Mage_Core_Model_Abstract implements NostoAccountMetaDataBillingDetailsInterface { @@ -51,7 +51,9 @@ public function __construct() } /** - * @inheritdoc + * Internal Magento constructor. + * + * @return void */ protected function _construct() { @@ -69,7 +71,9 @@ public function setCountry($country) } /** - * @inheritdoc + * The 2-letter ISO code (ISO 3166-1 alpha-2) for the country used in account's billing details. + * + * @return string the country ISO code. */ public function getCountry() { diff --git a/app/code/community/Nosto/Tagging/Model/Meta/Account/Iframe.php b/app/code/community/Nosto/Tagging/Model/Meta/Account/Iframe.php index 4077abde..ec2f5332 100644 --- a/app/code/community/Nosto/Tagging/Model/Meta/Account/Iframe.php +++ b/app/code/community/Nosto/Tagging/Model/Meta/Account/Iframe.php @@ -18,18 +18,18 @@ * versions in the future. If you wish to customize Magento for your * needs please refer to http://www.magentocommerce.com for more information. * - * @category Nosto - * @package Nosto_Tagging - * @copyright Copyright (c) 2013-2015 Nosto Solutions Ltd (http://www.nosto.com) - * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) + * @category Nosto + * @package Nosto_Tagging + * @copyright Copyright (c) 2013-2015 Nosto Solutions Ltd (http://www.nosto.com) + * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ /** * Meta data class which holds information to be sent to the Nosto account configuration iframe. * - * @category Nosto - * @package Nosto_Tagging - * @author Nosto Solutions Ltd + * @category Nosto + * @package Nosto_Tagging + * @author Nosto Solutions Ltd */ class Nosto_Tagging_Model_Meta_Account_Iframe extends Mage_Core_Model_Abstract implements NostoAccountMetaDataIframeInterface { @@ -122,7 +122,9 @@ public function __construct() } /** - * @inheritdoc + * Internal Magento constructor. + * + * @return void */ protected function _construct() { @@ -130,7 +132,10 @@ protected function _construct() } /** - * @inheritdoc + * The name of the platform the iframe is used on. + * A list of valid platform names is issued by Nosto. + * + * @return string the platform name. */ public function getPlatform() { @@ -148,7 +153,9 @@ public function setFirstName($firstName) } /** - * @inheritdoc + * The first name of the user who is loading the config iframe. + * + * @return string the first name. */ public function getFirstName() { @@ -166,7 +173,9 @@ public function setLastName($lastName) } /** - * @inheritdoc + * The last name of the user who is loading the config iframe. + * + * @return string the last name. */ public function getLastName() { @@ -184,7 +193,9 @@ public function setEmail($email) } /** - * @inheritdoc + * The email address of the user who is loading the config iframe. + * + * @return string the email address. */ public function getEmail() { @@ -202,7 +213,9 @@ public function setLanguageIsoCode($code) } /** - * @inheritdoc + * The 2-letter ISO code (ISO 639-1) for the language of the user who is loading the config iframe. + * + * @return string the language ISO code. */ public function getLanguageIsoCode() { @@ -210,7 +223,9 @@ public function getLanguageIsoCode() } /** - * @inheritdoc + * The 2-letter ISO code (ISO 639-1) for the language of the shop the account belongs to. + * + * @return string the language ISO code. */ public function getLanguageIsoCodeShop() { @@ -218,7 +233,10 @@ public function getLanguageIsoCodeShop() } /** - * @inheritdoc + * Unique identifier for the e-commerce installation. + * This identifier is used to link accounts together that are created on the same installation. + * + * @return string the identifier. */ public function getUniqueId() { @@ -226,7 +244,9 @@ public function getUniqueId() } /** - * @inheritdoc + * The version number of the platform the e-commerce installation is running on. + * + * @return string the platform version. */ public function getVersionPlatform() { @@ -234,7 +254,9 @@ public function getVersionPlatform() } /** - * @inheritdoc + * The version number of the Nosto module/extension running on the e-commerce installation. + * + * @return string the module version. */ public function getVersionModule() { @@ -243,7 +265,11 @@ public function getVersionModule() } /** - * @inheritdoc + * An absolute URL for any product page in the shop the account is linked to, with the nostodebug GET parameter enabled. + * e.g. http://myshop.com/products/product123?nostodebug=true + * This is used in the config iframe to allow the user to quickly preview the recommendations on the given page. + * + * @return string the url. */ public function getPreviewUrlProduct() { @@ -251,7 +277,11 @@ public function getPreviewUrlProduct() } /** - * @inheritdoc + * An absolute URL for any category page in the shop the account is linked to, with the nostodebug GET parameter enabled. + * e.g. http://myshop.com/products/category123?nostodebug=true + * This is used in the config iframe to allow the user to quickly preview the recommendations on the given page. + * + * @return string the url. */ public function getPreviewUrlCategory() { @@ -259,7 +289,11 @@ public function getPreviewUrlCategory() } /** - * @inheritdoc + * An absolute URL for the search page in the shop the account is linked to, with the nostodebug GET parameter enabled. + * e.g. http://myshop.com/search?query=red?nostodebug=true + * This is used in the config iframe to allow the user to quickly preview the recommendations on the given page. + * + * @return string the url. */ public function getPreviewUrlSearch() { @@ -267,7 +301,11 @@ public function getPreviewUrlSearch() } /** - * @inheritdoc + * An absolute URL for the shopping cart page in the shop the account is linked to, with the nostodebug GET parameter enabled. + * e.g. http://myshop.com/cart?nostodebug=true + * This is used in the config iframe to allow the user to quickly preview the recommendations on the given page. + * + * @return string the url. */ public function getPreviewUrlCart() { @@ -275,7 +313,11 @@ public function getPreviewUrlCart() } /** - * @inheritdoc + * An absolute URL for the front page in the shop the account is linked to, with the nostodebug GET parameter enabled. + * e.g. http://myshop.com?nostodebug=true + * This is used in the config iframe to allow the user to quickly preview the recommendations on the given page. + * + * @return string the url. */ public function getPreviewUrlFront() { diff --git a/app/code/community/Nosto/Tagging/Model/Meta/Account/Owner.php b/app/code/community/Nosto/Tagging/Model/Meta/Account/Owner.php index a23667b5..cbe7673d 100644 --- a/app/code/community/Nosto/Tagging/Model/Meta/Account/Owner.php +++ b/app/code/community/Nosto/Tagging/Model/Meta/Account/Owner.php @@ -18,19 +18,19 @@ * versions in the future. If you wish to customize Magento for your * needs please refer to http://www.magentocommerce.com for more information. * - * @category Nosto - * @package Nosto_Tagging - * @copyright Copyright (c) 2013-2015 Nosto Solutions Ltd (http://www.nosto.com) - * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) + * @category Nosto + * @package Nosto_Tagging + * @copyright Copyright (c) 2013-2015 Nosto Solutions Ltd (http://www.nosto.com) + * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ /** * Meta data class which holds information about the Nosto account owner. * This is used during the Nosto account creation. * - * @category Nosto - * @package Nosto_Tagging - * @author Nosto Solutions Ltd + * @category Nosto + * @package Nosto_Tagging + * @author Nosto Solutions Ltd */ class Nosto_Tagging_Model_Meta_Account_Owner extends Mage_Core_Model_Abstract implements NostoAccountMetaDataOwnerInterface { @@ -65,7 +65,9 @@ public function __construct() } /** - * @inheritdoc + * Internal Magento constructor. + * + * @return void */ protected function _construct() { diff --git a/app/code/community/Nosto/Tagging/Model/Meta/Oauth.php b/app/code/community/Nosto/Tagging/Model/Meta/Oauth.php index a4ece40b..9c391a40 100644 --- a/app/code/community/Nosto/Tagging/Model/Meta/Oauth.php +++ b/app/code/community/Nosto/Tagging/Model/Meta/Oauth.php @@ -18,18 +18,18 @@ * versions in the future. If you wish to customize Magento for your * needs please refer to http://www.magentocommerce.com for more information. * - * @category Nosto - * @package Nosto_Tagging - * @copyright Copyright (c) 2013-2015 Nosto Solutions Ltd (http://www.nosto.com) - * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) + * @category Nosto + * @package Nosto_Tagging + * @copyright Copyright (c) 2013-2015 Nosto Solutions Ltd (http://www.nosto.com) + * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ /** * Meta data class which holds information needed to complete OAuth2 requests. * - * @category Nosto - * @package Nosto_Tagging - * @author Nosto Solutions Ltd + * @category Nosto + * @package Nosto_Tagging + * @author Nosto Solutions Ltd */ class Nosto_Tagging_Model_Meta_Oauth extends Mage_Core_Model_Abstract implements NostoOAuthClientMetaDataInterface { @@ -56,7 +56,9 @@ public function __construct() } /** - * @inheritdoc + * Internal Magento constructor. + * + * @return void */ protected function _construct() { @@ -64,7 +66,10 @@ protected function _construct() } /** - * @inheritdoc + * The OAuth2 client ID. + * This will be a platform specific ID that Nosto will issue. + * + * @return string the client id. */ public function getClientId() { @@ -72,7 +77,10 @@ public function getClientId() } /** - * @inheritdoc + * The OAuth2 client secret. + * This will be a platform specific secret that Nosto will issue. + * + * @return string the client secret. */ public function getClientSecret() { @@ -80,7 +88,10 @@ public function getClientSecret() } /** - * @inheritdoc + * The scopes for the OAuth2 request. + * These are used to request specific API tokens from Nosto and should almost always be the ones defined in NostoApiToken::$tokenNames. + * + * @return array the scopes. */ public function getScopes() { @@ -89,7 +100,10 @@ public function getScopes() } /** - * @inheritdoc + * The OAuth2 redirect url to where the OAuth2 server should redirect the user after authorizing the application to act on the users behalf. + * This url must by publicly accessible and the domain must match the one defined for the Nosto account. + * + * @return string the url. */ public function getRedirectUrl() { @@ -107,7 +121,9 @@ public function setRedirectUrl($url) } /** - * @inheritdoc + * The 2-letter ISO code (ISO 639-1) for the language the OAuth2 server uses for UI localization. + * + * @return string the ISO code. */ public function getLanguageIsoCode() { diff --git a/app/code/community/Nosto/Tagging/Model/Meta/Order.php b/app/code/community/Nosto/Tagging/Model/Meta/Order.php index 7ccd1a4f..26f6a08b 100644 --- a/app/code/community/Nosto/Tagging/Model/Meta/Order.php +++ b/app/code/community/Nosto/Tagging/Model/Meta/Order.php @@ -18,19 +18,19 @@ * versions in the future. If you wish to customize Magento for your * needs please refer to http://www.magentocommerce.com for more information. * - * @category Nosto - * @package Nosto_Tagging - * @copyright Copyright (c) 2013-2015 Nosto Solutions Ltd (http://www.nosto.com) - * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) + * @category Nosto + * @package Nosto_Tagging + * @copyright Copyright (c) 2013-2015 Nosto Solutions Ltd (http://www.nosto.com) + * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ /** * Meta data class which holds information about an order. * This is used during the order confirmation API request and the order history export. * - * @category Nosto - * @package Nosto_Tagging - * @author Nosto Solutions Ltd + * @category Nosto + * @package Nosto_Tagging + * @author Nosto Solutions Ltd */ class Nosto_Tagging_Model_Meta_Order extends Mage_Core_Model_Abstract implements NostoOrderInterface { @@ -45,22 +45,26 @@ class Nosto_Tagging_Model_Meta_Order extends Mage_Core_Model_Abstract implements protected $createdDate; /** - * @var string the payment provider used for placing the order, formatted according to "[provider name] [provider version]". + * @var string the payment provider used for order. + * + * Formatted according to "[provider name] [provider version]". */ protected $paymentProvider; /** - * @var Nosto_Tagging_Model_Meta_Order_Buyer The buyer info of the user who placed the order. + * @var Nosto_Tagging_Model_Meta_Order_Buyer The info of the user who ordered. */ protected $buyer; /** - * @var Nosto_Tagging_Model_Meta_Order_Item[] the purchased items which were included in the order. + * @var Nosto_Tagging_Model_Meta_Order_Item[] the items included in the order. */ protected $items = array(); /** - * @inheritdoc + * Internal Magento constructor. + * + * @return void */ protected function _construct() { @@ -68,7 +72,9 @@ protected function _construct() } /** - * @inheritdoc + * The unique order number identifying the order. + * + * @return string|int the order number. */ public function getOrderNumber() { @@ -76,7 +82,9 @@ public function getOrderNumber() } /** - * @inheritdoc + * The date when the order was placed. + * + * @return string the creation date. */ public function getCreatedDate() { @@ -84,7 +92,10 @@ public function getCreatedDate() } /** - * @inheritdoc + * The payment provider used for placing the order, formatted according to + * "[provider name] [provider version]". + * + * @return string the payment provider. */ public function getPaymentProvider() { @@ -92,7 +103,9 @@ public function getPaymentProvider() } /** - * @inheritdoc + * The buyer info of the user who placed the order. + * + * @return NostoOrderBuyerInterface the meta data model. */ public function getBuyerInfo() { @@ -100,7 +113,9 @@ public function getBuyerInfo() } /** - * @inheritdoc + * The purchased items which were included in the order. + * + * @return NostoOrderPurchasedItemInterface[] the meta data models. */ public function getPurchasedItems() { @@ -126,7 +141,8 @@ public function loadData(Mage_Sales_Model_Order $order) /** @var $item Mage_Sales_Model_Order_Item */ foreach ($order->getAllVisibleItems() as $item) { /** @var Mage_Catalog_Model_Product $product */ - $product = Mage::getModel('catalog/product')->load($item->getProductId()); + $product = Mage::getModel('catalog/product') + ->load($item->getProductId()); if ($product->getTypeId() === Mage_Catalog_Model_Product_Type::TYPE_BUNDLE) { if ((int)$product->getPriceType() === Mage_Bundle_Model_Product_Price::PRICE_TYPE_FIXED) { continue; diff --git a/app/code/community/Nosto/Tagging/Model/Meta/Order/Buyer.php b/app/code/community/Nosto/Tagging/Model/Meta/Order/Buyer.php index ac9a5d37..07a8a480 100644 --- a/app/code/community/Nosto/Tagging/Model/Meta/Order/Buyer.php +++ b/app/code/community/Nosto/Tagging/Model/Meta/Order/Buyer.php @@ -18,19 +18,19 @@ * versions in the future. If you wish to customize Magento for your * needs please refer to http://www.magentocommerce.com for more information. * - * @category Nosto - * @package Nosto_Tagging - * @copyright Copyright (c) 2013-2015 Nosto Solutions Ltd (http://www.nosto.com) - * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) + * @category Nosto + * @package Nosto_Tagging + * @copyright Copyright (c) 2013-2015 Nosto Solutions Ltd (http://www.nosto.com) + * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ /** * Meta data class which holds information about the buyer of an order. * This is used during the order confirmation API request and the order history export. * - * @category Nosto - * @package Nosto_Tagging - * @author Nosto Solutions Ltd + * @category Nosto + * @package Nosto_Tagging + * @author Nosto Solutions Ltd */ class Nosto_Tagging_Model_Meta_Order_Buyer extends Mage_Core_Model_Abstract implements NostoOrderBuyerInterface { @@ -50,7 +50,9 @@ class Nosto_Tagging_Model_Meta_Order_Buyer extends Mage_Core_Model_Abstract impl protected $email; /** - * @inheritdoc + * Internal Magento constructor. + * + * @return void */ protected function _construct() { @@ -58,7 +60,9 @@ protected function _construct() } /** - * @inheritdoc + * Gets the first name of the user who placed the order. + * + * @return string the first name. */ public function getFirstName() { @@ -66,7 +70,9 @@ public function getFirstName() } /** - * @inheritdoc + * Gets the last name of the user who placed the order. + * + * @return string the last name. */ public function getLastName() { @@ -74,7 +80,9 @@ public function getLastName() } /** - * @inheritdoc + * Gets the email address of the user who placed the order. + * + * @return string the email address. */ public function getEmail() { diff --git a/app/code/community/Nosto/Tagging/Model/Meta/Order/Item.php b/app/code/community/Nosto/Tagging/Model/Meta/Order/Item.php index 8ade5fc9..70b7c6c7 100644 --- a/app/code/community/Nosto/Tagging/Model/Meta/Order/Item.php +++ b/app/code/community/Nosto/Tagging/Model/Meta/Order/Item.php @@ -18,19 +18,19 @@ * versions in the future. If you wish to customize Magento for your * needs please refer to http://www.magentocommerce.com for more information. * - * @category Nosto - * @package Nosto_Tagging - * @copyright Copyright (c) 2013-2015 Nosto Solutions Ltd (http://www.nosto.com) - * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) + * @category Nosto + * @package Nosto_Tagging + * @copyright Copyright (c) 2013-2015 Nosto Solutions Ltd (http://www.nosto.com) + * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ /** * Meta data class which holds information about an item included in an order. * This is used during the order confirmation API request and the order history export. * - * @category Nosto - * @package Nosto_Tagging - * @author Nosto Solutions Ltd + * @category Nosto + * @package Nosto_Tagging + * @author Nosto Solutions Ltd */ class Nosto_Tagging_Model_Meta_Order_Item extends Mage_Core_Model_Abstract implements NostoOrderPurchasedItemInterface { @@ -56,12 +56,14 @@ class Nosto_Tagging_Model_Meta_Order_Item extends Mage_Core_Model_Abstract imple protected $unitPrice; /** - * @var string the 3-letter ISO code (ISO 4217) for the currency the item was purchased in. + * @var string the 3-letter ISO code (ISO 4217) for the currency of the item. */ protected $currencyCode; /** - * @inheritdoc + * Internal Magento constructor. + * + * @return void */ protected function _construct() { @@ -69,7 +71,10 @@ protected function _construct() } /** - * @inheritdoc + * The unique identifier of the purchased item. + * If this item is for discounts or shipping cost, the id can be 0. + * + * @return string|int */ public function getProductId() { @@ -87,7 +92,9 @@ public function setProductId($id) } /** - * @inheritdoc + * The quantity of the item included in the order. + * + * @return int the quantity. */ public function getQuantity() { @@ -105,7 +112,9 @@ public function setQuantity($qty) } /** - * @inheritdoc + * The name of the item included in the order. + * + * @return string the name. */ public function getName() { @@ -123,7 +132,9 @@ public function setName($name) } /** - * @inheritdoc + * The unit price of the item included in the order. + * + * @return float the unit price. */ public function getUnitPrice() { @@ -141,7 +152,9 @@ public function setUnitPrice($price) } /** - * @inheritdoc + * The 3-letter ISO code (ISO 4217) for the currency the item was purchased in. + * + * @return string the currency ISO code. */ public function getCurrencyCode() { diff --git a/app/code/community/Nosto/Tagging/Model/Meta/Product.php b/app/code/community/Nosto/Tagging/Model/Meta/Product.php index 54280ddb..88594821 100644 --- a/app/code/community/Nosto/Tagging/Model/Meta/Product.php +++ b/app/code/community/Nosto/Tagging/Model/Meta/Product.php @@ -18,19 +18,19 @@ * versions in the future. If you wish to customize Magento for your * needs please refer to http://www.magentocommerce.com for more information. * - * @category Nosto - * @package Nosto_Tagging - * @copyright Copyright (c) 2013-2015 Nosto Solutions Ltd (http://www.nosto.com) - * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) + * @category Nosto + * @package Nosto_Tagging + * @copyright Copyright (c) 2013-2015 Nosto Solutions Ltd (http://www.nosto.com) + * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ /** * Meta data class which holds information about a product. * This is used during the order confirmation API request and the product history export. * - * @category Nosto - * @package Nosto_Tagging - * @author Nosto Solutions Ltd + * @category Nosto + * @package Nosto_Tagging + * @author Nosto Solutions Ltd */ class Nosto_Tagging_Model_Meta_Product extends Mage_Core_Model_Abstract implements NostoProductInterface { @@ -60,7 +60,7 @@ class Nosto_Tagging_Model_Meta_Product extends Mage_Core_Model_Abstract implemen protected $name; /** - * @var string the absolute url the one of the product images in the shop frontend. + * @var string the absolute url the one of the product images in shop frontend. */ protected $imageUrl; @@ -70,7 +70,7 @@ class Nosto_Tagging_Model_Meta_Product extends Mage_Core_Model_Abstract implemen protected $price; /** - * @var string the list price of the product without discounts but including possible taxes. + * @var string the list price of the product without discounts but incl taxes. */ protected $listPrice; @@ -110,7 +110,9 @@ class Nosto_Tagging_Model_Meta_Product extends Mage_Core_Model_Abstract implemen protected $datePublished; /** - * @inheritdoc + * Internal Magento constructor. + * + * @return void */ protected function _construct() { @@ -118,7 +120,9 @@ protected function _construct() } /** - * @inheritdoc + * Returns the absolute url to the product page in the shop frontend. + * + * @return string the url. */ public function getUrl() { @@ -126,7 +130,9 @@ public function getUrl() } /** - * @inheritdoc + * Returns the product's unique identifier. + * + * @return int|string the ID. */ public function getProductId() { @@ -134,7 +140,9 @@ public function getProductId() } /** - * @inheritdoc + * Returns the name of the product. + * + * @return string the name. */ public function getName() { @@ -142,7 +150,9 @@ public function getName() } /** - * @inheritdoc + * Returns the absolute url the one of the product images in the shop frontend. + * + * @return string the url. */ public function getImageUrl() { @@ -150,7 +160,9 @@ public function getImageUrl() } /** - * @inheritdoc + * Returns the price of the product including possible discounts and taxes. + * + * @return float the price. */ public function getPrice() { @@ -158,7 +170,9 @@ public function getPrice() } /** - * @inheritdoc + * Returns the list price of the product without discounts but incl taxes. + * + * @return float the price. */ public function getListPrice() { @@ -166,7 +180,9 @@ public function getListPrice() } /** - * @inheritdoc + * Returns the currency code (ISO 4217) the product is sold in. + * + * @return string the currency ISO code. */ public function getCurrencyCode() { @@ -174,7 +190,9 @@ public function getCurrencyCode() } /** - * @inheritdoc + * Returns the availability of the product, i.e. if it is in stock or not. + * + * @return string the availability, either "InStock" or "OutOfStock". */ public function getAvailability() { @@ -182,7 +200,9 @@ public function getAvailability() } /** - * @inheritdoc + * Returns the tags for the product. + * + * @return array the tags array, e.g. array("winter", "shoe"). */ public function getTags() { @@ -190,7 +210,9 @@ public function getTags() } /** - * @inheritdoc + * Returns the categories the product is located in. + * + * @return array list of category strings, e.g. array("/shoes/winter"). */ public function getCategories() { @@ -198,7 +220,9 @@ public function getCategories() } /** - * @inheritdoc + * Returns the product description. + * + * @return string the description. */ public function getDescription() { @@ -206,7 +230,9 @@ public function getDescription() } /** - * @inheritdoc + * Returns the product brand name. + * + * @return string the brand name. */ public function getBrand() { @@ -214,7 +240,9 @@ public function getBrand() } /** - * @inheritdoc + * Returns the product publication date in the shop. + * + * @return string the date. */ public function getDatePublished() { @@ -225,6 +253,8 @@ public function getDatePublished() * Loads the product info from a Magento product model. * * @param Mage_Catalog_Model_Product $product the product model. + * + * @return void */ public function loadData(Mage_Catalog_Model_Product $product) { @@ -235,14 +265,25 @@ public function loadData(Mage_Catalog_Model_Product $product) if ($product->getImage() == 'no_selection') { $this->imageUrl = $product->getImageUrl(); } else { - $this->imageUrl = $product->getMediaConfig()->getMediaUrl($product->getImage()); + $this->imageUrl = $product->getMediaConfig() + ->getMediaUrl($product->getImage()); } - $this->price = Mage::helper('tax')->getPrice($product, Mage::helper('nosto_tagging/price')->getProductFinalPrice($product), true); - $this->listPrice = Mage::helper('tax')->getPrice($product, Mage::helper('nosto_tagging/price')->getProductPrice($product), true); + $this->price = Mage::helper('tax')->getPrice( + $product, + Mage::helper('nosto_tagging/price')->getProductFinalPrice($product), + true + ); + $this->listPrice = Mage::helper('tax')->getPrice( + $product, + Mage::helper('nosto_tagging/price')->getProductPrice($product), + true + ); $this->currencyCode = Mage::app()->getStore()->getCurrentCurrencyCode(); - if ($product instanceof Mage_Catalog_Model_Product && $product->isAvailable()) { + if ($product instanceof Mage_Catalog_Model_Product + && $product->isAvailable() + ) { $this->availability = self::PRODUCT_IN_STOCK; } else { $this->availability = self::PRODUCT_OUT_OF_STOCK; @@ -254,19 +295,19 @@ public function loadData(Mage_Catalog_Model_Product $product) $this->description = $product->getDescription(); $this->brand = (string)$product->getAttributeText('manufacturer'); $this->datePublished = $product->getCreatedAt(); - } /** * Return array of categories for the product. - * The items in the array are strings combined of the complete category path to the products own category. + * The items in the array are strings combined of the complete category path to + * the products own category. * * Structure: * array ( * /Electronics/Computers * ) * - * @param Mage_Catalog_Model_Product $product + * @param Mage_Catalog_Model_Product $product the product model. * * @return array */ @@ -277,7 +318,8 @@ public function getProductCategories(Mage_Catalog_Model_Product $product) if ($product instanceof Mage_Catalog_Model_Product) { $categoryCollection = $product->getCategoryCollection(); foreach ($categoryCollection as $category) { - $categoryString = Mage::helper('nosto_tagging')->buildCategoryString($category); + $categoryString = Mage::helper('nosto_tagging') + ->buildCategoryString($category); if (!empty($categoryString)) { $data[] = $categoryString; } diff --git a/app/code/community/Nosto/Tagging/Model/Observer.php b/app/code/community/Nosto/Tagging/Model/Observer.php index e214636c..09ea5c22 100644 --- a/app/code/community/Nosto/Tagging/Model/Observer.php +++ b/app/code/community/Nosto/Tagging/Model/Observer.php @@ -18,21 +18,21 @@ * versions in the future. If you wish to customize Magento for your * needs please refer to http://www.magentocommerce.com for more information. * - * @category Nosto - * @package Nosto_Tagging - * @copyright Copyright (c) 2013-2015 Nosto Solutions Ltd (http://www.nosto.com) - * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) + * @category Nosto + * @package Nosto_Tagging + * @copyright Copyright (c) 2013-2015 Nosto Solutions Ltd (http://www.nosto.com) + * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ -require_once(Mage::getBaseDir('lib') . '/nosto/php-sdk/src/config.inc.php'); +require_once Mage::getBaseDir('lib') . '/nosto/php-sdk/src/config.inc.php'; /** * Event observer model. * Used to interact with Magento events. * - * @category Nosto - * @package Nosto_Tagging - * @author Nosto Solutions Ltd + * @category Nosto + * @package Nosto_Tagging + * @author Nosto Solutions Ltd */ class Nosto_Tagging_Model_Observer { @@ -46,7 +46,7 @@ class Nosto_Tagging_Model_Observer * * Event 'controller_action_layout_load_before'. * - * @param Varien_Event_Observer $observer + * @param Varien_Event_Observer $observer the event observer. * * @return Nosto_Tagging_Model_Observer */ @@ -83,7 +83,9 @@ public function recrawlProduct(Varien_Event_Observer $observer) $stores = Mage::app()->getStores(); } else { // Otherwise only re-crawl the product for the specific store. - $stores = array(Mage::app()->getStore($mageProduct->getStoreId())); + $stores = array( + Mage::app()->getStore($mageProduct->getStoreId()) + ); } foreach ($stores as $store) { /** @var NostoAccount $account */ @@ -106,7 +108,7 @@ public function recrawlProduct(Varien_Event_Observer $observer) * * Event 'sales_order_save_commit_after'. * - * @param Varien_Event_Observer $observer + * @param Varien_Event_Observer $observer the event observer. * * @return Nosto_Tagging_Model_Observer */ @@ -119,9 +121,14 @@ public function sendOrderConfirmation(Varien_Event_Observer $observer) $order = new Nosto_Tagging_Model_Meta_Order(); $order->loadData($mageOrder); /** @var NostoAccount $account */ - $account = Mage::helper('nosto_tagging/account')->find($mageOrder->getStore()); - $customerId = Mage::helper('nosto_tagging/customer')->getNostoId($mageOrder); - if ($account !== null && $account->isConnectedToNosto() && !empty($customerId)) { + $account = Mage::helper('nosto_tagging/account') + ->find($mageOrder->getStore()); + $customerId = Mage::helper('nosto_tagging/customer') + ->getNostoId($mageOrder); + if ($account !== null + && $account->isConnectedToNosto() + && !empty($customerId) + ) { NostoOrderConfirmation::send($order, $account, $customerId); } } catch (NostoException $e) { diff --git a/app/code/community/Nosto/Tagging/Model/Resource/Customer.php b/app/code/community/Nosto/Tagging/Model/Resource/Customer.php index 6730807e..5b5e0eb8 100644 --- a/app/code/community/Nosto/Tagging/Model/Resource/Customer.php +++ b/app/code/community/Nosto/Tagging/Model/Resource/Customer.php @@ -18,24 +18,26 @@ * versions in the future. If you wish to customize Magento for your * needs please refer to http://www.magentocommerce.com for more information. * - * @category Nosto - * @package Nosto_Tagging - * @copyright Copyright (c) 2013-2015 Nosto Solutions Ltd (http://www.nosto.com) - * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) + * @category Nosto + * @package Nosto_Tagging + * @copyright Copyright (c) 2013-2015 Nosto Solutions Ltd (http://www.nosto.com) + * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ /** * Customer resource. * Used for keeping a link between a Mage quote and a Nosto customer. * - * @category Nosto - * @package Nosto_Tagging - * @author Nosto Solutions Ltd + * @category Nosto + * @package Nosto_Tagging + * @author Nosto Solutions Ltd */ class Nosto_Tagging_Model_Resource_Customer extends Mage_Core_Model_Resource_Db_Abstract { /** - * @inheritdoc + * Internal Magento constructor. + * + * @return void */ protected function _construct() { diff --git a/app/code/community/Nosto/Tagging/Model/Resource/Customer/Collection.php b/app/code/community/Nosto/Tagging/Model/Resource/Customer/Collection.php index 29be9a69..8cc9a6be 100644 --- a/app/code/community/Nosto/Tagging/Model/Resource/Customer/Collection.php +++ b/app/code/community/Nosto/Tagging/Model/Resource/Customer/Collection.php @@ -18,24 +18,26 @@ * versions in the future. If you wish to customize Magento for your * needs please refer to http://www.magentocommerce.com for more information. * - * @category Nosto - * @package Nosto_Tagging - * @copyright Copyright (c) 2013-2015 Nosto Solutions Ltd (http://www.nosto.com) - * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) + * @category Nosto + * @package Nosto_Tagging + * @copyright Copyright (c) 2013-2015 Nosto Solutions Ltd (http://www.nosto.com) + * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ /** * Customer resource collection. * Used for keeping a link between a Mage quote and a Nosto customer. * - * @category Nosto - * @package Nosto_Tagging - * @author Nosto Solutions Ltd + * @category Nosto + * @package Nosto_Tagging + * @author Nosto Solutions Ltd */ class Nosto_Tagging_Model_Resource_Customer_Collection extends Mage_Core_Model_Resource_Db_Collection_Abstract { /** - * @inheritdoc + * Internal Magento constructor. + * + * @return void */ protected function _construct() { diff --git a/app/code/community/Nosto/Tagging/Model/Resource/Setup.php b/app/code/community/Nosto/Tagging/Model/Resource/Setup.php index 88f94d11..f8615422 100644 --- a/app/code/community/Nosto/Tagging/Model/Resource/Setup.php +++ b/app/code/community/Nosto/Tagging/Model/Resource/Setup.php @@ -18,18 +18,18 @@ * versions in the future. If you wish to customize Magento for your * needs please refer to http://www.magentocommerce.com for more information. * - * @category Nosto - * @package Nosto_Tagging - * @copyright Copyright (c) 2013-2015 Nosto Solutions Ltd (http://www.nosto.com) - * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) + * @category Nosto + * @package Nosto_Tagging + * @copyright Copyright (c) 2013-2015 Nosto Solutions Ltd (http://www.nosto.com) + * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ /** * Nosto Tagging Resource Setup Model. * - * @category Nosto - * @package Nosto_Tagging - * @author Nosto Solutions Ltd + * @category Nosto + * @package Nosto_Tagging + * @author Nosto Solutions Ltd */ class Nosto_Tagging_Model_Resource_Setup extends Mage_Eav_Model_Entity_Setup { diff --git a/app/code/community/Nosto/Tagging/controllers/Adminhtml/NostoController.php b/app/code/community/Nosto/Tagging/controllers/Adminhtml/NostoController.php index 08349823..4cd3758c 100644 --- a/app/code/community/Nosto/Tagging/controllers/Adminhtml/NostoController.php +++ b/app/code/community/Nosto/Tagging/controllers/Adminhtml/NostoController.php @@ -18,26 +18,26 @@ * versions in the future. If you wish to customize Magento for your * needs please refer to http://www.magentocommerce.com for more information. * - * @category Nosto - * @package Nosto_Tagging - * @copyright Copyright (c) 2013-2015 Nosto Solutions Ltd (http://www.nosto.com) - * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) + * @category Nosto + * @package Nosto_Tagging + * @copyright Copyright (c) 2013-2015 Nosto Solutions Ltd (http://www.nosto.com) + * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ -require_once(Mage::getBaseDir('lib') . '/nosto/php-sdk/src/config.inc.php'); +require_once Mage::getBaseDir('lib') . '/nosto/php-sdk/src/config.inc.php'; /** * Nosto admin controller. * Handles all actions for the configuration wizard as well as redirecting logic for the OAuth2 authorization cycle. * - * @category Nosto - * @package Nosto_Tagging - * @author Nosto Solutions Ltd + * @category Nosto + * @package Nosto_Tagging + * @author Nosto Solutions Ltd */ class Nosto_Tagging_Adminhtml_NostoController extends Mage_Adminhtml_Controller_Action { /** - * @inheritdoc + * @var array Array of actions which can be processed without secret key validation */ protected $_publicActions = array('redirectProxy'); diff --git a/app/code/community/Nosto/Tagging/controllers/ExportController.php b/app/code/community/Nosto/Tagging/controllers/ExportController.php index 32e2ae68..8e419375 100644 --- a/app/code/community/Nosto/Tagging/controllers/ExportController.php +++ b/app/code/community/Nosto/Tagging/controllers/ExportController.php @@ -18,22 +18,22 @@ * versions in the future. If you wish to customize Magento for your * needs please refer to http://www.magentocommerce.com for more information. * - * @category Nosto - * @package Nosto_Tagging - * @copyright Copyright (c) 2013-2015 Nosto Solutions Ltd (http://www.nosto.com) - * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) + * @category Nosto + * @package Nosto_Tagging + * @copyright Copyright (c) 2013-2015 Nosto Solutions Ltd (http://www.nosto.com) + * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ -require_once(Mage::getBaseDir('lib') . '/nosto/php-sdk/src/config.inc.php'); +require_once Mage::getBaseDir('lib') . '/nosto/php-sdk/src/config.inc.php'; /** * History data export controller. * Handles the export of history data for orders and products that nosto can call when a new account has been set up. * The exported data is encrypted with AES as the endpoint is publicly available. * - * @category Nosto - * @package Nosto_Tagging - * @author Nosto Solutions Ltd + * @category Nosto + * @package Nosto_Tagging + * @author Nosto Solutions Ltd */ class Nosto_tagging_ExportController extends Mage_Core_Controller_Front_Action { diff --git a/app/code/community/Nosto/Tagging/controllers/OauthController.php b/app/code/community/Nosto/Tagging/controllers/OauthController.php index 548ccdf0..16fd04d0 100644 --- a/app/code/community/Nosto/Tagging/controllers/OauthController.php +++ b/app/code/community/Nosto/Tagging/controllers/OauthController.php @@ -18,21 +18,21 @@ * versions in the future. If you wish to customize Magento for your * needs please refer to http://www.magentocommerce.com for more information. * - * @category Nosto - * @package Nosto_Tagging - * @copyright Copyright (c) 2013-2015 Nosto Solutions Ltd (http://www.nosto.com) - * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) + * @category Nosto + * @package Nosto_Tagging + * @copyright Copyright (c) 2013-2015 Nosto Solutions Ltd (http://www.nosto.com) + * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ -require_once(Mage::getBaseDir('lib') . '/nosto/php-sdk/src/config.inc.php'); +require_once Mage::getBaseDir('lib') . '/nosto/php-sdk/src/config.inc.php'; /** * OAuth2 controller. * Handles the redirect from Nosto OAuth2 authorization server. * - * @category Nosto - * @package Nosto_Tagging - * @author Nosto Solutions Ltd + * @category Nosto + * @package Nosto_Tagging + * @author Nosto Solutions Ltd */ class Nosto_tagging_OauthController extends Mage_Core_Controller_Front_Action { diff --git a/app/code/community/Nosto/Tagging/etc/adminhtml.xml b/app/code/community/Nosto/Tagging/etc/adminhtml.xml index a4d39acc..a4647839 100644 --- a/app/code/community/Nosto/Tagging/etc/adminhtml.xml +++ b/app/code/community/Nosto/Tagging/etc/adminhtml.xml @@ -19,10 +19,10 @@ * versions in the future. If you wish to customize Magento for your * needs please refer to http://www.magentocommerce.com for more information. * - * @category Nosto - * @package Nosto_Tagging - * @copyright Copyright (c) 2013-2015 Nosto Solutions Ltd (http://www.nosto.com) - * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) + * @category Nosto + * @package Nosto_Tagging + * @copyright Copyright (c) 2013-2015 Nosto Solutions Ltd (http://www.nosto.com) + * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ --> diff --git a/app/code/community/Nosto/Tagging/etc/config.xml b/app/code/community/Nosto/Tagging/etc/config.xml index c82fbf6e..d39ced59 100644 --- a/app/code/community/Nosto/Tagging/etc/config.xml +++ b/app/code/community/Nosto/Tagging/etc/config.xml @@ -19,10 +19,10 @@ * versions in the future. If you wish to customize Magento for your * needs please refer to http://www.magentocommerce.com for more information. * - * @category Nosto - * @package Nosto_Tagging - * @copyright Copyright (c) 2013-2015 Nosto Solutions Ltd (http://www.nosto.com) - * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) + * @category Nosto + * @package Nosto_Tagging + * @copyright Copyright (c) 2013-2015 Nosto Solutions Ltd (http://www.nosto.com) + * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ --> diff --git a/app/code/community/Nosto/Tagging/sql/tagging_setup/mysql4-install-1.2.0.php b/app/code/community/Nosto/Tagging/sql/tagging_setup/mysql4-install-1.2.0.php index 7db1d9cc..5b717774 100644 --- a/app/code/community/Nosto/Tagging/sql/tagging_setup/mysql4-install-1.2.0.php +++ b/app/code/community/Nosto/Tagging/sql/tagging_setup/mysql4-install-1.2.0.php @@ -18,17 +18,17 @@ * versions in the future. If you wish to customize Magento for your * needs please refer to http://www.magentocommerce.com for more information. * - * @category Nosto - * @package Nosto_Tagging - * @copyright Copyright (c) 2013-2015 Nosto Solutions Ltd (http://www.nosto.com) - * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) + * @category Nosto + * @package Nosto_Tagging + * @copyright Copyright (c) 2013-2015 Nosto Solutions Ltd (http://www.nosto.com) + * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ /** - * This install script will run only when installing the module with version 1.2.0 or above, + * This install script will run only when installing the version 1.2.0 or above, * i.e. when no "tagging_setup" entry is present in the `core_resource` table. * - * Creates the db table needed for matching Magento shopping cart quotes to nosto customer ids. + * Creates the db table for matching Magento cart quotes to nosto customer ids. * * @var Nosto_Tagging_Model_Resource_Setup $installer */ @@ -39,29 +39,44 @@ $table = $installer ->getConnection() ->newTable($installer->getTable('nosto_tagging/customer')) - ->addColumn('customer_id', Varien_Db_Ddl_Table::TYPE_INTEGER, 10, array( - 'unsigned' => true, - 'nullable' => false, - 'primary' => true, - 'identity' => true - )) - ->addColumn('quote_id', Varien_Db_Ddl_Table::TYPE_INTEGER, 10, array( - 'unsigned' => true, - 'nullable' => false - )) - ->addColumn('nosto_id', Varien_Db_Ddl_Table::TYPE_VARCHAR, 255, array( - 'nullable' => false - )) - ->addColumn('created_at', Varien_Db_Ddl_Table::TYPE_DATETIME, null, array( - 'nullable' => false - )) - ->addColumn('updated_at', Varien_Db_Ddl_Table::TYPE_DATETIME, null, array( - 'nullable' => true - )) - ->addIndex($installer->getIdxName('nosto_tagging/customer', array('quote_id', 'nosto_id'), - Varien_Db_Adapter_Interface::INDEX_TYPE_UNIQUE), array('quote_id', 'nosto_id'), array( - 'type' => Varien_Db_Adapter_Interface::INDEX_TYPE_UNIQUE - )); + ->addColumn( + 'customer_id', Varien_Db_Ddl_Table::TYPE_INTEGER, 10, array( + 'unsigned' => true, + 'nullable' => false, + 'primary' => true, + 'identity' => true + ) + ) + ->addColumn( + 'quote_id', Varien_Db_Ddl_Table::TYPE_INTEGER, 10, array( + 'unsigned' => true, + 'nullable' => false + ) + ) + ->addColumn( + 'nosto_id', Varien_Db_Ddl_Table::TYPE_VARCHAR, 255, array( + 'nullable' => false + ) + ) + ->addColumn( + 'created_at', Varien_Db_Ddl_Table::TYPE_DATETIME, null, array( + 'nullable' => false + ) + ) + ->addColumn( + 'updated_at', Varien_Db_Ddl_Table::TYPE_DATETIME, null, array( + 'nullable' => true + ) + ) + ->addIndex( + $installer->getIdxName( + 'nosto_tagging/customer', array('quote_id', 'nosto_id'), + Varien_Db_Adapter_Interface::INDEX_TYPE_UNIQUE + ), + array('quote_id', 'nosto_id'), array( + 'type' => Varien_Db_Adapter_Interface::INDEX_TYPE_UNIQUE + ) + ); $installer->getConnection()->createTable($table); $installer->endSetup(); diff --git a/app/code/community/Nosto/Tagging/sql/tagging_setup/mysql4-upgrade-1.1.7-1.2.0.php b/app/code/community/Nosto/Tagging/sql/tagging_setup/mysql4-upgrade-1.1.7-1.2.0.php index c466b40c..65691db7 100644 --- a/app/code/community/Nosto/Tagging/sql/tagging_setup/mysql4-upgrade-1.1.7-1.2.0.php +++ b/app/code/community/Nosto/Tagging/sql/tagging_setup/mysql4-upgrade-1.1.7-1.2.0.php @@ -18,17 +18,18 @@ * versions in the future. If you wish to customize Magento for your * needs please refer to http://www.magentocommerce.com for more information. * - * @category Nosto - * @package Nosto_Tagging - * @copyright Copyright (c) 2013-2015 Nosto Solutions Ltd (http://www.nosto.com) - * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) + * @category Nosto + * @package Nosto_Tagging + * @author Nosto Solutions Ltd + * @copyright 2013-2015 Nosto Solutions Ltd (http://www.nosto.com) + * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ /** - * This upgrade script will run only when upgrading from version 1.1.7 to 1.2.0 or above. + * This upgrade script will run only when upgrading from 1.1.7 to 1.2.0 or above. * * Deletes all existing module configurations. - * Creates the db table needed for matching Magento shopping cart quotes to nosto customer ids. + * Creates the db table for matching Magento cart quotes to nosto customer ids. * * @var Nosto_Tagging_Model_Resource_Setup $installer */ @@ -36,34 +37,52 @@ $installer = $this; $installer->startSetup(); -$installer->getConnection()->delete($installer->getTable('core/config_data'), '`path` LIKE "nosto_tagging/%"'); +$installer->getConnection()->delete( + $installer->getTable('core/config_data'), + '`path` LIKE "nosto_tagging/%"' +); $table = $installer ->getConnection() ->newTable($installer->getTable('nosto_tagging/customer')) - ->addColumn('customer_id', Varien_Db_Ddl_Table::TYPE_INTEGER, 10, array( - 'unsigned' => true, - 'nullable' => false, - 'primary' => true, - 'identity' => true - )) - ->addColumn('quote_id', Varien_Db_Ddl_Table::TYPE_INTEGER, 10, array( - 'unsigned' => true, - 'nullable' => false - )) - ->addColumn('nosto_id', Varien_Db_Ddl_Table::TYPE_VARCHAR, 255, array( - 'nullable' => false - )) - ->addColumn('created_at', Varien_Db_Ddl_Table::TYPE_DATETIME, null, array( - 'nullable' => false - )) - ->addColumn('updated_at', Varien_Db_Ddl_Table::TYPE_DATETIME, null, array( - 'nullable' => true - )) - ->addIndex($installer->getIdxName('nosto_tagging/customer', array('quote_id', 'nosto_id'), - Varien_Db_Adapter_Interface::INDEX_TYPE_UNIQUE), array('quote_id', 'nosto_id'), array( - 'type' => Varien_Db_Adapter_Interface::INDEX_TYPE_UNIQUE - )); + ->addColumn( + 'customer_id', Varien_Db_Ddl_Table::TYPE_INTEGER, 10, array( + 'unsigned' => true, + 'nullable' => false, + 'primary' => true, + 'identity' => true + ) + ) + ->addColumn( + 'quote_id', Varien_Db_Ddl_Table::TYPE_INTEGER, 10, array( + 'unsigned' => true, + 'nullable' => false + ) + ) + ->addColumn( + 'nosto_id', Varien_Db_Ddl_Table::TYPE_VARCHAR, 255, array( + 'nullable' => false + ) + ) + ->addColumn( + 'created_at', Varien_Db_Ddl_Table::TYPE_DATETIME, null, array( + 'nullable' => false + ) + ) + ->addColumn( + 'updated_at', Varien_Db_Ddl_Table::TYPE_DATETIME, null, array( + 'nullable' => true + ) + ) + ->addIndex( + $installer->getIdxName( + 'nosto_tagging/customer', array('quote_id', 'nosto_id'), + Varien_Db_Adapter_Interface::INDEX_TYPE_UNIQUE + ), + array('quote_id', 'nosto_id'), array( + 'type' => Varien_Db_Adapter_Interface::INDEX_TYPE_UNIQUE + ) + ); $installer->getConnection()->createTable($table); $installer->endSetup(); diff --git a/app/design/adminhtml/default/default/layout/nostotagging.xml b/app/design/adminhtml/default/default/layout/nostotagging.xml index 1b235280..f847c213 100644 --- a/app/design/adminhtml/default/default/layout/nostotagging.xml +++ b/app/design/adminhtml/default/default/layout/nostotagging.xml @@ -19,10 +19,10 @@ * versions in the future. If you wish to customize Magento for your * needs please refer to http://www.magentocommerce.com for more information. * -* @category design -* @package adminhtml_default_default -* @copyright Copyright (c) 2013-2015 Nosto Solutions Ltd (http://www.nosto.com) -* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) +* @category design +* @package adminhtml_default_default +* @copyright Copyright (c) 2013-2015 Nosto Solutions Ltd (http://www.nosto.com) +* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ --> diff --git a/app/design/adminhtml/default/default/template/nostotagging/form/account/connect.phtml b/app/design/adminhtml/default/default/template/nostotagging/form/account/connect.phtml index 1b417470..2f76c6d6 100644 --- a/app/design/adminhtml/default/default/template/nostotagging/form/account/connect.phtml +++ b/app/design/adminhtml/default/default/template/nostotagging/form/account/connect.phtml @@ -18,10 +18,10 @@ * versions in the future. If you wish to customize Magento for your * needs please refer to http://www.magentocommerce.com for more information. * - * @category design - * @package adminhtml_default_default - * @copyright Copyright (c) 2013-2015 Nosto Solutions Ltd (http://www.nosto.com) - * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) + * @category design + * @package adminhtml_default_default + * @copyright Copyright (c) 2013-2015 Nosto Solutions Ltd (http://www.nosto.com) + * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ ?> diff --git a/app/design/adminhtml/default/default/template/nostotagging/form/account/create.phtml b/app/design/adminhtml/default/default/template/nostotagging/form/account/create.phtml index 7bd4242d..61b89f32 100644 --- a/app/design/adminhtml/default/default/template/nostotagging/form/account/create.phtml +++ b/app/design/adminhtml/default/default/template/nostotagging/form/account/create.phtml @@ -18,10 +18,10 @@ * versions in the future. If you wish to customize Magento for your * needs please refer to http://www.magentocommerce.com for more information. * - * @category design - * @package adminhtml_default_default - * @copyright Copyright (c) 2013-2015 Nosto Solutions Ltd (http://www.nosto.com) - * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) + * @category design + * @package adminhtml_default_default + * @copyright Copyright (c) 2013-2015 Nosto Solutions Ltd (http://www.nosto.com) + * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ ?> diff --git a/app/design/adminhtml/default/default/template/nostotagging/form/account/remove.phtml b/app/design/adminhtml/default/default/template/nostotagging/form/account/remove.phtml index d3e3a98b..40b4fb84 100644 --- a/app/design/adminhtml/default/default/template/nostotagging/form/account/remove.phtml +++ b/app/design/adminhtml/default/default/template/nostotagging/form/account/remove.phtml @@ -18,10 +18,10 @@ * versions in the future. If you wish to customize Magento for your * needs please refer to http://www.magentocommerce.com for more information. * - * @category design - * @package adminhtml_default_default - * @copyright Copyright (c) 2013-2015 Nosto Solutions Ltd (http://www.nosto.com) - * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) + * @category design + * @package adminhtml_default_default + * @copyright Copyright (c) 2013-2015 Nosto Solutions Ltd (http://www.nosto.com) + * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ ?> diff --git a/app/design/adminhtml/default/default/template/nostotagging/iframe.phtml b/app/design/adminhtml/default/default/template/nostotagging/iframe.phtml index 70e8fd97..4a48d4bf 100644 --- a/app/design/adminhtml/default/default/template/nostotagging/iframe.phtml +++ b/app/design/adminhtml/default/default/template/nostotagging/iframe.phtml @@ -18,10 +18,10 @@ * versions in the future. If you wish to customize Magento for your * needs please refer to http://www.magentocommerce.com for more information. * - * @category design - * @package adminhtml_default_default - * @copyright Copyright (c) 2013-2015 Nosto Solutions Ltd (http://www.nosto.com) - * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) + * @category design + * @package adminhtml_default_default + * @copyright Copyright (c) 2013-2015 Nosto Solutions Ltd (http://www.nosto.com) + * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ ?> diff --git a/app/design/adminhtml/default/default/template/nostotagging/wizard.phtml b/app/design/adminhtml/default/default/template/nostotagging/wizard.phtml index 0ac40d02..bd233dc4 100644 --- a/app/design/adminhtml/default/default/template/nostotagging/wizard.phtml +++ b/app/design/adminhtml/default/default/template/nostotagging/wizard.phtml @@ -18,10 +18,10 @@ * versions in the future. If you wish to customize Magento for your * needs please refer to http://www.magentocommerce.com for more information. * - * @category design - * @package adminhtml_default_default - * @copyright Copyright (c) 2013-2015 Nosto Solutions Ltd (http://www.nosto.com) - * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) + * @category design + * @package adminhtml_default_default + * @copyright Copyright (c) 2013-2015 Nosto Solutions Ltd (http://www.nosto.com) + * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ ?> diff --git a/app/design/frontend/base/default/layout/nostotagging.xml b/app/design/frontend/base/default/layout/nostotagging.xml index d787b831..2f64ca8b 100644 --- a/app/design/frontend/base/default/layout/nostotagging.xml +++ b/app/design/frontend/base/default/layout/nostotagging.xml @@ -19,10 +19,10 @@ * versions in the future. If you wish to customize Magento for your * needs please refer to http://www.magentocommerce.com for more information. * - * @category design - * @package frontend_base_default - * @copyright Copyright (c) 2013-2015 Nosto Solutions Ltd (http://www.nosto.com) - * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) + * @category design + * @package frontend_base_default + * @copyright Copyright (c) 2013-2015 Nosto Solutions Ltd (http://www.nosto.com) + * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ --> diff --git a/app/design/frontend/base/default/template/nostotagging/cart.phtml b/app/design/frontend/base/default/template/nostotagging/cart.phtml index e3e478a8..642a9432 100644 --- a/app/design/frontend/base/default/template/nostotagging/cart.phtml +++ b/app/design/frontend/base/default/template/nostotagging/cart.phtml @@ -18,10 +18,10 @@ * versions in the future. If you wish to customize Magento for your * needs please refer to http://www.magentocommerce.com for more information. * - * @category design - * @package frontend_base_default - * @copyright Copyright (c) 2013-2015 Nosto Solutions Ltd (http://www.nosto.com) - * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) + * @category design + * @package frontend_base_default + * @copyright Copyright (c) 2013-2015 Nosto Solutions Ltd (http://www.nosto.com) + * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ ?> diff --git a/app/design/frontend/base/default/template/nostotagging/category.phtml b/app/design/frontend/base/default/template/nostotagging/category.phtml index e7573eb0..3bfd254d 100644 --- a/app/design/frontend/base/default/template/nostotagging/category.phtml +++ b/app/design/frontend/base/default/template/nostotagging/category.phtml @@ -18,10 +18,10 @@ * versions in the future. If you wish to customize Magento for your * needs please refer to http://www.magentocommerce.com for more information. * - * @category design - * @package frontend_base_default - * @copyright Copyright (c) 2013-2015 Nosto Solutions Ltd (http://www.nosto.com) - * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) + * @category design + * @package frontend_base_default + * @copyright Copyright (c) 2013-2015 Nosto Solutions Ltd (http://www.nosto.com) + * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ ?> diff --git a/app/design/frontend/base/default/template/nostotagging/category/view.phtml b/app/design/frontend/base/default/template/nostotagging/category/view.phtml index 8054a644..b023324f 100644 --- a/app/design/frontend/base/default/template/nostotagging/category/view.phtml +++ b/app/design/frontend/base/default/template/nostotagging/category/view.phtml @@ -18,10 +18,10 @@ * versions in the future. If you wish to customize Magento for your * needs please refer to http://www.magentocommerce.com for more information. * - * @category design - * @package frontend_base_default - * @copyright Copyright (c) 2013-2015 Nosto Solutions Ltd (http://www.nosto.com) - * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) + * @category design + * @package frontend_base_default + * @copyright Copyright (c) 2013-2015 Nosto Solutions Ltd (http://www.nosto.com) + * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ ?> diff --git a/app/design/frontend/base/default/template/nostotagging/customer.phtml b/app/design/frontend/base/default/template/nostotagging/customer.phtml index 29e4d544..ed550707 100644 --- a/app/design/frontend/base/default/template/nostotagging/customer.phtml +++ b/app/design/frontend/base/default/template/nostotagging/customer.phtml @@ -18,10 +18,10 @@ * versions in the future. If you wish to customize Magento for your * needs please refer to http://www.magentocommerce.com for more information. * - * @category design - * @package frontend_base_default - * @copyright Copyright (c) 2013-2015 Nosto Solutions Ltd (http://www.nosto.com) - * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) + * @category design + * @package frontend_base_default + * @copyright Copyright (c) 2013-2015 Nosto Solutions Ltd (http://www.nosto.com) + * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ ?> diff --git a/app/design/frontend/base/default/template/nostotagging/element.phtml b/app/design/frontend/base/default/template/nostotagging/element.phtml index 0d8256a7..6f1977a9 100644 --- a/app/design/frontend/base/default/template/nostotagging/element.phtml +++ b/app/design/frontend/base/default/template/nostotagging/element.phtml @@ -18,10 +18,10 @@ * versions in the future. If you wish to customize Magento for your * needs please refer to http://www.magentocommerce.com for more information. * - * @category design - * @package frontend_base_default - * @copyright Copyright (c) 2013-2015 Nosto Solutions Ltd (http://www.nosto.com) - * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) + * @category design + * @package frontend_base_default + * @copyright Copyright (c) 2013-2015 Nosto Solutions Ltd (http://www.nosto.com) + * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ ?> diff --git a/app/design/frontend/base/default/template/nostotagging/embed.phtml b/app/design/frontend/base/default/template/nostotagging/embed.phtml index c438e2af..965b8d42 100644 --- a/app/design/frontend/base/default/template/nostotagging/embed.phtml +++ b/app/design/frontend/base/default/template/nostotagging/embed.phtml @@ -18,10 +18,10 @@ * versions in the future. If you wish to customize Magento for your * needs please refer to http://www.magentocommerce.com for more information. * - * @category design - * @package frontend_base_default - * @copyright Copyright (c) 2013-2015 Nosto Solutions Ltd (http://www.nosto.com) - * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) + * @category design + * @package frontend_base_default + * @copyright Copyright (c) 2013-2015 Nosto Solutions Ltd (http://www.nosto.com) + * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ ?> diff --git a/app/design/frontend/base/default/template/nostotagging/order.phtml b/app/design/frontend/base/default/template/nostotagging/order.phtml index 9822f18d..eb53fc9f 100644 --- a/app/design/frontend/base/default/template/nostotagging/order.phtml +++ b/app/design/frontend/base/default/template/nostotagging/order.phtml @@ -18,10 +18,10 @@ * versions in the future. If you wish to customize Magento for your * needs please refer to http://www.magentocommerce.com for more information. * - * @category design - * @package frontend_base_default - * @copyright Copyright (c) 2013-2015 Nosto Solutions Ltd (http://www.nosto.com) - * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) + * @category design + * @package frontend_base_default + * @copyright Copyright (c) 2013-2015 Nosto Solutions Ltd (http://www.nosto.com) + * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ ?> diff --git a/app/design/frontend/base/default/template/nostotagging/product.phtml b/app/design/frontend/base/default/template/nostotagging/product.phtml index 0844d875..4a90a068 100644 --- a/app/design/frontend/base/default/template/nostotagging/product.phtml +++ b/app/design/frontend/base/default/template/nostotagging/product.phtml @@ -18,10 +18,10 @@ * versions in the future. If you wish to customize Magento for your * needs please refer to http://www.magentocommerce.com for more information. * - * @category design - * @package frontend_base_default - * @copyright Copyright (c) 2013-2015 Nosto Solutions Ltd (http://www.nosto.com) - * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) + * @category design + * @package frontend_base_default + * @copyright Copyright (c) 2013-2015 Nosto Solutions Ltd (http://www.nosto.com) + * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ ?> diff --git a/app/etc/modules/Nosto_Tagging.xml b/app/etc/modules/Nosto_Tagging.xml index e0e08141..85ddf958 100644 --- a/app/etc/modules/Nosto_Tagging.xml +++ b/app/etc/modules/Nosto_Tagging.xml @@ -19,10 +19,10 @@ * versions in the future. If you wish to customize Magento for your * needs please refer to http://www.magentocommerce.com for more information. * - * @category Nosto - * @package Nosto_Tagging - * @copyright Copyright (c) 2013-2015 Nosto Solutions Ltd (http://www.nosto.com) - * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) + * @category Nosto + * @package Nosto_Tagging + * @copyright Copyright (c) 2013-2015 Nosto Solutions Ltd (http://www.nosto.com) + * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ --> diff --git a/js/nostotagging-config.js b/js/nostotagging-config.js index a4501aa3..63791af6 100644 --- a/js/nostotagging-config.js +++ b/js/nostotagging-config.js @@ -17,10 +17,10 @@ * versions in the future. If you wish to customize Magento for your * needs please refer to http://www.magentocommerce.com for more information. * - * @category Nosto - * @package Nosto_Tagging - * @copyright Copyright (c) 2013-2015 Nosto Solutions Ltd (http://www.nosto.com) - * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) + * @category Nosto + * @package Nosto_Tagging + * @copyright Copyright (c) 2013-2015 Nosto Solutions Ltd (http://www.nosto.com) + * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ document.observe("dom:loaded", function() { From 708363d9a4eccfba3c75074e94b0199511ecddfb Mon Sep 17 00:00:00 2001 From: Christoffer Lindqvist Date: Mon, 19 Jan 2015 14:14:21 +0200 Subject: [PATCH 56/71] Coding standards --- .../Block/Adminhtml/Form/Account/Connect.php | 3 +- .../Block/Adminhtml/Form/Account/Create.php | 8 ++- .../Block/Adminhtml/Form/Account/Remove.php | 6 +- .../Nosto/Tagging/Block/Adminhtml/Iframe.php | 3 +- .../Nosto/Tagging/Block/Adminhtml/Wizard.php | 3 +- .../community/Nosto/Tagging/Block/Cart.php | 30 +++++----- .../Nosto/Tagging/Block/Category.php | 9 ++- .../Nosto/Tagging/Block/Customer.php | 3 +- .../community/Nosto/Tagging/Block/Element.php | 6 +- .../community/Nosto/Tagging/Block/Embed.php | 11 ++-- .../community/Nosto/Tagging/Block/Order.php | 16 ++++-- .../community/Nosto/Tagging/Block/Product.php | 17 +++--- .../Nosto/Tagging/Helper/Account.php | 14 +++-- .../Nosto/Tagging/Helper/Customer.php | 1 + .../community/Nosto/Tagging/Helper/Data.php | 10 ++-- .../community/Nosto/Tagging/Helper/Date.php | 2 +- .../community/Nosto/Tagging/Helper/Oauth.php | 3 +- .../community/Nosto/Tagging/Helper/Price.php | 10 ++-- .../Nosto/Tagging/Model/Meta/Account.php | 27 ++++++--- .../Tagging/Model/Meta/Account/Billing.php | 4 +- .../Tagging/Model/Meta/Account/Iframe.php | 47 +++++++++------ .../Tagging/Model/Meta/Account/Owner.php | 12 +++- .../Nosto/Tagging/Model/Meta/Oauth.php | 22 +++++-- .../Nosto/Tagging/Model/Meta/Product.php | 2 - .../controllers/Adminhtml/NostoController.php | 57 +++++++++++++------ .../Tagging/controllers/ExportController.php | 3 +- .../Tagging/controllers/OauthController.php | 13 +++-- .../mysql4-upgrade-1.1.7-1.2.0.php | 3 +- 28 files changed, 227 insertions(+), 118 deletions(-) diff --git a/app/code/community/Nosto/Tagging/Block/Adminhtml/Form/Account/Connect.php b/app/code/community/Nosto/Tagging/Block/Adminhtml/Form/Account/Connect.php index e99fc57b..7f1802c1 100644 --- a/app/code/community/Nosto/Tagging/Block/Adminhtml/Form/Account/Connect.php +++ b/app/code/community/Nosto/Tagging/Block/Adminhtml/Form/Account/Connect.php @@ -26,7 +26,8 @@ /** * "Connect to Nosto" form block. - * Creates the html form needed for submitting the "Connect to Nosto" request to the admin controller. + * Creates the html form needed for submitting the "Connect to Nosto" request to the + * admin controller. * * @category Nosto * @package Nosto_Tagging diff --git a/app/code/community/Nosto/Tagging/Block/Adminhtml/Form/Account/Create.php b/app/code/community/Nosto/Tagging/Block/Adminhtml/Form/Account/Create.php index 2562e932..5855b096 100644 --- a/app/code/community/Nosto/Tagging/Block/Adminhtml/Form/Account/Create.php +++ b/app/code/community/Nosto/Tagging/Block/Adminhtml/Form/Account/Create.php @@ -26,7 +26,8 @@ /** * 'Create new account' form block. - * Creates the html form needed for submitting the 'Create new account' request to the admin controller. + * Creates the html form needed for submitting the 'Create new account' request to + * the admin controller. * * @category Nosto * @package Nosto_Tagging @@ -61,7 +62,10 @@ protected function _prepareForm() 'class' => 'required-entry validate-email', )); $form->addField('nosto_terms_and_conditions', 'note', array( - 'text' => $this->__('By creating a new account you agree to Nosto\'s') . ' ' . $this->__('Terms and Conditions') . '', + 'text' => $this->__('By creating a new account you agree to Nosto\'s') + . ' ' + . $this->__('Terms and Conditions') + . '', )); $form->addField('nosto_create_account_submit', 'submit', array( 'class' => 'form-button', diff --git a/app/code/community/Nosto/Tagging/Block/Adminhtml/Form/Account/Remove.php b/app/code/community/Nosto/Tagging/Block/Adminhtml/Form/Account/Remove.php index 9afe8e8f..d13c548d 100644 --- a/app/code/community/Nosto/Tagging/Block/Adminhtml/Form/Account/Remove.php +++ b/app/code/community/Nosto/Tagging/Block/Adminhtml/Form/Account/Remove.php @@ -26,7 +26,8 @@ /** * 'Remove Nosto' form block. - * Creates the html form needed for submitting 'Remove Nosto' requests to the admin controller. + * Creates the html form needed for submitting 'Remove Nosto' requests to the admin + * controller. * * @category Nosto * @package Nosto_Tagging @@ -63,7 +64,8 @@ protected function _prepareForm() } /** - * Gets the Nosto account name from the parent block, which should be Nosto_tagging_Block_Adminhtml_Wizard. + * Gets the Nosto account name from the parent block, which should be + * Nosto_tagging_Block_Adminhtml_Wizard. * * @return string the account name or empty string if not found in parent. */ diff --git a/app/code/community/Nosto/Tagging/Block/Adminhtml/Iframe.php b/app/code/community/Nosto/Tagging/Block/Adminhtml/Iframe.php index d1ab6718..bc0eee0e 100644 --- a/app/code/community/Nosto/Tagging/Block/Adminhtml/Iframe.php +++ b/app/code/community/Nosto/Tagging/Block/Adminhtml/Iframe.php @@ -35,7 +35,8 @@ class Nosto_tagging_Block_Adminhtml_Iframe extends Mage_Adminhtml_Block_Template { /** - * Gets the iframe url from parent block, which should be Nosto_tagging_Block_Adminhtml_Wizard. + * Gets the iframe url from parent block, which should be + * Nosto_tagging_Block_Adminhtml_Wizard. * * @return string the iframe url or empty string if cannot be found in parent. */ diff --git a/app/code/community/Nosto/Tagging/Block/Adminhtml/Wizard.php b/app/code/community/Nosto/Tagging/Block/Adminhtml/Wizard.php index ddd7647c..5f12ca87 100644 --- a/app/code/community/Nosto/Tagging/Block/Adminhtml/Wizard.php +++ b/app/code/community/Nosto/Tagging/Block/Adminhtml/Wizard.php @@ -46,7 +46,8 @@ class Nosto_tagging_Block_Adminhtml_Wizard extends Mage_Adminhtml_Block_Template /** * Gets the iframe url for the account settings page from Nosto. - * This url is only returned if the current admin user can be logged in with SSO to Nosto. + * This url is only returned if the current admin user can be logged in with SSO + * to Nosto. * * @return string the iframe url or empty string if it cannot be created. */ diff --git a/app/code/community/Nosto/Tagging/Block/Cart.php b/app/code/community/Nosto/Tagging/Block/Cart.php index 8a81542f..ecddf1e8 100644 --- a/app/code/community/Nosto/Tagging/Block/Cart.php +++ b/app/code/community/Nosto/Tagging/Block/Cart.php @@ -35,14 +35,13 @@ class Nosto_Tagging_Block_Cart extends Mage_Checkout_Block_Cart_Abstract { /** - * Cached items in cart. - * - * @var Mage_Sales_Model_Quote_Item[] + * @var Mage_Sales_Model_Quote_Item[] Cached items in cart. */ protected $_items; /** - * Render shopping cart content as hidden meta data if the module is enabled for the current store. + * Render shopping cart content as hidden meta data if the module is enabled for + * the current store. * * @return string */ @@ -55,12 +54,15 @@ protected function _toHtml() } // If we have items in the cart, then update the Nosto customer quote link. - // This is done to enable server-to-server order confirmation requests once the quote is turned into an order. - // We do it here as this will be run on every request when we have a quote. This is important as the Nosto - // customer ID will change after a period of time while the Mage quote ID can be the same. - // The ideal place to run it would be once when the customer goes to the `checkout/cart` page, but there are - // no events that are fired on that page only, and the cart page recommendation elements we output come - // through a generic block that cannot be used for this specific action. + // This is done to enable server-to-server order confirmation requests once + // the quote is turned into an order. + // We do it here as this will be run on every request when we have a quote. + // This is important as the Nosto customer ID will change after a period of + // time while the Mage quote ID can be the same. + // The ideal place to run it would be once when the customer goes to the + // `checkout/cart` page, but there are no events that are fired on that page + // only, and the cart page recommendation elements we output come through a + // generic block that cannot be used for this specific action. if (count($this->getItems()) > 0) { Mage::helper('nosto_tagging/customer')->updateNostoId(); } @@ -69,7 +71,8 @@ protected function _toHtml() } /** - * Returns all visible cart items. If it is a bundle product with dynamic price settings, we get it's products + * Returns all visible cart items. If it is a bundle product with dynamic price + * settings, we get it's products * and return them. Fixed price bundle is not supported. * * @return Mage_Sales_Model_Quote_Item[] @@ -100,9 +103,10 @@ public function getItems() /** * Returns the product id for a quote item. - * If the product type is "grouped", then return the grouped product's id and not the id of the actual product. + * If the product type is "grouped", then return the grouped product's id and not + * the id of the actual product. * - * @param Mage_Sales_Model_Quote_Item $item + * @param Mage_Sales_Model_Quote_Item $item the quote item model. * * @return int */ diff --git a/app/code/community/Nosto/Tagging/Block/Category.php b/app/code/community/Nosto/Tagging/Block/Category.php index b4410e19..7287da0b 100644 --- a/app/code/community/Nosto/Tagging/Block/Category.php +++ b/app/code/community/Nosto/Tagging/Block/Category.php @@ -26,7 +26,8 @@ /** * Current category tagging block. - * Adds meta-data to the HTML document for the current catalog category (including parent categories). + * Adds meta-data to the HTML document for the current catalog category (including + * parent categories). * * @category Nosto * @package Nosto_Tagging @@ -42,7 +43,8 @@ class Nosto_Tagging_Block_Category extends Mage_Core_Block_Template protected $_category; /** - * Render category string as hidden meta data if the module is enabled for the current store. + * Render category string as hidden meta data if the module is enabled for the + * current store. * * @return string */ @@ -67,7 +69,8 @@ public function getCategory() { if (!$this->_category) { $category = Mage::registry('current_category'); - $this->_category = Mage::helper('nosto_tagging')->buildCategoryString($category); + $this->_category = Mage::helper('nosto_tagging') + ->buildCategoryString($category); } return $this->_category; diff --git a/app/code/community/Nosto/Tagging/Block/Customer.php b/app/code/community/Nosto/Tagging/Block/Customer.php index ee5a51a6..02798982 100644 --- a/app/code/community/Nosto/Tagging/Block/Customer.php +++ b/app/code/community/Nosto/Tagging/Block/Customer.php @@ -36,7 +36,8 @@ class Nosto_Tagging_Block_Customer extends Mage_Customer_Block_Account_Dashboard { /** * Render customer info as hidden meta data if the customer is logged in, - * the module is enabled for the current store and the "collect_email_addresses" option is enabled. + * the module is enabled for the current store and the "collect_email_addresses" + * option is enabled. * * @return string */ diff --git a/app/code/community/Nosto/Tagging/Block/Element.php b/app/code/community/Nosto/Tagging/Block/Element.php index 9a543504..481a3799 100644 --- a/app/code/community/Nosto/Tagging/Block/Element.php +++ b/app/code/community/Nosto/Tagging/Block/Element.php @@ -42,7 +42,8 @@ class Nosto_Tagging_Block_Element extends Mage_Core_Block_Template const DEFAULT_ID = 'missingDivIdParameter'; /** - * Render HTML placeholder element for the product recommendations if the module is enabled for the current store. + * Render HTML placeholder element for the product recommendations if the module + * is enabled for the current store. * * @return string */ @@ -57,7 +58,8 @@ protected function _toHtml() } /** - * Return the id of the element. If none is defined in the layout xml, then set a default one. + * Return the id of the element. If none is defined in the layout xml, then set + * a default one. * * @return string */ diff --git a/app/code/community/Nosto/Tagging/Block/Embed.php b/app/code/community/Nosto/Tagging/Block/Embed.php index b3dfe6a5..03a243f8 100644 --- a/app/code/community/Nosto/Tagging/Block/Embed.php +++ b/app/code/community/Nosto/Tagging/Block/Embed.php @@ -38,8 +38,8 @@ class Nosto_Tagging_Block_Embed extends Mage_Core_Block_Template const DEFAULT_SERVER_ADDRESS = 'connect.nosto.com'; /** - * Render JavaScript that handles the data gathering and displaying of recommended products - * if the module is enabled for the current store. + * Render JavaScript that handles the data gathering and displaying of + * recommended products if the module is enabled for the current store. * * @return string */ @@ -70,12 +70,15 @@ public function getAccountName() /** * Gets the Nosto server address. - * This is either taken from the local environment if exists or else it defaults to "connect.nosto.com". + * This is either taken from the local environment if exists or else it defaults + * to "connect.nosto.com". * * @return string the url. */ public function getServerAddress() { - return isset($_ENV['NOSTO_SERVER_URL']) ? $_ENV['NOSTO_SERVER_URL'] : self::DEFAULT_SERVER_ADDRESS; + return isset($_ENV['NOSTO_SERVER_URL']) + ? $_ENV['NOSTO_SERVER_URL'] + : self::DEFAULT_SERVER_ADDRESS; } } diff --git a/app/code/community/Nosto/Tagging/Block/Order.php b/app/code/community/Nosto/Tagging/Block/Order.php index 2003fe17..7f6fec50 100644 --- a/app/code/community/Nosto/Tagging/Block/Order.php +++ b/app/code/community/Nosto/Tagging/Block/Order.php @@ -35,7 +35,8 @@ class Nosto_Tagging_Block_Order extends Mage_Checkout_Block_Success { /** - * Render order info as hidden meta data if the module is enabled for the current store. + * Render order info as hidden meta data if the module is enabled for the + * current store. * * @return string */ @@ -84,7 +85,8 @@ public function getOrderItems($order) /** @var $visibleItems Mage_Sales_Model_Order_Item[] */ $visibleItems = $order->getAllVisibleItems(); foreach ($visibleItems as $visibleItem) { - $product = Mage::getModel('catalog/product')->load($visibleItem->getProductId()); + $product = Mage::getModel('catalog/product') + ->load($visibleItem->getProductId()); if ($product->getTypeId() === Mage_Catalog_Model_Product_Type::TYPE_BUNDLE) { if ((int)$product->getPriceType() === Mage_Bundle_Model_Product_Price::PRICE_TYPE_FIXED) { continue; @@ -125,11 +127,12 @@ protected function _orderModelToItem($model) } /** - * Returns an array of generic data objects for discount and shipping from the order. + * Returns an array of generic data objects for discount and shipping from the + * order. * * @see Nosto_Tagging_Block_Order::getOrderItems() * - * @param Mage_Sales_Model_Order $order + * @param Mage_Sales_Model_Order $order the order model. * * @return object[] */ @@ -160,9 +163,10 @@ protected function _getOrderSpecialItems($order) /** * Returns the product id for a order item. - * If the product type is "grouped", then return the grouped product's id and not the id of the actual product. + * If the product type is "grouped", then return the grouped product's id and + * not the id of the actual product. * - * @param Mage_Sales_Model_Order_Item $item + * @param Mage_Sales_Model_Order_Item $item the order item model. * * @return int */ diff --git a/app/code/community/Nosto/Tagging/Block/Product.php b/app/code/community/Nosto/Tagging/Block/Product.php index 93df1b61..7e986fe9 100644 --- a/app/code/community/Nosto/Tagging/Block/Product.php +++ b/app/code/community/Nosto/Tagging/Block/Product.php @@ -45,9 +45,10 @@ class Nosto_Tagging_Block_Product extends Mage_Catalog_Block_Product_Abstract const PRODUCT_OUT_OF_STOCK = 'OutOfStock'; /** - * Render product info as hidden meta data if the module is enabled for the current store. - * If it is a "bundle" product with fixed price type, then do not render. These are not supported due to their - * child products not having prices available. + * Render product info as hidden meta data if the module is enabled for the + * current store. + * If it is a "bundle" product with fixed price type, then do not render. These + * are not supported due to their child products not having prices available. * * @return string */ @@ -68,7 +69,7 @@ protected function _toHtml() /** * Return tagging data for the product availability. * - * @param Mage_Catalog_Model_Product $product + * @param Mage_Catalog_Model_Product $product the product model. * * @return string */ @@ -83,14 +84,15 @@ public function getProductAvailability($product) /** * Return array of categories for the product. - * The items in the array are strings combined of the complete category path to the products own category. + * The items in the array are strings combined of the complete category path to + * the products own category. * * Structure: * array ( * /Electronics/Computers * ) * - * @param Mage_Catalog_Model_Product $product + * @param Mage_Catalog_Model_Product $product the product model. * * @return array */ @@ -101,7 +103,8 @@ public function getProductCategories($product) if ($product instanceof Mage_Catalog_Model_Product) { $categoryCollection = $product->getCategoryCollection(); foreach ($categoryCollection as $category) { - $categoryString = Mage::helper('nosto_tagging')->buildCategoryString($category); + $categoryString = Mage::helper('nosto_tagging') + ->buildCategoryString($category); if (!empty($categoryString)) { $data[] = $categoryString; } diff --git a/app/code/community/Nosto/Tagging/Helper/Account.php b/app/code/community/Nosto/Tagging/Helper/Account.php index e3a88259..e3724381 100644 --- a/app/code/community/Nosto/Tagging/Helper/Account.php +++ b/app/code/community/Nosto/Tagging/Helper/Account.php @@ -28,7 +28,7 @@ /** * Helper class for managing Nosto accounts. - * Includes methods for saving, removing and finding accounts for a specific store view. + * Includes methods for saving, removing and finding accounts for a specific store. * * @category Nosto * @package Nosto_Tagging @@ -49,8 +49,9 @@ class Nosto_Tagging_Helper_Account extends Mage_Core_Helper_Abstract /** * Saves the account and the associated api tokens for the store view scope. * - * @param NostoAccount $account the account to save. + * @param NostoAccount $account the account to save. * @param Mage_Core_Model_Store|null $store the store view to save it for (defaults to current). + * * @return bool true on success, false otherwise. */ public function save(NostoAccount $account, Mage_Core_Model_Store $store = null) @@ -77,6 +78,7 @@ public function save(NostoAccount $account, Mage_Core_Model_Store $store = null) * Removes an account with associated api tokens for the store view scope. * * @param Mage_Core_Model_Store|null $store the store view to remove it for (defaults to current). + * * @return bool true on success, false otherwise. */ public function remove(Mage_Core_Model_Store $store = null) @@ -99,6 +101,7 @@ public function remove(Mage_Core_Model_Store $store = null) * Returns the account with associated api tokens for the store view scope. * * @param Mage_Core_Model_Store|null $store the store view to find the account for (defaults to current). + * * @return NostoAccount|null the account or null if not found. */ public function find(Mage_Core_Model_Store $store = null) @@ -125,9 +128,11 @@ public function find(Mage_Core_Model_Store $store = null) } /** - * Checks that an account exists for the given store and that it is connected to nosto. + * Checks that an account exists for the given store and that it is connected to + * nosto. * * @param Mage_Core_Model_Store $store the store to check the account for (defaults to current active store). + * * @return bool true if the account exists and is connected, false otherwise. */ public function existsAndIsConnected(Mage_Core_Model_Store $store = null) @@ -137,7 +142,8 @@ public function existsAndIsConnected(Mage_Core_Model_Store $store = null) } /** - * Returns the meta data model needed for creating a new nosto account using the Nosto SDk. + * Returns the meta data model needed for creating a new nosto account using the + * Nosto SDk. * * @return Nosto_Tagging_Model_Meta_Account the meta data instance. */ diff --git a/app/code/community/Nosto/Tagging/Helper/Customer.php b/app/code/community/Nosto/Tagging/Helper/Customer.php index b806cef4..ffddfadd 100644 --- a/app/code/community/Nosto/Tagging/Helper/Customer.php +++ b/app/code/community/Nosto/Tagging/Helper/Customer.php @@ -43,6 +43,7 @@ class Nosto_Tagging_Helper_Customer extends Mage_Core_Helper_Abstract * The Nosto ID represents the customer who placed to the order on Nosto's side. * * @param Mage_Sales_Model_Order $order the order to get the Nosto ID for. + * * @return bool|string the Nosto ID or false if not found for order. */ public function getNostoId(Mage_Sales_Model_Order $order) diff --git a/app/code/community/Nosto/Tagging/Helper/Data.php b/app/code/community/Nosto/Tagging/Helper/Data.php index 7914e573..aaea5807 100644 --- a/app/code/community/Nosto/Tagging/Helper/Data.php +++ b/app/code/community/Nosto/Tagging/Helper/Data.php @@ -36,10 +36,11 @@ class Nosto_Tagging_Helper_Data extends Mage_Core_Helper_Abstract const XML_PATH_INSTALLATION_ID = 'nosto_tagging/installation/id'; /** - * Builds a tagging string of the given category including all its parent categories. + * Builds a tagging string of the given category including all its parent + * categories. * The categories are sorted by their position in the category tree path. * - * @param Mage_Catalog_Model_Category $category + * @param Mage_Catalog_Model_Category $category the category model. * * @return string */ @@ -68,7 +69,7 @@ public function buildCategoryString($category) /** * Formats date into Nosto format, i.e. Y-m-d. * - * @param string $date + * @param string $date the date to format. * * @return string */ @@ -79,7 +80,8 @@ public function getFormattedDate($date) /** * Returns a unique ID that identifies this Magento installation. - * This ID is sent to the Nosto account config iframe and used to link all Nosto accounts used on this installation. + * This ID is sent to the Nosto account config iframe and used to link all Nosto + * accounts used on this installation. * * @return string the ID. */ diff --git a/app/code/community/Nosto/Tagging/Helper/Date.php b/app/code/community/Nosto/Tagging/Helper/Date.php index 05fb2c4a..d0087788 100644 --- a/app/code/community/Nosto/Tagging/Helper/Date.php +++ b/app/code/community/Nosto/Tagging/Helper/Date.php @@ -36,7 +36,7 @@ class Nosto_Tagging_Helper_Date extends Mage_Core_Helper_Abstract /** * Formats date into Nosto format, i.e. Y-m-d. * - * @param string $date the dat to format. + * @param string $date the date to format. * * @return string the formatted date. */ diff --git a/app/code/community/Nosto/Tagging/Helper/Oauth.php b/app/code/community/Nosto/Tagging/Helper/Oauth.php index bb9f23db..da42154e 100644 --- a/app/code/community/Nosto/Tagging/Helper/Oauth.php +++ b/app/code/community/Nosto/Tagging/Helper/Oauth.php @@ -36,7 +36,8 @@ class Nosto_Tagging_Helper_Oauth extends Mage_Core_Helper_Abstract { /** - * Returns the meta data model needed for using the OAuth2 client included in the Nosto SDk. + * Returns the meta data model needed for using the OAuth2 client included in + * the Nosto SDk. * * @return Nosto_Tagging_Model_Meta_Oauth the meta data instance. */ diff --git a/app/code/community/Nosto/Tagging/Helper/Price.php b/app/code/community/Nosto/Tagging/Helper/Price.php index 788b6884..4e5fbffc 100644 --- a/app/code/community/Nosto/Tagging/Helper/Price.php +++ b/app/code/community/Nosto/Tagging/Helper/Price.php @@ -36,7 +36,7 @@ class Nosto_Tagging_Helper_Price extends Mage_Core_Helper_Abstract /** * Formats price into Nosto format, e.g. 1000.99. * - * @param string|int|float $price + * @param string|int|float $price the price to format. * * @return string */ @@ -48,7 +48,7 @@ public function getFormattedPrice($price) /** * Gets the unit price for a product model. * - * @param Mage_Catalog_Model_Product $product + * @param Mage_Catalog_Model_Product $product the product model. * * @return float */ @@ -60,7 +60,7 @@ public function getProductPrice($product) /** * Get the final price for a product model. * - * @param Mage_Catalog_Model_Product $product + * @param Mage_Catalog_Model_Product $product the product model. * * @return float */ @@ -72,8 +72,8 @@ public function getProductFinalPrice($product) /** * Get unit/final price for a product model. * - * @param Mage_Catalog_Model_Product $product - * @param bool $finalPrice + * @param Mage_Catalog_Model_Product $product the product model. + * @param bool $finalPrice if the final price should be returned. * * @return float */ diff --git a/app/code/community/Nosto/Tagging/Model/Meta/Account.php b/app/code/community/Nosto/Tagging/Model/Meta/Account.php index 1d740fb4..eef7634d 100644 --- a/app/code/community/Nosto/Tagging/Model/Meta/Account.php +++ b/app/code/community/Nosto/Tagging/Model/Meta/Account.php @@ -87,9 +87,17 @@ public function __construct() parent::__construct(); $store = Mage::app()->getStore(); - $this->title = $store->getWebsite()->getName() . ' - ' . $store->getGroup()->getName() . ' - ' . $store->getName(); + $this->title = $store->getWebsite()->getName() + . ' - ' + . $store->getGroup()->getName() + . ' - ' + . $store->getName(); $this->name = substr(sha1(rand()), 0, 8); - $this->frontPageUrl = NostoHttpRequest::replaceQueryParamInUrl('___store', $store->getCode(), $store->getBaseUrl(Mage_Core_Model_Store::URL_TYPE_WEB)); + $this->frontPageUrl = NostoHttpRequest::replaceQueryParamInUrl( + '___store', + $store->getCode(), + $store->getBaseUrl(Mage_Core_Model_Store::URL_TYPE_WEB) + ); $this->currencyCode = $store->getBaseCurrencyCode(); $this->languageCode = substr($store->getConfig('general/locale/code'), 0, 2); $this->ownerLanguageCode = substr(Mage::app()->getLocale()->getLocaleCode(), 0, 2); @@ -139,7 +147,8 @@ public function setName($name) /** * The name of the account to create. - * This has to follow the pattern of "[platform name]-[8 character lowercase alpha numeric string]". + * This has to follow the pattern of + * "[platform name]-[8 character lowercase alpha numeric string]". * * @return string the account name. */ @@ -170,7 +179,8 @@ public function setFrontPageUrl($url) } /** - * Absolute url to the front page of the shop for which the account is created for. + * Absolute url to the front page of the shop for which the account is created + * for. * * @return string the url. */ @@ -190,7 +200,8 @@ public function setCurrencyCode($code) } /** - * The 3-letter ISO code (ISO 4217) for the currency used by the shop for which the account is created for. + * The 3-letter ISO code (ISO 4217) for the currency used by the shop for which + * the account is created for. * * @return string the currency ISO code. */ @@ -210,7 +221,8 @@ public function setLanguageCode($languageCode) } /** - * The 2-letter ISO code (ISO 639-1) for the language used by the shop for which the account is created for. + * The 2-letter ISO code (ISO 639-1) for the language used by the shop for which + * the account is created for. * * @return string the language ISO code. */ @@ -230,7 +242,8 @@ public function setOwnerLanguageCode($languageCode) } /** - * The 2-letter ISO code (ISO 639-1) for the language of the account owner who is creating the account. + * The 2-letter ISO code (ISO 639-1) for the language of the account owner who + * is creating the account. * * @return string the language ISO code. */ diff --git a/app/code/community/Nosto/Tagging/Model/Meta/Account/Billing.php b/app/code/community/Nosto/Tagging/Model/Meta/Account/Billing.php index 9fc92eb1..1f6bf6a2 100644 --- a/app/code/community/Nosto/Tagging/Model/Meta/Account/Billing.php +++ b/app/code/community/Nosto/Tagging/Model/Meta/Account/Billing.php @@ -35,7 +35,7 @@ class Nosto_Tagging_Model_Meta_Account_Billing extends Mage_Core_Model_Abstract implements NostoAccountMetaDataBillingDetailsInterface { /** - * @var string country ISO (ISO 3166-1 alpha-2) code for the account billing details. + * @var string country ISO (ISO 3166-1 alpha-2) code for account billing details. */ protected $country; @@ -71,7 +71,7 @@ public function setCountry($country) } /** - * The 2-letter ISO code (ISO 3166-1 alpha-2) for the country used in account's billing details. + * The 2-letter ISO code (ISO 3166-1 alpha-2) for country in billing details. * * @return string the country ISO code. */ diff --git a/app/code/community/Nosto/Tagging/Model/Meta/Account/Iframe.php b/app/code/community/Nosto/Tagging/Model/Meta/Account/Iframe.php index ec2f5332..883e26de 100644 --- a/app/code/community/Nosto/Tagging/Model/Meta/Account/Iframe.php +++ b/app/code/community/Nosto/Tagging/Model/Meta/Account/Iframe.php @@ -25,7 +25,8 @@ */ /** - * Meta data class which holds information to be sent to the Nosto account configuration iframe. + * Meta data class which holds information to be sent to the Nosto account + * configuration iframe. * * @category Nosto * @package Nosto_Tagging @@ -64,7 +65,7 @@ class Nosto_Tagging_Model_Meta_Account_Iframe extends Mage_Core_Model_Abstract i protected $languageIsoCodeShop; /** - * @var string unique ID that identifies the Magento installation and all the accounts within. + * @var string unique ID that identifies the Magento installation. */ protected $uniqueId; @@ -213,7 +214,8 @@ public function setLanguageIsoCode($code) } /** - * The 2-letter ISO code (ISO 639-1) for the language of the user who is loading the config iframe. + * The 2-letter ISO code (ISO 639-1) for the language of the user who is loading + * the config iframe. * * @return string the language ISO code. */ @@ -223,7 +225,8 @@ public function getLanguageIsoCode() } /** - * The 2-letter ISO code (ISO 639-1) for the language of the shop the account belongs to. + * The 2-letter ISO code (ISO 639-1) for the language of the shop the account + * belongs to. * * @return string the language ISO code. */ @@ -234,7 +237,8 @@ public function getLanguageIsoCodeShop() /** * Unique identifier for the e-commerce installation. - * This identifier is used to link accounts together that are created on the same installation. + * This identifier is used to link accounts together that are created on the + * same installation. * * @return string the identifier. */ @@ -254,7 +258,8 @@ public function getVersionPlatform() } /** - * The version number of the Nosto module/extension running on the e-commerce installation. + * The version number of the Nosto module/extension running on the e-commerce + * installation. * * @return string the module version. */ @@ -265,9 +270,11 @@ public function getVersionModule() } /** - * An absolute URL for any product page in the shop the account is linked to, with the nostodebug GET parameter enabled. + * An absolute URL for any product page in the shop the account is linked to, + * with the nostodebug GET parameter enabled. * e.g. http://myshop.com/products/product123?nostodebug=true - * This is used in the config iframe to allow the user to quickly preview the recommendations on the given page. + * This is used in the config iframe to allow the user to quickly preview the + * recommendations on the given page. * * @return string the url. */ @@ -277,9 +284,11 @@ public function getPreviewUrlProduct() } /** - * An absolute URL for any category page in the shop the account is linked to, with the nostodebug GET parameter enabled. + * An absolute URL for any category page in the shop the account is linked to, + * with the nostodebug GET parameter enabled. * e.g. http://myshop.com/products/category123?nostodebug=true - * This is used in the config iframe to allow the user to quickly preview the recommendations on the given page. + * This is used in the config iframe to allow the user to quickly preview the + * recommendations on the given page. * * @return string the url. */ @@ -289,9 +298,11 @@ public function getPreviewUrlCategory() } /** - * An absolute URL for the search page in the shop the account is linked to, with the nostodebug GET parameter enabled. + * An absolute URL for the search page in the shop the account is linked to, + * with the nostodebug GET parameter enabled. * e.g. http://myshop.com/search?query=red?nostodebug=true - * This is used in the config iframe to allow the user to quickly preview the recommendations on the given page. + * This is used in the config iframe to allow the user to quickly preview the + * recommendations on the given page. * * @return string the url. */ @@ -301,9 +312,11 @@ public function getPreviewUrlSearch() } /** - * An absolute URL for the shopping cart page in the shop the account is linked to, with the nostodebug GET parameter enabled. + * An absolute URL for the shopping cart page in the shop the account is linked + * to, with the nostodebug GET parameter enabled. * e.g. http://myshop.com/cart?nostodebug=true - * This is used in the config iframe to allow the user to quickly preview the recommendations on the given page. + * This is used in the config iframe to allow the user to quickly preview the + * recommendations on the given page. * * @return string the url. */ @@ -313,9 +326,11 @@ public function getPreviewUrlCart() } /** - * An absolute URL for the front page in the shop the account is linked to, with the nostodebug GET parameter enabled. + * An absolute URL for the front page in the shop the account is linked to, with + * the nostodebug GET parameter enabled. * e.g. http://myshop.com?nostodebug=true - * This is used in the config iframe to allow the user to quickly preview the recommendations on the given page. + * This is used in the config iframe to allow the user to quickly preview the + * recommendations on the given page. * * @return string the url. */ diff --git a/app/code/community/Nosto/Tagging/Model/Meta/Account/Owner.php b/app/code/community/Nosto/Tagging/Model/Meta/Account/Owner.php index cbe7673d..2295da9e 100644 --- a/app/code/community/Nosto/Tagging/Model/Meta/Account/Owner.php +++ b/app/code/community/Nosto/Tagging/Model/Meta/Account/Owner.php @@ -85,7 +85,9 @@ public function setFirstName($firstName) } /** - * @inheritdoc + * The first name of the account owner. + * + * @return string the first name. */ public function getFirstName() { @@ -103,7 +105,9 @@ public function setLastName($lastName) } /** - * @inheritdoc + * The last name of the account owner. + * + * @return string the last name. */ public function getLastName() { @@ -121,7 +125,9 @@ public function setEmail($email) } /** - * @inheritdoc + * The email address of the account owner. + * + * @return string the email address. */ public function getEmail() { diff --git a/app/code/community/Nosto/Tagging/Model/Meta/Oauth.php b/app/code/community/Nosto/Tagging/Model/Meta/Oauth.php index 9c391a40..fbe7da28 100644 --- a/app/code/community/Nosto/Tagging/Model/Meta/Oauth.php +++ b/app/code/community/Nosto/Tagging/Model/Meta/Oauth.php @@ -34,7 +34,8 @@ class Nosto_Tagging_Model_Meta_Oauth extends Mage_Core_Model_Abstract implements NostoOAuthClientMetaDataInterface { /** - * @var string the url where the oauth2 server should redirect after authorization is done. + * @var string the url where the oauth2 server should redirect after + * authorization is done. */ protected $redirectUrl; @@ -51,7 +52,12 @@ public function __construct() { parent::__construct(); - $this->redirectUrl = Mage::getUrl('nosto/oauth', array('_store' => Mage::app()->getStore()->getId(), '_store_to_url' => true)); + $this->redirectUrl = Mage::getUrl( + 'nosto/oauth', + array( + '_store' => Mage::app()->getStore()->getId(), '_store_to_url' => true + ) + ); $this->languageIsoCode = substr(Mage::app()->getLocale()->getLocaleCode(), 0, 2); } @@ -89,7 +95,8 @@ public function getClientSecret() /** * The scopes for the OAuth2 request. - * These are used to request specific API tokens from Nosto and should almost always be the ones defined in NostoApiToken::$tokenNames. + * These are used to request specific API tokens from Nosto and should almost + * always be the ones defined in NostoApiToken::$tokenNames. * * @return array the scopes. */ @@ -100,8 +107,10 @@ public function getScopes() } /** - * The OAuth2 redirect url to where the OAuth2 server should redirect the user after authorizing the application to act on the users behalf. - * This url must by publicly accessible and the domain must match the one defined for the Nosto account. + * The OAuth2 redirect url to where the OAuth2 server should redirect the user + * after authorizing the application to act on the users behalf. + * This url must by publicly accessible and the domain must match the one + * defined for the Nosto account. * * @return string the url. */ @@ -121,7 +130,8 @@ public function setRedirectUrl($url) } /** - * The 2-letter ISO code (ISO 639-1) for the language the OAuth2 server uses for UI localization. + * The 2-letter ISO code (ISO 639-1) for the language the OAuth2 server uses for + * UI localization. * * @return string the ISO code. */ diff --git a/app/code/community/Nosto/Tagging/Model/Meta/Product.php b/app/code/community/Nosto/Tagging/Model/Meta/Product.php index 88594821..af1a39d9 100644 --- a/app/code/community/Nosto/Tagging/Model/Meta/Product.php +++ b/app/code/community/Nosto/Tagging/Model/Meta/Product.php @@ -253,8 +253,6 @@ public function getDatePublished() * Loads the product info from a Magento product model. * * @param Mage_Catalog_Model_Product $product the product model. - * - * @return void */ public function loadData(Mage_Catalog_Model_Product $product) { diff --git a/app/code/community/Nosto/Tagging/controllers/Adminhtml/NostoController.php b/app/code/community/Nosto/Tagging/controllers/Adminhtml/NostoController.php index 4cd3758c..b82d9310 100644 --- a/app/code/community/Nosto/Tagging/controllers/Adminhtml/NostoController.php +++ b/app/code/community/Nosto/Tagging/controllers/Adminhtml/NostoController.php @@ -28,7 +28,8 @@ /** * Nosto admin controller. - * Handles all actions for the configuration wizard as well as redirecting logic for the OAuth2 authorization cycle. + * Handles all actions for the configuration wizard as well as redirecting logic for + * the OAuth2 authorization cycle. * * @category Nosto * @package Nosto_Tagging @@ -37,15 +38,17 @@ class Nosto_Tagging_Adminhtml_NostoController extends Mage_Adminhtml_Controller_Action { /** - * @var array Array of actions which can be processed without secret key validation + * @var array Actions which can be processed without secret key validation. */ protected $_publicActions = array('redirectProxy'); /** - * Redirect action that acts as a proxy when the front end oauth controller redirects the admin user back to the - * backend after finishing the oauth authorization cycle. - * This is a workaround as you cannot redirect directly to a protected action in the backend end from the front end. - * The action also handles setting any error/success messages in the notification system. + * Redirect action that acts as a proxy when the front end oauth controller + * redirects the admin user back to the backend after finishing the oauth + * authorization cycle. + * This is a workaround as you cannot redirect directly to a protected action in + * the backend end from the front end. The action also handles setting any + * error/success messages in the notification system. */ public function redirectProxyAction() { @@ -55,7 +58,9 @@ public function redirectProxyAction() if (($error = $this->getRequest()->getParam('error')) !== null) { Mage::getSingleton('core/session')->addError($error); } - $this->_redirect('*/*/index', array('store' => (int)$this->getRequest()->getParam('store'))); + $this->_redirect('*/*/index', array( + 'store' => (int)$this->getRequest()->getParam('store')) + ); } /** @@ -65,22 +70,28 @@ public function indexAction() { $this->_title($this->__('Nosto')); if (!$this->checkStoreScope()) { - Mage::getSingleton('core/session')->addNotice($this->__('Please choose a shop to configure Nosto for.')); + Mage::getSingleton('core/session')->addNotice( + $this->__('Please choose a shop to configure Nosto for.') + ); } $this->loadLayout(); $this->renderLayout(); } /** - * Redirects user to the Nosto OAuth 2 authorization server to connect and existing nosto account to current scope. + * Redirects user to the Nosto OAuth 2 authorization server to connect and + * existing nosto account to current scope. */ public function connectAccountAction() { if ($this->getRequest()->isPost() && $this->checkStoreScope()) { - $client = new NostoOAuthClient(Mage::helper('nosto_tagging/oauth')->getMetaData()); + $client = new NostoOAuthClient(Mage::helper('nosto_tagging/oauth') + ->getMetaData()); $this->_redirectUrl($client->getAuthorizationUrl()); } else { - $this->_redirect('*/*/index', array('store' => (int)$this->getRequest()->getParam('store'))); + $this->_redirect('*/*/index', array( + 'store' => (int)$this->getRequest()->getParam('store')) + ); } } @@ -99,14 +110,21 @@ public function createAccountAction() } $account = NostoAccount::create($meta); if (Mage::helper('nosto_tagging/account')->save($account)) { - Mage::getSingleton('core/session')->addSuccess($this->__('Account created. Please check your email and follow the instructions to set a password for your new account within three days.')); + Mage::getSingleton('core/session')->addSuccess( + $this->__('Account created. Please check your email and follow the instructions to set a password for your new account within three days.') + ); } } catch (NostoException $e) { Mage::log("\n" . $e->__toString(), Zend_Log::ERR, 'nostotagging.log'); - Mage::getSingleton('core/session')->addException($e, $this->__('Account could not be automatically created. Please visit nosto.com to create a new account.')); + Mage::getSingleton('core/session')->addException( + $e, + $this->__('Account could not be automatically created. Please visit nosto.com to create a new account.') + ); } } - $this->_redirect('*/*/index', array('store' => (int)$this->getRequest()->getParam('store'))); + $this->_redirect('*/*/index', array( + 'store' => (int)$this->getRequest()->getParam('store')) + ); } /** @@ -116,14 +134,19 @@ public function removeAccountAction() { if ($this->getRequest()->isPost() && $this->checkStoreScope()) { if (Mage::helper('nosto_tagging/account')->remove()) { - Mage::getSingleton('core/session')->addSuccess($this->__('Account successfully removed.')); + Mage::getSingleton('core/session')->addSuccess( + $this->__('Account successfully removed.') + ); } } - $this->_redirect('*/*/index', array('store' => (int)$this->getRequest()->getParam('store'))); + $this->_redirect('*/*/index', array( + 'store' => (int)$this->getRequest()->getParam('store')) + ); } /** - * Checks that a valid store view scope id has been passed in the request params and set that as current store. + * Checks that a valid store view scope id has been passed in the request params + * and set that as current store. * * @return bool if the current store is valid, false otherwise. */ diff --git a/app/code/community/Nosto/Tagging/controllers/ExportController.php b/app/code/community/Nosto/Tagging/controllers/ExportController.php index 8e419375..22698ac5 100644 --- a/app/code/community/Nosto/Tagging/controllers/ExportController.php +++ b/app/code/community/Nosto/Tagging/controllers/ExportController.php @@ -28,7 +28,8 @@ /** * History data export controller. - * Handles the export of history data for orders and products that nosto can call when a new account has been set up. + * Handles the export of history data for orders and products that nosto can call + * when a new account has been set up. * The exported data is encrypted with AES as the endpoint is publicly available. * * @category Nosto diff --git a/app/code/community/Nosto/Tagging/controllers/OauthController.php b/app/code/community/Nosto/Tagging/controllers/OauthController.php index 16fd04d0..a6e50b8b 100644 --- a/app/code/community/Nosto/Tagging/controllers/OauthController.php +++ b/app/code/community/Nosto/Tagging/controllers/OauthController.php @@ -37,16 +37,21 @@ class Nosto_tagging_OauthController extends Mage_Core_Controller_Front_Action { /** - * Handles the redirect from Nosto oauth2 authorization server when an existing account is connected to a store. - * This is handled in the front end as the oauth2 server validates the "return_url" sent in the first step of the - * authorization cycle, and requires it to be from the same domain that the account is configured for and only + * Handles the redirect from Nosto oauth2 authorization server when an existing + * account is connected to a store. + * This is handled in the front end as the oauth2 server validates the + * "return_url" sent in the first step of the authorization cycle, and requires + * it to be from the same domain that the account is configured for and only * redirects to that domain. */ public function indexAction() { if (($code = $this->getRequest()->getParam('code')) !== null) { try { - $account = NostoAccount::syncFromNosto(Mage::helper('nosto_tagging/oauth')->getMetaData(), $code); + $account = NostoAccount::syncFromNosto( + Mage::helper('nosto_tagging/oauth')->getMetaData(), + $code + ); if (Mage::helper('nosto_tagging/account')->save($account)) { $params = array( 'success' => $this->__('Account %s successfully connected to Nosto.', $account->name), diff --git a/app/code/community/Nosto/Tagging/sql/tagging_setup/mysql4-upgrade-1.1.7-1.2.0.php b/app/code/community/Nosto/Tagging/sql/tagging_setup/mysql4-upgrade-1.1.7-1.2.0.php index 65691db7..63afc4e1 100644 --- a/app/code/community/Nosto/Tagging/sql/tagging_setup/mysql4-upgrade-1.1.7-1.2.0.php +++ b/app/code/community/Nosto/Tagging/sql/tagging_setup/mysql4-upgrade-1.1.7-1.2.0.php @@ -20,8 +20,7 @@ * * @category Nosto * @package Nosto_Tagging - * @author Nosto Solutions Ltd - * @copyright 2013-2015 Nosto Solutions Ltd (http://www.nosto.com) + * @copyright Copyright (c) 2013-2015 Nosto Solutions Ltd (http://www.nosto.com) * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ From 2d46faaaade7f11b7490c8e5476cbd7c19892e2d Mon Sep 17 00:00:00 2001 From: Christoffer Lindqvist Date: Mon, 19 Jan 2015 16:01:24 +0200 Subject: [PATCH 57/71] Coding standards --- .../Block/Adminhtml/Form/Account/Connect.php | 41 +++-- .../Block/Adminhtml/Form/Account/Create.php | 69 ++++---- .../Block/Adminhtml/Form/Account/Remove.php | 41 +++-- .../Nosto/Tagging/Block/Adminhtml/Iframe.php | 5 +- .../Nosto/Tagging/Block/Adminhtml/Wizard.php | 11 +- .../community/Nosto/Tagging/Block/Cart.php | 36 ++-- .../Nosto/Tagging/Block/Category.php | 13 +- .../Nosto/Tagging/Block/Customer.php | 4 +- .../community/Nosto/Tagging/Block/Element.php | 11 +- .../community/Nosto/Tagging/Block/Embed.php | 5 +- .../community/Nosto/Tagging/Block/Order.php | 21 +-- .../community/Nosto/Tagging/Block/Product.php | 16 +- .../Nosto/Tagging/Helper/Account.php | 43 +++-- .../Nosto/Tagging/Helper/Customer.php | 11 +- .../community/Nosto/Tagging/Helper/Data.php | 9 +- .../community/Nosto/Tagging/Helper/Date.php | 1 + .../community/Nosto/Tagging/Helper/Oauth.php | 5 +- .../community/Nosto/Tagging/Helper/Price.php | 13 +- .../community/Nosto/Tagging/Helper/Url.php | 64 +++++-- .../Nosto/Tagging/Model/Customer.php | 5 +- .../Nosto/Tagging/Model/Meta/Account.php | 93 +++++----- .../Tagging/Model/Meta/Account/Billing.php | 18 +- .../Tagging/Model/Meta/Account/Iframe.php | 161 +++++++++--------- .../Tagging/Model/Meta/Account/Owner.php | 29 ++-- .../Nosto/Tagging/Model/Meta/Oauth.php | 38 +++-- .../Nosto/Tagging/Model/Meta/Order.php | 50 +++--- .../Nosto/Tagging/Model/Meta/Order/Buyer.php | 28 +-- .../Nosto/Tagging/Model/Meta/Order/Item.php | 56 +++--- .../Nosto/Tagging/Model/Meta/Product.php | 103 +++++------ .../Nosto/Tagging/Model/Observer.php | 8 +- .../Nosto/Tagging/Model/Resource/Customer.php | 5 +- .../Model/Resource/Customer/Collection.php | 5 +- .../Nosto/Tagging/Model/Resource/Setup.php | 4 +- .../controllers/Adminhtml/NostoController.php | 63 ++++--- .../Tagging/controllers/ExportController.php | 26 ++- .../Tagging/controllers/OauthController.php | 46 +++-- .../community/Nosto/Tagging/etc/adminhtml.xml | 1 + .../community/Nosto/Tagging/etc/config.xml | 1 + .../tagging_setup/mysql4-install-1.2.0.php | 1 + .../mysql4-upgrade-1.1.7-1.2.0.php | 3 +- .../default/default/layout/nostotagging.xml | 1 + .../nostotagging/form/account/connect.phtml | 1 + .../nostotagging/form/account/create.phtml | 1 + .../nostotagging/form/account/remove.phtml | 1 + .../template/nostotagging/iframe.phtml | 1 + .../template/nostotagging/wizard.phtml | 1 + .../base/default/layout/nostotagging.xml | 1 + .../default/template/nostotagging/cart.phtml | 1 + .../template/nostotagging/category.phtml | 1 + .../template/nostotagging/category/view.phtml | 1 + .../template/nostotagging/customer.phtml | 1 + .../template/nostotagging/element.phtml | 1 + .../default/template/nostotagging/embed.phtml | 1 + .../default/template/nostotagging/order.phtml | 1 + .../template/nostotagging/product.phtml | 1 + app/etc/modules/Nosto_Tagging.xml | 1 + 56 files changed, 680 insertions(+), 499 deletions(-) diff --git a/app/code/community/Nosto/Tagging/Block/Adminhtml/Form/Account/Connect.php b/app/code/community/Nosto/Tagging/Block/Adminhtml/Form/Account/Connect.php index 7f1802c1..de0aacb0 100644 --- a/app/code/community/Nosto/Tagging/Block/Adminhtml/Form/Account/Connect.php +++ b/app/code/community/Nosto/Tagging/Block/Adminhtml/Form/Account/Connect.php @@ -20,14 +20,15 @@ * * @category Nosto * @package Nosto_Tagging + * @author Nosto Solutions Ltd * @copyright Copyright (c) 2013-2015 Nosto Solutions Ltd (http://www.nosto.com) * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ /** * "Connect to Nosto" form block. - * Creates the html form needed for submitting the "Connect to Nosto" request to the - * admin controller. + * Creates the html form needed for submitting the "Connect to Nosto" request + * to the admin controller. * * @category Nosto * @package Nosto_Tagging @@ -42,22 +43,28 @@ class Nosto_Tagging_Block_Adminhtml_Form_Account_Connect extends Mage_Adminhtml_ */ protected function _prepareForm() { - $form = new Varien_Data_Form(array( - 'id' => 'nosto_connect_account_form', - 'action' => $this->getUrl('*/*/connectAccount'), - 'method' => 'post', - 'enctype' => 'multipart/form-data' - )); + $form = new Varien_Data_Form( + array( + 'id' => 'nosto_connect_account_form', + 'action' => $this->getUrl('*/*/connectAccount'), + 'method' => 'post', + 'enctype' => 'multipart/form-data' + ) + ); $form->setUseContainer(true); - $form->addField('store', 'hidden', array( - 'name' => 'store', - 'value' => $this->getRequest()->getParam('store', 0), - )); - $form->addField('nosto_connect_account_submit', 'submit', array( - 'class' => 'form-button', - 'name' => 'nosto_connect_account_submit', - 'value' => $this->__('Add Nosto'), - )); + $form->addField( + 'store', 'hidden', array( + 'name' => 'store', + 'value' => $this->getRequest()->getParam('store', 0), + ) + ); + $form->addField( + 'nosto_connect_account_submit', 'submit', array( + 'class' => 'form-button', + 'name' => 'nosto_connect_account_submit', + 'value' => $this->__('Add Nosto'), + ) + ); $this->setForm($form); return parent::_prepareForm(); diff --git a/app/code/community/Nosto/Tagging/Block/Adminhtml/Form/Account/Create.php b/app/code/community/Nosto/Tagging/Block/Adminhtml/Form/Account/Create.php index 5855b096..c1a07ead 100644 --- a/app/code/community/Nosto/Tagging/Block/Adminhtml/Form/Account/Create.php +++ b/app/code/community/Nosto/Tagging/Block/Adminhtml/Form/Account/Create.php @@ -20,14 +20,15 @@ * * @category Nosto * @package Nosto_Tagging + * @author Nosto Solutions Ltd * @copyright Copyright (c) 2013-2015 Nosto Solutions Ltd (http://www.nosto.com) * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ /** * 'Create new account' form block. - * Creates the html form needed for submitting the 'Create new account' request to - * the admin controller. + * Creates the html form needed for submitting the 'Create new account' + * request to the admin controller. * * @category Nosto * @package Nosto_Tagging @@ -42,36 +43,46 @@ class Nosto_Tagging_Block_Adminhtml_Form_Account_Create extends Mage_Adminhtml_B */ protected function _prepareForm() { - $form = new Varien_Data_Form(array( - 'id' => 'nosto_create_account_form', - 'action' => $this->getUrl('*/*/createAccount'), - 'method' => 'post', - 'enctype' => 'multipart/form-data' - )); + $form = new Varien_Data_Form( + array( + 'id' => 'nosto_create_account_form', + 'action' => $this->getUrl('*/*/createAccount'), + 'method' => 'post', + 'enctype' => 'multipart/form-data' + ) + ); $form->setUseContainer(true); - $form->addField('store', 'hidden', array( - 'name' => 'store', - 'value' => $this->getRequest()->getParam('store', 0), - )); + $form->addField( + 'store', 'hidden', array( + 'name' => 'store', + 'value' => $this->getRequest()->getParam('store', 0), + ) + ); /** @var Mage_Admin_Model_User $user */ $user = Mage::getSingleton('admin/session')->getUser(); - $form->addField('nosto_create_account_email', 'text', array( - 'label' => $this->__('Email'), - 'name' => 'nosto_create_account_email', - 'value' => $user->getEmail(), - 'class' => 'required-entry validate-email', - )); - $form->addField('nosto_terms_and_conditions', 'note', array( - 'text' => $this->__('By creating a new account you agree to Nosto\'s') - . ' ' - . $this->__('Terms and Conditions') - . '', - )); - $form->addField('nosto_create_account_submit', 'submit', array( - 'class' => 'form-button', - 'name' => 'nosto_create_account_submit', - 'value' => $this->__('Create Nosto'), - )); + $form->addField( + 'nosto_create_account_email', 'text', array( + 'label' => $this->__('Email'), + 'name' => 'nosto_create_account_email', + 'value' => $user->getEmail(), + 'class' => 'required-entry validate-email', + ) + ); + $form->addField( + 'nosto_terms_and_conditions', 'note', array( + 'text' => $this->__('By creating a new account you agree to Nosto\'s') + . ' ' + . $this->__('Terms and Conditions') + . '', + ) + ); + $form->addField( + 'nosto_create_account_submit', 'submit', array( + 'class' => 'form-button', + 'name' => 'nosto_create_account_submit', + 'value' => $this->__('Create Nosto'), + ) + ); $this->setForm($form); return parent::_prepareForm(); diff --git a/app/code/community/Nosto/Tagging/Block/Adminhtml/Form/Account/Remove.php b/app/code/community/Nosto/Tagging/Block/Adminhtml/Form/Account/Remove.php index d13c548d..8aaae41d 100644 --- a/app/code/community/Nosto/Tagging/Block/Adminhtml/Form/Account/Remove.php +++ b/app/code/community/Nosto/Tagging/Block/Adminhtml/Form/Account/Remove.php @@ -20,14 +20,15 @@ * * @category Nosto * @package Nosto_Tagging + * @author Nosto Solutions Ltd * @copyright Copyright (c) 2013-2015 Nosto Solutions Ltd (http://www.nosto.com) * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ /** * 'Remove Nosto' form block. - * Creates the html form needed for submitting 'Remove Nosto' requests to the admin - * controller. + * Creates the html form needed for submitting 'Remove Nosto' requests to + * the admin controller. * * @category Nosto * @package Nosto_Tagging @@ -42,22 +43,28 @@ class Nosto_Tagging_Block_Adminhtml_Form_Account_Remove extends Mage_Adminhtml_B */ protected function _prepareForm() { - $form = new Varien_Data_Form(array( - 'id' => 'nosto_remove_account_form', - 'action' => $this->getUrl('*/*/removeAccount'), - 'method' => 'post', - 'enctype' => 'multipart/form-data' - )); + $form = new Varien_Data_Form( + array( + 'id' => 'nosto_remove_account_form', + 'action' => $this->getUrl('*/*/removeAccount'), + 'method' => 'post', + 'enctype' => 'multipart/form-data' + ) + ); $form->setUseContainer(true); - $form->addField('store', 'hidden', array( - 'name' => 'store', - 'value' => $this->getRequest()->getParam('store', 0), - )); - $form->addField('nosto_remove_account_submit', 'submit', array( - 'class' => 'form-button', - 'name' => 'nosto_remove_account_submit', - 'value' => $this->__('Remove Nosto'), - )); + $form->addField( + 'store', 'hidden', array( + 'name' => 'store', + 'value' => $this->getRequest()->getParam('store', 0), + ) + ); + $form->addField( + 'nosto_remove_account_submit', 'submit', array( + 'class' => 'form-button', + 'name' => 'nosto_remove_account_submit', + 'value' => $this->__('Remove Nosto'), + ) + ); $this->setForm($form); return parent::_prepareForm(); diff --git a/app/code/community/Nosto/Tagging/Block/Adminhtml/Iframe.php b/app/code/community/Nosto/Tagging/Block/Adminhtml/Iframe.php index bc0eee0e..efd80020 100644 --- a/app/code/community/Nosto/Tagging/Block/Adminhtml/Iframe.php +++ b/app/code/community/Nosto/Tagging/Block/Adminhtml/Iframe.php @@ -20,6 +20,7 @@ * * @category Nosto * @package Nosto_Tagging + * @author Nosto Solutions Ltd * @copyright Copyright (c) 2013-2015 Nosto Solutions Ltd (http://www.nosto.com) * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ @@ -32,13 +33,13 @@ * @package Nosto_Tagging * @author Nosto Solutions Ltd */ -class Nosto_tagging_Block_Adminhtml_Iframe extends Mage_Adminhtml_Block_Template +class Nosto_Tagging_Block_Adminhtml_Iframe extends Mage_Adminhtml_Block_Template { /** * Gets the iframe url from parent block, which should be * Nosto_tagging_Block_Adminhtml_Wizard. * - * @return string the iframe url or empty string if cannot be found in parent. + * @return string the url or empty string if cannot be found in parent. */ public function getIframeUrl() { diff --git a/app/code/community/Nosto/Tagging/Block/Adminhtml/Wizard.php b/app/code/community/Nosto/Tagging/Block/Adminhtml/Wizard.php index 5f12ca87..a7bfc871 100644 --- a/app/code/community/Nosto/Tagging/Block/Adminhtml/Wizard.php +++ b/app/code/community/Nosto/Tagging/Block/Adminhtml/Wizard.php @@ -20,6 +20,7 @@ * * @category Nosto * @package Nosto_Tagging + * @author Nosto Solutions Ltd * @copyright Copyright (c) 2013-2015 Nosto Solutions Ltd (http://www.nosto.com) * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ @@ -32,7 +33,7 @@ * @package Nosto_Tagging * @author Nosto Solutions Ltd */ -class Nosto_tagging_Block_Adminhtml_Wizard extends Mage_Adminhtml_Block_Template +class Nosto_Tagging_Block_Adminhtml_Wizard extends Mage_Adminhtml_Block_Template { /** * @var NostoAccount the Nosto account for current store view scope. @@ -46,8 +47,8 @@ class Nosto_tagging_Block_Adminhtml_Wizard extends Mage_Adminhtml_Block_Template /** * Gets the iframe url for the account settings page from Nosto. - * This url is only returned if the current admin user can be logged in with SSO - * to Nosto. + * This url is only returned if the current admin user can be logged in + * with SSO to Nosto. * * @return string the iframe url or empty string if it cannot be created. */ @@ -62,7 +63,9 @@ public function getIframeUrl() $meta = new Nosto_Tagging_Model_Meta_Account_Iframe(); return $this->_iframeUrl = $account->getIframeUrl($meta); } catch (NostoException $e) { - Mage::log("\n" . $e->__toString(), Zend_Log::ERR, 'nostotagging.log'); + Mage::log( + "\n" . $e->__toString(), Zend_Log::ERR, 'nostotagging.log' + ); } } return $this->_iframeUrl = ''; diff --git a/app/code/community/Nosto/Tagging/Block/Cart.php b/app/code/community/Nosto/Tagging/Block/Cart.php index ecddf1e8..370621e2 100644 --- a/app/code/community/Nosto/Tagging/Block/Cart.php +++ b/app/code/community/Nosto/Tagging/Block/Cart.php @@ -20,6 +20,7 @@ * * @category Nosto * @package Nosto_Tagging + * @author Nosto Solutions Ltd * @copyright Copyright (c) 2013-2015 Nosto Solutions Ltd (http://www.nosto.com) * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ @@ -40,8 +41,8 @@ class Nosto_Tagging_Block_Cart extends Mage_Checkout_Block_Cart_Abstract protected $_items; /** - * Render shopping cart content as hidden meta data if the module is enabled for - * the current store. + * Render shopping cart content as hidden meta data if the module is + * enabled for the current store. * * @return string */ @@ -53,16 +54,17 @@ protected function _toHtml() return ''; } - // If we have items in the cart, then update the Nosto customer quote link. - // This is done to enable server-to-server order confirmation requests once - // the quote is turned into an order. - // We do it here as this will be run on every request when we have a quote. - // This is important as the Nosto customer ID will change after a period of - // time while the Mage quote ID can be the same. - // The ideal place to run it would be once when the customer goes to the - // `checkout/cart` page, but there are no events that are fired on that page - // only, and the cart page recommendation elements we output come through a - // generic block that cannot be used for this specific action. + // If we have items in the cart, then update the Nosto customer quote + // link. This is done to enable server-to-server order confirmation + // requests once the quote is turned into an order. + // We do it here as this will be run on every request when we have a + // quote. This is important as the Nosto customer ID will change after + // a period of time while the Mage quote ID can be the same. + // The ideal place to run it would be once when the customer goes to + // the `checkout/cart` page, but there are no events that are fired on + // that page only, and the cart page recommendation elements we output + // come through a generic block that cannot be used for this specific + // action. if (count($this->getItems()) > 0) { Mage::helper('nosto_tagging/customer')->updateNostoId(); } @@ -71,9 +73,9 @@ protected function _toHtml() } /** - * Returns all visible cart items. If it is a bundle product with dynamic price - * settings, we get it's products - * and return them. Fixed price bundle is not supported. + * Returns all visible cart items. If it is a bundle product with dynamic + * price settings, we get it's products and return them. Fixed price bundle + * is not supported. * * @return Mage_Sales_Model_Quote_Item[] */ @@ -103,8 +105,8 @@ public function getItems() /** * Returns the product id for a quote item. - * If the product type is "grouped", then return the grouped product's id and not - * the id of the actual product. + * If the product type is "grouped", then return the grouped product's id + * and not the id of the actual product. * * @param Mage_Sales_Model_Quote_Item $item the quote item model. * diff --git a/app/code/community/Nosto/Tagging/Block/Category.php b/app/code/community/Nosto/Tagging/Block/Category.php index 7287da0b..9633d8ef 100644 --- a/app/code/community/Nosto/Tagging/Block/Category.php +++ b/app/code/community/Nosto/Tagging/Block/Category.php @@ -20,14 +20,15 @@ * * @category Nosto * @package Nosto_Tagging + * @author Nosto Solutions Ltd * @copyright Copyright (c) 2013-2015 Nosto Solutions Ltd (http://www.nosto.com) * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ /** * Current category tagging block. - * Adds meta-data to the HTML document for the current catalog category (including - * parent categories). + * Adds meta-data to the HTML document for the current catalog category + * (including parent categories). * * @category Nosto * @package Nosto_Tagging @@ -36,15 +37,13 @@ class Nosto_Tagging_Block_Category extends Mage_Core_Block_Template { /** - * Cached category string. - * - * @var string + * @var string Cached category string. */ protected $_category; /** - * Render category string as hidden meta data if the module is enabled for the - * current store. + * Render category string as hidden meta data if the module is enabled for + * the current store. * * @return string */ diff --git a/app/code/community/Nosto/Tagging/Block/Customer.php b/app/code/community/Nosto/Tagging/Block/Customer.php index 02798982..74287079 100644 --- a/app/code/community/Nosto/Tagging/Block/Customer.php +++ b/app/code/community/Nosto/Tagging/Block/Customer.php @@ -20,6 +20,7 @@ * * @category Nosto * @package Nosto_Tagging + * @author Nosto Solutions Ltd * @copyright Copyright (c) 2013-2015 Nosto Solutions Ltd (http://www.nosto.com) * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ @@ -36,8 +37,7 @@ class Nosto_Tagging_Block_Customer extends Mage_Customer_Block_Account_Dashboard { /** * Render customer info as hidden meta data if the customer is logged in, - * the module is enabled for the current store and the "collect_email_addresses" - * option is enabled. + * the module is enabled for the current store. * * @return string */ diff --git a/app/code/community/Nosto/Tagging/Block/Element.php b/app/code/community/Nosto/Tagging/Block/Element.php index 481a3799..74730775 100644 --- a/app/code/community/Nosto/Tagging/Block/Element.php +++ b/app/code/community/Nosto/Tagging/Block/Element.php @@ -20,6 +20,7 @@ * * @category Nosto * @package Nosto_Tagging + * @author Nosto Solutions Ltd * @copyright Copyright (c) 2013-2015 Nosto Solutions Ltd (http://www.nosto.com) * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ @@ -28,7 +29,7 @@ * Nosto element block. * Used to render placeholder elements that display the product recommendations. * - * @method string getDivId() Return the id of the element (defined in layout xml). + * @method string getDivId() Return the id of the element (defined in layout). * * @category Nosto * @package Nosto_Tagging @@ -42,8 +43,8 @@ class Nosto_Tagging_Block_Element extends Mage_Core_Block_Template const DEFAULT_ID = 'missingDivIdParameter'; /** - * Render HTML placeholder element for the product recommendations if the module - * is enabled for the current store. + * Render HTML placeholder element for the product recommendations if the + * module is enabled for the current store. * * @return string */ @@ -58,8 +59,8 @@ protected function _toHtml() } /** - * Return the id of the element. If none is defined in the layout xml, then set - * a default one. + * Return the id of the element. If none is defined in the layout xml, + * then set a default one. * * @return string */ diff --git a/app/code/community/Nosto/Tagging/Block/Embed.php b/app/code/community/Nosto/Tagging/Block/Embed.php index 03a243f8..b925edb3 100644 --- a/app/code/community/Nosto/Tagging/Block/Embed.php +++ b/app/code/community/Nosto/Tagging/Block/Embed.php @@ -20,6 +20,7 @@ * * @category Nosto * @package Nosto_Tagging + * @author Nosto Solutions Ltd * @copyright Copyright (c) 2013-2015 Nosto Solutions Ltd (http://www.nosto.com) * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ @@ -70,8 +71,8 @@ public function getAccountName() /** * Gets the Nosto server address. - * This is either taken from the local environment if exists or else it defaults - * to "connect.nosto.com". + * This is either taken from the local environment if exists or else it + * defaults to "connect.nosto.com". * * @return string the url. */ diff --git a/app/code/community/Nosto/Tagging/Block/Order.php b/app/code/community/Nosto/Tagging/Block/Order.php index 7f6fec50..f42e169f 100644 --- a/app/code/community/Nosto/Tagging/Block/Order.php +++ b/app/code/community/Nosto/Tagging/Block/Order.php @@ -20,6 +20,7 @@ * * @category Nosto * @package Nosto_Tagging + * @author Nosto Solutions Ltd * @copyright Copyright (c) 2013-2015 Nosto Solutions Ltd (http://www.nosto.com) * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ @@ -54,7 +55,7 @@ protected function _toHtml() /** * Return the last placed order for the customer. * - * @return Mage_Sales_Model_Order + * @return Mage_Sales_Model_Order the order model. */ public function getLastOrder() { @@ -74,7 +75,7 @@ public function getLastOrder() * price: 2.00 * }, {...}); * - * @param Mage_Sales_Model_Order $order + * @param Mage_Sales_Model_Order $order the order model. * * @return object[] */ @@ -110,9 +111,9 @@ public function getOrderItems($order) /** * Converts a order item model into a generic data object. * - * @see Nosto_Tagging_Block_Order::getOrderItems() + * @param Mage_Sales_Model_Order_Item $model the order item model. * - * @param Mage_Sales_Model_Order_Item $model + * @see Nosto_Tagging_Block_Order::getOrderItems() * * @return object */ @@ -127,13 +128,13 @@ protected function _orderModelToItem($model) } /** - * Returns an array of generic data objects for discount and shipping from the - * order. - * - * @see Nosto_Tagging_Block_Order::getOrderItems() + * Returns an array of generic data objects for discount and shipping from + * the order. * * @param Mage_Sales_Model_Order $order the order model. * + * @see Nosto_Tagging_Block_Order::getOrderItems() + * * @return object[] */ protected function _getOrderSpecialItems($order) @@ -163,8 +164,8 @@ protected function _getOrderSpecialItems($order) /** * Returns the product id for a order item. - * If the product type is "grouped", then return the grouped product's id and - * not the id of the actual product. + * If the product type is "grouped", then return the grouped product's id + * and not the id of the actual product. * * @param Mage_Sales_Model_Order_Item $item the order item model. * diff --git a/app/code/community/Nosto/Tagging/Block/Product.php b/app/code/community/Nosto/Tagging/Block/Product.php index 7e986fe9..f1b1b707 100644 --- a/app/code/community/Nosto/Tagging/Block/Product.php +++ b/app/code/community/Nosto/Tagging/Block/Product.php @@ -20,6 +20,7 @@ * * @category Nosto * @package Nosto_Tagging + * @author Nosto Solutions Ltd * @copyright Copyright (c) 2013-2015 Nosto Solutions Ltd (http://www.nosto.com) * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ @@ -47,8 +48,9 @@ class Nosto_Tagging_Block_Product extends Mage_Catalog_Block_Product_Abstract /** * Render product info as hidden meta data if the module is enabled for the * current store. - * If it is a "bundle" product with fixed price type, then do not render. These - * are not supported due to their child products not having prices available. + * If it is a "bundle" product with fixed price type, then do not render. + * These are not supported due to their child products not having prices + * available. * * @return string */ @@ -58,7 +60,7 @@ protected function _toHtml() if (!Mage::helper('nosto_tagging')->isModuleEnabled() || !Mage::helper('nosto_tagging/account')->existsAndIsConnected() || ($product->getTypeId() === Mage_Catalog_Model_Product_Type::TYPE_BUNDLE - && (int)$product->getPriceType() === Mage_Bundle_Model_Product_Price::PRICE_TYPE_FIXED) + && (int)$product->getPriceType() === Mage_Bundle_Model_Product_Price::PRICE_TYPE_FIXED) ) { return ''; } @@ -75,7 +77,9 @@ protected function _toHtml() */ public function getProductAvailability($product) { - if ($product instanceof Mage_Catalog_Model_Product && $product->isAvailable()) { + if ($product instanceof Mage_Catalog_Model_Product + && $product->isAvailable() + ) { return self::PRODUCT_IN_STOCK; } else { return self::PRODUCT_OUT_OF_STOCK; @@ -84,8 +88,8 @@ public function getProductAvailability($product) /** * Return array of categories for the product. - * The items in the array are strings combined of the complete category path to - * the products own category. + * The items in the array are strings combined of the complete category + * path to the products own category. * * Structure: * array ( diff --git a/app/code/community/Nosto/Tagging/Helper/Account.php b/app/code/community/Nosto/Tagging/Helper/Account.php index e3724381..fbf6a65d 100644 --- a/app/code/community/Nosto/Tagging/Helper/Account.php +++ b/app/code/community/Nosto/Tagging/Helper/Account.php @@ -20,6 +20,7 @@ * * @category Nosto * @package Nosto_Tagging + * @author Nosto Solutions Ltd * @copyright Copyright (c) 2013-2015 Nosto Solutions Ltd (http://www.nosto.com) * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ @@ -28,7 +29,8 @@ /** * Helper class for managing Nosto accounts. - * Includes methods for saving, removing and finding accounts for a specific store. + * Includes methods for saving, removing and finding accounts for a specific + * store. * * @category Nosto * @package Nosto_Tagging @@ -50,7 +52,7 @@ class Nosto_Tagging_Helper_Account extends Mage_Core_Helper_Abstract * Saves the account and the associated api tokens for the store view scope. * * @param NostoAccount $account the account to save. - * @param Mage_Core_Model_Store|null $store the store view to save it for (defaults to current). + * @param Mage_Core_Model_Store|null $store the store view to save it for. * * @return bool true on success, false otherwise. */ @@ -64,12 +66,17 @@ public function save(NostoAccount $account, Mage_Core_Model_Store $store = null) } /** @var Mage_Core_Model_Config $config */ $config = Mage::getModel('core/config'); - $config->saveConfig(self::XML_PATH_ACCOUNT, $account->name, 'stores', $store->getId()); + $config->saveConfig( + self::XML_PATH_ACCOUNT, $account->name, 'stores', $store->getId() + ); $tokens = array(); foreach ($account->tokens as $token) { $tokens[$token->name] = $token->value; } - $config->saveConfig(self::XML_PATH_TOKENS, json_encode($tokens), 'stores', $store->getId()); + $config->saveConfig( + self::XML_PATH_TOKENS, json_encode($tokens), 'stores', + $store->getId() + ); Mage::app()->getCacheInstance()->cleanType('config'); return true; } @@ -77,7 +84,7 @@ public function save(NostoAccount $account, Mage_Core_Model_Store $store = null) /** * Removes an account with associated api tokens for the store view scope. * - * @param Mage_Core_Model_Store|null $store the store view to remove it for (defaults to current). + * @param Mage_Core_Model_Store|null $store the store view to remove it for. * * @return bool true on success, false otherwise. */ @@ -91,8 +98,12 @@ public function remove(Mage_Core_Model_Store $store = null) } /** @var Mage_Core_Model_Config $config */ $config = Mage::getModel('core/config'); - $config->saveConfig(self::XML_PATH_ACCOUNT, null, 'stores', $store->getId()); - $config->saveConfig(self::XML_PATH_TOKENS, null, 'stores', $store->getId()); + $config->saveConfig( + self::XML_PATH_ACCOUNT, null, 'stores', $store->getId() + ); + $config->saveConfig( + self::XML_PATH_TOKENS, null, 'stores', $store->getId() + ); Mage::app()->getCacheInstance()->cleanType('config'); return true; } @@ -100,7 +111,7 @@ public function remove(Mage_Core_Model_Store $store = null) /** * Returns the account with associated api tokens for the store view scope. * - * @param Mage_Core_Model_Store|null $store the store view to find the account for (defaults to current). + * @param Mage_Core_Model_Store|null $store the account store view. * * @return NostoAccount|null the account or null if not found. */ @@ -113,7 +124,9 @@ public function find(Mage_Core_Model_Store $store = null) if (!empty($accountName)) { $account = new NostoAccount(); $account->name = $accountName; - $tokens = json_decode($store->getConfig(self::XML_PATH_TOKENS), true); + $tokens = json_decode( + $store->getConfig(self::XML_PATH_TOKENS), true + ); if (is_array($tokens) && !empty($tokens)) { foreach ($tokens as $name => $value) { $token = new NostoApiToken(); @@ -128,12 +141,12 @@ public function find(Mage_Core_Model_Store $store = null) } /** - * Checks that an account exists for the given store and that it is connected to - * nosto. + * Checks that an account exists for the given store and that it is + * connected to nosto. * - * @param Mage_Core_Model_Store $store the store to check the account for (defaults to current active store). + * @param Mage_Core_Model_Store $store the store to check the account for. * - * @return bool true if the account exists and is connected, false otherwise. + * @return bool true if exists and is connected, false otherwise. */ public function existsAndIsConnected(Mage_Core_Model_Store $store = null) { @@ -142,8 +155,8 @@ public function existsAndIsConnected(Mage_Core_Model_Store $store = null) } /** - * Returns the meta data model needed for creating a new nosto account using the - * Nosto SDk. + * Returns the meta data model needed for creating a new nosto account + * using the Nosto SDk. * * @return Nosto_Tagging_Model_Meta_Account the meta data instance. */ diff --git a/app/code/community/Nosto/Tagging/Helper/Customer.php b/app/code/community/Nosto/Tagging/Helper/Customer.php index ffddfadd..b40fa2c3 100644 --- a/app/code/community/Nosto/Tagging/Helper/Customer.php +++ b/app/code/community/Nosto/Tagging/Helper/Customer.php @@ -20,6 +20,7 @@ * * @category Nosto * @package Nosto_Tagging + * @author Nosto Solutions Ltd * @copyright Copyright (c) 2013-2015 Nosto Solutions Ltd (http://www.nosto.com) * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ @@ -40,7 +41,8 @@ class Nosto_Tagging_Helper_Customer extends Mage_Core_Helper_Abstract /** * Gets the Nosto ID for an order model. - * The Nosto ID represents the customer who placed to the order on Nosto's side. + * The Nosto ID represents the customer who placed to the order on Nosto's + * side. * * @param Mage_Sales_Model_Order $order the order to get the Nosto ID for. * @@ -56,7 +58,8 @@ public function getNostoId(Mage_Sales_Model_Order $order) /** * Update the Nosto ID form the current quote if it exists. - * The Nosto ID is present in a cookie set by the JavaScript loaded from Nosto. + * The Nosto ID is present in a cookie set by the JavaScript loaded from + * Nosto. */ public function updateNostoId() { @@ -64,7 +67,9 @@ public function updateNostoId() $cart = Mage::getModel('checkout/cart'); /** @var Mage_Core_Model_Cookie $cookie */ $cookie = Mage::getModel('core/cookie'); - $quoteId = ($cart->getQuote() !== null) ? $cart->getQuote()->getId() : false; + $quoteId = ($cart->getQuote() !== null) + ? $cart->getQuote()->getId() + : false; $nostoId = $cookie->get(self::COOKIE_NAME); if (!empty($quoteId) && !empty($nostoId)) { /** @var Nosto_Tagging_Model_Customer $customer */ diff --git a/app/code/community/Nosto/Tagging/Helper/Data.php b/app/code/community/Nosto/Tagging/Helper/Data.php index aaea5807..3a94356b 100644 --- a/app/code/community/Nosto/Tagging/Helper/Data.php +++ b/app/code/community/Nosto/Tagging/Helper/Data.php @@ -20,6 +20,7 @@ * * @category Nosto * @package Nosto_Tagging + * @author Nosto Solutions Ltd * @copyright Copyright (c) 2013-2015 Nosto Solutions Ltd (http://www.nosto.com) * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ @@ -80,8 +81,8 @@ public function getFormattedDate($date) /** * Returns a unique ID that identifies this Magento installation. - * This ID is sent to the Nosto account config iframe and used to link all Nosto - * accounts used on this installation. + * This ID is sent to the Nosto account config iframe and used to link all + * Nosto accounts used on this installation. * * @return string the ID. */ @@ -93,7 +94,9 @@ public function getInstallationId() $installationId = bin2hex(NostoCryptRandom::getRandomString(32)); /** @var Mage_Core_Model_Config $config */ $config = Mage::getModel('core/config'); - $config->saveConfig(self::XML_PATH_INSTALLATION_ID, $installationId, 'default', 0); + $config->saveConfig( + self::XML_PATH_INSTALLATION_ID, $installationId, 'default', 0 + ); Mage::app()->getCacheInstance()->cleanType('config'); } return $installationId; diff --git a/app/code/community/Nosto/Tagging/Helper/Date.php b/app/code/community/Nosto/Tagging/Helper/Date.php index d0087788..69cb2119 100644 --- a/app/code/community/Nosto/Tagging/Helper/Date.php +++ b/app/code/community/Nosto/Tagging/Helper/Date.php @@ -20,6 +20,7 @@ * * @category Nosto * @package Nosto_Tagging + * @author Nosto Solutions Ltd * @copyright Copyright (c) 2013-2015 Nosto Solutions Ltd (http://www.nosto.com) * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ diff --git a/app/code/community/Nosto/Tagging/Helper/Oauth.php b/app/code/community/Nosto/Tagging/Helper/Oauth.php index da42154e..43f9242c 100644 --- a/app/code/community/Nosto/Tagging/Helper/Oauth.php +++ b/app/code/community/Nosto/Tagging/Helper/Oauth.php @@ -20,6 +20,7 @@ * * @category Nosto * @package Nosto_Tagging + * @author Nosto Solutions Ltd * @copyright Copyright (c) 2013-2015 Nosto Solutions Ltd (http://www.nosto.com) * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ @@ -36,8 +37,8 @@ class Nosto_Tagging_Helper_Oauth extends Mage_Core_Helper_Abstract { /** - * Returns the meta data model needed for using the OAuth2 client included in - * the Nosto SDk. + * Returns the meta data model needed for using the OAuth2 client included + * in the Nosto SDk. * * @return Nosto_Tagging_Model_Meta_Oauth the meta data instance. */ diff --git a/app/code/community/Nosto/Tagging/Helper/Price.php b/app/code/community/Nosto/Tagging/Helper/Price.php index 4e5fbffc..223b26f6 100644 --- a/app/code/community/Nosto/Tagging/Helper/Price.php +++ b/app/code/community/Nosto/Tagging/Helper/Price.php @@ -20,6 +20,7 @@ * * @category Nosto * @package Nosto_Tagging + * @author Nosto Solutions Ltd * @copyright Copyright (c) 2013-2015 Nosto Solutions Ltd (http://www.nosto.com) * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ @@ -72,8 +73,8 @@ public function getProductFinalPrice($product) /** * Get unit/final price for a product model. * - * @param Mage_Catalog_Model_Product $product the product model. - * @param bool $finalPrice if the final price should be returned. + * @param Mage_Catalog_Model_Product $product the product model. + * @param bool $finalPrice if final price. * * @return float */ @@ -84,7 +85,8 @@ protected function _getProductPrice($product, $finalPrice = false) switch ($product->getTypeId()) { case Mage_Catalog_Model_Product_Type::TYPE_BUNDLE: // Get the bundle product "from" price. - $price = $product->getPriceModel()->getTotalPrices($product, 'min', true); + $price = $product->getPriceModel() + ->getTotalPrices($product, 'min', true); break; case Mage_Catalog_Model_Product_Type::TYPE_GROUPED: @@ -92,7 +94,10 @@ protected function _getProductPrice($product, $finalPrice = false) /** @var $tmpProduct Mage_Catalog_Model_Product */ $tmpProduct = Mage::getModel('catalog/product') ->getCollection() - ->addAttributeToSelect(Mage::getSingleton('catalog/config')->getProductAttributes()) + ->addAttributeToSelect( + Mage::getSingleton('catalog/config') + ->getProductAttributes() + ) ->addAttributeToFilter('entity_id', $product->getId()) ->setPage(1, 1) ->addMinimalPrice() diff --git a/app/code/community/Nosto/Tagging/Helper/Url.php b/app/code/community/Nosto/Tagging/Helper/Url.php index 56ea3284..b55b96a0 100644 --- a/app/code/community/Nosto/Tagging/Helper/Url.php +++ b/app/code/community/Nosto/Tagging/Helper/Url.php @@ -20,13 +20,15 @@ * * @category Nosto * @package Nosto_Tagging + * @author Nosto Solutions Ltd * @copyright Copyright (c) 2013-2015 Nosto Solutions Ltd (http://www.nosto.com) * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ /** * Helper class for building urls. - * Includes getters for all preview urls for the Nosto account configuration iframe. + * Includes getters for all preview urls for the Nosto account configuration + * iframe. * * @category Nosto * @package Nosto_Tagging @@ -47,15 +49,26 @@ public function getPreviewUrlProduct() ->getCollection() ->addStoreFilter(Mage::app()->getStore()->getId()) ->addAttributeToSelect('*') - ->addAttributeToFilter('status', array('eq' => Mage_Catalog_Model_Product_Status::STATUS_ENABLED)) - ->addFieldToFilter('visibility', Mage_Catalog_Model_Product_Visibility::VISIBILITY_BOTH) + ->addAttributeToFilter( + 'status', array( + 'eq' => Mage_Catalog_Model_Product_Status::STATUS_ENABLED + ) + ) + ->addFieldToFilter( + 'visibility', + Mage_Catalog_Model_Product_Visibility::VISIBILITY_BOTH + ) ->setPageSize(1) ->setCurPage(1); foreach ($collection as $product) { /** @var Mage_Catalog_Model_Product $product */ $url = $product->getProductUrl(); - $url = NostoHttpRequest::replaceQueryParamInUrl('___store', Mage::app()->getStore()->getCode(), $url); - return NostoHttpRequest::replaceQueryParamInUrl('nostodebug', 'true', $url); + $url = NostoHttpRequest::replaceQueryParamInUrl( + '___store', Mage::app()->getStore()->getCode(), $url + ); + return NostoHttpRequest::replaceQueryParamInUrl( + 'nostodebug', 'true', $url + ); } return ''; } @@ -80,8 +93,12 @@ public function getPreviewUrlCategory() foreach ($collection as $category) { /** @var Mage_Catalog_Model_Category $category */ $url = $category->getUrl(); - $url = NostoHttpRequest::replaceQueryParamInUrl('___store', Mage::app()->getStore()->getCode(), $url); - return NostoHttpRequest::replaceQueryParamInUrl('nostodebug', 'true', $url); + $url = NostoHttpRequest::replaceQueryParamInUrl( + '___store', Mage::app()->getStore()->getCode(), $url + ); + return NostoHttpRequest::replaceQueryParamInUrl( + 'nostodebug', 'true', $url + ); } return ''; } @@ -95,9 +112,16 @@ public function getPreviewUrlCategory() */ public function getPreviewUrlSearch() { - $url = Mage::getUrl('catalogsearch/result', array('_store' => Mage::app()->getStore()->getId(), '_store_to_url' => true)); + $url = Mage::getUrl( + 'catalogsearch/result', array( + '_store' => Mage::app()->getStore()->getId(), + '_store_to_url' => true + ) + ); $url = NostoHttpRequest::replaceQueryParamInUrl('q', 'nosto', $url); - return NostoHttpRequest::replaceQueryParamInUrl('nostodebug', 'true', $url); + return NostoHttpRequest::replaceQueryParamInUrl( + 'nostodebug', 'true', $url + ); } /** @@ -108,8 +132,15 @@ public function getPreviewUrlSearch() */ public function getPreviewUrlCart() { - $url = Mage::getUrl('checkout/cart', array('_store' => Mage::app()->getStore()->getId(), '_store_to_url' => true)); - return NostoHttpRequest::replaceQueryParamInUrl('nostodebug', 'true', $url); + $url = Mage::getUrl( + 'checkout/cart', array( + '_store' => Mage::app()->getStore()->getId(), + '_store_to_url' => true + ) + ); + return NostoHttpRequest::replaceQueryParamInUrl( + 'nostodebug', 'true', $url + ); } /** @@ -120,7 +151,14 @@ public function getPreviewUrlCart() */ public function getPreviewUrlFront() { - $url = Mage::getUrl('', array('_store' => Mage::app()->getStore()->getId(), '_store_to_url' => true)); - return NostoHttpRequest::replaceQueryParamInUrl('nostodebug', 'true', $url); + $url = Mage::getUrl( + '', array( + '_store' => Mage::app()->getStore()->getId(), + '_store_to_url' => true + ) + ); + return NostoHttpRequest::replaceQueryParamInUrl( + 'nostodebug', 'true', $url + ); } } diff --git a/app/code/community/Nosto/Tagging/Model/Customer.php b/app/code/community/Nosto/Tagging/Model/Customer.php index 326703c5..d803a8ba 100644 --- a/app/code/community/Nosto/Tagging/Model/Customer.php +++ b/app/code/community/Nosto/Tagging/Model/Customer.php @@ -20,6 +20,7 @@ * * @category Nosto * @package Nosto_Tagging + * @author Nosto Solutions Ltd * @copyright Copyright (c) 2013-2015 Nosto Solutions Ltd (http://www.nosto.com) * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ @@ -44,9 +45,7 @@ class Nosto_Tagging_Model_Customer extends Mage_Core_Model_Abstract { /** - * Internal Magento constructor. - * - * @return void + * @inheritdoc */ protected function _construct() { diff --git a/app/code/community/Nosto/Tagging/Model/Meta/Account.php b/app/code/community/Nosto/Tagging/Model/Meta/Account.php index eef7634d..5696ddd3 100644 --- a/app/code/community/Nosto/Tagging/Model/Meta/Account.php +++ b/app/code/community/Nosto/Tagging/Model/Meta/Account.php @@ -20,6 +20,7 @@ * * @category Nosto * @package Nosto_Tagging + * @author Nosto Solutions Ltd * @copyright Copyright (c) 2013-2015 Nosto Solutions Ltd (http://www.nosto.com) * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ @@ -37,47 +38,47 @@ class Nosto_Tagging_Model_Meta_Account extends Mage_Core_Model_Abstract implemen /** * @var string the store name. */ - protected $title; + protected $_title; /** * @var string the account name. */ - protected $name; + protected $_name; /** * @var string the store front end url. */ - protected $frontPageUrl; + protected $_frontPageUrl; /** * @var string the store currency ISO (ISO 4217) code. */ - protected $currencyCode; + protected $_currencyCode; /** * @var string the store language ISO (ISO 639-1) code. */ - protected $languageCode; + protected $_languageCode; /** * @var string the owner language ISO (ISO 639-1) code. */ - protected $ownerLanguageCode; + protected $_ownerLanguageCode; /** - * @var Nosto_Tagging_Model_Meta_Account_Owner the account owner meta data model. + * @var Nosto_Tagging_Model_Meta_Account_Owner the account owner meta model. */ - protected $owner; + protected $_owner; /** - * @var Nosto_Tagging_Model_Meta_Account_Billing the account billing details meta data model. + * @var Nosto_Tagging_Model_Meta_Account_Billing the billing meta model. */ - protected $billing; + protected $_billing; /** * @var string the API token used to identify an account creation. */ - protected $signUpApiToken = 'YBDKYwSqTCzSsU8Bwbg4im2pkHMcgTy9cCX7vevjJwON1UISJIwXOLMM0a8nZY7h'; + protected $_signUpApiToken = 'YBDKYwSqTCzSsU8Bwbg4im2pkHMcgTy9cCX7vevjJwON1UISJIwXOLMM0a8nZY7h'; /** * Constructor. @@ -87,28 +88,30 @@ public function __construct() parent::__construct(); $store = Mage::app()->getStore(); - $this->title = $store->getWebsite()->getName() + $this->_title = $store->getWebsite()->getName() . ' - ' . $store->getGroup()->getName() . ' - ' . $store->getName(); - $this->name = substr(sha1(rand()), 0, 8); - $this->frontPageUrl = NostoHttpRequest::replaceQueryParamInUrl( + $this->_name = substr(sha1(rand()), 0, 8); + $this->_frontPageUrl = NostoHttpRequest::replaceQueryParamInUrl( '___store', $store->getCode(), $store->getBaseUrl(Mage_Core_Model_Store::URL_TYPE_WEB) ); - $this->currencyCode = $store->getBaseCurrencyCode(); - $this->languageCode = substr($store->getConfig('general/locale/code'), 0, 2); - $this->ownerLanguageCode = substr(Mage::app()->getLocale()->getLocaleCode(), 0, 2); - $this->owner = new Nosto_Tagging_Model_Meta_Account_Owner(); - $this->billing = new Nosto_Tagging_Model_Meta_Account_Billing(); + $this->_currencyCode = $store->getBaseCurrencyCode(); + $this->_languageCode = substr( + $store->getConfig('general/locale/code'), 0, 2 + ); + $this->_ownerLanguageCode = substr( + Mage::app()->getLocale()->getLocaleCode(), 0, 2 + ); + $this->_owner = new Nosto_Tagging_Model_Meta_Account_Owner(); + $this->_billing = new Nosto_Tagging_Model_Meta_Account_Billing(); } /** - * Internal Magento constructor. - * - * @return void + * @inheritdoc */ protected function _construct() { @@ -122,7 +125,7 @@ protected function _construct() */ public function setTitle($title) { - $this->title = $title; + $this->_title = $title; } /** @@ -132,7 +135,7 @@ public function setTitle($title) */ public function getTitle() { - return $this->title; + return $this->_title; } /** @@ -142,7 +145,7 @@ public function getTitle() */ public function setName($name) { - $this->name = $name; + $this->_name = $name; } /** @@ -154,7 +157,7 @@ public function setName($name) */ public function getName() { - return $this->name; + return $this->_name; } /** @@ -175,18 +178,18 @@ public function getPlatform() */ public function setFrontPageUrl($url) { - $this->frontPageUrl = $url; + $this->_frontPageUrl = $url; } /** - * Absolute url to the front page of the shop for which the account is created - * for. + * Absolute url to the front page of the shop for which the account is + * created for. * * @return string the url. */ public function getFrontPageUrl() { - return $this->frontPageUrl; + return $this->_frontPageUrl; } /** @@ -196,18 +199,18 @@ public function getFrontPageUrl() */ public function setCurrencyCode($code) { - $this->currencyCode = $code; + $this->_currencyCode = $code; } /** - * The 3-letter ISO code (ISO 4217) for the currency used by the shop for which - * the account is created for. + * The 3-letter ISO code (ISO 4217) for the currency used by the shop for + * which the account is created for. * * @return string the currency ISO code. */ public function getCurrencyCode() { - return $this->currencyCode; + return $this->_currencyCode; } /** @@ -217,18 +220,18 @@ public function getCurrencyCode() */ public function setLanguageCode($languageCode) { - $this->languageCode = $languageCode; + $this->_languageCode = $languageCode; } /** - * The 2-letter ISO code (ISO 639-1) for the language used by the shop for which - * the account is created for. + * The 2-letter ISO code (ISO 639-1) for the language used by the shop for + * which the account is created for. * * @return string the language ISO code. */ public function getLanguageCode() { - return $this->languageCode; + return $this->_languageCode; } /** @@ -238,18 +241,18 @@ public function getLanguageCode() */ public function setOwnerLanguageCode($languageCode) { - $this->ownerLanguageCode = $languageCode; + $this->_ownerLanguageCode = $languageCode; } /** - * The 2-letter ISO code (ISO 639-1) for the language of the account owner who - * is creating the account. + * The 2-letter ISO code (ISO 639-1) for the language of the account owner + * who is creating the account. * * @return string the language ISO code. */ public function getOwnerLanguageCode() { - return $this->ownerLanguageCode; + return $this->_ownerLanguageCode; } /** @@ -259,7 +262,7 @@ public function getOwnerLanguageCode() */ public function getOwner() { - return $this->owner; + return $this->_owner; } /** @@ -269,7 +272,7 @@ public function getOwner() */ public function getBillingDetails() { - return $this->billing; + return $this->_billing; } /** @@ -280,6 +283,6 @@ public function getBillingDetails() */ public function getSignUpApiToken() { - return $this->signUpApiToken; + return $this->_signUpApiToken; } } diff --git a/app/code/community/Nosto/Tagging/Model/Meta/Account/Billing.php b/app/code/community/Nosto/Tagging/Model/Meta/Account/Billing.php index 1f6bf6a2..62fadf26 100644 --- a/app/code/community/Nosto/Tagging/Model/Meta/Account/Billing.php +++ b/app/code/community/Nosto/Tagging/Model/Meta/Account/Billing.php @@ -20,6 +20,7 @@ * * @category Nosto * @package Nosto_Tagging + * @author Nosto Solutions Ltd * @copyright Copyright (c) 2013-2015 Nosto Solutions Ltd (http://www.nosto.com) * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ @@ -35,9 +36,9 @@ class Nosto_Tagging_Model_Meta_Account_Billing extends Mage_Core_Model_Abstract implements NostoAccountMetaDataBillingDetailsInterface { /** - * @var string country ISO (ISO 3166-1 alpha-2) code for account billing details. + * @var string country ISO (ISO 3166-1 alpha-2) code for billing details. */ - protected $country; + protected $_country; /** * Constructor. @@ -47,13 +48,12 @@ public function __construct() { parent::__construct(); - $this->country = Mage::app()->getStore()->getConfig('general/country/default'); + $this->_country = Mage::app()->getStore() + ->getConfig('general/country/default'); } /** - * Internal Magento constructor. - * - * @return void + * @inheritdoc */ protected function _construct() { @@ -67,16 +67,16 @@ protected function _construct() */ public function setCountry($country) { - $this->country = $country; + $this->_country = $country; } /** - * The 2-letter ISO code (ISO 3166-1 alpha-2) for country in billing details. + * The 2-letter ISO code (ISO 3166-1 alpha-2) for billing details country. * * @return string the country ISO code. */ public function getCountry() { - return $this->country; + return $this->_country; } } diff --git a/app/code/community/Nosto/Tagging/Model/Meta/Account/Iframe.php b/app/code/community/Nosto/Tagging/Model/Meta/Account/Iframe.php index 883e26de..49288892 100644 --- a/app/code/community/Nosto/Tagging/Model/Meta/Account/Iframe.php +++ b/app/code/community/Nosto/Tagging/Model/Meta/Account/Iframe.php @@ -20,6 +20,7 @@ * * @category Nosto * @package Nosto_Tagging + * @author Nosto Solutions Ltd * @copyright Copyright (c) 2013-2015 Nosto Solutions Ltd (http://www.nosto.com) * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ @@ -37,62 +38,62 @@ class Nosto_Tagging_Model_Meta_Account_Iframe extends Mage_Core_Model_Abstract i /** * @var string the name of the platform the iframe is used on. */ - protected $platform = 'magento'; + protected $_platform = 'magento'; /** * @var string the admin user first name. */ - protected $firstName; + protected $_firstName; /** * @var string the admin user last name. */ - protected $lastName; + protected $_lastName; /** * @var string the admin user email address. */ - protected $email; + protected $_email; /** - * @var string the language ISO (ISO 639-1) code for localization on oauth2 server. + * @var string the language ISO (ISO 639-1) code for oauth server locale. */ - protected $languageIsoCode; + protected $_languageIsoCode; /** * @var string the language ISO (ISO 639-1) for the store view scope. */ - protected $languageIsoCodeShop; + protected $_languageIsoCodeShop; /** * @var string unique ID that identifies the Magento installation. */ - protected $uniqueId; + protected $_uniqueId; /** - * @var string preview url for the product page in the active store view scope. + * @var string preview url for the product page in the active store scope. */ - protected $previewUrlProduct; + protected $_previewUrlProduct; /** - * @var string preview url for the category page in the active store view scope. + * @var string preview url for the category page in the active store scope. */ - protected $previewUrlCategory; + protected $_previewUrlCategory; /** - * @var string preview url for the search page in the active store view scope. + * @var string preview url for the search page in the active store scope. */ - protected $previewUrlSearch; + protected $_previewUrlSearch; /** - * @var string preview url for the cart page in the active store view scope. + * @var string preview url for the cart page in the active store scope. */ - protected $previewUrlCart; + protected $_previewUrlCart; /** - * @var string preview url for the front page in the active store view scope. + * @var string preview url for the front page in the active store scope. */ - protected $previewUrlFront; + protected $_previewUrlFront; /** * Constructor. @@ -109,23 +110,25 @@ public function __construct() /** @var Nosto_Tagging_Helper_Data $dataHelper */ $dataHelper = Mage::helper('nosto_tagging/data'); - $this->firstName = $user->getFirstname(); - $this->lastName = $user->getLastname(); - $this->email = $user->getEmail(); - $this->languageIsoCode = substr(Mage::app()->getLocale()->getLocaleCode(), 0, 2); - $this->languageIsoCodeShop = substr(Mage::app()->getStore()->getConfig('general/locale/code'), 0, 2); - $this->uniqueId = $dataHelper->getInstallationId(); - $this->previewUrlProduct = $urlHelper->getPreviewUrlProduct(); - $this->previewUrlCategory = $urlHelper->getPreviewUrlCategory(); - $this->previewUrlSearch = $urlHelper->getPreviewUrlSearch(); - $this->previewUrlCart = $urlHelper->getPreviewUrlCart(); - $this->previewUrlFront = $urlHelper->getPreviewUrlFront(); + $this->_firstName = $user->getFirstname(); + $this->_lastName = $user->getLastname(); + $this->_email = $user->getEmail(); + $this->_languageIsoCode = substr( + Mage::app()->getLocale()->getLocaleCode(), 0, 2 + ); + $this->_languageIsoCodeShop = substr( + Mage::app()->getStore()->getConfig('general/locale/code'), 0, 2 + ); + $this->_uniqueId = $dataHelper->getInstallationId(); + $this->_previewUrlProduct = $urlHelper->getPreviewUrlProduct(); + $this->_previewUrlCategory = $urlHelper->getPreviewUrlCategory(); + $this->_previewUrlSearch = $urlHelper->getPreviewUrlSearch(); + $this->_previewUrlCart = $urlHelper->getPreviewUrlCart(); + $this->_previewUrlFront = $urlHelper->getPreviewUrlFront(); } /** - * Internal Magento constructor. - * - * @return void + * @inheritdoc */ protected function _construct() { @@ -140,7 +143,7 @@ protected function _construct() */ public function getPlatform() { - return $this->platform; + return $this->_platform; } /** @@ -150,7 +153,7 @@ public function getPlatform() */ public function setFirstName($firstName) { - $this->firstName = $firstName; + $this->_firstName = $firstName; } /** @@ -160,7 +163,7 @@ public function setFirstName($firstName) */ public function getFirstName() { - return $this->firstName; + return $this->_firstName; } /** @@ -170,7 +173,7 @@ public function getFirstName() */ public function setLastName($lastName) { - $this->lastName = $lastName; + $this->_lastName = $lastName; } /** @@ -180,7 +183,7 @@ public function setLastName($lastName) */ public function getLastName() { - return $this->lastName; + return $this->_lastName; } /** @@ -190,7 +193,7 @@ public function getLastName() */ public function setEmail($email) { - $this->email = $email; + $this->_email = $email; } /** @@ -200,7 +203,7 @@ public function setEmail($email) */ public function getEmail() { - return $this->email; + return $this->_email; } /** @@ -210,45 +213,46 @@ public function getEmail() */ public function setLanguageIsoCode($code) { - $this->languageIsoCode = $code; + $this->_languageIsoCode = $code; } /** - * The 2-letter ISO code (ISO 639-1) for the language of the user who is loading - * the config iframe. + * The 2-letter ISO code (ISO 639-1) for the language of the user who is + * loading the config iframe. * * @return string the language ISO code. */ public function getLanguageIsoCode() { - return $this->languageIsoCode; + return $this->_languageIsoCode; } /** - * The 2-letter ISO code (ISO 639-1) for the language of the shop the account - * belongs to. + * The 2-letter ISO code (ISO 639-1) for the language of the shop the + * account belongs to. * * @return string the language ISO code. */ public function getLanguageIsoCodeShop() { - return $this->languageIsoCodeShop; + return $this->_languageIsoCodeShop; } /** * Unique identifier for the e-commerce installation. - * This identifier is used to link accounts together that are created on the - * same installation. + * This identifier is used to link accounts together that are created on + * the same installation. * * @return string the identifier. */ public function getUniqueId() { - return $this->uniqueId; + return $this->_uniqueId; } /** - * The version number of the platform the e-commerce installation is running on. + * The version number of the platform the e-commerce installation is + * running on. * * @return string the platform version. */ @@ -258,84 +262,85 @@ public function getVersionPlatform() } /** - * The version number of the Nosto module/extension running on the e-commerce - * installation. + * The version number of the Nosto module/extension running on the + * e-commerce installation. * * @return string the module version. */ public function getVersionModule() { // Path is hard-coded to be like in "etc/config.xml". - return (string)Mage::getConfig()->getNode('modules/Nosto_Tagging/version'); + return (string)Mage::getConfig() + ->getNode('modules/Nosto_Tagging/version'); } /** - * An absolute URL for any product page in the shop the account is linked to, - * with the nostodebug GET parameter enabled. + * An absolute URL for any product page in the shop the account is linked + * to, with the nostodebug GET parameter enabled. * e.g. http://myshop.com/products/product123?nostodebug=true - * This is used in the config iframe to allow the user to quickly preview the - * recommendations on the given page. + * This is used in the config iframe to allow the user to quickly preview + * the recommendations on the given page. * * @return string the url. */ public function getPreviewUrlProduct() { - return $this->previewUrlProduct; + return $this->_previewUrlProduct; } /** - * An absolute URL for any category page in the shop the account is linked to, - * with the nostodebug GET parameter enabled. + * An absolute URL for any category page in the shop the account is linked + * to, with the nostodebug GET parameter enabled. * e.g. http://myshop.com/products/category123?nostodebug=true - * This is used in the config iframe to allow the user to quickly preview the - * recommendations on the given page. + * This is used in the config iframe to allow the user to quickly preview + * the recommendations on the given page. * * @return string the url. */ public function getPreviewUrlCategory() { - return $this->previewUrlCategory; + return $this->_previewUrlCategory; } /** - * An absolute URL for the search page in the shop the account is linked to, - * with the nostodebug GET parameter enabled. + * An absolute URL for the search page in the shop the account is linked + * to, with the nostodebug GET parameter enabled. * e.g. http://myshop.com/search?query=red?nostodebug=true - * This is used in the config iframe to allow the user to quickly preview the - * recommendations on the given page. + * This is used in the config iframe to allow the user to quickly preview + * the recommendations on the given page. * * @return string the url. */ public function getPreviewUrlSearch() { - return $this->previewUrlSearch; + return $this->_previewUrlSearch; } /** - * An absolute URL for the shopping cart page in the shop the account is linked - * to, with the nostodebug GET parameter enabled. + * An absolute URL for the shopping cart page in the shop the account is + * linked to, with the nostodebug GET parameter enabled. * e.g. http://myshop.com/cart?nostodebug=true - * This is used in the config iframe to allow the user to quickly preview the - * recommendations on the given page. + * This is used in the config iframe to allow the user to quickly preview + * the recommendations on the given page. * * @return string the url. */ public function getPreviewUrlCart() { - return $this->previewUrlCart; + return $this->_previewUrlCart; } /** - * An absolute URL for the front page in the shop the account is linked to, with - * the nostodebug GET parameter enabled. + * An absolute URL for the front page in the shop the account is linked to, + * with the nostodebug GET parameter enabled. * e.g. http://myshop.com?nostodebug=true - * This is used in the config iframe to allow the user to quickly preview the - * recommendations on the given page. + * This is used in the config iframe to allow the user to quickly preview + * the recommendations on the given page. * * @return string the url. */ public function getPreviewUrlFront() { - return $this->previewUrlFront; + return $this->_previewUrlFront; } } diff --git a/app/code/community/Nosto/Tagging/Model/Meta/Account/Owner.php b/app/code/community/Nosto/Tagging/Model/Meta/Account/Owner.php index 2295da9e..78e4bdc2 100644 --- a/app/code/community/Nosto/Tagging/Model/Meta/Account/Owner.php +++ b/app/code/community/Nosto/Tagging/Model/Meta/Account/Owner.php @@ -20,6 +20,7 @@ * * @category Nosto * @package Nosto_Tagging + * @author Nosto Solutions Ltd * @copyright Copyright (c) 2013-2015 Nosto Solutions Ltd (http://www.nosto.com) * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ @@ -37,17 +38,17 @@ class Nosto_Tagging_Model_Meta_Account_Owner extends Mage_Core_Model_Abstract im /** * @var string the account owner first name. */ - protected $firstName; + protected $_firstName; /** * @var string the account owner last name. */ - protected $lastName; + protected $_lastName; /** * @var string the account owner email address. */ - protected $email; + protected $_email; /** * Constructor. @@ -59,15 +60,13 @@ public function __construct() /** @var Mage_Admin_Model_User $user */ $user = Mage::getSingleton('admin/session')->getUser(); - $this->firstName = $user->getFirstname(); - $this->lastName = $user->getLastname(); - $this->email = $user->getEmail(); + $this->_firstName = $user->getFirstname(); + $this->_lastName = $user->getLastname(); + $this->_email = $user->getEmail(); } /** - * Internal Magento constructor. - * - * @return void + * @inheritdoc */ protected function _construct() { @@ -81,7 +80,7 @@ protected function _construct() */ public function setFirstName($firstName) { - $this->firstName = $firstName; + $this->_firstName = $firstName; } /** @@ -91,7 +90,7 @@ public function setFirstName($firstName) */ public function getFirstName() { - return $this->firstName; + return $this->_firstName; } /** @@ -101,7 +100,7 @@ public function getFirstName() */ public function setLastName($lastName) { - $this->lastName = $lastName; + $this->_lastName = $lastName; } /** @@ -111,7 +110,7 @@ public function setLastName($lastName) */ public function getLastName() { - return $this->lastName; + return $this->_lastName; } /** @@ -121,7 +120,7 @@ public function getLastName() */ public function setEmail($email) { - $this->email = $email; + $this->_email = $email; } /** @@ -131,6 +130,6 @@ public function setEmail($email) */ public function getEmail() { - return $this->email; + return $this->_email; } } diff --git a/app/code/community/Nosto/Tagging/Model/Meta/Oauth.php b/app/code/community/Nosto/Tagging/Model/Meta/Oauth.php index fbe7da28..a7d0156f 100644 --- a/app/code/community/Nosto/Tagging/Model/Meta/Oauth.php +++ b/app/code/community/Nosto/Tagging/Model/Meta/Oauth.php @@ -20,6 +20,7 @@ * * @category Nosto * @package Nosto_Tagging + * @author Nosto Solutions Ltd * @copyright Copyright (c) 2013-2015 Nosto Solutions Ltd (http://www.nosto.com) * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ @@ -37,12 +38,12 @@ class Nosto_Tagging_Model_Meta_Oauth extends Mage_Core_Model_Abstract implements * @var string the url where the oauth2 server should redirect after * authorization is done. */ - protected $redirectUrl; + protected $_redirectUrl; /** * @var string the language ISO code for localization on oauth2 server. */ - protected $languageIsoCode; + protected $_languageIsoCode; /** * Constructor. @@ -52,19 +53,20 @@ public function __construct() { parent::__construct(); - $this->redirectUrl = Mage::getUrl( + $this->_redirectUrl = Mage::getUrl( 'nosto/oauth', array( - '_store' => Mage::app()->getStore()->getId(), '_store_to_url' => true + '_store' => Mage::app()->getStore()->getId(), + '_store_to_url' => true ) ); - $this->languageIsoCode = substr(Mage::app()->getLocale()->getLocaleCode(), 0, 2); + $this->_languageIsoCode = substr( + Mage::app()->getLocale()->getLocaleCode(), 0, 2 + ); } /** - * Internal Magento constructor. - * - * @return void + * @inheritdoc */ protected function _construct() { @@ -95,8 +97,8 @@ public function getClientSecret() /** * The scopes for the OAuth2 request. - * These are used to request specific API tokens from Nosto and should almost - * always be the ones defined in NostoApiToken::$tokenNames. + * These are used to request specific API tokens from Nosto and should + * almost always be the ones defined in NostoApiToken::$tokenNames. * * @return array the scopes. */ @@ -107,8 +109,8 @@ public function getScopes() } /** - * The OAuth2 redirect url to where the OAuth2 server should redirect the user - * after authorizing the application to act on the users behalf. + * The OAuth2 redirect url to where the OAuth2 server should redirect the + * user after authorizing the application to act on the users behalf. * This url must by publicly accessible and the domain must match the one * defined for the Nosto account. * @@ -116,7 +118,7 @@ public function getScopes() */ public function getRedirectUrl() { - return $this->redirectUrl; + return $this->_redirectUrl; } /** @@ -126,18 +128,18 @@ public function getRedirectUrl() */ public function setRedirectUrl($url) { - $this->redirectUrl = $url; + $this->_redirectUrl = $url; } /** - * The 2-letter ISO code (ISO 639-1) for the language the OAuth2 server uses for - * UI localization. + * The 2-letter ISO code (ISO 639-1) for the language the OAuth2 server + * uses for UI localization. * * @return string the ISO code. */ public function getLanguageIsoCode() { - return $this->languageIsoCode; + return $this->_languageIsoCode; } /** @@ -147,6 +149,6 @@ public function getLanguageIsoCode() */ public function setLanguageIsoCode($code) { - $this->languageIsoCode = $code; + $this->_languageIsoCode = $code; } } diff --git a/app/code/community/Nosto/Tagging/Model/Meta/Order.php b/app/code/community/Nosto/Tagging/Model/Meta/Order.php index 26f6a08b..6952dbb3 100644 --- a/app/code/community/Nosto/Tagging/Model/Meta/Order.php +++ b/app/code/community/Nosto/Tagging/Model/Meta/Order.php @@ -20,13 +20,15 @@ * * @category Nosto * @package Nosto_Tagging + * @author Nosto Solutions Ltd * @copyright Copyright (c) 2013-2015 Nosto Solutions Ltd (http://www.nosto.com) * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ /** * Meta data class which holds information about an order. - * This is used during the order confirmation API request and the order history export. + * This is used during the order confirmation API request and the order + * history export. * * @category Nosto * @package Nosto_Tagging @@ -37,34 +39,32 @@ class Nosto_Tagging_Model_Meta_Order extends Mage_Core_Model_Abstract implements /** * @var string|int the unique order number identifying the order. */ - protected $orderNumber; + protected $_orderNumber; /** * @var string the date when the order was placed. */ - protected $createdDate; + protected $_createdDate; /** * @var string the payment provider used for order. * * Formatted according to "[provider name] [provider version]". */ - protected $paymentProvider; + protected $_paymentProvider; /** - * @var Nosto_Tagging_Model_Meta_Order_Buyer The info of the user who ordered. + * @var Nosto_Tagging_Model_Meta_Order_Buyer The user info of the buyer. */ - protected $buyer; + protected $_buyer; /** - * @var Nosto_Tagging_Model_Meta_Order_Item[] the items included in the order. + * @var Nosto_Tagging_Model_Meta_Order_Item[] the items in the order. */ - protected $items = array(); + protected $_items = array(); /** - * Internal Magento constructor. - * - * @return void + * @inheritdoc */ protected function _construct() { @@ -78,7 +78,7 @@ protected function _construct() */ public function getOrderNumber() { - return $this->orderNumber; + return $this->_orderNumber; } /** @@ -88,7 +88,7 @@ public function getOrderNumber() */ public function getCreatedDate() { - return $this->createdDate; + return $this->_createdDate; } /** @@ -99,7 +99,7 @@ public function getCreatedDate() */ public function getPaymentProvider() { - return $this->paymentProvider; + return $this->_paymentProvider; } /** @@ -109,7 +109,7 @@ public function getPaymentProvider() */ public function getBuyerInfo() { - return $this->buyer; + return $this->_buyer; } /** @@ -119,7 +119,7 @@ public function getBuyerInfo() */ public function getPurchasedItems() { - return $this->items; + return $this->_items; } /** @@ -129,14 +129,14 @@ public function getPurchasedItems() */ public function loadData(Mage_Sales_Model_Order $order) { - $this->orderNumber = $order->getId(); - $this->createdDate = $order->getCreatedAt(); + $this->_orderNumber = $order->getId(); + $this->_createdDate = $order->getCreatedAt(); $method = $order->getPayment()->getMethodInstance(); - $this->paymentProvider = $method->getCode(); + $this->_paymentProvider = $method->getCode(); - $this->buyer = new Nosto_Tagging_Model_Meta_Order_Buyer(); - $this->buyer->loadData($order); + $this->_buyer = new Nosto_Tagging_Model_Meta_Order_Buyer(); + $this->_buyer->loadData($order); /** @var $item Mage_Sales_Model_Order_Item */ foreach ($order->getAllVisibleItems() as $item) { @@ -150,12 +150,12 @@ public function loadData(Mage_Sales_Model_Order $order) foreach ($item->getChildrenItems() as $child) { $orderItem = new Nosto_Tagging_Model_Meta_Order_Item(); $orderItem->loadData($child); - $this->items[] = $orderItem; + $this->_items[] = $orderItem; } } else { $orderItem = new Nosto_Tagging_Model_Meta_Order_Item(); $orderItem->loadData($item); - $this->items[] = $orderItem; + $this->_items[] = $orderItem; } } @@ -166,7 +166,7 @@ public function loadData(Mage_Sales_Model_Order $order) $orderItem->setName('Discount'); $orderItem->setUnitPrice($discount); $orderItem->setCurrencyCode($order->getOrderCurrencyCode()); - $this->items[] = $orderItem; + $this->_items[] = $orderItem; } if ($shippingInclTax = $order->getShippingInclTax()) { @@ -176,7 +176,7 @@ public function loadData(Mage_Sales_Model_Order $order) $orderItem->setName('Shipping and handling'); $orderItem->setUnitPrice($shippingInclTax); $orderItem->setCurrencyCode($order->getOrderCurrencyCode()); - $this->items[] = $orderItem; + $this->_items[] = $orderItem; } } } diff --git a/app/code/community/Nosto/Tagging/Model/Meta/Order/Buyer.php b/app/code/community/Nosto/Tagging/Model/Meta/Order/Buyer.php index 07a8a480..77c15bb6 100644 --- a/app/code/community/Nosto/Tagging/Model/Meta/Order/Buyer.php +++ b/app/code/community/Nosto/Tagging/Model/Meta/Order/Buyer.php @@ -20,13 +20,15 @@ * * @category Nosto * @package Nosto_Tagging + * @author Nosto Solutions Ltd * @copyright Copyright (c) 2013-2015 Nosto Solutions Ltd (http://www.nosto.com) * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ /** * Meta data class which holds information about the buyer of an order. - * This is used during the order confirmation API request and the order history export. + * This is used during the order confirmation API request and the order history + * export. * * @category Nosto * @package Nosto_Tagging @@ -37,22 +39,20 @@ class Nosto_Tagging_Model_Meta_Order_Buyer extends Mage_Core_Model_Abstract impl /** * @var string the first name of the user who placed the order. */ - protected $firstName; + protected $_firstName; /** * @var string the last name of the user who placed the order. */ - protected $lastName; + protected $_lastName; /** * @var string the email address of the user who placed the order. */ - protected $email; + protected $_email; /** - * Internal Magento constructor. - * - * @return void + * @inheritdoc */ protected function _construct() { @@ -66,7 +66,7 @@ protected function _construct() */ public function getFirstName() { - return $this->firstName; + return $this->_firstName; } /** @@ -76,7 +76,7 @@ public function getFirstName() */ public function getLastName() { - return $this->lastName; + return $this->_lastName; } /** @@ -86,18 +86,18 @@ public function getLastName() */ public function getEmail() { - return $this->email; + return $this->_email; } /** * Loads the buyer info from a Magento order model. * - * @param Mage_Sales_Model_Order $order the order model to get the data from. + * @param Mage_Sales_Model_Order $order the order model. */ public function loadData(Mage_Sales_Model_Order $order) { - $this->firstName = $order->getCustomerFirstname(); - $this->lastName = $order->getCustomerLastname(); - $this->email = $order->getCustomerEmail(); + $this->_firstName = $order->getCustomerFirstname(); + $this->_lastName = $order->getCustomerLastname(); + $this->_email = $order->getCustomerEmail(); } } diff --git a/app/code/community/Nosto/Tagging/Model/Meta/Order/Item.php b/app/code/community/Nosto/Tagging/Model/Meta/Order/Item.php index 70b7c6c7..cefc0967 100644 --- a/app/code/community/Nosto/Tagging/Model/Meta/Order/Item.php +++ b/app/code/community/Nosto/Tagging/Model/Meta/Order/Item.php @@ -20,13 +20,15 @@ * * @category Nosto * @package Nosto_Tagging + * @author Nosto Solutions Ltd * @copyright Copyright (c) 2013-2015 Nosto Solutions Ltd (http://www.nosto.com) * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ /** * Meta data class which holds information about an item included in an order. - * This is used during the order confirmation API request and the order history export. + * This is used during the order confirmation API request and the order history + * export. * * @category Nosto * @package Nosto_Tagging @@ -38,32 +40,30 @@ class Nosto_Tagging_Model_Meta_Order_Item extends Mage_Core_Model_Abstract imple * @var string|int the unique identifier of the purchased item. * If this item is for discounts or shipping cost, the id can be 0. */ - protected $productId; + protected $_productId; /** * @var int the quantity of the item included in the order. */ - protected $quantity; + protected $_quantity; /** * @var string the name of the item included in the order. */ - protected $name; + protected $_name; /** * @var float The unit price of the item included in the order. */ - protected $unitPrice; + protected $_unitPrice; /** - * @var string the 3-letter ISO code (ISO 4217) for the currency of the item. + * @var string the 3-letter ISO code (ISO 4217) for the item currency. */ - protected $currencyCode; + protected $_currencyCode; /** - * Internal Magento constructor. - * - * @return void + * @inheritdoc */ protected function _construct() { @@ -78,7 +78,7 @@ protected function _construct() */ public function getProductId() { - return $this->productId; + return $this->_productId; } /** @@ -88,7 +88,7 @@ public function getProductId() */ public function setProductId($id) { - $this->productId = $id; + $this->_productId = $id; } /** @@ -98,7 +98,7 @@ public function setProductId($id) */ public function getQuantity() { - return $this->quantity; + return $this->_quantity; } /** @@ -108,7 +108,7 @@ public function getQuantity() */ public function setQuantity($qty) { - $this->quantity = $qty; + $this->_quantity = $qty; } /** @@ -118,7 +118,7 @@ public function setQuantity($qty) */ public function getName() { - return $this->name; + return $this->_name; } /** @@ -128,7 +128,7 @@ public function getName() */ public function setName($name) { - $this->name = $name; + $this->_name = $name; } /** @@ -138,7 +138,7 @@ public function setName($name) */ public function getUnitPrice() { - return $this->unitPrice; + return $this->_unitPrice; } /** @@ -148,17 +148,17 @@ public function getUnitPrice() */ public function setUnitPrice($price) { - $this->unitPrice = $price; + $this->_unitPrice = $price; } /** - * The 3-letter ISO code (ISO 4217) for the currency the item was purchased in. + * The 3-letter ISO code (ISO 4217) for the item currency. * * @return string the currency ISO code. */ public function getCurrencyCode() { - return $this->currencyCode; + return $this->_currencyCode; } /** @@ -168,7 +168,7 @@ public function getCurrencyCode() */ public function setCurrencyCode($code) { - $this->currencyCode = $code; + $this->_currencyCode = $code; } /** @@ -182,20 +182,20 @@ public function loadData(Mage_Sales_Model_Order_Item $item) case Mage_Catalog_Model_Product_Type::TYPE_GROUPED: $info = $item->getProductOptionByCode('info_buyRequest'); if ($info !== null && isset($info['super_product_config']['product_id'])) { - $this->productId = (int)$info['super_product_config']['product_id']; + $this->_productId = (int)$info['super_product_config']['product_id']; } else { - $this->productId = (int)$item->getProductId(); + $this->_productId = (int)$item->getProductId(); } break; default: - $this->productId = (int)$item->getProductId(); + $this->_productId = (int)$item->getProductId(); break; } - $this->quantity = (int)$item->getQtyOrdered(); - $this->name = $item->getName(); - $this->unitPrice = $item->getPriceInclTax(); - $this->currencyCode = $item->getOrder()->getOrderCurrencyCode(); + $this->_quantity = (int)$item->getQtyOrdered(); + $this->_name = $item->getName(); + $this->_unitPrice = $item->getPriceInclTax(); + $this->_currencyCode = $item->getOrder()->getOrderCurrencyCode(); } } diff --git a/app/code/community/Nosto/Tagging/Model/Meta/Product.php b/app/code/community/Nosto/Tagging/Model/Meta/Product.php index af1a39d9..fc29fe56 100644 --- a/app/code/community/Nosto/Tagging/Model/Meta/Product.php +++ b/app/code/community/Nosto/Tagging/Model/Meta/Product.php @@ -20,13 +20,15 @@ * * @category Nosto * @package Nosto_Tagging + * @author Nosto Solutions Ltd * @copyright Copyright (c) 2013-2015 Nosto Solutions Ltd (http://www.nosto.com) * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ /** * Meta data class which holds information about a product. - * This is used during the order confirmation API request and the product history export. + * This is used during the order confirmation API request and the product + * history export. * * @category Nosto * @package Nosto_Tagging @@ -47,72 +49,70 @@ class Nosto_Tagging_Model_Meta_Product extends Mage_Core_Model_Abstract implemen /** * @var string the absolute url to the product page in the shop frontend. */ - protected $url; + protected $_url; /** * @var string the product's unique identifier. */ - protected $productId; + protected $_productId; /** * @var string the name of the product. */ - protected $name; + protected $_name; /** - * @var string the absolute url the one of the product images in shop frontend. + * @var string the absolute url the one of the product images in frontend. */ - protected $imageUrl; + protected $_imageUrl; /** - * @var string the price of the product including possible discounts and taxes. + * @var string the product price including possible discounts and taxes. */ - protected $price; + protected $_price; /** - * @var string the list price of the product without discounts but incl taxes. + * @var string the product list price without discounts but incl taxes. */ - protected $listPrice; + protected $_listPrice; /** * @var string the currency code (ISO 4217) the product is sold in. */ - protected $currencyCode; + protected $_currencyCode; /** - * @var string the availability of the product, i.e. if it is in stock or not. + * @var string the availability of the product, i.e. is in stock or not. */ - protected $availability; + protected $_availability; /** * @var array the tags for the product. */ - protected $tags = array(); + protected $_tags = array(); /** * @var array the categories the product is located in. */ - protected $categories = array(); + protected $_categories = array(); /** * @var string the product description. */ - protected $description; + protected $_description; /** * @var string the product brand name. */ - protected $brand; + protected $_brand; /** * @var string the product publication date in the shop. */ - protected $datePublished; + protected $_datePublished; /** - * Internal Magento constructor. - * - * @return void + * @inheritdoc */ protected function _construct() { @@ -126,7 +126,7 @@ protected function _construct() */ public function getUrl() { - return $this->url; + return $this->_url; } /** @@ -136,7 +136,7 @@ public function getUrl() */ public function getProductId() { - return $this->productId; + return $this->_productId; } /** @@ -146,17 +146,17 @@ public function getProductId() */ public function getName() { - return $this->name; + return $this->_name; } /** - * Returns the absolute url the one of the product images in the shop frontend. + * Returns the absolute url the one of the product images in the frontend. * * @return string the url. */ public function getImageUrl() { - return $this->imageUrl; + return $this->_imageUrl; } /** @@ -166,7 +166,7 @@ public function getImageUrl() */ public function getPrice() { - return $this->price; + return $this->_price; } /** @@ -176,7 +176,7 @@ public function getPrice() */ public function getListPrice() { - return $this->listPrice; + return $this->_listPrice; } /** @@ -186,7 +186,7 @@ public function getListPrice() */ public function getCurrencyCode() { - return $this->currencyCode; + return $this->_currencyCode; } /** @@ -196,7 +196,7 @@ public function getCurrencyCode() */ public function getAvailability() { - return $this->availability; + return $this->_availability; } /** @@ -206,7 +206,7 @@ public function getAvailability() */ public function getTags() { - return $this->tags; + return $this->_tags; } /** @@ -216,7 +216,7 @@ public function getTags() */ public function getCategories() { - return $this->categories; + return $this->_categories; } /** @@ -226,7 +226,7 @@ public function getCategories() */ public function getDescription() { - return $this->description; + return $this->_description; } /** @@ -236,7 +236,7 @@ public function getDescription() */ public function getBrand() { - return $this->brand; + return $this->_brand; } /** @@ -246,7 +246,7 @@ public function getBrand() */ public function getDatePublished() { - return $this->datePublished; + return $this->_datePublished; } /** @@ -256,49 +256,50 @@ public function getDatePublished() */ public function loadData(Mage_Catalog_Model_Product $product) { - $this->url = $product->getProductUrl(); - $this->productId = $product->getId(); - $this->name = $product->getName(); + $this->_url = $product->getProductUrl(); + $this->_productId = $product->getId(); + $this->_name = $product->getName(); if ($product->getImage() == 'no_selection') { - $this->imageUrl = $product->getImageUrl(); + $this->_imageUrl = $product->getImageUrl(); } else { - $this->imageUrl = $product->getMediaConfig() + $this->_imageUrl = $product->getMediaConfig() ->getMediaUrl($product->getImage()); } - $this->price = Mage::helper('tax')->getPrice( + $this->_price = Mage::helper('tax')->getPrice( $product, Mage::helper('nosto_tagging/price')->getProductFinalPrice($product), true ); - $this->listPrice = Mage::helper('tax')->getPrice( + $this->_listPrice = Mage::helper('tax')->getPrice( $product, Mage::helper('nosto_tagging/price')->getProductPrice($product), true ); - $this->currencyCode = Mage::app()->getStore()->getCurrentCurrencyCode(); + $this->_currencyCode = Mage::app()->getStore() + ->getCurrentCurrencyCode(); if ($product instanceof Mage_Catalog_Model_Product && $product->isAvailable() ) { - $this->availability = self::PRODUCT_IN_STOCK; + $this->_availability = self::PRODUCT_IN_STOCK; } else { - $this->availability = self::PRODUCT_OUT_OF_STOCK; + $this->_availability = self::PRODUCT_OUT_OF_STOCK; } // todo: $this->tags = array(); - $this->categories = $this->getProductCategories($product); - $this->description = $product->getDescription(); - $this->brand = (string)$product->getAttributeText('manufacturer'); - $this->datePublished = $product->getCreatedAt(); + $this->_categories = $this->getProductCategories($product); + $this->_description = $product->getDescription(); + $this->_brand = (string)$product->getAttributeText('manufacturer'); + $this->_datePublished = $product->getCreatedAt(); } /** * Return array of categories for the product. - * The items in the array are strings combined of the complete category path to - * the products own category. + * The items in the array are strings combined of the complete category + * path to the products own category. * * Structure: * array ( diff --git a/app/code/community/Nosto/Tagging/Model/Observer.php b/app/code/community/Nosto/Tagging/Model/Observer.php index 09ea5c22..d9790f4a 100644 --- a/app/code/community/Nosto/Tagging/Model/Observer.php +++ b/app/code/community/Nosto/Tagging/Model/Observer.php @@ -20,6 +20,7 @@ * * @category Nosto * @package Nosto_Tagging + * @author Nosto Solutions Ltd * @copyright Copyright (c) 2013-2015 Nosto Solutions Ltd (http://www.nosto.com) * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ @@ -79,17 +80,18 @@ public function recrawlProduct(Varien_Event_Observer $observer) $product->loadData($mageProduct); // If the product does not have the store id set. if ((int)$mageProduct->getStoreId() === 0) { - // Then assume that the product has been modified for all stores. + // Assume that the product has been modified for all stores. $stores = Mage::app()->getStores(); } else { - // Otherwise only re-crawl the product for the specific store. + // Otherwise only re-crawl for the specific store. $stores = array( Mage::app()->getStore($mageProduct->getStoreId()) ); } foreach ($stores as $store) { /** @var NostoAccount $account */ - $account = Mage::helper('nosto_tagging/account')->find($store); + $account = Mage::helper('nosto_tagging/account') + ->find($store); if ($account === null || !$account->isConnectedToNosto()) { continue; } diff --git a/app/code/community/Nosto/Tagging/Model/Resource/Customer.php b/app/code/community/Nosto/Tagging/Model/Resource/Customer.php index 5b5e0eb8..aa2f534d 100644 --- a/app/code/community/Nosto/Tagging/Model/Resource/Customer.php +++ b/app/code/community/Nosto/Tagging/Model/Resource/Customer.php @@ -20,6 +20,7 @@ * * @category Nosto * @package Nosto_Tagging + * @author Nosto Solutions Ltd * @copyright Copyright (c) 2013-2015 Nosto Solutions Ltd (http://www.nosto.com) * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ @@ -35,9 +36,7 @@ class Nosto_Tagging_Model_Resource_Customer extends Mage_Core_Model_Resource_Db_Abstract { /** - * Internal Magento constructor. - * - * @return void + * @inheritdoc */ protected function _construct() { diff --git a/app/code/community/Nosto/Tagging/Model/Resource/Customer/Collection.php b/app/code/community/Nosto/Tagging/Model/Resource/Customer/Collection.php index 8cc9a6be..30c56af9 100644 --- a/app/code/community/Nosto/Tagging/Model/Resource/Customer/Collection.php +++ b/app/code/community/Nosto/Tagging/Model/Resource/Customer/Collection.php @@ -20,6 +20,7 @@ * * @category Nosto * @package Nosto_Tagging + * @author Nosto Solutions Ltd * @copyright Copyright (c) 2013-2015 Nosto Solutions Ltd (http://www.nosto.com) * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ @@ -35,9 +36,7 @@ class Nosto_Tagging_Model_Resource_Customer_Collection extends Mage_Core_Model_Resource_Db_Collection_Abstract { /** - * Internal Magento constructor. - * - * @return void + * @inheritdoc */ protected function _construct() { diff --git a/app/code/community/Nosto/Tagging/Model/Resource/Setup.php b/app/code/community/Nosto/Tagging/Model/Resource/Setup.php index f8615422..62a24bdb 100644 --- a/app/code/community/Nosto/Tagging/Model/Resource/Setup.php +++ b/app/code/community/Nosto/Tagging/Model/Resource/Setup.php @@ -20,6 +20,7 @@ * * @category Nosto * @package Nosto_Tagging + * @author Nosto Solutions Ltd * @copyright Copyright (c) 2013-2015 Nosto Solutions Ltd (http://www.nosto.com) * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ @@ -49,7 +50,8 @@ public function getAllRootCategories() foreach ($stores as $store) { $id = $store->getRootCategoryId(); if (!isset($categories[$id])) { - $categories[$id] = Mage::getModel('catalog/category')->load($id); + $categories[$id] = Mage::getModel('catalog/category') + ->load($id); } } diff --git a/app/code/community/Nosto/Tagging/controllers/Adminhtml/NostoController.php b/app/code/community/Nosto/Tagging/controllers/Adminhtml/NostoController.php index b82d9310..18af1b53 100644 --- a/app/code/community/Nosto/Tagging/controllers/Adminhtml/NostoController.php +++ b/app/code/community/Nosto/Tagging/controllers/Adminhtml/NostoController.php @@ -20,6 +20,7 @@ * * @category Nosto * @package Nosto_Tagging + * @author Nosto Solutions Ltd * @copyright Copyright (c) 2013-2015 Nosto Solutions Ltd (http://www.nosto.com) * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ @@ -28,8 +29,8 @@ /** * Nosto admin controller. - * Handles all actions for the configuration wizard as well as redirecting logic for - * the OAuth2 authorization cycle. + * Handles all actions for the configuration wizard as well as redirecting + * logic for the OAuth2 authorization cycle. * * @category Nosto * @package Nosto_Tagging @@ -46,9 +47,9 @@ class Nosto_Tagging_Adminhtml_NostoController extends Mage_Adminhtml_Controller_ * Redirect action that acts as a proxy when the front end oauth controller * redirects the admin user back to the backend after finishing the oauth * authorization cycle. - * This is a workaround as you cannot redirect directly to a protected action in - * the backend end from the front end. The action also handles setting any - * error/success messages in the notification system. + * This is a workaround as you cannot redirect directly to a protected + * action in the backend end from the front end. The action also handles + * setting any error/success messages in the notification system. */ public function redirectProxyAction() { @@ -58,8 +59,11 @@ public function redirectProxyAction() if (($error = $this->getRequest()->getParam('error')) !== null) { Mage::getSingleton('core/session')->addError($error); } - $this->_redirect('*/*/index', array( - 'store' => (int)$this->getRequest()->getParam('store')) + $this->_redirect( + '*/*/index', + array( + 'store' => (int)$this->getRequest()->getParam('store') + ) ); } @@ -85,12 +89,16 @@ public function indexAction() public function connectAccountAction() { if ($this->getRequest()->isPost() && $this->checkStoreScope()) { - $client = new NostoOAuthClient(Mage::helper('nosto_tagging/oauth') - ->getMetaData()); + $client = new NostoOAuthClient( + Mage::helper('nosto_tagging/oauth')->getMetaData() + ); $this->_redirectUrl($client->getAuthorizationUrl()); } else { - $this->_redirect('*/*/index', array( - 'store' => (int)$this->getRequest()->getParam('store')) + $this->_redirect( + '*/*/index', + array( + 'store' => (int)$this->getRequest()->getParam('store') + ) ); } } @@ -102,7 +110,8 @@ public function createAccountAction() { if ($this->getRequest()->isPost() && $this->checkStoreScope()) { try { - $email = $this->getRequest()->getPost('nosto_create_account_email'); + $email = $this->getRequest() + ->getPost('nosto_create_account_email'); /** @var Nosto_Tagging_Model_Meta_Account $meta */ $meta = Mage::helper('nosto_tagging/account')->getMetaData(); if (Zend_Validate::is($email, 'EmailAddress')) { @@ -111,19 +120,28 @@ public function createAccountAction() $account = NostoAccount::create($meta); if (Mage::helper('nosto_tagging/account')->save($account)) { Mage::getSingleton('core/session')->addSuccess( - $this->__('Account created. Please check your email and follow the instructions to set a password for your new account within three days.') + $this->__( + 'Account created. Please check your email and follow the instructions to set a password for your new account within three days.' + ) ); } } catch (NostoException $e) { - Mage::log("\n" . $e->__toString(), Zend_Log::ERR, 'nostotagging.log'); + Mage::log( + "\n" . $e->__toString(), Zend_Log::ERR, 'nostotagging.log' + ); Mage::getSingleton('core/session')->addException( $e, - $this->__('Account could not be automatically created. Please visit nosto.com to create a new account.') + $this->__( + 'Account could not be automatically created. Please visit nosto.com to create a new account.' + ) ); } } - $this->_redirect('*/*/index', array( - 'store' => (int)$this->getRequest()->getParam('store')) + $this->_redirect( + '*/*/index', + array( + 'store' => (int)$this->getRequest()->getParam('store') + ) ); } @@ -139,14 +157,17 @@ public function removeAccountAction() ); } } - $this->_redirect('*/*/index', array( - 'store' => (int)$this->getRequest()->getParam('store')) + $this->_redirect( + '*/*/index', + array( + 'store' => (int)$this->getRequest()->getParam('store') + ) ); } /** - * Checks that a valid store view scope id has been passed in the request params - * and set that as current store. + * Checks that a valid store view scope id has been passed in the request + * params and set that as current store. * * @return bool if the current store is valid, false otherwise. */ diff --git a/app/code/community/Nosto/Tagging/controllers/ExportController.php b/app/code/community/Nosto/Tagging/controllers/ExportController.php index 22698ac5..2ebf6f84 100644 --- a/app/code/community/Nosto/Tagging/controllers/ExportController.php +++ b/app/code/community/Nosto/Tagging/controllers/ExportController.php @@ -20,6 +20,7 @@ * * @category Nosto * @package Nosto_Tagging + * @author Nosto Solutions Ltd * @copyright Copyright (c) 2013-2015 Nosto Solutions Ltd (http://www.nosto.com) * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ @@ -28,9 +29,9 @@ /** * History data export controller. - * Handles the export of history data for orders and products that nosto can call - * when a new account has been set up. - * The exported data is encrypted with AES as the endpoint is publicly available. + * Handles the export of history data for orders and products that nosto can + * call when a new account has been set up. + * The exported data is encrypted with AES as the endpoint is public. * * @category Nosto * @package Nosto_Tagging @@ -50,7 +51,9 @@ public function orderAction() $orders = Mage::getModel('sales/order') ->getCollection() ->addFieldToFilter('store_id', Mage::app()->getStore()->getId()) - ->addAttributeToFilter('status', Mage_Sales_Model_Order::STATE_COMPLETE) + ->addAttributeToFilter( + 'status', Mage_Sales_Model_Order::STATE_COMPLETE + ) ->setPageSize($pageSize) ->setCurPage($currentPage); if ($currentPage > $orders->getLastPageNumber()) { @@ -79,8 +82,15 @@ public function productAction() ->getCollection() ->addStoreFilter(Mage::app()->getStore()->getId()) ->addAttributeToSelect('*') - ->addAttributeToFilter('status', array('eq' => Mage_Catalog_Model_Product_Status::STATUS_ENABLED)) - ->addFieldToFilter('visibility', Mage_Catalog_Model_Product_Visibility::VISIBILITY_BOTH) + ->addAttributeToFilter( + 'status', array( + 'eq' => Mage_Catalog_Model_Product_Status::STATUS_ENABLED + ) + ) + ->addFieldToFilter( + 'visibility', + Mage_Catalog_Model_Product_Visibility::VISIBILITY_BOTH + ) ->setPageSize($pageSize) ->setCurPage($currentPage); if ($currentPage > $products->getLastPageNumber()) { @@ -110,8 +120,8 @@ protected function export(NostoExportCollection $collection) { $account = Mage::helper('nosto_tagging/account')->find(); if ($account !== null) { - $cipher_text = NostoExporter::export($account, $collection); - echo $cipher_text; + $cipherText = NostoExporter::export($account, $collection); + echo $cipherText; } die(); } diff --git a/app/code/community/Nosto/Tagging/controllers/OauthController.php b/app/code/community/Nosto/Tagging/controllers/OauthController.php index a6e50b8b..70e0c27e 100644 --- a/app/code/community/Nosto/Tagging/controllers/OauthController.php +++ b/app/code/community/Nosto/Tagging/controllers/OauthController.php @@ -20,6 +20,7 @@ * * @category Nosto * @package Nosto_Tagging + * @author Nosto Solutions Ltd * @copyright Copyright (c) 2013-2015 Nosto Solutions Ltd (http://www.nosto.com) * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ @@ -37,12 +38,12 @@ class Nosto_tagging_OauthController extends Mage_Core_Controller_Front_Action { /** - * Handles the redirect from Nosto oauth2 authorization server when an existing - * account is connected to a store. + * Handles the redirect from Nosto oauth2 authorization server when an + * existing account is connected to a store. * This is handled in the front end as the oauth2 server validates the - * "return_url" sent in the first step of the authorization cycle, and requires - * it to be from the same domain that the account is configured for and only - * redirects to that domain. + * "return_url" sent in the first step of the authorization cycle, and + * requires it to be from the same domain that the account is configured + * for and only redirects to that domain. */ public function indexAction() { @@ -54,33 +55,48 @@ public function indexAction() ); if (Mage::helper('nosto_tagging/account')->save($account)) { $params = array( - 'success' => $this->__('Account %s successfully connected to Nosto.', $account->name), + 'success' => $this->__( + 'Account %s successfully connected to Nosto.', + $account->name + ), 'store' => (int)Mage::app()->getStore()->getId(), ); } else { throw new NostoException('Failed to connect account'); } } catch (NostoException $e) { - Mage::log("\n" . $e->__toString(), Zend_Log::ERR, 'nostotagging.log'); + Mage::log( + "\n" . $e->__toString(), Zend_Log::ERR, 'nostotagging.log' + ); $params = array( - 'error' => $this->__('Account could not be connected to Nosto. Please contact Nosto support.'), + 'error' => $this->__( + 'Account could not be connected to Nosto. Please contact Nosto support.' + ), 'store' => (int)Mage::app()->getStore()->getId(), ); } $this->_redirect('adminhtml/nosto/redirectProxy', $params); } elseif (($error = $this->getRequest()->getParam('error')) !== null) { $parts = array($error); - if (($reason = $this->getRequest()->getParam('error_reason')) !== null) { + $reason = $this->getRequest()->getParam('error_reason'); + if ($reason !== null) { $parts[] = $reason; } - if (($desc = $this->getRequest()->getParam('error_description')) !== null) { + $desc = $this->getRequest()->getParam('error_description'); + if ($desc !== null) { $parts[] = $desc; } - Mage::log("\n" . implode(' - ', $parts), Zend_Log::ERR, 'nostotagging.log'); - $this->_redirect('adminhtml/nosto/redirectProxy', array( - 'error' => $this->__('Account could not be connected to Nosto. You rejected the connection request.'), - 'store' => (int)Mage::app()->getStore()->getId(), - )); + Mage::log( + "\n" . implode(' - ', $parts), Zend_Log::ERR, 'nostotagging.log' + ); + $this->_redirect( + 'adminhtml/nosto/redirectProxy', array( + 'error' => $this->__( + 'Account could not be connected to Nosto. You rejected the connection request.' + ), + 'store' => (int)Mage::app()->getStore()->getId(), + ) + ); } else { $this->norouteAction(); } diff --git a/app/code/community/Nosto/Tagging/etc/adminhtml.xml b/app/code/community/Nosto/Tagging/etc/adminhtml.xml index a4647839..9cca49fe 100644 --- a/app/code/community/Nosto/Tagging/etc/adminhtml.xml +++ b/app/code/community/Nosto/Tagging/etc/adminhtml.xml @@ -21,6 +21,7 @@ * * @category Nosto * @package Nosto_Tagging + * @author Nosto Solutions Ltd * @copyright Copyright (c) 2013-2015 Nosto Solutions Ltd (http://www.nosto.com) * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ diff --git a/app/code/community/Nosto/Tagging/etc/config.xml b/app/code/community/Nosto/Tagging/etc/config.xml index d39ced59..f0cf5656 100644 --- a/app/code/community/Nosto/Tagging/etc/config.xml +++ b/app/code/community/Nosto/Tagging/etc/config.xml @@ -21,6 +21,7 @@ * * @category Nosto * @package Nosto_Tagging + * @author Nosto Solutions Ltd * @copyright Copyright (c) 2013-2015 Nosto Solutions Ltd (http://www.nosto.com) * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ diff --git a/app/code/community/Nosto/Tagging/sql/tagging_setup/mysql4-install-1.2.0.php b/app/code/community/Nosto/Tagging/sql/tagging_setup/mysql4-install-1.2.0.php index 5b717774..4d1c948c 100644 --- a/app/code/community/Nosto/Tagging/sql/tagging_setup/mysql4-install-1.2.0.php +++ b/app/code/community/Nosto/Tagging/sql/tagging_setup/mysql4-install-1.2.0.php @@ -20,6 +20,7 @@ * * @category Nosto * @package Nosto_Tagging + * @author Nosto Solutions Ltd * @copyright Copyright (c) 2013-2015 Nosto Solutions Ltd (http://www.nosto.com) * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ diff --git a/app/code/community/Nosto/Tagging/sql/tagging_setup/mysql4-upgrade-1.1.7-1.2.0.php b/app/code/community/Nosto/Tagging/sql/tagging_setup/mysql4-upgrade-1.1.7-1.2.0.php index 63afc4e1..7aaa2b13 100644 --- a/app/code/community/Nosto/Tagging/sql/tagging_setup/mysql4-upgrade-1.1.7-1.2.0.php +++ b/app/code/community/Nosto/Tagging/sql/tagging_setup/mysql4-upgrade-1.1.7-1.2.0.php @@ -20,12 +20,13 @@ * * @category Nosto * @package Nosto_Tagging + * @author Nosto Solutions Ltd * @copyright Copyright (c) 2013-2015 Nosto Solutions Ltd (http://www.nosto.com) * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ /** - * This upgrade script will run only when upgrading from 1.1.7 to 1.2.0 or above. + * This upgrade script will run when upgrading from 1.1.7 to 1.2.0 or above. * * Deletes all existing module configurations. * Creates the db table for matching Magento cart quotes to nosto customer ids. diff --git a/app/design/adminhtml/default/default/layout/nostotagging.xml b/app/design/adminhtml/default/default/layout/nostotagging.xml index f847c213..a60f82ed 100644 --- a/app/design/adminhtml/default/default/layout/nostotagging.xml +++ b/app/design/adminhtml/default/default/layout/nostotagging.xml @@ -21,6 +21,7 @@ * * @category design * @package adminhtml_default_default +* @author Nosto Solutions Ltd * @copyright Copyright (c) 2013-2015 Nosto Solutions Ltd (http://www.nosto.com) * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ diff --git a/app/design/adminhtml/default/default/template/nostotagging/form/account/connect.phtml b/app/design/adminhtml/default/default/template/nostotagging/form/account/connect.phtml index 2f76c6d6..29686dfb 100644 --- a/app/design/adminhtml/default/default/template/nostotagging/form/account/connect.phtml +++ b/app/design/adminhtml/default/default/template/nostotagging/form/account/connect.phtml @@ -20,6 +20,7 @@ * * @category design * @package adminhtml_default_default + * @author Nosto Solutions Ltd * @copyright Copyright (c) 2013-2015 Nosto Solutions Ltd (http://www.nosto.com) * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ diff --git a/app/design/adminhtml/default/default/template/nostotagging/form/account/create.phtml b/app/design/adminhtml/default/default/template/nostotagging/form/account/create.phtml index 61b89f32..ecf55098 100644 --- a/app/design/adminhtml/default/default/template/nostotagging/form/account/create.phtml +++ b/app/design/adminhtml/default/default/template/nostotagging/form/account/create.phtml @@ -20,6 +20,7 @@ * * @category design * @package adminhtml_default_default + * @author Nosto Solutions Ltd * @copyright Copyright (c) 2013-2015 Nosto Solutions Ltd (http://www.nosto.com) * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ diff --git a/app/design/adminhtml/default/default/template/nostotagging/form/account/remove.phtml b/app/design/adminhtml/default/default/template/nostotagging/form/account/remove.phtml index 40b4fb84..e340316b 100644 --- a/app/design/adminhtml/default/default/template/nostotagging/form/account/remove.phtml +++ b/app/design/adminhtml/default/default/template/nostotagging/form/account/remove.phtml @@ -20,6 +20,7 @@ * * @category design * @package adminhtml_default_default + * @author Nosto Solutions Ltd * @copyright Copyright (c) 2013-2015 Nosto Solutions Ltd (http://www.nosto.com) * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ diff --git a/app/design/adminhtml/default/default/template/nostotagging/iframe.phtml b/app/design/adminhtml/default/default/template/nostotagging/iframe.phtml index 4a48d4bf..6ae9d785 100644 --- a/app/design/adminhtml/default/default/template/nostotagging/iframe.phtml +++ b/app/design/adminhtml/default/default/template/nostotagging/iframe.phtml @@ -20,6 +20,7 @@ * * @category design * @package adminhtml_default_default + * @author Nosto Solutions Ltd * @copyright Copyright (c) 2013-2015 Nosto Solutions Ltd (http://www.nosto.com) * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ diff --git a/app/design/adminhtml/default/default/template/nostotagging/wizard.phtml b/app/design/adminhtml/default/default/template/nostotagging/wizard.phtml index bd233dc4..21ec8628 100644 --- a/app/design/adminhtml/default/default/template/nostotagging/wizard.phtml +++ b/app/design/adminhtml/default/default/template/nostotagging/wizard.phtml @@ -20,6 +20,7 @@ * * @category design * @package adminhtml_default_default + * @author Nosto Solutions Ltd * @copyright Copyright (c) 2013-2015 Nosto Solutions Ltd (http://www.nosto.com) * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ diff --git a/app/design/frontend/base/default/layout/nostotagging.xml b/app/design/frontend/base/default/layout/nostotagging.xml index 2f64ca8b..5e7e43ed 100644 --- a/app/design/frontend/base/default/layout/nostotagging.xml +++ b/app/design/frontend/base/default/layout/nostotagging.xml @@ -21,6 +21,7 @@ * * @category design * @package frontend_base_default + * @author Nosto Solutions Ltd * @copyright Copyright (c) 2013-2015 Nosto Solutions Ltd (http://www.nosto.com) * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ diff --git a/app/design/frontend/base/default/template/nostotagging/cart.phtml b/app/design/frontend/base/default/template/nostotagging/cart.phtml index 642a9432..af5fdc9f 100644 --- a/app/design/frontend/base/default/template/nostotagging/cart.phtml +++ b/app/design/frontend/base/default/template/nostotagging/cart.phtml @@ -20,6 +20,7 @@ * * @category design * @package frontend_base_default + * @author Nosto Solutions Ltd * @copyright Copyright (c) 2013-2015 Nosto Solutions Ltd (http://www.nosto.com) * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ diff --git a/app/design/frontend/base/default/template/nostotagging/category.phtml b/app/design/frontend/base/default/template/nostotagging/category.phtml index 3bfd254d..a0d9b382 100644 --- a/app/design/frontend/base/default/template/nostotagging/category.phtml +++ b/app/design/frontend/base/default/template/nostotagging/category.phtml @@ -20,6 +20,7 @@ * * @category design * @package frontend_base_default + * @author Nosto Solutions Ltd * @copyright Copyright (c) 2013-2015 Nosto Solutions Ltd (http://www.nosto.com) * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ diff --git a/app/design/frontend/base/default/template/nostotagging/category/view.phtml b/app/design/frontend/base/default/template/nostotagging/category/view.phtml index b023324f..1924a1de 100644 --- a/app/design/frontend/base/default/template/nostotagging/category/view.phtml +++ b/app/design/frontend/base/default/template/nostotagging/category/view.phtml @@ -20,6 +20,7 @@ * * @category design * @package frontend_base_default + * @author Nosto Solutions Ltd * @copyright Copyright (c) 2013-2015 Nosto Solutions Ltd (http://www.nosto.com) * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ diff --git a/app/design/frontend/base/default/template/nostotagging/customer.phtml b/app/design/frontend/base/default/template/nostotagging/customer.phtml index ed550707..b1f1e2c2 100644 --- a/app/design/frontend/base/default/template/nostotagging/customer.phtml +++ b/app/design/frontend/base/default/template/nostotagging/customer.phtml @@ -20,6 +20,7 @@ * * @category design * @package frontend_base_default + * @author Nosto Solutions Ltd * @copyright Copyright (c) 2013-2015 Nosto Solutions Ltd (http://www.nosto.com) * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ diff --git a/app/design/frontend/base/default/template/nostotagging/element.phtml b/app/design/frontend/base/default/template/nostotagging/element.phtml index 6f1977a9..2dc4fa18 100644 --- a/app/design/frontend/base/default/template/nostotagging/element.phtml +++ b/app/design/frontend/base/default/template/nostotagging/element.phtml @@ -20,6 +20,7 @@ * * @category design * @package frontend_base_default + * @author Nosto Solutions Ltd * @copyright Copyright (c) 2013-2015 Nosto Solutions Ltd (http://www.nosto.com) * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ diff --git a/app/design/frontend/base/default/template/nostotagging/embed.phtml b/app/design/frontend/base/default/template/nostotagging/embed.phtml index 965b8d42..2a4ef8d5 100644 --- a/app/design/frontend/base/default/template/nostotagging/embed.phtml +++ b/app/design/frontend/base/default/template/nostotagging/embed.phtml @@ -20,6 +20,7 @@ * * @category design * @package frontend_base_default + * @author Nosto Solutions Ltd * @copyright Copyright (c) 2013-2015 Nosto Solutions Ltd (http://www.nosto.com) * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ diff --git a/app/design/frontend/base/default/template/nostotagging/order.phtml b/app/design/frontend/base/default/template/nostotagging/order.phtml index eb53fc9f..726d3ba7 100644 --- a/app/design/frontend/base/default/template/nostotagging/order.phtml +++ b/app/design/frontend/base/default/template/nostotagging/order.phtml @@ -20,6 +20,7 @@ * * @category design * @package frontend_base_default + * @author Nosto Solutions Ltd * @copyright Copyright (c) 2013-2015 Nosto Solutions Ltd (http://www.nosto.com) * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ diff --git a/app/design/frontend/base/default/template/nostotagging/product.phtml b/app/design/frontend/base/default/template/nostotagging/product.phtml index 4a90a068..bcbe51e0 100644 --- a/app/design/frontend/base/default/template/nostotagging/product.phtml +++ b/app/design/frontend/base/default/template/nostotagging/product.phtml @@ -20,6 +20,7 @@ * * @category design * @package frontend_base_default + * @author Nosto Solutions Ltd * @copyright Copyright (c) 2013-2015 Nosto Solutions Ltd (http://www.nosto.com) * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ diff --git a/app/etc/modules/Nosto_Tagging.xml b/app/etc/modules/Nosto_Tagging.xml index 85ddf958..6dd572bf 100644 --- a/app/etc/modules/Nosto_Tagging.xml +++ b/app/etc/modules/Nosto_Tagging.xml @@ -21,6 +21,7 @@ * * @category Nosto * @package Nosto_Tagging + * @author Nosto Solutions Ltd * @copyright Copyright (c) 2013-2015 Nosto Solutions Ltd (http://www.nosto.com) * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ From 52c1d7846bcff52bf3cbd8e118c4c8ec219b9084 Mon Sep 17 00:00:00 2001 From: Christoffer Lindqvist Date: Tue, 20 Jan 2015 15:18:05 +0200 Subject: [PATCH 58/71] Add hole punching in Magento EE FPC for customer and cart tagging blocks --- .../Nosto/Tagging/Model/Container/Cart.php | 69 ++++++++++++++++ .../Tagging/Model/Container/Customer.php | 81 +++++++++++++++++++ .../community/Nosto/Tagging/etc/cache.xml | 46 +++++++++++ 3 files changed, 196 insertions(+) create mode 100644 app/code/community/Nosto/Tagging/Model/Container/Cart.php create mode 100644 app/code/community/Nosto/Tagging/Model/Container/Customer.php create mode 100644 app/code/community/Nosto/Tagging/etc/cache.xml diff --git a/app/code/community/Nosto/Tagging/Model/Container/Cart.php b/app/code/community/Nosto/Tagging/Model/Container/Cart.php new file mode 100644 index 00000000..fc078456 --- /dev/null +++ b/app/code/community/Nosto/Tagging/Model/Container/Cart.php @@ -0,0 +1,69 @@ + + * @copyright Copyright (c) 2013-2015 Nosto Solutions Ltd (http://www.nosto.com) + * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) + */ + +/** + * Cart Container model. + * Used to keep cart tagging block up to date when Magento EE FPC is used. + * + * @category Nosto + * @package Nosto_Tagging + * @author Nosto Solutions Ltd + */ +class Nosto_Tagging_Model_Container_Cart extends Enterprise_PageCache_Model_Container_Advanced_Quote +{ + /** + * Get identifier from cookies. + * + * @deprecated since 1.12.0.0 + * @return string + */ + protected function _getIdentifier() + { + return $this->_getCookieValue( + Enterprise_PageCache_Model_Cookie::COOKIE_CART, '' + ) + . '_' + . $this->_getCookieValue( + Enterprise_PageCache_Model_Cookie::COOKIE_CUSTOMER, '' + ); + } + + /** + * @inheritdoc + */ + protected function _renderBlock() + { + $block = $this->_getPlaceHolderBlock(); + Mage::dispatchEvent( + 'render_block', array( + 'block' => $block, + 'placeholder' => $this->_placeholder + ) + ); + return $block->toHtml(); + } +} diff --git a/app/code/community/Nosto/Tagging/Model/Container/Customer.php b/app/code/community/Nosto/Tagging/Model/Container/Customer.php new file mode 100644 index 00000000..7bb72b61 --- /dev/null +++ b/app/code/community/Nosto/Tagging/Model/Container/Customer.php @@ -0,0 +1,81 @@ + + * @copyright Copyright (c) 2013-2015 Nosto Solutions Ltd (http://www.nosto.com) + * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) + */ + +/** + * Customer Container model. + * Used to keep customer tagging block up to date when Magento EE FPC is used. + * + * @category Nosto + * @package Nosto_Tagging + * @author Nosto Solutions Ltd + */ +class Nosto_Tagging_Model_Container_Customer extends Enterprise_PageCache_Model_Container_Customer +{ + /** + * Get identifier from cookies. + * + * @deprecated since 1.12.0.0 + * @return string + */ + protected function _getIdentifier() + { + return $this->_getCookieValue( + Enterprise_PageCache_Model_Cookie::COOKIE_CUSTOMER, '' + ) + . '_' + . $this->_getCookieValue( + Enterprise_PageCache_Model_Cookie::COOKIE_CUSTOMER_LOGGED_IN, '' + ); + } + + /** + * @inheritdoc + */ + protected function _getCacheId() + { + return 'CONTAINER_NOSTO_TAGGING_CUSTOMER_' + . md5( + $this->_placeholder->getAttribute('cache_id') + . $this->_getIdentifier() + ); + } + + /** + * @inheritdoc + */ + protected function _renderBlock() + { + $block = $this->_getPlaceHolderBlock(); + Mage::dispatchEvent( + 'render_block', array( + 'block' => $block, + 'placeholder' => $this->_placeholder + ) + ); + return $block->toHtml(); + } +} diff --git a/app/code/community/Nosto/Tagging/etc/cache.xml b/app/code/community/Nosto/Tagging/etc/cache.xml new file mode 100644 index 00000000..e7eff0b0 --- /dev/null +++ b/app/code/community/Nosto/Tagging/etc/cache.xml @@ -0,0 +1,46 @@ + + + + + + nosto_tagging/cart + nosto.cart + NOSTO_TAGGING_CART_CACHE + Nosto_Tagging_Model_Container_Cart + 86400 + + + nosto_tagging/customer + nosto.customer + NOSTO_TAGGING_CUSTOMER_CACHE + Nosto_Tagging_Model_Container_Customer + 86400 + + + \ No newline at end of file From 7537dab910511b5aca5a797609720c063b31d838 Mon Sep 17 00:00:00 2001 From: Christoffer Lindqvist Date: Wed, 28 Jan 2015 15:30:38 +0200 Subject: [PATCH 59/71] Remove order status criteria from order export --- .../community/Nosto/Tagging/controllers/ExportController.php | 3 --- 1 file changed, 3 deletions(-) diff --git a/app/code/community/Nosto/Tagging/controllers/ExportController.php b/app/code/community/Nosto/Tagging/controllers/ExportController.php index 2ebf6f84..3cfbe04c 100644 --- a/app/code/community/Nosto/Tagging/controllers/ExportController.php +++ b/app/code/community/Nosto/Tagging/controllers/ExportController.php @@ -51,9 +51,6 @@ public function orderAction() $orders = Mage::getModel('sales/order') ->getCollection() ->addFieldToFilter('store_id', Mage::app()->getStore()->getId()) - ->addAttributeToFilter( - 'status', Mage_Sales_Model_Order::STATE_COMPLETE - ) ->setPageSize($pageSize) ->setCurPage($currentPage); if ($currentPage > $orders->getLastPageNumber()) { From 25718d60bd90d162791b5d128133ecdfb2ce791a Mon Sep 17 00:00:00 2001 From: Christoffer Lindqvist Date: Wed, 28 Jan 2015 15:32:25 +0200 Subject: [PATCH 60/71] Exclude special items like shipping cost and discounts in order export --- .../Nosto/Tagging/Model/Meta/Order.php | 42 +++++++++++-------- .../Tagging/controllers/ExportController.php | 2 + 2 files changed, 27 insertions(+), 17 deletions(-) diff --git a/app/code/community/Nosto/Tagging/Model/Meta/Order.php b/app/code/community/Nosto/Tagging/Model/Meta/Order.php index 6952dbb3..585d34fb 100644 --- a/app/code/community/Nosto/Tagging/Model/Meta/Order.php +++ b/app/code/community/Nosto/Tagging/Model/Meta/Order.php @@ -36,6 +36,12 @@ */ class Nosto_Tagging_Model_Meta_Order extends Mage_Core_Model_Abstract implements NostoOrderInterface { + /** + * @var bool if the special items, e.g. shipping cost, discounts, should be + * included in the `$_items` list. + */ + public $includeSpecialItems = true; + /** * @var string|int the unique order number identifying the order. */ @@ -159,24 +165,26 @@ public function loadData(Mage_Sales_Model_Order $order) } } - if ($discount = $order->getDiscountAmount()) { - $orderItem = new Nosto_Tagging_Model_Meta_Order_Item(); - $orderItem->setProductId(-1); - $orderItem->setQuantity(1); - $orderItem->setName('Discount'); - $orderItem->setUnitPrice($discount); - $orderItem->setCurrencyCode($order->getOrderCurrencyCode()); - $this->_items[] = $orderItem; - } + if ($this->includeSpecialItems) { + if ($discount = $order->getDiscountAmount()) { + $orderItem = new Nosto_Tagging_Model_Meta_Order_Item(); + $orderItem->setProductId(-1); + $orderItem->setQuantity(1); + $orderItem->setName('Discount'); + $orderItem->setUnitPrice($discount); + $orderItem->setCurrencyCode($order->getOrderCurrencyCode()); + $this->_items[] = $orderItem; + } - if ($shippingInclTax = $order->getShippingInclTax()) { - $orderItem = new Nosto_Tagging_Model_Meta_Order_Item(); - $orderItem->setProductId(-1); - $orderItem->setQuantity(1); - $orderItem->setName('Shipping and handling'); - $orderItem->setUnitPrice($shippingInclTax); - $orderItem->setCurrencyCode($order->getOrderCurrencyCode()); - $this->_items[] = $orderItem; + if ($shippingInclTax = $order->getShippingInclTax()) { + $orderItem = new Nosto_Tagging_Model_Meta_Order_Item(); + $orderItem->setProductId(-1); + $orderItem->setQuantity(1); + $orderItem->setName('Shipping and handling'); + $orderItem->setUnitPrice($shippingInclTax); + $orderItem->setCurrencyCode($order->getOrderCurrencyCode()); + $this->_items[] = $orderItem; + } } } } diff --git a/app/code/community/Nosto/Tagging/controllers/ExportController.php b/app/code/community/Nosto/Tagging/controllers/ExportController.php index 3cfbe04c..976d350a 100644 --- a/app/code/community/Nosto/Tagging/controllers/ExportController.php +++ b/app/code/community/Nosto/Tagging/controllers/ExportController.php @@ -59,6 +59,8 @@ public function orderAction() $collection = new NostoExportOrderCollection(); foreach ($orders as $order) { $meta = new Nosto_Tagging_Model_Meta_Order(); + // We don't need special items like shipping cost and discounts. + $meta->includeSpecialItems = false; $meta->loadData($order); $collection[] = $meta; } From 2aa69e378028de9e92109244ceef97576857d6f3 Mon Sep 17 00:00:00 2001 From: Christoffer Lindqvist Date: Wed, 28 Jan 2015 15:49:54 +0200 Subject: [PATCH 61/71] Add employee `fname`, `name` and `email` to iframe url --- composer.json | 2 +- composer.lock | 14 +++++++------- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/composer.json b/composer.json index e9a64fc0..b0de74bd 100644 --- a/composer.json +++ b/composer.json @@ -9,6 +9,6 @@ } ], "require": { - "nosto/php-sdk": "1.0.0" + "nosto/php-sdk": "1.1.0" } } \ No newline at end of file diff --git a/composer.lock b/composer.lock index 012977fd..5e84eb17 100644 --- a/composer.lock +++ b/composer.lock @@ -4,20 +4,20 @@ "Read more about it at http://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file", "This file is @generated automatically" ], - "hash": "3f0311766f79e97d23259808a87c1d42", + "hash": "4b463a1f6aeb336ce277846c6c327edf", "packages": [ { "name": "nosto/php-sdk", - "version": "1.0.0", + "version": "1.1.0", "source": { "type": "git", "url": "git@github.com:Nosto/php-sdk.git", - "reference": "98e088caef084b5882bd5afcfe76df57b26f07ea" + "reference": "c3864e61daf89ee16e04fb2d686452456c2d7ac1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Nosto/php-sdk/zipball/98e088caef084b5882bd5afcfe76df57b26f07ea", - "reference": "98e088caef084b5882bd5afcfe76df57b26f07ea", + "url": "https://api.github.com/repos/Nosto/php-sdk/zipball/c3864e61daf89ee16e04fb2d686452456c2d7ac1", + "reference": "c3864e61daf89ee16e04fb2d686452456c2d7ac1", "shasum": "" }, "require-dev": { @@ -30,10 +30,10 @@ ], "description": "PHP SDK for developing Nosto modules for e-commerce platforms", "support": { - "source": "https://github.com/Nosto/php-sdk/tree/1.0.0", + "source": "https://github.com/Nosto/php-sdk/tree/1.1.0", "issues": "https://github.com/Nosto/php-sdk/issues" }, - "time": "2015-01-18 10:51:26" + "time": "2015-01-28 13:48:03" } ], "packages-dev": [ From 82855fc3d088bd5cf90ca575807a5b41d4717d00 Mon Sep 17 00:00:00 2001 From: Christoffer Lindqvist Date: Wed, 28 Jan 2015 16:50:15 +0200 Subject: [PATCH 62/71] Add product tags to product export --- .../Nosto/Tagging/Model/Meta/Product.php | 23 ++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/app/code/community/Nosto/Tagging/Model/Meta/Product.php b/app/code/community/Nosto/Tagging/Model/Meta/Product.php index fc29fe56..fb24f11a 100644 --- a/app/code/community/Nosto/Tagging/Model/Meta/Product.php +++ b/app/code/community/Nosto/Tagging/Model/Meta/Product.php @@ -46,6 +46,11 @@ class Nosto_Tagging_Model_Meta_Product extends Mage_Core_Model_Abstract implemen */ const PRODUCT_OUT_OF_STOCK = 'OutOfStock'; + /** + * Product "can be directly added to cart" tag string. + */ + const PRODUCT_ADD_TO_CART = 'add-to-cart'; + /** * @var string the absolute url to the product page in the shop frontend. */ @@ -288,7 +293,23 @@ public function loadData(Mage_Catalog_Model_Product $product) $this->_availability = self::PRODUCT_OUT_OF_STOCK; } - // todo: $this->tags = array(); + $tag = Mage::getModel('tag/tag'); + $tagCollection = $tag + ->getResourceCollection() + ->addPopularity() + ->addStatusFilter($tag->getApprovedStatus()) + ->addProductFilter($product->getId()) + ->setFlag('relation', true) + ->addStoreFilter(Mage::app()->getStore()->getId()) + ->setActiveFilter() + ->load(); + foreach ($tagCollection as $tag) { + $this->_tags[] = $tag->getName(); + } + + if (!$product->canConfigure()) { + $this->_tags[] = self::PRODUCT_ADD_TO_CART; + } $this->_categories = $this->getProductCategories($product); $this->_description = $product->getDescription(); From 776944303df18a09a7c502fca615d18631db5ff7 Mon Sep 17 00:00:00 2001 From: Christoffer Lindqvist Date: Wed, 28 Jan 2015 17:13:57 +0200 Subject: [PATCH 63/71] Refactoring --- .../community/Nosto/Tagging/Block/Product.php | 59 +++---------------- .../template/nostotagging/product.phtml | 54 +++++++---------- 2 files changed, 31 insertions(+), 82 deletions(-) diff --git a/app/code/community/Nosto/Tagging/Block/Product.php b/app/code/community/Nosto/Tagging/Block/Product.php index f1b1b707..18a800b3 100644 --- a/app/code/community/Nosto/Tagging/Block/Product.php +++ b/app/code/community/Nosto/Tagging/Block/Product.php @@ -36,14 +36,9 @@ class Nosto_Tagging_Block_Product extends Mage_Catalog_Block_Product_Abstract { /** - * Product "in stock" tagging string. + * @var Nosto_Tagging_Model_Meta_Product runtime cache for the product meta. */ - const PRODUCT_IN_STOCK = 'InStock'; - - /** - * Product "out of stock" tagging string. - */ - const PRODUCT_OUT_OF_STOCK = 'OutOfStock'; + protected $_product; /** * Render product info as hidden meta data if the module is enabled for the @@ -69,52 +64,16 @@ protected function _toHtml() } /** - * Return tagging data for the product availability. + * Returns the product meta data to tag. * - * @param Mage_Catalog_Model_Product $product the product model. - * - * @return string + * @return Nosto_Tagging_Model_Meta_Product the meta data. */ - public function getProductAvailability($product) + public function getMetaProduct() { - if ($product instanceof Mage_Catalog_Model_Product - && $product->isAvailable() - ) { - return self::PRODUCT_IN_STOCK; - } else { - return self::PRODUCT_OUT_OF_STOCK; + if ($this->_product === null) { + $this->_product = new Nosto_Tagging_Model_Meta_Product(); + $this->_product->loadData($this->getProduct()); } - } - - /** - * Return array of categories for the product. - * The items in the array are strings combined of the complete category - * path to the products own category. - * - * Structure: - * array ( - * /Electronics/Computers - * ) - * - * @param Mage_Catalog_Model_Product $product the product model. - * - * @return array - */ - public function getProductCategories($product) - { - $data = array(); - - if ($product instanceof Mage_Catalog_Model_Product) { - $categoryCollection = $product->getCategoryCollection(); - foreach ($categoryCollection as $category) { - $categoryString = Mage::helper('nosto_tagging') - ->buildCategoryString($category); - if (!empty($categoryString)) { - $data[] = $categoryString; - } - } - } - - return $data; + return $this->_product; } } diff --git a/app/design/frontend/base/default/template/nostotagging/product.phtml b/app/design/frontend/base/default/template/nostotagging/product.phtml index bcbe51e0..229e8d96 100644 --- a/app/design/frontend/base/default/template/nostotagging/product.phtml +++ b/app/design/frontend/base/default/template/nostotagging/product.phtml @@ -29,43 +29,33 @@ getProduct(); -$manufacturer = $product->getAttributeText('manufacturer'); -$nostoHelper = Mage::helper('nosto_tagging'); -$nostoPriceHelper = Mage::helper('nosto_tagging/price'); -$taxHelper = Mage::helper('tax'); +$product = $this->getMetaProduct(); +$helper = Mage::helper('nosto_tagging'); +$priceHelper = Mage::helper('nosto_tagging/price'); ?> \ No newline at end of file From c132ae8049a873eaf034735513c2cd2b8555d31a Mon Sep 17 00:00:00 2001 From: Christoffer Lindqvist Date: Wed, 28 Jan 2015 17:25:52 +0200 Subject: [PATCH 64/71] Refactoring --- app/code/community/Nosto/Tagging/Helper/Data.php | 12 ------------ .../base/default/template/nostotagging/product.phtml | 10 ++++++---- 2 files changed, 6 insertions(+), 16 deletions(-) diff --git a/app/code/community/Nosto/Tagging/Helper/Data.php b/app/code/community/Nosto/Tagging/Helper/Data.php index 3a94356b..d566f5a8 100644 --- a/app/code/community/Nosto/Tagging/Helper/Data.php +++ b/app/code/community/Nosto/Tagging/Helper/Data.php @@ -67,18 +67,6 @@ public function buildCategoryString($category) } } - /** - * Formats date into Nosto format, i.e. Y-m-d. - * - * @param string $date the date to format. - * - * @return string - */ - public function getFormattedDate($date) - { - return date('Y-m-d', strtotime($date)); - } - /** * Returns a unique ID that identifies this Magento installation. * This ID is sent to the Nosto account config iframe and used to link all diff --git a/app/design/frontend/base/default/template/nostotagging/product.phtml b/app/design/frontend/base/default/template/nostotagging/product.phtml index 229e8d96..d6a8c861 100644 --- a/app/design/frontend/base/default/template/nostotagging/product.phtml +++ b/app/design/frontend/base/default/template/nostotagging/product.phtml @@ -28,13 +28,15 @@ getMetaProduct(); $helper = Mage::helper('nosto_tagging'); $priceHelper = Mage::helper('nosto_tagging/price'); +$dateHelper = Mage::helper('nosto_tagging/date'); ?> @@ -54,7 +56,7 @@ $priceHelper = Mage::helper('nosto_tagging/price'); getBrand() !== ""): ?> escapeHtml($product->getBrand()); ?> - getFormattedDate($product->getDatePublished()); ?> + getFormattedDate($product->getDatePublished()); ?> getTags() as $tag): ?> escapeHtml($tag); ?> From 6ffbcb2b09f0454ee8f976eb554ec6179de8135f Mon Sep 17 00:00:00 2001 From: Christoffer Lindqvist Date: Wed, 28 Jan 2015 17:33:34 +0200 Subject: [PATCH 65/71] Concat short and full description in product history export --- .../Nosto/Tagging/Model/Meta/Product.php | 18 +++++++++++++++++- composer.json | 2 +- composer.lock | 14 +++++++------- 3 files changed, 25 insertions(+), 9 deletions(-) diff --git a/app/code/community/Nosto/Tagging/Model/Meta/Product.php b/app/code/community/Nosto/Tagging/Model/Meta/Product.php index fb24f11a..9295f60e 100644 --- a/app/code/community/Nosto/Tagging/Model/Meta/Product.php +++ b/app/code/community/Nosto/Tagging/Model/Meta/Product.php @@ -101,6 +101,11 @@ class Nosto_Tagging_Model_Meta_Product extends Mage_Core_Model_Abstract implemen */ protected $_categories = array(); + /** + * @var string the product short description. + */ + protected $_shortDescription; + /** * @var string the product description. */ @@ -224,6 +229,16 @@ public function getCategories() return $this->_categories; } + /** + * Returns the product short description. + * + * @return string the short description. + */ + public function getShortDescription() + { + return $this->_shortDescription; + } + /** * Returns the product description. * @@ -312,7 +327,8 @@ public function loadData(Mage_Catalog_Model_Product $product) } $this->_categories = $this->getProductCategories($product); - $this->_description = $product->getDescription(); + $this->_shortDescription = (string)$product->getShortDescription(); + $this->_description = (string)$product->getDescription(); $this->_brand = (string)$product->getAttributeText('manufacturer'); $this->_datePublished = $product->getCreatedAt(); } diff --git a/composer.json b/composer.json index b0de74bd..7a5dca68 100644 --- a/composer.json +++ b/composer.json @@ -9,6 +9,6 @@ } ], "require": { - "nosto/php-sdk": "1.1.0" + "nosto/php-sdk": "1.2.0" } } \ No newline at end of file diff --git a/composer.lock b/composer.lock index 5e84eb17..115f8264 100644 --- a/composer.lock +++ b/composer.lock @@ -4,20 +4,20 @@ "Read more about it at http://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file", "This file is @generated automatically" ], - "hash": "4b463a1f6aeb336ce277846c6c327edf", + "hash": "5864b68fae0b2405d364d4967d84c964", "packages": [ { "name": "nosto/php-sdk", - "version": "1.1.0", + "version": "1.2.0", "source": { "type": "git", "url": "git@github.com:Nosto/php-sdk.git", - "reference": "c3864e61daf89ee16e04fb2d686452456c2d7ac1" + "reference": "8c8f0ff5838db401661be3671413ba9aa381baea" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Nosto/php-sdk/zipball/c3864e61daf89ee16e04fb2d686452456c2d7ac1", - "reference": "c3864e61daf89ee16e04fb2d686452456c2d7ac1", + "url": "https://api.github.com/repos/Nosto/php-sdk/zipball/8c8f0ff5838db401661be3671413ba9aa381baea", + "reference": "8c8f0ff5838db401661be3671413ba9aa381baea", "shasum": "" }, "require-dev": { @@ -30,10 +30,10 @@ ], "description": "PHP SDK for developing Nosto modules for e-commerce platforms", "support": { - "source": "https://github.com/Nosto/php-sdk/tree/1.1.0", + "source": "https://github.com/Nosto/php-sdk/tree/1.2.0", "issues": "https://github.com/Nosto/php-sdk/issues" }, - "time": "2015-01-28 13:48:03" + "time": "2015-01-28 15:30:08" } ], "packages-dev": [ From 243889b67c9061173bb3e8ffabd79764e48838ab Mon Sep 17 00:00:00 2001 From: Christoffer Lindqvist Date: Wed, 28 Jan 2015 18:04:51 +0200 Subject: [PATCH 66/71] Adds tags to pages with info about installed extension version, the installation unique id and the shop language --- .../community/Nosto/Tagging/Block/Meta.php | 76 +++++++++++++++++++ .../base/default/layout/nostotagging.xml | 5 ++ .../default/template/nostotagging/meta.phtml | 40 ++++++++++ 3 files changed, 121 insertions(+) create mode 100644 app/code/community/Nosto/Tagging/Block/Meta.php create mode 100644 app/design/frontend/base/default/template/nostotagging/meta.phtml diff --git a/app/code/community/Nosto/Tagging/Block/Meta.php b/app/code/community/Nosto/Tagging/Block/Meta.php new file mode 100644 index 00000000..05fc656e --- /dev/null +++ b/app/code/community/Nosto/Tagging/Block/Meta.php @@ -0,0 +1,76 @@ + + * @copyright Copyright (c) 2013-2015 Nosto Solutions Ltd (http://www.nosto.com) + * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) + */ + +/** + * Nosto meta block. + * Used to render meta tag elements to page section. + * + * @category Nosto + * @package Nosto_Tagging + * @author Nosto Solutions Ltd + */ +class Nosto_Tagging_Block_Meta extends Mage_Core_Block_Template +{ + /** + * Render meta tags if the module is enabled for the current store. + * + * @return string + */ + protected function _toHtml() + { + if (!Mage::helper('nosto_tagging')->isModuleEnabled() + || !Mage::helper('nosto_tagging/account')->existsAndIsConnected() + ) { + return ''; + } + return parent::_toHtml(); + } + + /** + * Returns the version number of the Nosto extension. + * + * @return string the module version. + */ + public function getVersionModule() + { + // Path is hard-coded to be like in "etc/config.xml". + return (string)Mage::getConfig() + ->getNode('modules/Nosto_Tagging/version'); + } + + /** + * Returns the 2-letter ISO code (ISO 639-1) for the shop language. + * + * @return string the language ISO code. + */ + public function getLanguageIsoCode() + { + return substr( + Mage::app()->getStore()->getConfig('general/locale/code'), 0, 2 + ); + } +} \ No newline at end of file diff --git a/app/design/frontend/base/default/layout/nostotagging.xml b/app/design/frontend/base/default/layout/nostotagging.xml index 5e7e43ed..5b15c764 100644 --- a/app/design/frontend/base/default/layout/nostotagging.xml +++ b/app/design/frontend/base/default/layout/nostotagging.xml @@ -33,6 +33,11 @@ + + + + + diff --git a/app/design/frontend/base/default/template/nostotagging/meta.phtml b/app/design/frontend/base/default/template/nostotagging/meta.phtml new file mode 100644 index 00000000..3893ca96 --- /dev/null +++ b/app/design/frontend/base/default/template/nostotagging/meta.phtml @@ -0,0 +1,40 @@ + + * @copyright Copyright (c) 2013-2015 Nosto Solutions Ltd (http://www.nosto.com) + * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) + */ +?> + + + + + + + From 25f07071142ca2b5bc2d3a9d198887e1288cb37d Mon Sep 17 00:00:00 2001 From: Christoffer Lindqvist Date: Tue, 3 Feb 2015 14:05:01 +0200 Subject: [PATCH 67/71] Add a call to Nosto when an account is deleted --- .../Nosto/Tagging/Helper/Account.php | 15 ++++++-- .../controllers/Adminhtml/NostoController.php | 9 +++-- composer.json | 2 +- composer.lock | 35 +++++++------------ 4 files changed, 34 insertions(+), 27 deletions(-) diff --git a/app/code/community/Nosto/Tagging/Helper/Account.php b/app/code/community/Nosto/Tagging/Helper/Account.php index fbf6a65d..e58da34a 100644 --- a/app/code/community/Nosto/Tagging/Helper/Account.php +++ b/app/code/community/Nosto/Tagging/Helper/Account.php @@ -84,11 +84,12 @@ public function save(NostoAccount $account, Mage_Core_Model_Store $store = null) /** * Removes an account with associated api tokens for the store view scope. * - * @param Mage_Core_Model_Store|null $store the store view to remove it for. + * @param NostoAccount $account the account to remove. + * @param Mage_Core_Model_Store|null $store the store view to remove it for. * * @return bool true on success, false otherwise. */ - public function remove(Mage_Core_Model_Store $store = null) + public function remove(NostoAccount $account, Mage_Core_Model_Store $store = null) { if ($store === null) { $store = Mage::app()->getStore(); @@ -105,6 +106,16 @@ public function remove(Mage_Core_Model_Store $store = null) self::XML_PATH_TOKENS, null, 'stores', $store->getId() ); Mage::app()->getCacheInstance()->cleanType('config'); + + try { + // Tell Nosto that the account was removed. + $account->delete(); + } catch (NostoException $e) { + Mage::log( + "\n" . $e->__toString(), Zend_Log::ERR, 'nostotagging.log' + ); + } + return true; } diff --git a/app/code/community/Nosto/Tagging/controllers/Adminhtml/NostoController.php b/app/code/community/Nosto/Tagging/controllers/Adminhtml/NostoController.php index 18af1b53..78864020 100644 --- a/app/code/community/Nosto/Tagging/controllers/Adminhtml/NostoController.php +++ b/app/code/community/Nosto/Tagging/controllers/Adminhtml/NostoController.php @@ -146,12 +146,17 @@ public function createAccountAction() } /** - * Removes a Nosto account from the current scope. + * Removes a Nosto account from the current scope and notifies Nosto. */ public function removeAccountAction() { if ($this->getRequest()->isPost() && $this->checkStoreScope()) { - if (Mage::helper('nosto_tagging/account')->remove()) { + $account = Mage::helper('nosto_tagging/account')->find(); + if ($account === null) { + Mage::getSingleton('core/session')->addError( + $this->__('No account was found for the current store.') + ); + } elseif (Mage::helper('nosto_tagging/account')->remove($account)) { Mage::getSingleton('core/session')->addSuccess( $this->__('Account successfully removed.') ); diff --git a/composer.json b/composer.json index 7a5dca68..7234e4b0 100644 --- a/composer.json +++ b/composer.json @@ -9,6 +9,6 @@ } ], "require": { - "nosto/php-sdk": "1.2.0" + "nosto/php-sdk": "1.3.0" } } \ No newline at end of file diff --git a/composer.lock b/composer.lock index 115f8264..4a9d0c62 100644 --- a/composer.lock +++ b/composer.lock @@ -4,20 +4,20 @@ "Read more about it at http://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file", "This file is @generated automatically" ], - "hash": "5864b68fae0b2405d364d4967d84c964", + "hash": "392f17b9dcdda65020ffb472ce76c63b", "packages": [ { "name": "nosto/php-sdk", - "version": "1.2.0", + "version": "1.3.0", "source": { "type": "git", "url": "git@github.com:Nosto/php-sdk.git", - "reference": "8c8f0ff5838db401661be3671413ba9aa381baea" + "reference": "f3d65215a0fe4f370cbef357e958a53523f55e63" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Nosto/php-sdk/zipball/8c8f0ff5838db401661be3671413ba9aa381baea", - "reference": "8c8f0ff5838db401661be3671413ba9aa381baea", + "url": "https://api.github.com/repos/Nosto/php-sdk/zipball/f3d65215a0fe4f370cbef357e958a53523f55e63", + "reference": "f3d65215a0fe4f370cbef357e958a53523f55e63", "shasum": "" }, "require-dev": { @@ -30,27 +30,18 @@ ], "description": "PHP SDK for developing Nosto modules for e-commerce platforms", "support": { - "source": "https://github.com/Nosto/php-sdk/tree/1.2.0", + "source": "https://github.com/Nosto/php-sdk/tree/1.3.0", "issues": "https://github.com/Nosto/php-sdk/issues" }, - "time": "2015-01-28 15:30:08" + "time": "2015-02-03 12:00:56" } ], - "packages-dev": [ - - ], - "aliases": [ - - ], + "packages-dev": [], + "aliases": [], "minimum-stability": "stable", - "stability-flags": [ - - ], + "stability-flags": [], "prefer-stable": false, - "platform": [ - - ], - "platform-dev": [ - - ] + "prefer-lowest": false, + "platform": [], + "platform-dev": [] } From 732b7021149cf542d65a06ab2636559b8d545793 Mon Sep 17 00:00:00 2001 From: Christoffer Lindqvist Date: Tue, 3 Feb 2015 14:09:00 +0200 Subject: [PATCH 68/71] Add better comments --- app/code/community/Nosto/Tagging/Helper/Account.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/app/code/community/Nosto/Tagging/Helper/Account.php b/app/code/community/Nosto/Tagging/Helper/Account.php index e58da34a..0fb575a4 100644 --- a/app/code/community/Nosto/Tagging/Helper/Account.php +++ b/app/code/community/Nosto/Tagging/Helper/Account.php @@ -108,9 +108,10 @@ public function remove(NostoAccount $account, Mage_Core_Model_Store $store = nul Mage::app()->getCacheInstance()->cleanType('config'); try { - // Tell Nosto that the account was removed. + // Notify Nosto that the account was deleted. $account->delete(); } catch (NostoException $e) { + // Failures are logged but not shown to the user. Mage::log( "\n" . $e->__toString(), Zend_Log::ERR, 'nostotagging.log' ); From 901eb4c068145a67c59f2b9eee97be64fb0e523c Mon Sep 17 00:00:00 2001 From: Christoffer Lindqvist Date: Wed, 4 Feb 2015 08:44:06 +0200 Subject: [PATCH 69/71] Fix couple of issues with potentially missing data --- app/code/community/Nosto/Tagging/Model/Meta/Product.php | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/app/code/community/Nosto/Tagging/Model/Meta/Product.php b/app/code/community/Nosto/Tagging/Model/Meta/Product.php index 9295f60e..5488d2b7 100644 --- a/app/code/community/Nosto/Tagging/Model/Meta/Product.php +++ b/app/code/community/Nosto/Tagging/Model/Meta/Product.php @@ -280,7 +280,7 @@ public function loadData(Mage_Catalog_Model_Product $product) $this->_productId = $product->getId(); $this->_name = $product->getName(); - if ($product->getImage() == 'no_selection') { + if (!$product->getImage() || $product->getImage() == 'no_selection') { $this->_imageUrl = $product->getImageUrl(); } else { $this->_imageUrl = $product->getMediaConfig() @@ -329,7 +329,10 @@ public function loadData(Mage_Catalog_Model_Product $product) $this->_categories = $this->getProductCategories($product); $this->_shortDescription = (string)$product->getShortDescription(); $this->_description = (string)$product->getDescription(); - $this->_brand = (string)$product->getAttributeText('manufacturer'); + $this->_brand = $product->getManufacturer() + ? (string)$product->getAttributeText('manufacturer') + : ''; + $this->_datePublished = $product->getCreatedAt(); } From a7374ec163cc8a6acde6c32f856c63082e4ab981 Mon Sep 17 00:00:00 2001 From: Christoffer Lindqvist Date: Wed, 4 Feb 2015 08:48:49 +0200 Subject: [PATCH 70/71] Refactoring --- .../community/Nosto/Tagging/Model/Meta/Product.php | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/app/code/community/Nosto/Tagging/Model/Meta/Product.php b/app/code/community/Nosto/Tagging/Model/Meta/Product.php index 5488d2b7..f44ea05b 100644 --- a/app/code/community/Nosto/Tagging/Model/Meta/Product.php +++ b/app/code/community/Nosto/Tagging/Model/Meta/Product.php @@ -300,13 +300,9 @@ public function loadData(Mage_Catalog_Model_Product $product) $this->_currencyCode = Mage::app()->getStore() ->getCurrentCurrencyCode(); - if ($product instanceof Mage_Catalog_Model_Product - && $product->isAvailable() - ) { - $this->_availability = self::PRODUCT_IN_STOCK; - } else { - $this->_availability = self::PRODUCT_OUT_OF_STOCK; - } + $this->_availability = $product->isAvailable() + ? self::PRODUCT_IN_STOCK + : self::PRODUCT_OUT_OF_STOCK; $tag = Mage::getModel('tag/tag'); $tagCollection = $tag From 604f512a3e63aa23db1c9fd98348b62ba5a9057e Mon Sep 17 00:00:00 2001 From: Christoffer Lindqvist Date: Wed, 4 Feb 2015 12:49:58 +0200 Subject: [PATCH 71/71] Fix store scope checks when in single store mode --- .../controllers/Adminhtml/NostoController.php | 59 ++++++++++--------- 1 file changed, 31 insertions(+), 28 deletions(-) diff --git a/app/code/community/Nosto/Tagging/controllers/Adminhtml/NostoController.php b/app/code/community/Nosto/Tagging/controllers/Adminhtml/NostoController.php index 78864020..a943f1a2 100644 --- a/app/code/community/Nosto/Tagging/controllers/Adminhtml/NostoController.php +++ b/app/code/community/Nosto/Tagging/controllers/Adminhtml/NostoController.php @@ -59,12 +59,11 @@ public function redirectProxyAction() if (($error = $this->getRequest()->getParam('error')) !== null) { Mage::getSingleton('core/session')->addError($error); } - $this->_redirect( - '*/*/index', - array( - 'store' => (int)$this->getRequest()->getParam('store') - ) - ); + $params = array(); + if (($storeId = (int)$this->getRequest()->getParam('store')) !== 0) { + $params['store'] = $storeId; + } + $this->_redirect('*/*/index', $params); } /** @@ -94,12 +93,11 @@ public function connectAccountAction() ); $this->_redirectUrl($client->getAuthorizationUrl()); } else { - $this->_redirect( - '*/*/index', - array( - 'store' => (int)$this->getRequest()->getParam('store') - ) - ); + $params = array(); + if (($storeId = (int)$this->getRequest()->getParam('store')) !== 0) { + $params['store'] = $storeId; + } + $this->_redirect('*/*/index', $params); } } @@ -137,12 +135,11 @@ public function createAccountAction() ); } } - $this->_redirect( - '*/*/index', - array( - 'store' => (int)$this->getRequest()->getParam('store') - ) - ); + $params = array(); + if (($storeId = (int)$this->getRequest()->getParam('store')) !== 0) { + $params['store'] = $storeId; + } + $this->_redirect('*/*/index', $params); } /** @@ -162,24 +159,30 @@ public function removeAccountAction() ); } } - $this->_redirect( - '*/*/index', - array( - 'store' => (int)$this->getRequest()->getParam('store') - ) - ); + $params = array(); + if (($storeId = (int)$this->getRequest()->getParam('store')) !== 0) { + $params['store'] = $storeId; + } + $this->_redirect('*/*/index', $params); } /** - * Checks that a valid store view scope id has been passed in the request - * params and set that as current store. + * Checks that a valid store view scope is available. + * If it is single store setup, then just use the default store as current. + * If it is a multi store setup, the expect a store id to passed in the + * request params and set that store as the current one. * * @return bool if the current store is valid, false otherwise. */ protected function checkStoreScope() { - $storeId = (int)$this->getRequest()->getParam('store'); - if ($storeId > 0) { + if (Mage::app()->isSingleStoreMode()) { + $storeId = (int)Mage::app()->getStore(true)->getId(); + if ($storeId > 0) { + Mage::app()->setCurrentStore($storeId); + return true; + } + } elseif (($storeId = (int)$this->getRequest()->getParam('store')) !== 0) { Mage::app()->setCurrentStore($storeId); return true; }