コード例 #1
0
ファイル: Config.php プロジェクト: rebel-l/ticketconverter
 /**
  * @return F4h_TicketConverter_Config
  */
 public static function getInstance()
 {
     if (!self::$instance) {
         self::$instance = new F4h_TicketConverter_Config();
     }
     return self::$instance;
 }
コード例 #2
0
ファイル: Link.php プロジェクト: rebel-l/ticketconverter
 /**
  * @return bool|mixed
  */
 protected function request()
 {
     $options = array(CURLOPT_URL => $this->getInputArgs(), CURLOPT_HTTPHEADER => array('Authorization: Basic ' . F4h_TicketConverter_Config::getInstance()->getAuthorizationString(), 'Content-Type: text/xml'), CURLOPT_RETURNTRANSFER => true);
     $requester = new F4h_TicketConverter_Jira_Request();
     $requester->init($options);
     $response = $requester->execute();
     $requester->close();
     return $response;
 }
コード例 #3
0
ファイル: Factory.php プロジェクト: rebel-l/ticketconverter
 /**
  * @return F4h_TicketConverter_Data_Converter_Xsl_ToFo|F4h_TicketConverter_Data_Converter_Xsl_ToHtml
  */
 public static function getConverter()
 {
     switch (F4h_TicketConverter_Config::getInstance()->getOutputType()) {
         case F4h_TicketConverter_Config::OUTPUT_PDF:
             return new F4h_TicketConverter_Data_Converter_Xsl_ToFo();
             break;
         case F4h_TicketConverter_Config::OUTPUT_HTML:
             return new F4h_TicketConverter_Data_Converter_Xsl_ToHtml();
             break;
     }
 }
コード例 #4
0
ファイル: Factory.php プロジェクト: rebel-l/ticketconverter
 /**
  * @param array $input
  * @return F4h_TicketConverter_QueueBuilder_Cli_Csv_JiraExport|F4h_TicketConverter_QueueBuilder_Cli_Single|F4h_TicketConverter_QueueBuilder_Web_Link|F4h_TicketConverter_QueueBuilder_Web_List
  * @throws F4h_TicketConverter_QueueBuilder_Exception
  */
 public static function getQueueBuilder(array $input)
 {
     // webinterface via link
     if (key_exists('link', $input)) {
         $input['link'] = trim($input['link']);
         $check = 'https://fashion4home.jira.com/sr/jira.issueviews:searchrequest-xml/temp/SearchRequest.xml';
         if (strncmp($input['link'], $check, 88) === 0) {
             return new F4h_TicketConverter_QueueBuilder_Web_Link($input['link']);
         } else {
             throw new F4h_TicketConverter_QueueBuilder_Exception('Invalid URL');
         }
         // webinterface via list of ids & project select-input
     } else {
         if (key_exists('project', $input) && key_exists('list', $input)) {
             $input['list'] = trim(preg_replace('/[^0-9\\s]/', '', $input['list']));
             F4h_TicketConverter_Config::getInstance()->setProject($input['project']);
             return new F4h_TicketConverter_QueueBuilder_Web_List($input);
             // cli interface
         } else {
             if (key_exists('h', $input)) {
                 throw new F4h_TicketConverter_QueueBuilder_Exception("---help---" . PHP_EOL . "      usage: php ticketconverter.php [-s] -i [filename.csv | id]" . PHP_EOL . "\t\t\t   -p\t   define project, e.g DMF" . PHP_EOL . "              -s      set to single-input mode" . PHP_EOL . "              -i      declare input; value: filename required" . PHP_EOL . "                      in single-input mode: id required" . PHP_EOL);
             }
             //check for required parameter p
             if (!key_exists('p', $input)) {
                 throw new F4h_TicketConverter_QueueBuilder_Exception("FAILURE: parameter -p is required." . PHP_EOL . "please define project" . PHP_EOL);
             }
             //check for required parameter i
             if (!key_exists('i', $input)) {
                 throw new F4h_TicketConverter_QueueBuilder_Exception("FAILURE: parameter -i is required." . PHP_EOL . "for multi input via csv use: php ticketconverter.php -i filename.csv" . PHP_EOL . "for single input use: php ticketconverter.php -p project -s -i id" . PHP_EOL);
             }
             $inputValue = array('project' => $input['p'], 'ids' => $input['i']);
             //check if singlemode is set, if yes: build queue, if no: invoke queuebuilding
             switch (key_exists('s', $input)) {
                 case true:
                     return new F4h_TicketConverter_QueueBuilder_Cli_Single($inputValue);
                     break;
                 case false:
                     if (!file_exists($inputValue)) {
                         throw new F4h_TicketConverter_QueueBuilder_Exception("FAILURE: cannot find '" . $inputValue . "'");
                     }
                     return F4h_TicketConverter_QueueBuilder_Cli_Factory::getQueueBuilder($inputValue);
                     break;
                 default:
                     break;
             }
         }
     }
 }
コード例 #5
0
ファイル: Handler.php プロジェクト: rebel-l/ticketconverter
 /**
  * @param Exception $exception
  */
 public static function log(Exception $exception)
 {
     $logFile = F4h_TicketConverter_Config::getInstance()->getLogFile();
     $level = '';
     switch ($exception->getCode()) {
         case self::FATAL:
             $level = 'FATAL';
             break;
         case self::WARNING:
             $level = 'WARNING';
             break;
         case self::NOTICE:
             $level = 'NOTICE';
             break;
         default:
             $level = 'UNKNOWN EXCEPTION';
             break;
     }
     $timestamp = date(DATE_ATOM, time());
     $string = $timestamp . PHP_EOL . $level . ': ' . $exception->__toString() . PHP_EOL . PHP_EOL;
     file_put_contents($logFile, $string, FILE_APPEND);
 }
