私は Zoo CCK を使用しており、コードをいじって、私が望むように見えるようにしました。しかし、アイテムを送信すると、(タイトルに) わからないエラーが表示されます。
混乱を避けるために、私がファイルに加えた編集は、$message の部分とそれを識別する関連コードを追加することであったことを言及しておく必要があります。
どんな助けでも大歓迎です。以下のファイルコードは次のとおりです。
エラー:アイテムの保存中にエラーが発生しました (名前が無効です)
<?php
// no direct access
defined('_JEXEC') or die('Restricted access');
// register ElementOption class
App::getInstance('zoo')->loader->register('ElementOption', 'elements:option/option.php');
// register ElementRepeatable class
App::getInstance('zoo')->loader->register('ElementRepeatable', 'elements:repeatable/repeatable.php');
/*
Class: ElementSelect
The select element class
*/
class ElementMessage extends ElementOption implements iSubmittable {
/*
Function: edit
Renders the edit form field.
Returns:
String - html
*/
public function edit(){
$this->app->document->addStylesheet('elements:message/assets/css/submission.css');
// init vars
$options_from_config = $this->config->get('option', array());
$multiple = $this->config->get('multiple');
$default = $this->config->get('default');
$name = $this->config->get('name');
$message = $this->get('message');
if (count($options_from_config)) {
// set default, if item is new
if ($default != '' && $this->_item != null && $this->_item->id == 0) {
$this->set('option', $default);
}
$options = array();
if (!$multiple) {
$options[] = $this->app->html->_('select.option', '', '-' . JText::sprintf('Select %s', $name) . '-');
}
foreach ($options_from_config as $option) {
$options[] = $this->app->html->_('select.option', $option['value'], $option['name']);
}
$style = $multiple ? 'multiple="multiple" size="5"' : '';
$html[] = $this->app->html->_('select.genericlist', $options, $this->getControlName('option', true), $style, 'value', 'text', $this->get('option', array()));
$html[] = $this->app->html->_('control.text', $this->getControlName('Message'), $this->get('message'), 'name="message" size="30" maxlength="255" placeholder="'.JText::_('Message').'"');
// workaround: if nothing is selected, the element is still being transfered
$html[] = '<input type="hidden" name="'.$this->getControlName('select').'" value="1" />';
return implode("\n", $html);
}
return JText::_("There are no options to choose from.");
}
public function hasValue($params = array()) {
$message = $this->get('message');
return !empty($message);
}
}