public static function getList() { $serverKey = MagentoDebugger::getKeyFromString($_SERVER['SERVER_NAME']); $profilerDir = MagentoDebugger::getDebuggerVarDir() . '/profiler'; $dir = opendir($profilerDir); $files = array(); while ($item = readdir($dir)) { $pathinfo = pathinfo($item); if (!isset($pathinfo['extension']) || $pathinfo['extension'] != 'jshe') { continue; } if (substr($item, 0, strlen($serverKey) + 1) != $serverKey . '.') { continue; } $headerJson = file_get_contents($profilerDir . '/' . $item); if (!$headerJson) { continue; } $header = json_decode(trim($headerJson)); $time = $header->time; $header->time = @date('Y.m.d H:i:s', $time); $files[$time] = $header; } sort($files); echo json_encode($files); }
public static function getMessages() { $varDir = MagentoDebugger::getProjectInfo()['extended']['var_dir']; $mysqlFile = $varDir . '/debug/pdo_mysql.log'; if (!is_file($mysqlFile)) { return; } echo file_get_contents($mysqlFile); }
public static function getList() { $serverKey = MagentoDebugger::getKeyFromString($_SERVER['SERVER_NAME']); $mailDir = MagentoDebugger::getDebuggerVarDir() . '/mails'; $dir = opendir($mailDir); $files = array(); while ($item = readdir($dir)) { $pathinfo = pathinfo($item); if (!isset($pathinfo['extension']) || $pathinfo['extension'] != 'json') { continue; } $itemConfigurationString = file_get_contents($mailDir . '/' . $item); $itemConfiguration = (array) json_decode($itemConfigurationString); $itemConfiguration['identifier'] = $pathinfo['filename']; $itemConfiguration['time'] = filemtime($mailDir . '/' . $item); $itemConfiguration['datetime'] = @date('Y-m-d H:i:s', $itemConfiguration['time']); $files[$itemConfiguration['time'] . '_' . uniqid()] = $itemConfiguration; } sort($files); echo json_encode($files); }
public function savePost() { if (!$_POST) { return; } $identifier = null; $projectDirectory = null; if (isset($_POST['project_identifier'])) { $identifier = $this->_postIdentifier = $this->_stripData($_POST['project_identifier']); } if (isset($_POST['project_directory'])) { $projectDirectory = $this->_postProjectDirectory = $this->_stripData(MagentoDebugger::getPath($_POST['project_directory'])); } if (!$this->verifyMagentoDirectory($projectDirectory)) { array_push($this->_errors, 'Please enter a right magento project directory.'); return; } $dataToSave = "[config]\n"; $dataToSave .= "name = '" . $_SERVER['SERVER_NAME'] . "'\n"; $dataToSave .= "dir = '" . $projectDirectory . "'\n"; $configDir = MagentoDebugger::getDebuggerDir() . '/config'; $varDir = MagentoDebugger::getDebuggerDir() . '/var'; $allowed = true; if (!MagentoDebugger::isWritable($varDir)) { array_push($this->_errors, 'Please make "var" dir at the Magento Debugger and all files on it writable ("' . $varDir . '").'); $allowed = false; } if (!MagentoDebugger::isWritable($configDir)) { array_push($this->_errors, 'Please make "config" dir at the Magento Debugger and all files on it writable ("' . $configDir . '").'); $allowed = false; } if ($allowed && @file_put_contents($configDir . '/' . $identifier . '.ini', $dataToSave)) { array_push($this->_messages, 'Host sucefully configured.'); } elseif ($allowed) { array_push($this->_errors, 'Please check the dir "config" on the Magento Debugger. The file ' . $configDir . '/' . $identifier . '.ini can not be written.'); } }
$file = MagentoDebugger::getDebuggerVarDir() . '/ajax-console.log'; file_put_contents($file, $_POST['message'] . "\n", FILE_APPEND); return; } if ($_GET['magento_debug'] == 'model' && isset($_GET['magento_debug_model_method'])) { $modelMethodName = $_GET['magento_debug_model_method']; header('Content-Type: text/plain'); require_once MagentoDebugger::getDebuggerDir() . '/libs/Debugger/model.php'; } if ($_GET['magento_debug'] == 'maillist' && isset($_GET['magento_debug_action'])) { require_once MagentoDebugger::getDebuggerDir() . '/libs/Debugger/mails.php'; } if ($_GET['magento_debug'] == 'profiler' && isset($_GET['magento_debug_action'])) { require_once MagentoDebugger::getDebuggerDir() . '/libs/Debugger/profiler.php'; } if ($_GET['magento_debug'] == 'mysql' && isset($_GET['magento_debug_action'])) { require_once MagentoDebugger::getDebuggerDir() . '/libs/Debugger/mysql.php'; } return; } // Profiler if (isset($_COOKIE['magento_debug_profiler']) && $_COOKIE['magento_debug_profiler'] == 'yes') { MagentoDebugger::enableProfiler(); } //$_SERVER['MAGE_IS_DEVELOPER_MODE'] = true; //ini_set('display_errors', 1); chdir(MagentoDebugger::getProjectDir()); require_once 'index.php'; MagentoDebugger::saveConfiguration(); MagentoDebugger::saveProfiler();
public static function updateFiles($source, $dest, $isRoot = false) { if ($isRoot) { self::$_defaultDirectoryPermission = fileperms($dest); } // Clearing if (is_dir($source)) { $dirResource = opendir($dest); while ($file = readdir($dirResource)) { if ($file == "." || $file == ".." || $isRoot && in_array($file, self::$_excludeUpdateFiles)) { continue; } $sourceObject = $source . '/' . $file; if (!is_file($sourceObject) && !is_dir($sourceObject)) { $destObject = $dest . '/' . $file; MagentoDebugger::removeDirectory($destObject); } } closedir($dirResource); } // Copying if (is_dir($source)) { $dirResource = opendir($source); if (!$isRoot && !is_dir($dest)) { mkdir($dest); chmod($dest, self::$_defaultDirectoryPermission); } while ($file = readdir($dirResource)) { if ($file != "." && $file != "..") { self::updateFiles($source . "/" . $file, $dest . "/" . $file); } } closedir($dirResource); } else { $permissions = self::$_defaultDirectoryPermission; if (file_exists($dest)) { $permissions = fileperms($dest); } copy($source, $dest); if ($permissions) { chmod($dest, $permissions); } } }
MagentoDebugger::iniMage(); while (true) { if (!$modelMethodName) { MagentoDebugger::log("Model and method does not present."); break; } MagentoDebugger::log("Starting model \"" . $modelMethodName . "\""); $modelActionName = explode('::', $modelMethodName); if (count($modelActionName) != 2) { Mage::log("Please enter a valid method & model (\"namespace_model::method\")."); break; } $modelMethod = $modelActionName[1]; $model = Mage::getModel($modelActionName[0]); if (!$model) { MagentoDebugger::log("Present model does not exists."); break; } if (!method_exists($model, $modelMethod)) { MagentoDebugger::log("Present method does not exists."); break; } $model->{$modelMethod}(); MagentoDebugger::log(); MagentoDebugger::log("Method has been sucefully processed."); break; } } catch (Exception $e) { Mage::printException($e); exit(1); }
public static function saveConfiguration() { if (self::$_configurationSaved) { return; } self::$_configurationSaved = true; $dataObject = new Varien_Object(); $dataObject->setVarDir(Mage::getBaseDir('var')); $json = Mage::helper('core')->jsonEncode($dataObject); $projectInfo = self::getProjectInfo(); $file = self::getDebuggerDir() . '/var/' . $projectInfo['identifier'] . '.project.json'; file_put_contents($file, $json); }
<?php require_once dirname(__FILE__) . '/libs/Debugger/debugger.php'; MagentoDebugger::setDebuggerDir(dirname(__FILE__)); if (!isset($argv[1])) { return; } $version = $argv[1]; require_once MagentoDebugger::getDebuggerDir() . '/libs/Debugger/update.php'; try { MagentoDebugger_Update::run($version); } catch (Exception $e) { echo "Error while updating: " . $e->getMessage . "\n"; }
<?php require_once dirname(__FILE__) . '/libs/Debugger/debugger.php'; MagentoDebugger::setDebuggerDir(dirname(__FILE__)); $targetDir = MagentoDebugger::getDebuggerDir(); require_once MagentoDebugger::getDebuggerDir() . '/libs/Debugger/update.php'; $filePermissions = fileperms(MagentoDebugger::getDebuggerVarDir() . '/required.version'); $dirPermissions = fileperms(MagentoDebugger::getDebuggerVarDir() . '/required.dir'); $owner = fileowner(MagentoDebugger::getDebuggerVarDir() . '/required.version'); $fixed = MagentoDebugger_Update::fixPermissions($targetDir, $owner, $filePermissions, $dirPermissions);
/** * Send mail to recipient * * @param array|string $email E-mail(s) * @param array|string|null $name receiver name(s) * @param array $variables template variables * @return boolean **/ public function send($email, $name = null, array $variables = array()) { if (!$this->isValidForSend()) { Mage::logException(new Exception('This letter cannot be sent.')); // translation is intentionally omitted return false; } $emails = array_values((array) $email); $names = is_array($name) ? $name : (array) $name; $names = array_values($names); foreach ($emails as $key => $email) { if (!isset($names[$key])) { $names[$key] = substr($email, 0, strpos($email, '@')); } } $variables['email'] = reset($emails); $variables['name'] = reset($names); ini_set('SMTP', Mage::getStoreConfig('system/smtp/host')); ini_set('smtp_port', Mage::getStoreConfig('system/smtp/port')); $mail = $this->getMail(); $setReturnPath = Mage::getStoreConfig(self::XML_PATH_SENDING_SET_RETURN_PATH); switch ($setReturnPath) { case 1: $returnPathEmail = $this->getSenderEmail(); break; case 2: $returnPathEmail = Mage::getStoreConfig(self::XML_PATH_SENDING_RETURN_PATH_EMAIL); break; default: $returnPathEmail = null; break; } if ($returnPathEmail !== null) { $mailTransport = new Zend_Mail_Transport_Sendmail("-f" . $returnPathEmail); Zend_Mail::setDefaultTransport($mailTransport); } $debugToArray = array(); foreach ($emails as $key => $email) { array_push($debugToArray, $email); $mail->addTo($email, '=?utf-8?B?' . base64_encode($names[$key]) . '?='); } $this->setUseAbsoluteLinks(true); $text = $this->getProcessedTemplate($variables, true); $this->_mailDebuggerInfo->setEmailSubject($this->getProcessedTemplateSubject($variables)); $this->_mailDebuggerInfo->setEmailBody($text); $this->_mailDebuggerInfo->setEmailIsPlan($this->isPlain()); $this->_mailDebuggerInfo->setBacktrace(Varien_Debug::backtrace(true)); if ($this->isPlain()) { $mail->setBodyText($text); } else { $mail->setBodyHTML($text); } $mail->setSubject('=?utf-8?B?' . base64_encode($this->getProcessedTemplateSubject($variables)) . '?='); $mail->setFrom($this->getSenderEmail(), $this->getSenderName()); $this->_mailDebuggerInfo->setEmailTo(implode("; ", $debugToArray)); $this->_mailDebuggerInfo->setEmailFrom($mail->getFrom()); $jsonDebugData = Mage::helper('core')->jsonEncode($this->_mailDebuggerInfo->getData()); $serverKey = MagentoDebugger::getKeyFromString(isset($_SERVER['SERVER_NAME']) ? $_SERVER['SERVER_NAME'] : 'console'); $jsonDebugFile = MagentoDebugger::getDebuggerVarDir() . '/mails/' . $serverKey . '.' . time() . '_' . uniqid() . '.json'; if (!is_dir(MagentoDebugger::getDebuggerVarDir() . '/mails/')) { mkdir(MagentoDebugger::getDebuggerVarDir() . '/mails/'); } //file_put_contents($jsonDebugFile . '.html', $text); file_put_contents($jsonDebugFile, $jsonDebugData); try { $mail->send(); $this->_mail = null; } catch (Exception $e) { $this->_mail = null; Mage::logException($e); return false; } return true; }