コード例 #1
0
    /**
     * Import images and other media file for products
     *
     * @return string
     */
    public function generate()
    {
        $objTree = new \FileTree(\FileTree::getAttributesFromDca($GLOBALS['TL_DCA']['tl_iso_product']['fields']['source'], 'source', null, 'source', 'tl_iso_product'));
        // Import assets
        if (\Input::post('FORM_SUBMIT') == 'tl_iso_product_import' && \Input::post('source') != '') {
            $objFolder = \FilesModel::findByUuid(\StringUtil::uuidToBin(\Input::post('source')));
            if (null !== $objFolder) {
                $this->importFromPath($objFolder->path);
            }
        }
        // Return form
        return '
<div id="tl_buttons">
<a href="' . ampersand(str_replace('&key=import', '', \Environment::get('request'))) . '" class="header_back" title="' . specialchars($GLOBALS['TL_LANG']['MSC']['backBT']) . '">' . $GLOBALS['TL_LANG']['MSC']['backBT'] . '</a>
</div>

<h2 class="sub_headline">' . $GLOBALS['TL_LANG']['tl_iso_product']['import'][1] . '</h2>

<div class="tl_message"><div class="tl_info">' . $GLOBALS['TL_LANG']['tl_iso_product']['importAssetsDescr'] . '</div></div>
' . \Message::generate() . '

<form action="' . ampersand(\Environment::get('request'), true) . '" id="tl_iso_product_import" class="tl_form" method="post">
<div class="tl_formbody_edit iso_importassets">
<input type="hidden" name="FORM_SUBMIT" value="tl_iso_product_import">
<input type="hidden" name="REQUEST_TOKEN" value="' . REQUEST_TOKEN . '">

<div class="tl_tbox block">
  <h3><label for="source">' . $GLOBALS['TL_LANG']['tl_iso_product']['source'][0] . '</label></h3>
  ' . $objTree->generate() . (strlen($GLOBALS['TL_LANG']['tl_iso_product']['source'][1]) ? '
  <p class="tl_help">' . $GLOBALS['TL_LANG']['tl_iso_product']['source'][1] . '</p>' : '') . '
</div>

</div>

<div class="tl_formbody_submit">

<div class="tl_submit_container">
<input type="submit" name="save" id="save" class="tl_submit" alt="import product assets" accesskey="s" value="' . specialchars($GLOBALS['TL_LANG']['tl_iso_product']['import'][0]) . '">
</div>

</div>
</form>';
    }
コード例 #2
0
ファイル: tl_iso_products.php プロジェクト: rikaix/core-1
    /**
     * Import images and other media file for products
     * @param object
     * @param array
     * @return string
     */
    public function importAssets($dc, $arrNewImages = array())
    {
        $objTree = new FileTree($this->prepareForWidget($GLOBALS['TL_DCA']['tl_iso_products']['fields']['source'], 'source', null, 'source', 'tl_iso_products'));
        // Import assets
        if ($this->Input->post('FORM_SUBMIT') == 'tl_iso_products_import' && $this->Input->post('source') != '') {
            $this->import('Files');
            $strPath = $this->Input->post('source');
            $arrFiles = scan(TL_ROOT . '/' . $strPath);
            if (!count($arrFiles)) {
                $_SESSION['TL_ERROR'][] = $GLOBALS['ISO_LANG']['MSC']['noFilesInFolder'];
                $this->reload();
            }
            $arrDelete = array();
            $objProducts = $this->Database->prepare("SELECT * FROM tl_iso_products WHERE pid=0")->execute();
            while ($objProducts->next()) {
                $arrImageNames = array();
                $arrImages = deserialize($objProducts->images);
                if (!is_array($arrImages)) {
                    $arrImages = array();
                } else {
                    foreach ($arrImages as $row) {
                        if ($row['src']) {
                            $arrImageNames[] = $row['src'];
                        }
                    }
                }
                $arrPattern = array();
                $arrPattern[] = $objProducts->alias ? standardize($objProducts->alias, true) : null;
                $arrPattern[] = $objProducts->sku ? $objProducts->sku : null;
                $arrPattern[] = $objProducts->sku ? standardize($objProducts->sku, true) : null;
                $arrPattern[] = count($arrImageNames) ? implode('|', $arrImageNames) : null;
                // HOOK: add custom import regex patterns
                if (isset($GLOBALS['ISO_HOOKS']['addAssetImportRegexp']) && is_array($GLOBALS['ISO_HOOKS']['addAssetImportRegexp'])) {
                    foreach ($GLOBALS['ISO_HOOKS']['addAssetImportRegexp'] as $callback) {
                        $this->import($callback[0]);
                        $arrPattern = $this->{$callback}[0]->{$callback}[1]($arrPattern, $objProducts);
                    }
                }
                $strPattern = '@^(' . implode('|', array_filter($arrPattern)) . ')@i';
                $arrMatches = preg_grep($strPattern, $arrFiles);
                if (count($arrMatches)) {
                    $arrNewImages = array();
                    foreach ($arrMatches as $file) {
                        if (is_dir(TL_ROOT . '/' . $strPath . '/' . $file)) {
                            $arrSubfiles = scan(TL_ROOT . '/' . $strPath . '/' . $file);
                            if (count($arrSubfiles)) {
                                foreach ($arrSubfiles as $subfile) {
                                    if (is_file($strPath . '/' . $file . '/' . $subfile)) {
                                        $objFile = new File($strPath . '/' . $file . '/' . $subfile);
                                        if ($objFile->isGdImage) {
                                            $arrNewImages[] = $strPath . '/' . $file . '/' . $subfile;
                                        }
                                    }
                                }
                            }
                        } elseif (is_file(TL_ROOT . '/' . $strPath . '/' . $file)) {
                            $objFile = new File($strPath . '/' . $file);
                            if ($objFile->isGdImage) {
                                $arrNewImages[] = $strPath . '/' . $file;
                            }
                        }
                    }
                    if (count($arrNewImages)) {
                        foreach ($arrNewImages as $strFile) {
                            $pathinfo = pathinfo(TL_ROOT . '/' . $strFile);
                            // Make sure directory exists
                            $this->Files->mkdir('isotope/' . substr($pathinfo['filename'], 0, 1) . '/');
                            $strCacheName = $pathinfo['filename'] . '-' . substr(md5_file(TL_ROOT . '/' . $strFile), 0, 8) . '.' . $pathinfo['extension'];
                            $this->Files->copy($strFile, 'isotope/' . substr($pathinfo['filename'], 0, 1) . '/' . $strCacheName);
                            $arrImages[] = array('src' => $strCacheName);
                            $arrDelete[] = $strFile;
                            $_SESSION['TL_CONFIRM'][] = sprintf('Imported file %s for product "%s"', $pathinfo['filename'] . '.' . $pathinfo['extension'], $objProducts->name);
                        }
                        $this->Database->prepare("UPDATE tl_iso_products SET images=? WHERE id=?")->execute(serialize($arrImages), $objProducts->id);
                    }
                }
            }
            if (count($arrDelete)) {
                $arrDelete = array_unique($arrDelete);
                foreach ($arrDelete as $file) {
                    $this->Files->delete($file);
                }
            }
            $this->reload();
        }
        // Return form
        return '
<div id="tl_buttons">
<a href="' . ampersand(str_replace('&key=import', '', $this->Environment->request)) . '" class="header_back" title="' . specialchars($GLOBALS['TL_LANG']['MSC']['backBT']) . '">' . $GLOBALS['TL_LANG']['MSC']['backBT'] . '</a>
</div>

<h2 class="sub_headline">' . $GLOBALS['TL_LANG']['tl_iso_products']['import'][1] . '</h2>' . $this->getMessages() . '

<form action="' . ampersand($this->Environment->request, true) . '" id="tl_iso_products_import" class="tl_form" method="post">
<div class="tl_formbody_edit">
<input type="hidden" name="FORM_SUBMIT" value="tl_iso_products_import">
<input type="hidden" name="REQUEST_TOKEN" value="' . REQUEST_TOKEN . '">

<div class="tl_tbox block">
  <h3><label for="source">' . $GLOBALS['TL_LANG']['tl_iso_products']['source'][0] . '</label> <a href="typolight/files.php" title="' . specialchars($GLOBALS['TL_LANG']['MSC']['fileManager']) . '" onclick="Backend.getScrollOffset(); this.blur(); Backend.openWindow(this, 750, 500); return false;">' . $this->generateImage('filemanager.gif', $GLOBALS['TL_LANG']['MSC']['fileManager'], 'style="vertical-align:text-bottom;"') . '</a></h3>
  ' . $objTree->generate() . (strlen($GLOBALS['TL_LANG']['tl_iso_products']['source'][1]) ? '
  <p class="tl_help">' . $GLOBALS['TL_LANG']['tl_iso_products']['source'][1] . '</p>' : '') . '
</div>

</div>

<div class="tl_formbody_submit">

<div class="tl_submit_container">
<input type="submit" name="save" id="save" class="tl_submit" alt="import product assets" accesskey="s" value="' . specialchars($GLOBALS['TL_LANG']['tl_iso_products']['import'][0]) . '">
</div>

</div>
</form>';
    }
