本文整理汇总了PHP中General::tabsToSpaces方法的典型用法代码示例。如果您正苦于以下问题:PHP General::tabsToSpaces方法的具体用法?PHP General::tabsToSpaces怎么用?PHP General::tabsToSpaces使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类General
的用法示例。
在下文中一共展示了General::tabsToSpaces方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: __formAction
public function __formAction()
{
$fields = $_POST['fields'];
$this->_errors = array();
$providers = Symphony::ExtensionManager()->getProvidersOf(iProvider::EVENT);
$providerClass = null;
if (trim($fields['name']) == '') {
$this->_errors['name'] = __('This is a required field');
}
if (trim($fields['source']) == '') {
$this->_errors['source'] = __('This is a required field');
}
$filters = isset($fields['filters']) ? $fields['filters'] : array();
// See if a Provided Datasource is saved
if (!empty($providers)) {
foreach ($providers as $providerClass => $provider) {
if ($fields['source'] == call_user_func(array($providerClass, 'getSource'))) {
call_user_func_array(array($providerClass, 'validate'), array(&$fields, &$this->_errors));
break;
}
unset($providerClass);
}
}
$classname = Lang::createHandle($fields['name'], 255, '_', false, true, array('@^[^a-z\\d]+@i' => '', '/[^\\w-\\.]/i' => ''));
$rootelement = str_replace('_', '-', $classname);
$extends = 'SectionEvent';
// Check to make sure the classname is not empty after handlisation.
if (empty($classname) && !isset($this->_errors['name'])) {
$this->_errors['name'] = __('Please ensure name contains at least one Latin-based character.', array($classname));
}
$file = EVENTS . '/event.' . $classname . '.php';
$isDuplicate = false;
$queueForDeletion = null;
if ($this->_context[0] == 'new' && is_file($file)) {
$isDuplicate = true;
} elseif ($this->_context[0] == 'edit') {
$existing_handle = $this->_context[1];
if ($classname != $existing_handle && is_file($file)) {
$isDuplicate = true;
} elseif ($classname != $existing_handle) {
$queueForDeletion = EVENTS . '/event.' . $existing_handle . '.php';
}
}
// Duplicate
if ($isDuplicate) {
$this->_errors['name'] = __('An Event with the name %s already exists', array('<code>' . $classname . '</code>'));
}
if (empty($this->_errors)) {
$multiple = in_array('expect-multiple', $filters);
$elements = null;
$placeholder = '<!-- GRAB -->';
$source = $fields['source'];
$params = array('rootelement' => $rootelement);
$about = array('name' => $fields['name'], 'version' => 'Symphony ' . Symphony::Configuration()->get('version', 'symphony'), 'release date' => DateTimeObj::getGMT('c'), 'author name' => Symphony::Author()->getFullName(), 'author website' => URL, 'author email' => Symphony::Author()->get('email'));
// If there is a provider, get their template
if ($providerClass) {
$eventShell = file_get_contents(call_user_func(array($providerClass, 'getTemplate')));
} else {
$eventShell = file_get_contents($this->getTemplate('blueprints.event'));
$about['trigger condition'] = $rootelement;
}
$this->__injectAboutInformation($eventShell, $about);
// Replace the name
$eventShell = str_replace('<!-- CLASS NAME -->', $classname, $eventShell);
// Build the templates
if ($providerClass) {
$eventShell = call_user_func(array($providerClass, 'prepare'), $fields, $params, $eventShell);
} else {
$this->__injectFilters($eventShell, $filters);
// Add Documentation
require_once CONTENT . '/content.ajaxeventdocumentation.php';
$ajaxEventDoc = new contentAjaxEventDocumentation();
$documentation = null;
$doc_parts = array();
// Add Documentation (Success/Failure)
$ajaxEventDoc->addEntrySuccessDoc($doc_parts, $rootelement, $fields['source'], $filters);
$ajaxEventDoc->addEntryFailureDoc($doc_parts, $rootelement, $fields['source'], $filters);
// Filters
$ajaxEventDoc->addDefaultFiltersDoc($doc_parts, $rootelement, $fields['source'], $filters);
// Frontend Markup
$ajaxEventDoc->addFrontendMarkupDoc($doc_parts, $rootelement, $fields['source'], $filters);
$ajaxEventDoc->addSendMailFilterDoc($doc_parts, $rootelement, $fields['source'], $filters);
/**
* Allows adding documentation for new filters. A reference to the $documentation
* array is provided, along with selected filters
* @delegate AppendEventFilterDocumentation
* @param string $context
* '/blueprints/events/(edit|new|info)/'
* @param array $selected
* An array of all the selected filters for this Event
* @param array $documentation
* An array of all the documentation XMLElements, passed by reference
*/
Symphony::ExtensionManager()->notifyMembers('AppendEventFilterDocumentation', '/blueprints/events/' . $rootelement . '/', array('selected' => $filters, 'documentation' => &$doc_parts));
$documentation = join(PHP_EOL, array_map(create_function('$x', 'return rtrim($x->generate(true, 4));'), $doc_parts));
$documentation = str_replace('\'', '\\\'', $documentation);
$eventShell = str_replace('<!-- CLASS EXTENDS -->', $extends, $eventShell);
$eventShell = str_replace('<!-- DOCUMENTATION -->', General::tabsToSpaces($documentation, 4), $eventShell);
}
$eventShell = str_replace('<!-- ROOT ELEMENT -->', $rootelement, $eventShell);
//.........这里部分代码省略.........
示例2: __formAction
//.........这里部分代码省略.........
$documentation_parts[] = self::processDocumentationCode('send-email[sender-email] // ' . __('Optional') . PHP_EOL . 'send-email[sender-name] // ' . __('Optional') . PHP_EOL . 'send-email[reply-to-email] // ' . __('Optional') . PHP_EOL . 'send-email[reply-to-name] // ' . __('Optional') . PHP_EOL . 'send-email[subject]' . PHP_EOL . 'send-email[body]' . PHP_EOL . 'send-email[recipient] // ' . __('list of comma-separated author usernames.'));
$documentation_parts[] = new XMLElement('p', __('All of these fields can be set dynamically using the exact field name of another field in the form as shown below in the example form:'));
$documentation_parts[] = self::processDocumentationCode('<form action="" method="post">
<fieldset>
<label>' . __('Name') . ' <input type="text" name="fields[author]" value="" /></label>
<label>' . __('Email') . ' <input type="text" name="fields[email]" value="" /></label>
<label>' . __('Message') . ' <textarea name="fields[message]" rows="5" cols="21"></textarea></label>
<input name="send-email[sender-email]" value="fields[email]" type="hidden" />
<input name="send-email[sender-name]" value="fields[author]" type="hidden" />
<input name="send-email[reply-to-email]" value="fields[email]" type="hidden" />
<input name="send-email[reply-to-name]" value="fields[author]" type="hidden" />
<input name="send-email[subject]" value="You are being contacted" type="hidden" />
<input name="send-email[body]" value="fields[message]" type="hidden" />
<input name="send-email[recipient]" value="fred" type="hidden" />
<input id="submit" type="submit" name="action[save-contact-form]" value="Send" />
</fieldset>
</form>');
}
/**
* Allows adding documentation for new filters. A reference to the $documentation
* array is provided, along with selected filters
* @delegate AppendEventFilterDocumentation
* @param string $context
* '/blueprints/events/(edit|new|info)/'
* @param array $selected
* An array of all the selected filters for this Event
* @param array $documentation
* An array of all the documentation XMLElements, passed by reference
*/
Symphony::ExtensionManager()->notifyMembers('AppendEventFilterDocumentation', '/blueprints/events/' . $this->_context[0] . '/', array('selected' => $filters, 'documentation' => &$documentation_parts));
$documentation = join(PHP_EOL, array_map(create_function('$x', 'return rtrim($x->generate(true, 4));'), $documentation_parts));
$documentation = str_replace('\'', '\\\'', $documentation);
$eventShell = str_replace('<!-- CLASS EXTENDS -->', $extends, $eventShell);
$eventShell = str_replace('<!-- DOCUMENTATION -->', General::tabsToSpaces($documentation, 2), $eventShell);
}
$eventShell = str_replace('<!-- ROOT ELEMENT -->', $rootelement, $eventShell);
$eventShell = str_replace('<!-- CLASS NAME -->', $classname, $eventShell);
$eventShell = str_replace('<!-- SOURCE -->', $source, $eventShell);
// Remove left over placeholders
$eventShell = preg_replace(array('/<!--[\\w ]++-->/'), '', $eventShell);
if ($this->_context[0] == 'new') {
/**
* Prior to creating an Event, the file path where it will be written to
* is provided and well as the contents of that file.
*
* @delegate EventsPreCreate
* @since Symphony 2.2
* @param string $context
* '/blueprints/events/'
* @param string $file
* The path to the Event file
* @param string $contents
* The contents for this Event as a string passed by reference
* @param array $filters
* An array of the filters attached to this event
*/
Symphony::ExtensionManager()->notifyMembers('EventPreCreate', '/blueprints/events/', array('file' => $file, 'contents' => &$eventShell, 'filters' => $filters));
} else {
/**
* Prior to editing an Event, the file path where it will be written to
* is provided and well as the contents of that file.
*
* @delegate EventPreEdit
* @since Symphony 2.2
* @param string $context
* '/blueprints/events/'
示例3: __formAction
//.........这里部分代码省略.........
$documentation_parts[] = new XMLElement('p', __('All of these fields can be set dynamically using the exact field name of another field in the form as shown below in the example form:'));
$documentation_parts[] = self::processDocumentationCode('<form action="" method="post">
<fieldset>
<label>' . __('Name') . ' <input type="text" name="fields[author]" value="" /></label>
<label>' . __('Email') . ' <input type="text" name="fields[email]" value="" /></label>
<label>' . __('Message') . ' <textarea name="fields[message]" rows="5" cols="21"></textarea></label>
<input name="send-email[sender-email]" value="fields[email]" type="hidden" />
<input name="send-email[sender-name]" value="fields[author]" type="hidden" />
<input name="send-email[reply-to-email]" value="fields[email]" type="hidden" />
<input name="send-email[reply-to-name]" value="fields[author]" type="hidden" />
<input name="send-email[subject]" value="You are being contacted" type="hidden" />
<input name="send-email[body]" value="fields[message]" type="hidden" />
<input name="send-email[recipient]" value="fred" type="hidden" />
<input id="submit" type="submit" name="action[save-contact-form]" value="Send" />
</fieldset>
</form>');
}
/**
* Allows adding documentation for new filters. A reference to the $documentation
* array is provided, along with selected filters
* @delegate AppendEventFilterDocumentation
* @param string $context
* '/blueprints/events/(edit|new|info)/'
* @param array $selected
* An array of all the selected filters for this Event
* @param array $documentation
* An array of all the documentation XMLElements, passed by reference
*/
Symphony::ExtensionManager()->notifyMembers('AppendEventFilterDocumentation', '/blueprints/events/' . $this->_context[0] . '/', array('selected' => $filters, 'documentation' => &$documentation_parts));
$documentation = join(self::CRLF, array_map(create_function('$x', 'return rtrim($x->generate(true, 4));'), $documentation_parts));
$documentation = str_replace('\'', '\\\'', $documentation);
$eventShell = str_replace('<!-- CLASS NAME -->', $classname, $eventShell);
$eventShell = str_replace('<!-- SOURCE -->', $source, $eventShell);
$eventShell = str_replace('<!-- DOCUMENTATION -->', General::tabsToSpaces($documentation, 2), $eventShell);
$eventShell = str_replace('<!-- ROOT ELEMENT -->', $rootelement, $eventShell);
## Remove left over placeholders
$eventShell = preg_replace(array('/<!--[\\w ]++-->/'), '', $eventShell);
if ($this->_context[0] == 'new') {
/**
* Prior to creating an Event, the file path where it will be written to
* is provided and well as the contents of that file.
*
* @delegate EventsPreCreate
* @since Symphony 2.2
* @param string $context
* '/blueprints/events/'
* @param string $file
* The path to the Event file
* @param string $contents
* The contents for this Event as a string passed by reference
* @param array $filters
* An array of the filters attached to this event
*/
Symphony::ExtensionManager()->notifyMembers('EventPreCreate', '/blueprints/events/', array('file' => $file, 'contents' => &$eventShell, 'filters' => $filters));
} else {
/**
* Prior to editing an Event, the file path where it will be written to
* is provided and well as the contents of that file.
*
* @delegate EventPreEdit
* @since Symphony 2.2
* @param string $context
* '/blueprints/events/'
* @param string $file
* The path to the Event file
* @param string $contents
示例4: view
function view()
{
$this->Form->setAttribute('action', extension_filemanager::baseURL() . 'properties/?file=' . $_GET['file']);
$file = new File(DOCROOT . $this->_FileManager->getStartLocation() . $_GET['file']);
$FileManager =& $this->_Parent->ExtensionManager->create('filemanager');
$formHasErrors = is_array($this->_errors) && !empty($this->_errors);
if ($formHasErrors) {
$this->pageAlert('An error occurred while processing this form. <a href="#error">See below for details.</a>', AdministrationPage::PAGE_ALERT_ERROR);
}
if (isset($this->_context[0])) {
switch ($this->_context[0]) {
case 'saved':
$this->pageAlert('{1} updated successfully.', AdministrationPage::PAGE_ALERT_NOTICE, array($file->isDir() ? 'Folder' : 'File'));
break;
}
}
$this->setPageType('form');
$path = extension_filemanager::baseURL() . 'browse/';
$breadcrumb = '';
$pathelements = explode('/', $_GET['file']);
foreach ($pathelements as $element) {
if ($element != '') {
$path .= $element . '/';
$breadcrumb .= ' / ' . ($element == end($pathelements) ? $element : Widget::Anchor($element, $path)->generate());
}
}
$this->appendSubheading(trim($FileManager->getStartLocationLink(), '/') . $breadcrumb);
$fields = array();
$fieldset = new XMLElement('fieldset');
$fieldset->setAttribute('class', 'settings');
$fieldset->appendChild(new XMLElement('legend', 'Essentials'));
$div = new XMLElement('div');
$div->setAttribute('class', 'group');
$label = Widget::Label('Name');
$label->appendChild(Widget::Input('fields[name]', General::sanitize($file->name())));
if (isset($this->_errors['name'])) {
$div->appendChild(Widget::wrapFormElementWithError($label, $this->_errors['name']));
} else {
$div->appendChild($label);
}
$label = Widget::Label('Permissions');
$label->appendChild(Widget::Input('fields[permissions]', General::sanitize($file->permissions())));
if (isset($this->_errors['permissions'])) {
$div->appendChild(Widget::wrapFormElementWithError($label, $this->_errors['permissions']));
} else {
$div->appendChild($label);
}
$fieldset->appendChild($div);
$this->Form->appendChild($fieldset);
if (!$file->isDir() && in_array(File::fileType($file->name()), array(File::CODE, File::DOC))) {
$fieldset = new XMLElement('fieldset');
$fieldset->setAttribute('class', 'settings');
$fieldset->appendChild(new XMLElement('legend', 'Editor'));
$label = Widget::Label('Contents');
$label->appendChild(Widget::Textarea('fields[contents]', '25', '50', General::sanitize(General::tabsToSpaces($file->contents(), 2)), array('class' => 'code')));
if (isset($this->_errors['contents'])) {
$fieldset->appendChild(Widget::wrapFormElementWithError($label, $this->_errors['contents']));
} else {
$fieldset->appendChild($label);
}
$this->Form->appendChild($fieldset);
}
if (!$file->isDir() && File::fileType($file->name()) == File::IMAGE) {
$fieldset = new XMLElement('fieldset');
$fieldset->setAttribute('class', 'settings');
$fieldset->appendChild(new XMLElement('legend', 'Preview'));
$img = new XMLElement('img');
$img->setAttribute('src', URL . $FileManager->getStartLocation() . $_GET['file']);
$img->setAttribute('alt', $file->name());
$fieldset->appendChild($img);
$this->Form->appendChild($fieldset);
}
$div = new XMLElement('div');
$div->setAttribute('class', 'actions');
$div->appendChild(Widget::Input('action[save]', 'Save Changes', 'submit', array('accesskey' => 's')));
$button = new XMLElement('button', 'Delete');
$button->setAttributeArray(array('name' => 'action[delete]', 'class' => 'confirm delete', 'title' => 'Delete this ' . ($file->isDir() ? 'Folder' : 'File')));
$div->appendChild($button);
$this->Form->appendChild($div);
}