PageRenderTime 42ms CodeModel.GetById 14ms RepoModel.GetById 0ms app.codeStats 0ms

/magento/app/code/core/Mage/Log/Model/Cron.php

https://bitbucket.org/jit_bec/shopifine
PHP | 108 lines | 47 code | 13 blank | 48 comment | 3 complexity | 681fa4cc9ca1be0efbc92ff5c0939220 MD5 | raw file
Possible License(s): LGPL-3.0
  1. <?php
  2. /**
  3. * Magento
  4. *
  5. * NOTICE OF LICENSE
  6. *
  7. * This source file is subject to the Open Software License (OSL 3.0)
  8. * that is bundled with this package in the file LICENSE.txt.
  9. * It is also available through the world-wide-web at this URL:
  10. * http://opensource.org/licenses/osl-3.0.php
  11. * If you did not receive a copy of the license and are unable to
  12. * obtain it through the world-wide-web, please send an email
  13. * to license@magentocommerce.com so we can send you a copy immediately.
  14. *
  15. * DISCLAIMER
  16. *
  17. * Do not edit or add to this file if you wish to upgrade Magento to newer
  18. * versions in the future. If you wish to customize Magento for your
  19. * needs please refer to http://www.magentocommerce.com for more information.
  20. *
  21. * @category Mage
  22. * @package Mage_Log
  23. * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com)
  24. * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
  25. */
  26. /**
  27. * Log Cron Model
  28. *
  29. * @category Mage
  30. * @package Mage_Log
  31. * @author Magento Core Team <core@magentocommerce.com>
  32. */
  33. class Mage_Log_Model_Cron extends Mage_Core_Model_Abstract
  34. {
  35. const XML_PATH_EMAIL_LOG_CLEAN_TEMPLATE = 'system/log/error_email_template';
  36. const XML_PATH_EMAIL_LOG_CLEAN_IDENTITY = 'system/log/error_email_identity';
  37. const XML_PATH_EMAIL_LOG_CLEAN_RECIPIENT = 'system/log/error_email';
  38. const XML_PATH_LOG_CLEAN_ENABLED = 'system/log/enabled';
  39. /**
  40. * Error messages
  41. *
  42. * @var array
  43. */
  44. protected $_errors = array();
  45. /**
  46. * Send Log Clean Warnings
  47. *
  48. * @return Mage_Log_Model_Cron
  49. */
  50. protected function _sendLogCleanEmail()
  51. {
  52. if (!$this->_errors) {
  53. return $this;
  54. }
  55. if (!Mage::getStoreConfig(self::XML_PATH_EMAIL_LOG_CLEAN_RECIPIENT)) {
  56. return $this;
  57. }
  58. $translate = Mage::getSingleton('core/translate');
  59. /* @var $translate Mage_Core_Model_Translate */
  60. $translate->setTranslateInline(false);
  61. $emailTemplate = Mage::getModel('core/email_template');
  62. /* @var $emailTemplate Mage_Core_Model_Email_Template */
  63. $emailTemplate->setDesignConfig(array('area' => 'backend'))
  64. ->sendTransactional(
  65. Mage::getStoreConfig(self::XML_PATH_EMAIL_LOG_CLEAN_TEMPLATE),
  66. Mage::getStoreConfig(self::XML_PATH_EMAIL_LOG_CLEAN_IDENTITY),
  67. Mage::getStoreConfig(self::XML_PATH_EMAIL_LOG_CLEAN_RECIPIENT),
  68. null,
  69. array('warnings' => join("\n", $this->_errors))
  70. );
  71. $translate->setTranslateInline(true);
  72. return $this;
  73. }
  74. /**
  75. * Clean logs
  76. *
  77. * @return Mage_Log_Model_Cron
  78. */
  79. public function logClean()
  80. {
  81. if (!Mage::getStoreConfigFlag(self::XML_PATH_LOG_CLEAN_ENABLED)) {
  82. return $this;
  83. }
  84. $this->_errors = array();
  85. try {
  86. Mage::getModel('log/log')->clean();
  87. }
  88. catch (Exception $e) {
  89. $this->_errors[] = $e->getMessage();
  90. $this->_errors[] = $e->getTrace();
  91. }
  92. $this->_sendLogCleanEmail();
  93. return $this;
  94. }
  95. }