コード例 #3
0
ファイル: StyleSheets.php プロジェクト: jens-wetzel/use2
    /**
     * Return a form to choose an existing style sheet and import it
     * @return string
     */
    public function importStyleSheet()
    {
        if ($this->Input->get('key') != 'import') {
            return '';
        }
        // Import CSS
        if ($this->Input->post('FORM_SUBMIT') == 'tl_style_sheet_import') {
            if (!$this->Input->post('source') || !is_array($this->Input->post('source'))) {
                $this->addErrorMessage($GLOBALS['TL_LANG']['ERR']['all_fields']);
                $this->reload();
            }
            foreach ($this->Input->post('source') as $strCssFile) {
                // Folders cannot be imported
                if (is_dir(TL_ROOT . '/' . $strCssFile)) {
                    $this->addErrorMessage(sprintf($GLOBALS['TL_LANG']['ERR']['importFolder'], basename($strCssFile)));
                    continue;
                }
                $objFile = new File($strCssFile);
                // Check the file extension
                if ($objFile->extension != 'css') {
                    $this->addErrorMessage(sprintf($GLOBALS['TL_LANG']['ERR']['filetype'], $objFile->extension));
                    continue;
                }
                $strFile = $objFile->getContent();
                $strFile = str_replace("\r", '', $strFile);
                $strName = preg_replace('/\\.css$/i', '', basename($strCssFile));
                $strName = $this->checkStyleSheetName($strName);
                // Create the new style sheet
                $objStyleSheet = $this->Database->prepare("INSERT INTO tl_style_sheet (pid, tstamp, name, media) VALUES (?, ?, ?, ?)")->execute($this->Input->get('id'), time(), $strName, array('all'));
                $insertId = $objStyleSheet->insertId;
                $intSorting = 0;
                $strComment = '';
                $strCategory = '';
                $arrChunks = array();
                if (!is_numeric($insertId) || $insertId < 0) {
                    throw new Exception('Invalid insert ID');
                }
                $strFile = str_replace('/**/', '[__]', $strFile);
                $strFile = preg_replace(array('/\\/\\*\\*\\n( *\\*.*\\n){2,} *\\*\\//', '/\\/\\*[^\\*]+\\{[^\\}]+\\}[^\\*]+\\*\\//'), '', $strFile);
                $arrChunks = preg_split('/\\{([^\\}]*)\\}|\\*\\//U', $strFile, -1, PREG_SPLIT_DELIM_CAPTURE);
                for ($i = 0; $i < count($arrChunks); $i++) {
                    $strChunk = trim($arrChunks[$i]);
                    if ($strChunk == '') {
                        continue;
                    }
                    $strChunk = preg_replace('/[\\n\\r\\t]+/', ' ', $strChunk);
                    // Category
                    if (strncmp($strChunk, '/**', 3) === 0) {
                        $strCategory = str_replace(array('/*', '*/', '*', '[__]'), '', $strChunk);
                        $strCategory = trim(preg_replace('/\\s+/', ' ', $strCategory));
                    } elseif (strncmp($strChunk, '/*', 2) === 0) {
                        $strComment = str_replace(array('/*', '*/', '*', '[__]'), '', $strChunk);
                        $strComment = trim(preg_replace('/\\s+/', ' ', $strComment));
                    } else {
                        $strNext = trim($arrChunks[$i + 1]);
                        $strNext = preg_replace('/[\\n\\r\\t]+/', ' ', $strNext);
                        $arrDefinition = array('pid' => $insertId, 'category' => $strCategory, 'comment' => $strComment, 'sorting' => $intSorting += 128, 'selector' => $strChunk, 'attributes' => $strNext);
                        $this->createDefinition($arrDefinition);
                        ++$i;
                        $strComment = '';
                    }
                }
                // Write the style sheet
                $this->updateStyleSheet($insertId);
                // Notify the user
                if ($strName . '.css' != basename($strCssFile)) {
                    $this->addInfoMessage(sprintf($GLOBALS['TL_LANG']['tl_style_sheet']['css_renamed'], basename($strCssFile), $strName . '.css'));
                } else {
                    $this->addConfirmationMessage(sprintf($GLOBALS['TL_LANG']['tl_style_sheet']['css_imported'], $strName . '.css'));
                }
            }
            // Redirect
            setcookie('BE_PAGE_OFFSET', 0, 0, '/');
            $this->redirect(str_replace('&key=import', '', $this->Environment->request));
        }
        $objTree = new FileTree($this->prepareForWidget($GLOBALS['TL_DCA']['tl_style_sheet']['fields']['source'], 'source', null, 'source', 'tl_style_sheet'));
        // Return form
        return '
<div id="tl_buttons">
<a href="' . ampersand(str_replace('&key=import', '', $this->Environment->request)) . '" class="header_back" title="' . specialchars($GLOBALS['TL_LANG']['MSC']['backBT']) . '" accesskey="b">' . $GLOBALS['TL_LANG']['MSC']['backBT'] . '</a>
</div>

<h2 class="sub_headline">' . $GLOBALS['TL_LANG']['tl_style_sheet']['import'][1] . '</h2>
' . $this->getMessages() . '
<form action="' . ampersand($this->Environment->request, true) . '" id="tl_style_sheet_import" class="tl_form" method="post">
<div class="tl_formbody_edit">
<input type="hidden" name="FORM_SUBMIT" value="tl_style_sheet_import">
<input type="hidden" name="REQUEST_TOKEN" value="' . REQUEST_TOKEN . '">

<div class="tl_tbox">
  <h3><label for="source">' . $GLOBALS['TL_LANG']['tl_style_sheet']['source'][0] . '</label> <a href="contao/files.php" title="' . specialchars($GLOBALS['TL_LANG']['MSC']['fileManager']) . '" data-lightbox="files 765 80%">' . $this->generateImage('filemanager.gif', $GLOBALS['TL_LANG']['MSC']['fileManager'], 'style="vertical-align:text-bottom"') . '</a></h3>' . $objTree->generate() . (strlen($GLOBALS['TL_LANG']['tl_style_sheet']['source'][1]) ? '
  <p class="tl_help tl_tip">' . $GLOBALS['TL_LANG']['tl_style_sheet']['source'][1] . '</p>' : '') . '
</div>

</div>

<div class="tl_formbody_submit">

<div class="tl_submit_container">
  <input type="submit" name="save" id="save" class="tl_submit" accesskey="s" value="' . specialchars($GLOBALS['TL_LANG']['tl_style_sheet']['import'][0]) . '">
</div>

</div>
</form>';
    }