コード例 #6
0
ファイル: Verifier.php プロジェクト: rebel-l/ticketconverter
 /**
  * @return bool
  * @throws Exception
  */
 protected static function _checkApacheFop()
 {
     $path = F4h_TicketConverter_Config::getInstance()->getApacheFopPath();
     $cliOutput = shell_exec($path . ' -version');
     if (!$cliOutput) {
         throw new Exception('Apache FOP in ' . $path);
     }
     return true;
 }
コード例 #7
0
ファイル: Mapper.php プロジェクト: rebel-l/ticketconverter
 /**
  * @return mixed
  */
 protected function getMaskedUrl()
 {
     if (!$this->maskedUrl) {
         $this->maskedUrl = F4h_TicketConverter_Config::getInstance()->getMaskedTicketUrl();
     }
     return $this->maskedUrl;
 }
コード例 #8
0
ファイル: Sqlite.php プロジェクト: rebel-l/ticketconverter
 /**
  * gives path to sqlite database
  *
  * @return string
  */
 protected static function _getConnectionString()
 {
     $config = F4h_TicketConverter_Config::getInstance();
     $path = $config->getApplicationPath() . self::DBPATH;
     return $path;
 }
コード例 #9
0
ファイル: Manager.php プロジェクト: rebel-l/ticketconverter
 /**
  * @return bool
  */
 public function buildOutput()
 {
     $responseQueue = $this->getTicketQueue();
     if (count($responseQueue) == 0) {
         F4h_TicketConverter_Runner::getMsgContainer()->clear();
         F4h_TicketConverter_Runner::getMsgContainer()->push(new F4h_TicketConverter_Model_Message('Es wurden keine gültigen Ticketnummern eingegeben.', F4h_TicketConverter_Model_Message::ERROR));
         return false;
     }
     foreach ($responseQueue as $ticket) {
         $ticket->save();
     }
     //get serialized xml buffer
     $serializer = new F4h_TicketConverter_Data_Serializer();
     $xmlString = $serializer->serialize($responseQueue);
     //convert
     $dom = new DOMDocument();
     $dom->loadXML($xmlString);
     $converter = F4h_TicketConverter_Data_Converter_Factory::getConverter();
     $converter->setStylesheet(F4h_TicketConverter_Config::getInstance()->getStylesheetPath());
     $outputPath = $converter->convert($dom);
     return true;
 }
コード例 #10
0
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program.  If not, see <http://www.gnu.org/licenses/>.
 */
//register Autoloader class
$path = dirname(__FILE__);
require_once $path . DIRECTORY_SEPARATOR . '..' . DIRECTORY_SEPARATOR . '..' . DIRECTORY_SEPARATOR . 'app' . DIRECTORY_SEPARATOR . 'Autoloader.php';
spl_autoload_register(array('Autoloader', 'load'));
//set current ApplicationPath in Config Singleton
$config = F4h_TicketConverter_Config::getInstance();
$config->setApplicationPath(dirname(dirname(__FILE__)));
//set Environment & $_POST array
$config->setEnvironment(F4h_TicketConverter_Config::ENV_CLI);
$argv['s'] = '';
$argv['i'] = '4114';
$_SERVER['argv'] = $argv;
$arguments = getopt('h::i:s');
echo var_dump($_SERVER['argv']);
//register Exception Handler for uncaught exception
set_exception_handler('F4h_TicketConverter_Log_Exception_Handler::trap');
//register Error Handler
/**
 * @todo funktioniert der?
 */
set_error_handler('F4h_TicketConverter_Log_Error_Handler::trap', E_ALL);
コード例 #11
0
ファイル: Runner.php プロジェクト: rebel-l/ticketconverter
 /**
  *
  */
 protected static function _response()
 {
     if (F4h_TicketConverter_Config::getInstance()->getEnvironment() === F4h_TicketConverter_Config::ENV_CLI) {
         //print collected messages
         foreach (self::getMsgContainer() as $message) {
             echo $message->getMessage() . PHP_EOL;
         }
     } else {
         foreach (self::getMsgContainer() as $message) {
             switch ($message->getType()) {
                 case F4h_TicketConverter_Model_Message::SUCCESS:
                     $_SESSION['success'] = $_SESSION['success'] . '<li>' . $message->getMessage() . '</li>';
                     break;
                 case F4h_TicketConverter_Model_Message::NOTICE:
                     $_SESSION['notices'] = $_SESSION['notices'] . '<li>' . $message->getMessage() . '</li>';
                     break;
                 case F4h_TicketConverter_Model_Message::INFORMATIONAL:
                     $_SESSION['informational'] = $_SESSION['informational'] . '<li>' . $message->getMessage() . '</li>';
                     break;
                 case F4h_TicketConverter_Model_Message::ERROR:
                     $_SESSION['errors'] = $_SESSION['errors'] . $message->getMessage() . '<br />';
                     break;
             }
         }
         header('Location: index.php');
     }
 }
コード例 #12
0
ファイル: Abstract.php プロジェクト: rebel-l/ticketconverter
 /**
  * @return null|string
  */
 protected function _getNeededGroupForEnvironment()
 {
     $correctGroup = null;
     switch (F4h_TicketConverter_Config::getInstance()->getEnvironment()) {
         case F4h_TicketConverter_Config::ENV_WEB:
             $correctGroup = 'www-data';
             break;
         case F4h_TicketConverter_Config::ENV_CLI:
             $output = array();
             exec('whoami', $output);
             $correctGroup = $output[0];
             break;
     }
     return $correctGroup;
 }