http://community.getk2.org/forum/topics/solved-adding-articles-on-the?xg_source=activity
Эта ссылка - это то исправление, которое я искал - этот вопрос изначально был нацелен на Компонент K2 для Joomla.
Я и другой человек смогли решитьвопрос, написав некоторый собственный код.В этой ветке, а также в той, что указана в ответах, найдено решение.
РЕДАКТИРОВАТЬ: Был сделан запрос на размещение решения здесь, поэтому вот краткое резюме
Если у вас есть пользователи, создающие статьи из внешнего интерфейса, и вы хотите, чтобы кнопка «Сохранить» закрывала окно окна модели, которое появляется при добавлении или редактировании статьи, - просто выполните следующие действия, чтобы добиться этого:
* Примечание: есть несколько других исправлений, которые работают, чтобы закрыть окно, но не обновить страницу - это делает и то и другое.
Ключ передает дополнительный параметр через URL, который создается припользователь нажимает «Сохранить», затем мы просто проверяем, существует ли этот параметр (который я назову «шаг») - если это так, мы обновляем страницу.
Давайте продолжим, сначала мы должны добавитьэтот параметр для созданного URL-адреса -
Откройте файл item.php, расположенный по адресу:
Ваш сайт-> Администратор-> Компоненты-> com_k2-> models-> item.php
На линии 646 или около нее - выВы увидите некоторый текст, похожий на:
case 'save':
default:
$msg = JText::_('Item Saved');
if ($front)
$link = 'index.php?option=com_k2&view=item&task=edit&cid='.$row->id.'&tmpl=component';
else
$link = 'index.php?option=com_k2&view=items';
break;
Итак, нам нужно добавить наш параметр к этому URL, чтобы он выглядел следующим образом (помните, я назвал параметр 'step' и буду его устанавливать= 1) - код теперь будет выглядеть так:
if ($front)
$link = 'index.php?option=com_k2&view=item&task=edit&cid='.$row->id.'&step=1&tmpl=component';
Теперь, когда пользователь нажимает «сохранить», параметр «шаг» передается, и когда форма перезагружается, чтобы показать пользователю его информациюони вошли, шаг = 1!
Итак, нам нужно добавить php, чтобы проверить это - это достаточно просто:
Откройте файл form.php, расположенный по адресу:
Yoursite-> components-> com_k2-> views-> item-> tmpl-> form.php
Там вы можете увидеть, где на самом деле начинается форма (в строке 249 или около нее), что мы хотимчтобы сделать это просто добавить немного php, который проверяет, равен ли наш параметр 'step' 1. Если это так - мы обновим родительскую страницу, используя некоторый javascript, который автоматически закроет окно модели и вызоветтекст сохранен для отображения пользователюс тем, что произошло.
Существующий код выглядит следующим образом:
<form action="index.php" enctype="multipart/form-data" method="post" name="adminForm" id="adminForm">
<div class="k2Frontend">
<table class="toolbar" cellpadding="2" cellspacing="4">
Когда он будет завершен, он будет выглядеть следующим образом:
<form action="index.php" enctype="multipart/form-data" method="post" name="adminForm" id="adminForm">
<div class="k2Frontend">
<?php if (JRequest::getInt('step')=='1') { ?>
<script language="javascript">
var XHRCheckin = new Ajax('index.php?option=com_k2&view=item&task=checkin&cid=<?php echo $this->row->id; ?>', {
method: 'get'
});
dummy = $time() + $random(0, 100);
XHRCheckin.request("t"+dummy);
parent.$('sbox-window').close();
window.parent.location.reload();
</script>
<?php } ?>
<table class="toolbar" cellpadding="2" cellspacing="4">
Это проверяет, является ли 'шаг'is = 1.Если это так - он запускает javascript для обновления родительского окна - закрывая окно и автоматически обновляя страницу.Он также проверяет в статье о бэкэнде.
Это обеспечивает пользователю самую легкую вещь (т.е. ему не нужно нажимать «назад» и «обновить», что крайне нелогично) и даетпользователь переднего плана - опыт работы с конечным пользователем.
Надеюсь, это поможет людям - мне потребовалось МНОГО погони за неправильным направлением, прежде чем я подумал об этом решении.
ЯДовольно опечаленный разработчики никогда не помогали с чем-то, что затронуло так много людей, ну да ладно - проблема была решена!