コード例 #4
0
ファイル: Theme.php プロジェクト: narrenfrei/core
	/**
	 * Import a theme
	 */
	public function importTheme()
	{
		if ($this->Input->post('FORM_SUBMIT') == 'tl_theme_import')
		{
			$source = $this->Input->post('source', true);

			// Check the file names
			if (!$source || !is_array($source))
			{
				$this->addErrorMessage($GLOBALS['TL_LANG']['ERR']['all_fields']);
				$this->reload();
			}

			$arrFiles = array();

			// Skip invalid entries
			foreach ($source as $strZipFile)
			{
				// Skip folders
				if (is_dir(TL_ROOT . '/' . $strZipFile))
				{
					$this->addErrorMessage(sprintf($GLOBALS['TL_LANG']['ERR']['importFolder'], basename($strZipFile)));
					continue;
				}

				$objFile = new File($strZipFile);

				// Skip anything but .cto files
				if ($objFile->extension != 'cto')
				{
					$this->addErrorMessage(sprintf($GLOBALS['TL_LANG']['ERR']['filetype'], $objFile->extension));
					continue;
				}

				$arrFiles[] = $strZipFile;
			}

			// Check wether there are any files left
			if (empty($arrFiles))
			{
				$this->addErrorMessage($GLOBALS['TL_LANG']['ERR']['all_fields']);
				$this->reload();
			}

			// Store the field names of the theme tables
			$arrDbFields = array
			(
				'tl_theme'       => $this->Database->getFieldNames('tl_theme'),
				'tl_style_sheet' => $this->Database->getFieldNames('tl_style_sheet'),
				'tl_style'       => $this->Database->getFieldNames('tl_style'),
				'tl_module'      => $this->Database->getFieldNames('tl_module'),
				'tl_layout'      => $this->Database->getFieldNames('tl_layout')
			);

			// Proceed
			if ($this->Input->post('confirm') == 1)
			{
				return $this->extractThemeFiles($arrFiles, $arrDbFields);
			}
			else
			{
				return $this->compareThemeFiles($arrFiles, $arrDbFields);
			}
		}

		$objTree = new FileTree($this->prepareForWidget($GLOBALS['TL_DCA']['tl_theme']['fields']['source'], 'source', null, 'source', 'tl_theme'));

		// Return the form
		return '
<div id="tl_buttons">
<a href="'.ampersand(str_replace('&key=importTheme', '', $this->Environment->request)).'" class="header_back" title="'.specialchars($GLOBALS['TL_LANG']['MSC']['backBT']).'" accesskey="b">'.$GLOBALS['TL_LANG']['MSC']['backBT'].'</a>
</div>

<h2 class="sub_headline">'.$GLOBALS['TL_LANG']['tl_theme']['importTheme'][1].'</h2>
'.$this->getMessages().'
<form action="'.ampersand($this->Environment->request, true).'" id="tl_theme_import" class="tl_form" method="post">
<div class="tl_formbody_edit">
<input type="hidden" name="FORM_SUBMIT" value="tl_theme_import">
<input type="hidden" name="REQUEST_TOKEN" value="'.REQUEST_TOKEN.'">

<div class="tl_tbox">
  <h3><label for="source">'.$GLOBALS['TL_LANG']['tl_theme']['source'][0].'</label> <a href="contao/files.php" title="' . specialchars($GLOBALS['TL_LANG']['MSC']['fileManager']) . '" data-lightbox="files 765 80%">' . $this->generateImage('filemanager.gif', $GLOBALS['TL_LANG']['MSC']['fileManager'], 'style="vertical-align:text-bottom"') . '</a></h3>'.$objTree->generate().(strlen($GLOBALS['TL_LANG']['tl_theme']['source'][1]) ? '
  <p class="tl_help tl_tip">'.$GLOBALS['TL_LANG']['tl_theme']['source'][1].'</p>' : '').'
</div>

</div>

<div class="tl_formbody_submit">

<div class="tl_submit_container">
  <input type="submit" name="save" id="save" class="tl_submit" accesskey="s" value="'.specialchars($GLOBALS['TL_LANG']['tl_theme']['importTheme'][0]).'">
</div>

</div>
</form>';
	}
