Добавление настраиваемого поля на странице создания статьи

Я добавил настраиваемое поле на странице создания статьи, но оно отображается между вкладкой параметров, но мне нужно, чтобы поле отображалось между полем Title и alias.

Вот мой код, который я ссылался на https://docs.joomla.org/Adding_custom_fields_to_the_article_component

Rating.php

<?php
//$xml = simplexml_load_file("multiurlredirect.xml");

// no direct access
defined( '_JEXEC' ) or die( 'Restricted access' );

jimport( 'joomla.plugin.plugin' );
jimport( 'joomla.form.form' );


class plgsystemrating extends JPlugin
{

   public function __construct(& $subject, $config)
   {
      parent::__construct($subject, $config);

   }

   public function onContentPrepareForm($form, $data)
   { 

      if (!($form instanceof JForm))
      {
         $this->_subject->setError('JERROR_NOT_A_FORM');
         return false;
      }

      JFormHelper::addFormPath(dirname(__FILE__) . '/rating');

      $form->loadFile('rating', true);

      return true; 
   }
}

rating.xml

  <config>
     <fields name="params">
        <fieldset name="primaryfieldset">
           <field
              name="ratingclass_sfx"
              type="text"
              label="Rating Class"
              description="Optional CSS class to add to the rating. This allows CSS styling specific to the page."
           />
        </fieldset>
     </fields>
  </config>

рейтинг /rating.xml

  <fields name="attribs">
     <fieldset name="primaryfieldset" label="Rating Options">
        <field
           name="texture"
           type="text"
           id="texture"
           description="What does the sample feel like"
           label="Texture"
           message="PLG_CONTENT_RATING_FIELD_TEXTURE_MESSAGE"
           size="30"
        />
     </fieldset>
  </fields>

И мой вывод введите описание изображения здесь

Мне нужна опция рейтинга, которая будет отображаться между заголовком и псевдонимом.

Пожалуйста, объясните мне, как это сделать

2 голоса | спросил manikandan palanisamy 24 MarpmThu, 24 Mar 2016 16:34:59 +03002016-03-24T16:34:59+03:0004 2016, 16:34:59

1 ответ


1

Если вы посмотрите файл шаблона на странице администратора /components /com_content /views /article /tmpl /edit.php в строке 78, вы увидите следующий код:

<?php echo JLayoutHelper::render('joomla.edit.title_alias', $this); ?>

Что содержит следующий код для рендеринга заголовка и псевдонима для статьи:

<?php
defined('JPATH_BASE') or die;

$form = $displayData->getForm();

$title = $form->getField('title') ? 'title' : ($form->getField('name') ? 'name' : '');

?>
<div class="form-inline form-inline-header">
    <?php
    echo $title ? $form->renderField($title) : '';
    echo $form->renderField('alias');
    ?>
</div>

Вы хотите выполнить переопределение макета на title_alias.php, скопировав файл в папку {your_template} /html /layouts /joomla /edit /. После копирования отредактируйте файл, добавив свое настраиваемое поле.

<?php
defined('JPATH_BASE') or die;

$form = $displayData->getForm();

$title = $form->getField('title') ? 'title' : ($form->getField('name') ? 'name' : '');

?>
<div class="form-inline form-inline-header">
    <?php
    echo $title ? $form->renderField($title) : '';
    echo $form->renderField('my_custom_field');  <--- NEW LINE
    echo $form->renderField('alias');
    ?>
</div>

Это должно помещать поле, в котором оно вам нужно. Одна вещь, которую вам нужно будет сделать, это изменить ваш XML-файл, чтобы он автоматически не отображался как вкладка. Вы должны сделать это, вставив непосредственно в a вместо a и.

Надеюсь, что это поможет.

Переопределения вывода Joomla

переопределение Joomla Layout

ответил Brian Bolli 24 MarpmThu, 24 Mar 2016 20:23:50 +03002016-03-24T20:23:50+03:0008 2016, 20:23:50

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132