mirror of
https://github.com/processwire/processwire.git
synced 2025-08-10 08:44:46 +02:00
Additional updates for processwire/processwire-issues#1467 via @matjazpotocnik
This commit is contained in:
@@ -1243,14 +1243,16 @@ class Field extends WireData implements Saveable, Exportable {
|
|||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
protected function getText($property, $language = null) {
|
protected function getText($property, $language = null) {
|
||||||
if(is_null($language)) $language = $this->wire('languages') ? $this->wire('user')->language : null;
|
if(is_null($language)) {
|
||||||
if($language) {
|
$language = $this->wire()->languages ? $this->wire()->user->language : null;
|
||||||
$value = $this->get("$property$language");
|
|
||||||
if(!strlen($value)) $value = $this->$property;
|
|
||||||
} else {
|
|
||||||
$value = $this->$property;
|
|
||||||
}
|
}
|
||||||
if($property == 'label' && !strlen($value)) $value = $this->name;
|
if($language) {
|
||||||
|
$value = (string) $this->get("$property$language");
|
||||||
|
if(!strlen($value)) $value = (string) $this->$property;
|
||||||
|
} else {
|
||||||
|
$value = (string) $this->$property;
|
||||||
|
}
|
||||||
|
if($property === 'label' && !strlen($value)) $value = $this->name;
|
||||||
return $value;
|
return $value;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -574,18 +574,20 @@ class Pagefiles extends WireArray implements PageFieldValueInterface {
|
|||||||
*/
|
*/
|
||||||
public function cleanBasename($basename, $originalize = false, $allowDots = true, $translate = false) {
|
public function cleanBasename($basename, $originalize = false, $allowDots = true, $translate = false) {
|
||||||
|
|
||||||
|
$sanitizer = $this->wire()->sanitizer;
|
||||||
$basename = function_exists('mb_strtolower') ? mb_strtolower($basename) : strtolower($basename);
|
$basename = function_exists('mb_strtolower') ? mb_strtolower($basename) : strtolower($basename);
|
||||||
$dot = strrpos($basename, '.');
|
$dot = strrpos($basename, '.');
|
||||||
$ext = $dot ? substr($basename, $dot) : '';
|
$ext = $dot ? substr($basename, $dot) : '';
|
||||||
$basename = basename($basename, $ext);
|
$basename = basename($basename, $ext);
|
||||||
|
while(strpos($basename, '..') !== false) $basename = str_replace('..', '', $basename);
|
||||||
$test = str_replace(array('-', '_', '.'), '', $basename);
|
$test = str_replace(array('-', '_', '.'), '', $basename);
|
||||||
|
|
||||||
if(!ctype_alnum($test)) {
|
if(!ctype_alnum($test)) {
|
||||||
if($translate) {
|
if($translate) {
|
||||||
$basename = $this->wire('sanitizer')->filename($basename, Sanitizer::translate);
|
$basename = $sanitizer->filename($basename, Sanitizer::translate);
|
||||||
} else {
|
} else {
|
||||||
$basename = preg_replace('/[^-_.a-z0-9]/', '_', $basename);
|
$basename = preg_replace('/[^-_.a-z0-9]/', '_', $basename);
|
||||||
$basename = $this->wire('sanitizer')->filename($basename);
|
$basename = $sanitizer->filename($basename);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -1802,7 +1802,7 @@ class Sanitizer extends Wire {
|
|||||||
if(!strlen($value)) return '';
|
if(!strlen($value)) return '';
|
||||||
|
|
||||||
$scheme = parse_url($value, PHP_URL_SCHEME);
|
$scheme = parse_url($value, PHP_URL_SCHEME);
|
||||||
if($scheme !== false && strlen($scheme)) {
|
if(is_string($scheme) && strlen($scheme)) {
|
||||||
$_scheme = $scheme;
|
$_scheme = $scheme;
|
||||||
$scheme = strtolower($scheme);
|
$scheme = strtolower($scheme);
|
||||||
$schemeError = false;
|
$schemeError = false;
|
||||||
|
@@ -1313,12 +1313,14 @@ class Template extends WireData implements Saveable, Exportable {
|
|||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
public function getLabel($language = null) {
|
public function getLabel($language = null) {
|
||||||
if(is_null($language)) $language = $this->wire('languages') ? $this->wire('user')->language : null;
|
if(is_null($language)) {
|
||||||
|
$language = $this->wire()->languages ? $this->wire()->user->language : null;
|
||||||
|
}
|
||||||
if($language) {
|
if($language) {
|
||||||
$label = $this->get("label$language");
|
$label = (string) $this->get("label$language");
|
||||||
if(!strlen($label)) $label = $this->label;
|
if(!strlen($label)) $label = $this->label;
|
||||||
} else {
|
} else {
|
||||||
$label = $this->label;
|
$label = (string) $this->label;
|
||||||
}
|
}
|
||||||
if(!strlen($label)) $label = $this->name;
|
if(!strlen($label)) $label = $this->name;
|
||||||
return $label;
|
return $label;
|
||||||
|
@@ -1412,7 +1412,7 @@ class WireDatabasePDO extends Wire implements WireDatabase {
|
|||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
public function escapeTable($table) {
|
public function escapeTable($table) {
|
||||||
$table = (string) trim($table);
|
$table = (string) trim("$table");
|
||||||
if(ctype_alnum($table)) return $table;
|
if(ctype_alnum($table)) return $table;
|
||||||
if(ctype_alnum(str_replace('_', '', $table))) return $table;
|
if(ctype_alnum(str_replace('_', '', $table))) return $table;
|
||||||
return preg_replace('/[^_a-zA-Z0-9]/', '_', $table);
|
return preg_replace('/[^_a-zA-Z0-9]/', '_', $table);
|
||||||
|
@@ -88,6 +88,7 @@ class InputfieldEmail extends InputfieldText {
|
|||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
protected function setAttributeValue($value) {
|
protected function setAttributeValue($value) {
|
||||||
|
$value = (string) $value;
|
||||||
if(strlen($value)) {
|
if(strlen($value)) {
|
||||||
$value = $this->wire()->sanitizer->email($value);
|
$value = $this->wire()->sanitizer->email($value);
|
||||||
if(!strlen($value)) $this->error($this->_("Please enter a valid e-mail address")); // Error message when email address is invalid
|
if(!strlen($value)) $this->error($this->_("Please enter a valid e-mail address")); // Error message when email address is invalid
|
||||||
|
@@ -958,18 +958,20 @@ class InputfieldFile extends Inputfield implements InputfieldItemList, Inputfiel
|
|||||||
|
|
||||||
// rename (currently only used by InputfieldImage)
|
// rename (currently only used by InputfieldImage)
|
||||||
$key = "rename_$id";
|
$key = "rename_$id";
|
||||||
$rename = $input->$key;
|
$rename = (string) $input->$key;
|
||||||
if(strlen($rename) && $rename != $pagefile->basename(false)) {
|
if(strlen($rename) && $rename != $pagefile->basename(false)) {
|
||||||
$name = $pagefile->basename();
|
$name = $pagefile->basename();
|
||||||
$rename .= "." . $pagefile->ext();
|
$rename .= "." . $pagefile->ext();
|
||||||
// cleanBasename($basename, $originalize = false, $allowDots = true, $translate = false)
|
// cleanBasename($basename, $originalize = false, $allowDots = true, $translate = false)
|
||||||
$rename = $pagefile->pagefiles->cleanBasename($rename, true, true, true);
|
$rename = $pagefile->pagefiles->cleanBasename($rename, true, true, true);
|
||||||
$message = sprintf($this->_('Renamed file "%1$s" to "%2$s"'), $name, $rename);
|
if(strlen($rename)) {
|
||||||
if($pagefile->rename($rename) !== false) {
|
$message = sprintf($this->_('Renamed file "%1$s" to "%2$s"'), $name, $rename);
|
||||||
$this->message($message);
|
if($pagefile->rename($rename) !== false) {
|
||||||
$changed = true;
|
$this->message($message);
|
||||||
} else {
|
$changed = true;
|
||||||
$this->warning($this->_('Failed') . " - $message");
|
} else {
|
||||||
|
$this->warning($this->_('Failed') . " - $message");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -15,7 +15,7 @@ class InputfieldHidden extends Inputfield {
|
|||||||
'version' => 101,
|
'version' => 101,
|
||||||
'summary' => __('Hidden value in a form', __FILE__), // Module Summary
|
'summary' => __('Hidden value in a form', __FILE__), // Module Summary
|
||||||
'permanent' => true,
|
'permanent' => true,
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function __construct() {
|
public function __construct() {
|
||||||
@@ -39,7 +39,7 @@ class InputfieldHidden extends Inputfield {
|
|||||||
|
|
||||||
public function getAttributes() {
|
public function getAttributes() {
|
||||||
$attrs = parent::getAttributes();
|
$attrs = parent::getAttributes();
|
||||||
if(!strlen($attrs['value']) && $this->initValue) $attrs['value'] = $this->initValue;
|
if(!strlen("$attrs[value]") && $this->initValue) $attrs['value'] = (string) $this->initValue;
|
||||||
return $attrs;
|
return $attrs;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -60,6 +60,7 @@ class InputfieldHidden extends Inputfield {
|
|||||||
$field->description = $this->_('Value to be populated in this hidden field.');
|
$field->description = $this->_('Value to be populated in this hidden field.');
|
||||||
$field->setAttribute('value', $this->initValue);
|
$field->setAttribute('value', $this->initValue);
|
||||||
$inputfields->append($field);
|
$inputfields->append($field);
|
||||||
|
|
||||||
return $inputfields;
|
return $inputfields;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -96,6 +96,7 @@ class InputfieldInteger extends Inputfield {
|
|||||||
*/
|
*/
|
||||||
protected function sanitizeValue($value) {
|
protected function sanitizeValue($value) {
|
||||||
if(is_int($value)) return $value;
|
if(is_int($value)) return $value;
|
||||||
|
$value = (string) $value;
|
||||||
$value = trim($value);
|
$value = trim($value);
|
||||||
if(!strlen("$value")) return '';
|
if(!strlen("$value")) return '';
|
||||||
$negative = substr($value, 0, 1) === '-';
|
$negative = substr($value, 0, 1) === '-';
|
||||||
|
@@ -42,7 +42,7 @@ class InputfieldMarkup extends InputfieldWrapper {
|
|||||||
public function ___render() {
|
public function ___render() {
|
||||||
|
|
||||||
$out = '';
|
$out = '';
|
||||||
$value = $this->attr('value');
|
$value = (string) $this->attr('value');
|
||||||
|
|
||||||
if(strlen($value)) {
|
if(strlen($value)) {
|
||||||
$out .= "\n" . $value;
|
$out .= "\n" . $value;
|
||||||
@@ -63,9 +63,9 @@ class InputfieldMarkup extends InputfieldWrapper {
|
|||||||
|
|
||||||
if(wireCount($textformatters)) {
|
if(wireCount($textformatters)) {
|
||||||
foreach($textformatters as $className) {
|
foreach($textformatters as $className) {
|
||||||
$t = $this->wire('modules')->get($className);
|
$t = $this->wire()->modules->get($className);
|
||||||
if(!$t) continue;
|
if(!$t) continue;
|
||||||
$t->formatValue($this->wire('page'), $this->wire(new Field()), $out);
|
$t->formatValue($this->wire()->page, $this->wire(new Field()), $out);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -101,22 +101,25 @@ class InputfieldMarkup extends InputfieldWrapper {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public function ___getConfigInputfields() {
|
public function ___getConfigInputfields() {
|
||||||
|
|
||||||
|
$modules = $this->wire()->modules;
|
||||||
$inputfields = parent::___getConfigInputfields();
|
$inputfields = parent::___getConfigInputfields();
|
||||||
if($this->hasFieldtype) return $inputfields;
|
if($this->hasFieldtype) return $inputfields;
|
||||||
|
|
||||||
$f = $this->wire('modules')->get('InputfieldTextarea');
|
/** @var InputfieldTextarea $f */
|
||||||
|
$f = $modules->get('InputfieldTextarea');
|
||||||
$f->attr('id+name', 'markupText');
|
$f->attr('id+name', 'markupText');
|
||||||
$f->attr('value', $this->markupText);
|
$f->attr('value', $this->markupText);
|
||||||
$f->attr('rows', 10);
|
$f->attr('rows', 10);
|
||||||
$f->label = $this->_('Markup Text');
|
$f->label = $this->_('Markup Text');
|
||||||
$inputfields->add($f);
|
$inputfields->add($f);
|
||||||
|
|
||||||
$f = $this->modules->get('InputfieldAsmSelect');
|
/** @var InputfieldAsmSelect $f */
|
||||||
|
$f = $modules->get('InputfieldAsmSelect');
|
||||||
$f->attr('id+name', 'textformatters');
|
$f->attr('id+name', 'textformatters');
|
||||||
$f->label = $this->_('Text Formatters');
|
$f->label = $this->_('Text Formatters');
|
||||||
|
|
||||||
foreach($this->modules->find("className^=Textformatter") as $textformatter) {
|
foreach($modules->find("className^=Textformatter") as $textformatter) {
|
||||||
$info = $textformatter->getModuleInfo();
|
$info = $textformatter->getModuleInfo();
|
||||||
$f->addOption($textformatter->className(), "$info[title]");
|
$f->addOption($textformatter->className(), "$info[title]");
|
||||||
}
|
}
|
||||||
|
@@ -106,13 +106,14 @@ class InputfieldTextarea extends InputfieldText {
|
|||||||
*/
|
*/
|
||||||
protected function setAttributeValue($value) {
|
protected function setAttributeValue($value) {
|
||||||
$maxlength = $this->attr('maxlength');
|
$maxlength = $this->attr('maxlength');
|
||||||
|
$value = (string) $value;
|
||||||
if($maxlength > 0 && $this->hasFieldtype === false) {
|
if($maxlength > 0 && $this->hasFieldtype === false) {
|
||||||
$value = $this->wire('sanitizer')->textarea($value, array(
|
$value = $this->wire()->sanitizer->textarea($value, array(
|
||||||
'maxLength' => $maxlength,
|
'maxLength' => $maxlength,
|
||||||
'maxBytes' => $maxlength*4,
|
'maxBytes' => $maxlength*4,
|
||||||
'stripTags' => false,
|
'stripTags' => false,
|
||||||
'trim' => $this->noTrim ? false : true
|
'trim' => $this->noTrim ? false : true
|
||||||
));
|
));
|
||||||
} else {
|
} else {
|
||||||
if(strpos($value, "\r\n") !== false) {
|
if(strpos($value, "\r\n") !== false) {
|
||||||
$value = str_replace("\r\n", "\n", $value);
|
$value = str_replace("\r\n", "\n", $value);
|
||||||
|
@@ -443,7 +443,7 @@ class InputfieldToggle extends Inputfield {
|
|||||||
|
|
||||||
$prevValue = $this->val();
|
$prevValue = $this->val();
|
||||||
$value = $input[$this->name];
|
$value = $input[$this->name];
|
||||||
$intValue = strlen($value) && ctype_digit("$value") ? (int) $value : null;
|
$intValue = strlen("$value") && ctype_digit("$value") ? (int) $value : null;
|
||||||
|
|
||||||
if($value === null && $input["_{$this->name}_"] === null) {
|
if($value === null && $input["_{$this->name}_"] === null) {
|
||||||
// input was not rendered in the submitted post, so should be ignored
|
// input was not rendered in the submitted post, so should be ignored
|
||||||
|
@@ -518,9 +518,10 @@ class LanguageSupportFields extends WireData implements Module {
|
|||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
public function isAlternateField($name) {
|
public function isAlternateField($name) {
|
||||||
|
$name = (string) $name;
|
||||||
if(isset($this->multilangAlternateFields[$name])) {
|
if(isset($this->multilangAlternateFields[$name])) {
|
||||||
// default language for an alternate field set
|
// default language for an alternate field set
|
||||||
return $this->wire('languages')->getDefault();
|
return $this->wire()->languages->getDefault();
|
||||||
}
|
}
|
||||||
if(!strpos($name, '_')) return false;
|
if(!strpos($name, '_')) return false;
|
||||||
$language = $this->getAlternateFieldParent($name, true);
|
$language = $this->getAlternateFieldParent($name, true);
|
||||||
|
@@ -143,54 +143,61 @@ class ProcessLogger extends Process {
|
|||||||
|
|
||||||
public function ___executeView() {
|
public function ___executeView() {
|
||||||
|
|
||||||
$name = $this->wire('input')->urlSegment2;
|
$input = $this->wire()->input;
|
||||||
if(!$name) $this->wire('session')->redirect('../');
|
$session = $this->wire()->session;
|
||||||
$logs = $this->wire('log')->getLogs();
|
$config = $this->wire()->config;
|
||||||
|
$modules = $this->wire()->modules;
|
||||||
|
$sanitizer = $this->wire()->sanitizer;
|
||||||
|
$log = $this->wire()->log;
|
||||||
|
|
||||||
|
$name = $input->urlSegment2;
|
||||||
|
if(!$name) $session->redirect('../');
|
||||||
|
$logs = $log->getLogs();
|
||||||
if(!isset($logs[$name])) {
|
if(!isset($logs[$name])) {
|
||||||
$this->error(sprintf('Unknown log: %s', $name));
|
$this->error(sprintf('Unknown log: %s', $name));
|
||||||
$this->wire('session')->redirect('../');
|
$session->redirect('../');
|
||||||
}
|
}
|
||||||
$action = $this->wire('input')->post('action');
|
$action = $input->post('action');
|
||||||
if($action) $this->processAction($action, $name);
|
if($action) $this->processAction($action, $name);
|
||||||
$limit = 100;
|
$limit = 100;
|
||||||
$options = array('limit' => $limit);
|
$options = array('limit' => $limit);
|
||||||
|
|
||||||
$q = $this->wire('input')->get('q');
|
$q = $input->get('q');
|
||||||
if(strlen($q)) {
|
if($q !== null && strlen($q)) {
|
||||||
$options['text'] = $this->wire('sanitizer')->text($q);
|
$options['text'] = $sanitizer->text($q);
|
||||||
$this->wire('input')->whitelist('q', $options['text']);
|
$input->whitelist('q', $options['text']);
|
||||||
}
|
}
|
||||||
|
|
||||||
$dateFrom = $this->wire('input')->get('date_from');
|
$dateFrom = $input->get('date_from');
|
||||||
if(strlen($dateFrom)) {
|
if($dateFrom !== null && strlen($dateFrom)) {
|
||||||
$options['dateFrom'] = ctype_digit("$dateFrom") ? (int) $dateFrom : strtotime("$dateFrom 00:00:00");
|
$options['dateFrom'] = ctype_digit("$dateFrom") ? (int) $dateFrom : strtotime("$dateFrom 00:00:00");
|
||||||
$this->wire('input')->whitelist('date_from', $options['dateFrom']);
|
$input->whitelist('date_from', $options['dateFrom']);
|
||||||
}
|
}
|
||||||
|
|
||||||
$dateTo = $this->wire('input')->get('date_to');
|
$dateTo = $input->get('date_to');
|
||||||
if(strlen($dateTo)) {
|
if($dateTo !== null && strlen($dateTo)) {
|
||||||
$options['dateTo'] = ctype_digit("$dateTo") ? (int) $dateTo : strtotime("$dateTo 23:59:59");
|
$options['dateTo'] = ctype_digit("$dateTo") ? (int) $dateTo : strtotime("$dateTo 23:59:59");
|
||||||
$this->wire('input')->whitelist('date_to', $options['dateTo']);
|
$input->whitelist('date_to', $options['dateTo']);
|
||||||
}
|
}
|
||||||
|
|
||||||
$options['pageNum'] = $this->wire('input')->pageNum;
|
$options['pageNum'] = (int) $input->pageNum;
|
||||||
|
|
||||||
do {
|
do {
|
||||||
// since the total count the pagination is based on may not always be accurate (dups, etc.)
|
// since the total count the pagination is based on may not always be accurate (dups, etc.)
|
||||||
// we migrate to the last populated pagination when items turn up empty
|
// we migrate to the last populated pagination when items turn up empty
|
||||||
$items = $this->wire('log')->getEntries($name, $options);
|
$items = $log->getEntries($name, $options);
|
||||||
if(count($items)) break;
|
if(count($items)) break;
|
||||||
if($options['pageNum'] < 2) break;
|
if($options['pageNum'] < 2) break;
|
||||||
$options['pageNum']--;
|
$options['pageNum']--;
|
||||||
} while(1);
|
} while(1);
|
||||||
|
|
||||||
if($this->wire('config')->ajax) return $this->renderLogAjax($items, $name);
|
if($config->ajax) return $this->renderLogAjax($items, $name);
|
||||||
|
|
||||||
/** @var InputfieldForm $form */
|
/** @var InputfieldForm $form */
|
||||||
$form = $this->wire('modules')->get('InputfieldForm');
|
$form = $modules->get('InputfieldForm');
|
||||||
|
|
||||||
/** @var InputfieldFieldset $fieldset */
|
/** @var InputfieldFieldset $fieldset */
|
||||||
$fieldset = $this->wire('modules')->get('InputfieldFieldset');
|
$fieldset = $modules->get('InputfieldFieldset');
|
||||||
$fieldset->attr('id', 'FieldsetTools');
|
$fieldset->attr('id', 'FieldsetTools');
|
||||||
$fieldset->label = $this->_('Helpers');
|
$fieldset->label = $this->_('Helpers');
|
||||||
$fieldset->collapsed = Inputfield::collapsedYes;
|
$fieldset->collapsed = Inputfield::collapsedYes;
|
||||||
@@ -198,7 +205,7 @@ class ProcessLogger extends Process {
|
|||||||
$form->add($fieldset);
|
$form->add($fieldset);
|
||||||
|
|
||||||
/** @var InputfieldText $f */
|
/** @var InputfieldText $f */
|
||||||
$f = $this->wire('modules')->get('InputfieldText');
|
$f = $modules->get('InputfieldText');
|
||||||
$f->attr('name', 'q');
|
$f->attr('name', 'q');
|
||||||
$f->label = $this->_('Text Search');
|
$f->label = $this->_('Text Search');
|
||||||
$f->icon = 'search';
|
$f->icon = 'search';
|
||||||
@@ -206,7 +213,7 @@ class ProcessLogger extends Process {
|
|||||||
$fieldset->add($f);
|
$fieldset->add($f);
|
||||||
|
|
||||||
/** @var InputfieldDatetime $f */
|
/** @var InputfieldDatetime $f */
|
||||||
$f = $this->wire('modules')->get('InputfieldDatetime');
|
$f = $modules->get('InputfieldDatetime');
|
||||||
$f->attr('name', 'date_from');
|
$f->attr('name', 'date_from');
|
||||||
$f->label = $this->_('Date From');
|
$f->label = $this->_('Date From');
|
||||||
$f->icon = 'calendar';
|
$f->icon = 'calendar';
|
||||||
@@ -216,7 +223,7 @@ class ProcessLogger extends Process {
|
|||||||
$fieldset->add($f);
|
$fieldset->add($f);
|
||||||
|
|
||||||
/** @var InputfieldDatetime $f */
|
/** @var InputfieldDatetime $f */
|
||||||
$f = $this->wire('modules')->get('InputfieldDatetime');
|
$f = $modules->get('InputfieldDatetime');
|
||||||
$f->attr('name', 'date_to');
|
$f->attr('name', 'date_to');
|
||||||
$f->icon = 'calendar';
|
$f->icon = 'calendar';
|
||||||
$f->label = $this->_('Date To');
|
$f->label = $this->_('Date To');
|
||||||
@@ -226,7 +233,7 @@ class ProcessLogger extends Process {
|
|||||||
$fieldset->add($f);
|
$fieldset->add($f);
|
||||||
|
|
||||||
/** @var InputfieldSelect $f */
|
/** @var InputfieldSelect $f */
|
||||||
$f = $this->modules->get('InputfieldSelect');
|
$f = $modules->get('InputfieldSelect');
|
||||||
$f->attr('name', 'action');
|
$f->attr('name', 'action');
|
||||||
$f->label = $this->_('Actions');
|
$f->label = $this->_('Actions');
|
||||||
$f->description = $this->_('Select an action below. You will be asked to click a button before the action is executed.');
|
$f->description = $this->_('Select an action below. You will be asked to click a button before the action is executed.');
|
||||||
@@ -235,14 +242,14 @@ class ProcessLogger extends Process {
|
|||||||
$f->addOption('download', $this->_('Download'));
|
$f->addOption('download', $this->_('Download'));
|
||||||
$fieldset->add($f);
|
$fieldset->add($f);
|
||||||
|
|
||||||
if($this->wire('user')->hasPermission('logs-edit')) {
|
if($this->wire()->user->hasPermission('logs-edit')) {
|
||||||
|
|
||||||
$f->addOption('add', $this->_('Grow (Add Entry)'));
|
$f->addOption('add', $this->_('Grow (Add Entry)'));
|
||||||
$f->addOption('prune', $this->_('Chop (Prune)'));
|
$f->addOption('prune', $this->_('Chop (Prune)'));
|
||||||
$f->addOption('delete', $this->_('Burn (Delete)'));
|
$f->addOption('delete', $this->_('Burn (Delete)'));
|
||||||
|
|
||||||
/** @var InputfieldInteger $f */
|
/** @var InputfieldInteger $f */
|
||||||
$f = $this->wire('modules')->get('InputfieldInteger');
|
$f = $modules->get('InputfieldInteger');
|
||||||
$f->attr('name', 'prune_days');
|
$f->attr('name', 'prune_days');
|
||||||
$f->label = $this->_('Chop To # Days');
|
$f->label = $this->_('Chop To # Days');
|
||||||
$f->inputType = 'number';
|
$f->inputType = 'number';
|
||||||
@@ -255,7 +262,7 @@ class ProcessLogger extends Process {
|
|||||||
$fieldset->add($f);
|
$fieldset->add($f);
|
||||||
|
|
||||||
/** @var InputfieldText $f */
|
/** @var InputfieldText $f */
|
||||||
$f = $this->wire('modules')->get('InputfieldText');
|
$f = $modules->get('InputfieldText');
|
||||||
$f->attr('name', 'add_text');
|
$f->attr('name', 'add_text');
|
||||||
$f->label = $this->_('New Log Entry');
|
$f->label = $this->_('New Log Entry');
|
||||||
$f->icon = 'leaf';
|
$f->icon = 'leaf';
|
||||||
@@ -263,29 +270,30 @@ class ProcessLogger extends Process {
|
|||||||
$fieldset->add($f);
|
$fieldset->add($f);
|
||||||
|
|
||||||
/** @var InputfieldSubmit $f */
|
/** @var InputfieldSubmit $f */
|
||||||
$f = $this->wire('modules')->get('InputfieldSubmit');
|
$f = $modules->get('InputfieldSubmit');
|
||||||
$f->value = $this->_('Chop this log file now');
|
$f->value = $this->_('Chop this log file now');
|
||||||
$f->icon = 'cut';
|
$f->icon = 'cut';
|
||||||
$f->attr('name', 'submit_prune');
|
$f->attr('name', 'submit_prune');
|
||||||
$f->showIf = 'action=prune';
|
$f->showIf = 'action=prune';
|
||||||
$fieldset->add($f);
|
$fieldset->add($f);
|
||||||
|
|
||||||
$f = $this->wire('modules')->get('InputfieldSubmit');
|
$f = $modules->get('InputfieldSubmit');
|
||||||
$f->value = $this->_('Burn this log now (permanently delete)');
|
$f->value = $this->_('Burn this log now (permanently delete)');
|
||||||
$f->icon = 'fire';
|
$f->icon = 'fire';
|
||||||
$f->attr('name', 'submit_delete');
|
$f->attr('name', 'submit_delete');
|
||||||
$f->showIf = 'action=delete';
|
$f->showIf = 'action=delete';
|
||||||
$fieldset->add($f);
|
$fieldset->add($f);
|
||||||
|
|
||||||
$f = $this->wire('modules')->get('InputfieldSubmit');
|
$f = $modules->get('InputfieldSubmit');
|
||||||
$f->value = $this->_('Add this log entry');
|
$f->value = $this->_('Add this log entry');
|
||||||
$f->icon = 'leaf';
|
$f->icon = 'leaf';
|
||||||
$f->attr('name', 'submit_add');
|
$f->attr('name', 'submit_add');
|
||||||
$f->showIf = 'action=add';
|
$f->showIf = 'action=add';
|
||||||
$fieldset->add($f);
|
$fieldset->add($f);
|
||||||
}
|
}
|
||||||
|
|
||||||
$f = $this->wire('modules')->get('InputfieldSubmit');
|
/** @var InputfieldSubmit $f */
|
||||||
|
$f = $modules->get('InputfieldSubmit');
|
||||||
$f->value = $this->_('Download this log file now');
|
$f->value = $this->_('Download this log file now');
|
||||||
$f->icon = 'download';
|
$f->icon = 'download';
|
||||||
$f->attr('name', 'submit_download');
|
$f->attr('name', 'submit_download');
|
||||||
@@ -293,17 +301,19 @@ class ProcessLogger extends Process {
|
|||||||
$fieldset->add($f);
|
$fieldset->add($f);
|
||||||
|
|
||||||
$this->headline(ucfirst($name));
|
$this->headline(ucfirst($name));
|
||||||
$this->breadcrumb('../../', $this->wire('page')->title);
|
$this->breadcrumb('../../', $this->wire()->page->title);
|
||||||
|
|
||||||
$out = $form->render() .
|
return
|
||||||
|
$form->render() .
|
||||||
"<div id='ProcessLogEntries'>" .
|
"<div id='ProcessLogEntries'>" .
|
||||||
$this->renderLog($items, $name) .
|
$this->renderLog($items, $name) .
|
||||||
"</div>";
|
"</div>";
|
||||||
return $out;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
protected function renderLogAjax(array $items, $name) {
|
protected function renderLogAjax(array $items, $name) {
|
||||||
$time = (int) $this->wire('input')->get('time');
|
$input = $this->wire()->input;
|
||||||
|
|
||||||
|
$time = (int) $input->get('time');
|
||||||
$render = true;
|
$render = true;
|
||||||
$qtyNew = 0;
|
$qtyNew = 0;
|
||||||
$note = '';
|
$note = '';
|
||||||
@@ -324,7 +334,7 @@ class ProcessLogger extends Process {
|
|||||||
'out' => '',
|
'out' => '',
|
||||||
'note' => $note,
|
'note' => $note,
|
||||||
'time' => time(),
|
'time' => time(),
|
||||||
'url' => $this->wire('input')->url() . '?' . $this->wire('input')->queryString()
|
'url' => $input->url() . '?' . $input->queryString()
|
||||||
);
|
);
|
||||||
if($render) {
|
if($render) {
|
||||||
$data = array_merge($data, array(
|
$data = array_merge($data, array(
|
||||||
|
@@ -2948,7 +2948,7 @@ class ProcessPageEdit extends Process implements WirePageEditor, ConfigurableMod
|
|||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
public function getRedirectUrl(array $extras = array()) {
|
public function getRedirectUrl(array $extras = array()) {
|
||||||
$url = $this->redirectUrl;
|
$url = (string) $this->redirectUrl;
|
||||||
if(!strlen($url)) $url = "./?id=$this->id";
|
if(!strlen($url)) $url = "./?id=$this->id";
|
||||||
if($this->requestModal && strpos($url, 'modal=') === false) {
|
if($this->requestModal && strpos($url, 'modal=') === false) {
|
||||||
$extras[] = "modal=$this->requestModal";
|
$extras[] = "modal=$this->requestModal";
|
||||||
|
@@ -920,7 +920,7 @@ class ProcessPageEditImageSelect extends Process implements ConfigurableModule {
|
|||||||
$classOptions = '';
|
$classOptions = '';
|
||||||
foreach($optionalClasses as $class => $label) {
|
foreach($optionalClasses as $class => $label) {
|
||||||
$labelKey = array_search($label, $labels);
|
$labelKey = array_search($label, $labels);
|
||||||
$selected = strpos($input->get('class'), $class) !== false ? " selected='selected'" : '';
|
$selected = strpos((string) $input->get('class'), $class) !== false ? " selected='selected'" : '';
|
||||||
if($selected) $attrs['class'] .= " $class";
|
if($selected) $attrs['class'] .= " $class";
|
||||||
$classOptions .= "<option$selected data-label='$labelKey' value='$class'>$label</option>";
|
$classOptions .= "<option$selected data-label='$labelKey' value='$class'>$label</option>";
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user