コード例 #5
0
ファイル: Newsletter.php プロジェクト: Juuro/Dreamapp-Website
    /**
     * Return a form to choose a CSV file and import it
     * @param object
     * @return string
     */
    public function importRecipients()
    {
        if ($this->Input->get('key') != 'import') {
            return '';
        }
        // Import CSS
        if ($this->Input->post('FORM_SUBMIT') == 'tl_recipients_import') {
            if (!$this->Input->post('source') || !is_array($this->Input->post('source'))) {
                $_SESSION['TL_ERROR'][] = $GLOBALS['TL_LANG']['ERR']['all_fields'];
                $this->reload();
            }
            $time = time();
            $intTotal = 0;
            $intInvalid = 0;
            foreach ($this->Input->post('source') as $strCsvFile) {
                $objFile = new File($strCsvFile);
                if ($objFile->extension != 'csv') {
                    $_SESSION['TL_ERROR'][] = sprintf($GLOBALS['TL_LANG']['ERR']['filetype'], $objFile->extension);
                    continue;
                }
                // Get separator
                switch ($this->Input->post('separator')) {
                    case 'semicolon':
                        $strSeparator = ';';
                        break;
                    case 'tabulator':
                        $strSeparator = '\\t';
                        break;
                    case 'linebreak':
                        $strSeparator = '\\n';
                        break;
                    default:
                        $strSeparator = ',';
                        break;
                }
                $arrRecipients = array();
                $resFile = $objFile->handle;
                while (($arrRow = @fgetcsv($resFile, null, $strSeparator)) !== false) {
                    $arrRecipients = array_merge($arrRecipients, $arrRow);
                }
                $arrRecipients = array_filter(array_unique($arrRecipients));
                foreach ($arrRecipients as $strRecipient) {
                    // Skip invalid entries
                    if (!$this->isValidEmailAddress($strRecipient)) {
                        $this->log('Recipient address "' . $strRecipient . '" seems to be invalid and has been skipped', 'Newsletter importRecipients()', TL_ERROR);
                        ++$intInvalid;
                        continue;
                    }
                    // Check whether the e-mail address exists
                    $objRecipient = $this->Database->prepare("SELECT COUNT(*) AS total FROM tl_newsletter_recipients WHERE pid=? AND email=?")->execute($this->Input->get('id'), $strRecipient);
                    if ($objRecipient->total < 1) {
                        $this->Database->prepare("INSERT INTO tl_newsletter_recipients SET pid=?, tstamp={$time}, email=?, active=1")->execute($this->Input->get('id'), $strRecipient);
                        ++$intTotal;
                    }
                }
            }
            $_SESSION['TL_CONFIRM'][] = sprintf($GLOBALS['TL_LANG']['tl_newsletter_recipients']['confirm'], $intTotal);
            if ($intInvalid > 0) {
                $_SESSION['TL_INFO'][] = sprintf($GLOBALS['TL_LANG']['tl_newsletter_recipients']['invalid'], $intInvalid);
            }
            setcookie('BE_PAGE_OFFSET', 0, 0, '/');
            $this->reload();
        }
        $objTree = new FileTree($this->prepareForWidget($GLOBALS['TL_DCA']['tl_newsletter_recipients']['fields']['source'], 'source', null, 'source', 'tl_newsletter_recipients'));
        // Return form
        return '
<div id="tl_buttons">
<a href="' . ampersand(str_replace('&key=import', '', $this->Environment->request)) . '" class="header_back" title="' . specialchars($GLOBALS['TL_LANG']['MSC']['backBT']) . '" accesskey="b">' . $GLOBALS['TL_LANG']['MSC']['backBT'] . '</a>
</div>

<h2 class="sub_headline">' . $GLOBALS['TL_LANG']['tl_newsletter_recipients']['import'][1] . '</h2>
' . $this->getMessages() . '
<form action="' . ampersand($this->Environment->request, true) . '" id="tl_recipients_import" class="tl_form" method="post">
<div class="tl_formbody_edit">
<input type="hidden" name="FORM_SUBMIT" value="tl_recipients_import">
<input type="hidden" name="REQUEST_TOKEN" value="' . REQUEST_TOKEN . '">

<div class="tl_tbox block">
  <h3><label for="separator">' . $GLOBALS['TL_LANG']['MSC']['separator'][0] . '</label></h3>
  <select name="separator" id="separator" class="tl_select" onfocus="Backend.getScrollOffset();">
    <option value="comma">' . $GLOBALS['TL_LANG']['MSC']['comma'] . '</option>
    <option value="semicolon">' . $GLOBALS['TL_LANG']['MSC']['semicolon'] . '</option>
    <option value="tabulator">' . $GLOBALS['TL_LANG']['MSC']['tabulator'] . '</option>
    <option value="linebreak">' . $GLOBALS['TL_LANG']['MSC']['linebreak'] . '</option>
  </select>' . ($GLOBALS['TL_LANG']['MSC']['separator'][1] != '' ? '
  <p class="tl_help tl_tip">' . $GLOBALS['TL_LANG']['MSC']['separator'][1] . '</p>' : '') . '
  <h3><label for="source">' . $GLOBALS['TL_LANG']['MSC']['source'][0] . '</label> <a href="contao/files.php" title="' . specialchars($GLOBALS['TL_LANG']['MSC']['fileManager']) . '" rel="lightbox[files 765 80%]">' . $this->generateImage('filemanager.gif', $GLOBALS['TL_LANG']['MSC']['fileManager'], 'style="vertical-align:text-bottom;"') . '</a></h3>
' . $objTree->generate() . ($GLOBALS['TL_LANG']['MSC']['source'][1] != '' ? '
  <p class="tl_help tl_tip">' . $GLOBALS['TL_LANG']['MSC']['source'][1] . '</p>' : '') . '
</div>

</div>

<div class="tl_formbody_submit">

<div class="tl_submit_container">
  <input type="submit" name="save" id="save" class="tl_submit" accesskey="s" value="' . specialchars($GLOBALS['TL_LANG']['tl_newsletter_recipients']['import'][0]) . '">
</div>

</div>
</form>';
    }
コード例 #6
0
ファイル: DC_Formdata.php プロジェクト: jens-wetzel/use2
    /**
     * Generate the form to select import source and basic settings and return it as HTML string
     * @return string
     */
    protected function formImportSource()
    {
        $arrSessionData = $this->Session->get('EFG');
        $objTree = new FileTree($this->prepareForWidget($GLOBALS['TL_DCA']['tl_formdata']['fields']['import_source'], 'import_source', null, 'import_source', 'tl_formdata'));
        // Return form
        return '
<div id="tl_buttons">
<a href="' . ampersand(str_replace('&key=import', '', $this->Environment->request)) . '" class="header_back" title="' . specialchars($GLOBALS['TL_LANG']['MSC']['backBT']) . '" accesskey="b">' . $GLOBALS['TL_LANG']['MSC']['backBT'] . '</a>
</div>

<h2 class="sub_headline">' . $GLOBALS['TL_LANG']['tl_formdata']['import'][1] . '</h2>
' . $this->getMessages() . '
<form action="' . ampersand($this->Environment->request, true) . '" id="tl_formdata_import" class="tl_form" method="post">
<div class="tl_formbody_edit">
<input type="hidden" name="FORM_SUBMIT" value="tl_formdata_import">
<input type="hidden" name="FORM_MODE" value="preview">
<input type="hidden" name="REQUEST_TOKEN" value="' . REQUEST_TOKEN . '">

<div class="tl_tbox block">
  <div class="w50">
  <h3><label for="separator">' . $GLOBALS['TL_LANG']['MSC']['separator'][0] . '</label></h3>
  <select name="separator" id="separator" class="tl_select" onfocus="Backend.getScrollOffset()">
    <option value="comma"' . ($arrSessionData['import'][$this->strFormKey]['separator'] == 'comma' ? ' selected="selected"' : '') . '>' . $GLOBALS['TL_LANG']['MSC']['comma'] . '</option>
    <option value="semicolon"' . ($arrSessionData['import'][$this->strFormKey]['separator'] == 'semicolon' ? ' selected="selected"' : '') . '>' . $GLOBALS['TL_LANG']['MSC']['semicolon'] . '</option>
    <option value="tabulator"' . ($arrSessionData['import'][$this->strFormKey]['separator'] == 'tabulator' ? ' selected="selected"' : '') . '>' . $GLOBALS['TL_LANG']['MSC']['tabulator'] . '</option>
  </select>' . (strlen($GLOBALS['TL_LANG']['MSC']['separator'][1]) ? '
  <p class="tl_help tl_tip">' . $GLOBALS['TL_LANG']['MSC']['separator'][1] . '</p>' : '') . '
  </div>
  <div class="w50 m12 cbx">
  <div class="tl_checkbox_single_container">
  <input name="csv_has_header" id="csv_has_header" type="checkbox" value="1"' . ($arrSessionData['import'][$this->strFormKey]['csv_has_header'] == '1' ? ' checked="checked"' : '') . '>
  <label for="csv_has_header">' . $GLOBALS['TL_LANG']['tl_formdata']['csv_has_header'][0] . '</label>
  </div>
  <p class="tl_help tl_tip">' . $GLOBALS['TL_LANG']['tl_formdata']['csv_has_header'][1] . '</p>
  </div>

  <div class="clr">
  <h3><label for="import_source">' . $GLOBALS['TL_LANG']['tl_formdata']['import_source'][0] . '</label> <a href="contao/files.php" title="' . specialchars($GLOBALS['TL_LANG']['MSC']['fileManager']) . '" onclick="Backend.getScrollOffset(); Backend.openWindow(this, 750, 500); return false;">' . $this->generateImage('filemanager.gif', $GLOBALS['TL_LANG']['MSC']['fileManager'], 'style="vertical-align:text-bottom;"') . '</a></h3>
' . $objTree->generate() . (strlen($GLOBALS['TL_LANG']['tl_formdata']['import_source'][1]) ? '
  <p class="tl_help tl_tip">' . $GLOBALS['TL_LANG']['tl_formdata']['import_source'][1] . '</p>' : '') . '
  </div>
</div>

</div>

<div class="tl_formbody_submit">

<div class="tl_submit_container">
  <input type="submit" name="save" id="save" class="tl_submit" accesskey="s" value="' . specialchars($GLOBALS['TL_LANG']['tl_formdata']['import'][0]) . '" onfocus="document.cookie = \'BE_PAGE_OFFSET=0; path=/\';">
</div>

</div>
</form>';
    }
コード例 #7
0
ファイル: ListWizard.php プロジェクト: Juuro/Dreamapp-Website
    /**
     * Return a form to choose a CSV file and import it
     * @param object
     * @return string
     */
    public function importList(DataContainer $dc)
    {
        if ($this->Input->get('key') != 'list') {
            return '';
        }
        // Import CSS
        if ($this->Input->post('FORM_SUBMIT') == 'tl_list_import') {
            if (!$this->Input->post('source') || !is_array($this->Input->post('source'))) {
                $_SESSION['TL_ERROR'][] = $GLOBALS['TL_LANG']['ERR']['all_fields'];
                $this->reload();
            }
            $this->import('Database');
            $arrList = array();
            foreach ($this->Input->post('source') as $strCsvFile) {
                $objFile = new File($strCsvFile);
                if ($objFile->extension != 'csv') {
                    $_SESSION['TL_ERROR'][] = sprintf($GLOBALS['TL_LANG']['ERR']['filetype'], $objFile->extension);
                    continue;
                }
                // Get separator
                switch ($this->Input->post('separator')) {
                    case 'semicolon':
                        $strSeparator = ';';
                        break;
                    case 'tabulator':
                        $strSeparator = '\\t';
                        break;
                    case 'linebreak':
                        $strSeparator = '\\n';
                        break;
                    default:
                        $strSeparator = ',';
                        break;
                }
                $resFile = $objFile->handle;
                while (($arrRow = @fgetcsv($resFile, null, $strSeparator)) !== false) {
                    $arrList = array_merge($arrList, $arrRow);
                }
            }
            $this->createNewVersion($dc->table, $this->Input->get('id'));
            $this->Database->prepare("UPDATE " . $dc->table . " SET listitems=? WHERE id=?")->execute(serialize($arrList), $this->Input->get('id'));
            setcookie('BE_PAGE_OFFSET', 0, 0, '/');
            $this->redirect(str_replace('&key=list', '', $this->Environment->request));
        }
        $objTree = new FileTree($this->prepareForWidget($GLOBALS['TL_DCA'][$dc->table]['fields']['source'], 'source', null, 'source', $dc->table));
        // Return form
        return '
<div id="tl_buttons">
<a href="' . ampersand(str_replace('&key=list', '', $this->Environment->request)) . '" class="header_back" title="' . specialchars($GLOBALS['TL_LANG']['MSC']['backBT']) . '" accesskey="b">' . $GLOBALS['TL_LANG']['MSC']['backBT'] . '</a>
</div>

<h2 class="sub_headline">' . $GLOBALS['TL_LANG']['MSC']['lw_import'][1] . '</h2>
' . $this->getMessages() . '
<form action="' . ampersand($this->Environment->request, true) . '" id="tl_list_import" class="tl_form" method="post">
<div class="tl_formbody_edit">
<input type="hidden" name="FORM_SUBMIT" value="tl_list_import">
<input type="hidden" name="REQUEST_TOKEN" value="' . REQUEST_TOKEN . '">

<div class="tl_tbox block">
  <h3><label for="separator">' . $GLOBALS['TL_LANG']['MSC']['separator'][0] . '</label></h3>
  <select name="separator" id="separator" class="tl_select" onfocus="Backend.getScrollOffset();">
    <option value="comma">' . $GLOBALS['TL_LANG']['MSC']['comma'] . '</option>
    <option value="semicolon">' . $GLOBALS['TL_LANG']['MSC']['semicolon'] . '</option>
    <option value="tabulator">' . $GLOBALS['TL_LANG']['MSC']['tabulator'] . '</option>
    <option value="linebreak">' . $GLOBALS['TL_LANG']['MSC']['linebreak'] . '</option>
  </select>' . ($GLOBALS['TL_LANG']['MSC']['separator'][1] != '' ? '
  <p class="tl_help tl_tip">' . $GLOBALS['TL_LANG']['MSC']['separator'][1] . '</p>' : '') . '
  <h3><label for="source">' . $GLOBALS['TL_LANG']['MSC']['source'][0] . '</label> <a href="contao/files.php" title="' . specialchars($GLOBALS['TL_LANG']['MSC']['fileManager']) . '" rel="lightbox[files 765 80%]">' . $this->generateImage('filemanager.gif', $GLOBALS['TL_LANG']['MSC']['fileManager'], 'style="vertical-align:text-bottom;"') . '</a></h3>
' . $objTree->generate() . ($GLOBALS['TL_LANG']['MSC']['source'][1] != '' ? '
  <p class="tl_help tl_tip">' . $GLOBALS['TL_LANG']['MSC']['source'][1] . '</p>' : '') . '
</div>

</div>

<div class="tl_formbody_submit">

<div class="tl_submit_container">
  <input type="submit" name="save" id="save" class="tl_submit" accesskey="s" value="' . specialchars($GLOBALS['TL_LANG']['MSC']['lw_import'][0]) . '">
</div>

</div>
</form>';
    }
コード例 #8
0
ファイル: IsotopeBackend.php プロジェクト: rburch/core-1
    /**
     * Import email template
     * @param object
     * @return string
     */
    public function importMail($dc)
    {
        if ($this->Input->post('FORM_SUBMIT') == 'tl_mail_import') {
            $source = $this->Input->post('source', true);
            // Check the file names
            if (!$source || !is_array($source)) {
                $_SESSION['TL_ERROR'][] = $GLOBALS['TL_LANG']['ERR']['all_fields'];
                $this->reload();
            }
            $arrFiles = array();
            // Skip invalid entries
            foreach ($source as $strFile) {
                // Skip folders
                if (is_dir(TL_ROOT . '/' . $strFile)) {
                    $_SESSION['TL_ERROR'][] = sprintf($GLOBALS['TL_LANG']['ERR']['importFolder'], basename($strFile));
                    continue;
                }
                $objFile = new File($strFile);
                // Skip anything but .imt files
                if ($objFile->extension != 'imt') {
                    $_SESSION['TL_ERROR'][] = sprintf($GLOBALS['TL_LANG']['ERR']['filetype'], $objFile->extension);
                    continue;
                }
                $arrFiles[] = $strFile;
            }
            // Check wether there are any files left
            if (count($arrFiles) < 1) {
                $_SESSION['TL_ERROR'][] = $GLOBALS['TL_LANG']['ERR']['all_fields'];
                $this->reload();
            }
            return $this->importMailFiles($arrFiles);
        }
        $objTree = new FileTree($this->prepareForWidget($GLOBALS['TL_DCA']['tl_iso_mail']['fields']['source'], 'source', null, 'source', 'tl_iso_mail'));
        // Return the form
        return '
<div id="tl_buttons">
<a href="' . ampersand(str_replace('&key=importMail', '', $this->Environment->request)) . '" class="header_back" title="' . specialchars($GLOBALS['TL_LANG']['MSC']['backBT']) . '" accesskey="b">' . $GLOBALS['TL_LANG']['MSC']['backBT'] . '</a>
</div>

<h2 class="sub_headline">' . $GLOBALS['TL_LANG']['tl_iso_mail']['importMail'][1] . '</h2>' . $this->getMessages() . '

<form action="' . ampersand($this->Environment->request, true) . '" id="tl_mail_import" class="tl_form" method="post">
<div class="tl_formbody_edit">
<input type="hidden" name="FORM_SUBMIT" value="tl_mail_import">
<input type="hidden" name="REQUEST_TOKEN" value="' . REQUEST_TOKEN . '">

<div class="tl_tbox block">
  <h3><label for="source">' . $GLOBALS['TL_LANG']['tl_iso_mail']['source'][0] . '</label> <a href="contao/files.php" title="' . specialchars($GLOBALS['TL_LANG']['MSC']['fileManager']) . '" onclick="Backend.getScrollOffset(); Backend.openWindow(this, 750, 500); return false;">' . $this->generateImage('filemanager.gif', $GLOBALS['TL_LANG']['MSC']['fileManager'], 'style="vertical-align:text-bottom;"') . '</a></h3>' . $objTree->generate() . (strlen($GLOBALS['TL_LANG']['tl_iso_mail']['source'][1]) ? '
  <p class="tl_help tl_tip">' . $GLOBALS['TL_LANG']['tl_iso_mail']['source'][1] . '</p>' : '') . '
</div>

</div>

<div class="tl_formbody_submit">

<div class="tl_submit_container">
  <input type="submit" name="save" id="save" class="tl_submit" accesskey="s" value="' . specialchars($GLOBALS['TL_LANG']['tl_iso_mail']['importMail'][0]) . '">
</div>

</div>
</form>';
    }
コード例 #9
0
    /**
     * Generates a form to start import from csv file
     */
    public function showImport()
    {
        if ($this->Input->post('FORM_SUBMIT') == 'tl_anystores_import') {
            $source = $this->Input->post('file', true);
            // check the file names
            if (!$source) {
                $this->addErrorMessage($GLOBALS['TL_LANG']['ERR']['all_fields']);
                $this->reload();
            }
            // skip folders
            if (is_dir(TL_ROOT . '/' . $source)) {
                $this->addErrorMessage(sprintf($GLOBALS['TL_LANG']['ERR']['importFolder'], basename($source)));
            }
            $objFile = new \File($source);
            // skip anything but .csv files
            if ($objFile->extension != 'csv') {
                $this->addErrorMessage(sprintf($GLOBALS['TL_LANG']['ERR']['filetype'], $objFile->extension));
            }
            ini_set("max_execution_time", 0);
            // read entries
            if ($objFile->handle !== FALSE) {
                $pid = $this->Input->get('id');
                $count = 0;
                while (($data = fgetcsv($objFile->handle, 1000)) !== FALSE) {
                    if (empty($data[0])) {
                        continue;
                    }
                    $count++;
                    // get coordinates
                    $coords = AnyStores::getCoordinates($data[5], $data[6], $data[7], $data[8]);
                    // add "http" in front of url
                    $data[2] = $data[2] && strpos($data[2], 'http') === FALSE ? 'http://' . $data[2] : $data[2];
                    try {
                        $this->Database->prepare("INSERT INTO `tl_anystores` (`pid`,`tstamp`,`name`,`email`,`url`,`phone`,`fax`,`street`,`postal`,`city`,`country`,`longitude`,`latitude`) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?)")->execute($pid, time(), $data[0], $data[1], $data[2], $data[3], $data[4], $data[5], $data[6], $data[7], strtolower($data[8]), $coords ? $coords['longitude'] : '', $coords ? $coords['latitude'] : '');
                    } catch (Exception $e) {
                        continue;
                    }
                    if ($count > 5) {
                        sleep(2);
                        $count = 0;
                    }
                }
                $objFile->close();
                // Redirect
                setcookie('BE_PAGE_OFFSET', 0, 0, '/');
                $this->redirect(str_replace('&key=importStores', '', $this->Environment->request));
                return;
            }
        }
        $objTree = new \FileTree($this->prepareForWidget($GLOBALS['TL_DCA']['tl_anystores']['fields']['file'], 'file', null, 'file', 'tl_anystores'));
        // Return the form
        return '
			<div id="tl_buttons">
				<a href="' . ampersand(str_replace('&key=importStores', '', $this->Environment->request)) . '" class="header_back" title="' . specialchars($GLOBALS['TL_LANG']['MSC']['backBT']) . '" accesskey="b">' . $GLOBALS['TL_LANG']['MSC']['backBT'] . '</a>
			</div>

			<h2 class="sub_headline">' . $GLOBALS['TL_LANG']['tl_anystores']['import']['head'] . '</h2>
			' . $this->getMessages() . '

			<form action="' . ampersand($this->Environment->request, true) . '" id="tl_anystores_import" class="tl_form" method="post">
				<div class="tl_formbody_edit">
					<input type="hidden" name="FORM_SUBMIT" value="tl_anystores_import">
					<input type="hidden" name="REQUEST_TOKEN" value="' . REQUEST_TOKEN . '">

					<div class="tl_tbox">
						<h3><label for="source">' . $GLOBALS['TL_LANG']['tl_anystores']['import']['file'][0] . '</label> <a href="contao/files.php" title="' . specialchars($GLOBALS['TL_LANG']['MSC']['fileManager']) . '" data-lightbox="files 765 80%">' . $this->generateImage('filemanager.gif', $GLOBALS['TL_LANG']['MSC']['fileManager'], 'style="vertical-align:text-bottom"') . '</a></h3>' . $objTree->generate() . (strlen($GLOBALS['TL_LANG']['tl_anystores']['import']['file'][1]) ? '
						<p class="tl_help tl_tip">' . $GLOBALS['TL_LANG']['tl_anystores']['import']['file'][1] . '</p>' : '') . '
					</div>
				</div>

				<div class="tl_formbody_submit">
					<div class="tl_submit_container">
						<input type="submit" name="save" id="save" class="tl_submit" accesskey="s" value="' . specialchars($GLOBALS['TL_LANG']['tl_anystores']['import']['start']) . '">
					</div>
				</div>
			</form>
		';
    }
コード例 #10
0
    /**
     * Generate the form to select import source and basic settings and return it as HTML string
     * @return string
     */
    protected function formImportSource()
    {
        $arrSessionData = $this->Session->get('EFG');
        $objFileSelector = new \FileTree(\Widget::getAttributesFromDca($GLOBALS['TL_DCA']['tl_formdata']['fields']['import_source'], 'import_source', null, 'import_source', 'tl_formdata'));
        // Return form
        return '
<div id="tl_buttons">
<a href="' . ampersand(str_replace('&key=import', '', \Environment::get('request'))) . '" class="header_back" title="' . specialchars($GLOBALS['TL_LANG']['MSC']['backBT']) . '" accesskey="b">' . $GLOBALS['TL_LANG']['MSC']['backBT'] . '</a>
</div>

<h2 class="sub_headline">' . $GLOBALS['TL_LANG']['tl_formdata']['import'][1] . '</h2>
' . \Message::generate() . '
<form action="' . ampersand(\Environment::get('request'), true) . '" id="tl_formdata_import" class="tl_form" method="post">
<div class="tl_formbody_edit">
<input type="hidden" name="FORM_SUBMIT" value="tl_formdata_import">
<input type="hidden" name="FORM_MODE" value="preview">
<input type="hidden" name="REQUEST_TOKEN" value="' . REQUEST_TOKEN . '">

<div class="tl_tbox block">
  <div class="w50">
  <h3><label for="separator">' . $GLOBALS['TL_LANG']['MSC']['separator'][0] . '</label></h3>
  <select name="separator" id="separator" class="tl_select" onfocus="Backend.getScrollOffset()">
    <option value="comma"' . ($arrSessionData['import'][$this->strFormKey]['separator'] == 'comma' ? ' selected="selected"' : '') . '>' . $GLOBALS['TL_LANG']['MSC']['comma'] . '</option>
    <option value="semicolon"' . ($arrSessionData['import'][$this->strFormKey]['separator'] == 'semicolon' || !isset($arrSessionData['import'][$this->strFormKey]['separator']) ? ' selected="selected"' : '') . '>' . $GLOBALS['TL_LANG']['MSC']['semicolon'] . '</option>
    <option value="tabulator"' . ($arrSessionData['import'][$this->strFormKey]['separator'] == 'tabulator' ? ' selected="selected"' : '') . '>' . $GLOBALS['TL_LANG']['MSC']['tabulator'] . '</option>
  </select>' . (strlen($GLOBALS['TL_LANG']['MSC']['separator'][1]) ? '
  <p class="tl_help tl_tip">' . $GLOBALS['TL_LANG']['MSC']['separator'][1] . '</p>' : '') . '
  </div>
  <div class="w50 m12 cbx">
  <div class="tl_checkbox_single_container">
  <input name="csv_has_header" id="csv_has_header" type="checkbox" value="1"' . ($arrSessionData['import'][$this->strFormKey]['csv_has_header'] == '1' ? ' checked="checked"' : '') . '>
  <label for="csv_has_header">' . $GLOBALS['TL_LANG']['tl_formdata']['csv_has_header'][0] . '</label>
  </div>
  <p class="tl_help tl_tip">' . $GLOBALS['TL_LANG']['tl_formdata']['csv_has_header'][1] . '</p>
  </div>

  <div class="clr">' . $objFileSelector->parse() . (strlen($GLOBALS['TL_LANG']['tl_formdata']['import_source'][1]) ? '
  <p class="tl_help tl_tip">' . $GLOBALS['TL_LANG']['tl_formdata']['import_source'][1] . '</p>' : '') . '

  </div>
</div>

</div>

<div class="tl_formbody_submit">

<div class="tl_submit_container">
  <input type="submit" name="save" id="save" class="tl_submit" accesskey="s" value="' . specialchars($GLOBALS['TL_LANG']['tl_formdata']['import'][0]) . '" onfocus="document.cookie = \'BE_PAGE_OFFSET=0; path=/\';">
</div>

</div>
</form>' . $this->getFilepickerJavascript('reloadEfgImportSource');
    }
コード例 #11
0
ファイル: init.js.php プロジェクト: rsky/BEAR.Package
                    $file = substr($file, strlen($this->root));
                }
            }
            $path = serialize($path);
        } else {
            $isDir = 'true';
            if (strpos($path, $this->root, 0) === 0) {
                $path = substr($path, strlen($this->root));
            }
        }
        $this->_cmd .= "addTree('{$placeholder}', '{$path}/', {$isDir}, '{$label}');";
        return $this;
    }
    /**
     *
     * @return void
     */
    public function exec($initialOpeningFile)
    {
        echo "\$(document).ready( function() {{$this->_cmd}load(\"{$initialOpeningFile}\")});";
    }
}
$projectDir = '';
// Treeを描画
$tree = new FileTree($root);
//$tree->tree('#container_id1', $files['page'], '<span class=\"tree_label\">Page</span>');
//$tree->tree('#container_id2', $files['ro'], '<span class=\"tree_label\">Resource</span>');
//$tree->tree('#container_id3', $files['view'], '<span class=\"tree_label\">View template</span>');
$tree->tree('#container_id', $projectDir, '<span class=\\"tree_label\\">Project</span>');
$initialOpeningFile = 'src.php';
$tree->exec($initialOpeningFile);
コード例 #12
0
ファイル: index.php プロジェクト: jedrus113/AD_Project
<?php

load_class('FileTree');
$tree = new FileTree();
//$tree->print_tree();
echo "<!doctype html>\n<html>\n<head>\n\t<meta chrset=\"UTF-8\">\n\t<title>Andrzej Dąbski.pl</title>\n</head>\n<body bgcolor=\"black\" text=\"lightgreen\" >";
foreach ($tree->get_files() as $file) {
    echo "<fieldset>\n\t<legend><b>{$file->get_name()}</b></legend>\n\t   <table>";
    foreach ($file->get_files() as $file2) {
        echo "<tr><td> <a href=\"{$file2->get_url()}\"><img src=\"{$file2->get_pic_url()}\" width=150px ></a><font color=\"black\"> --- </font> </td> <td> <a href=\"{$file2->get_url()}\"><b>{$file2->get_name()}</b></a> </td></tr>";
    }
    echo "</table><!-- Dodać  blokowoścs na całej lini tabeli, żeby kliknąć gdziekolwiekss -->\n\t   </fieldset>";
}
echo "</body>\n</html>";