0 Пользователей и 1 Гость просматривают эту тему.
  • 22 Ответов
  • 4770 Просмотров
*

marbert

  • Захожу иногда
  • 413
  • 9 / 0
возникла ситуация, необходимо запретить автору нессанкционировано менять свой материал - как?

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

SmokerMan

  • Гуру
  • 5293
  • 720 / 26
Ту тему бахнули вот это подойдет http://joomlaforum.ru/index.php/topic,32718.0.html
*

marbert

  • Захожу иногда
  • 413
  • 9 / 0
Ту тему бахнули вот это подойдет http://joomlaforum.ru/index.php/topic,32718.0.html

упс.... но в content.php нет таких строк, о которых пишет smart...
*

SmokerMan

  • Гуру
  • 5293
  • 720 / 26
Потому что это для 1.0  ;D я не знаю почему бахнули тему, но тема была это точно и я отвечал как это сделать. Если никто не ответить позже напишу как сделать.
*

marbert

  • Захожу иногда
  • 413
  • 9 / 0
Потому что это для 1.0  ;D я не знаю почему бахнули тему, но тема была это точно и я отвечал как это сделать. Если никто не ответить позже напишу как сделать.
а без хака, выходит, никак?

т.е., нет плагина какого для регистрации CB?
*

SmokerMan

  • Гуру
  • 5293
  • 720 / 26
Итак два варианта 1 сложный, второй простой
1. Вообщем я тогда предлагал изменить немного шаблон вывода материала. Допустим у нас есть блог категории берем файл components\com_content\views\blog_item.php находим в нем
Код
<?php $canEdit   = ($this->user->authorize('com_content', 'edit', 'content', 'all') || $this->user->authorize('com_content', 'edit', 'content', 'own')); ?>
и меняем на
Код
<?php $canEdit   = ($this->user->authorize('com_content', 'edit', 'content', 'all')); ?>
Ну и так с шаблонами вывода остального (материала и т.д.) подробнее читаем это Меняем вид вывода контена!
Это уберет иконку, но не спасет от ссылки на редактирование (view=article&id=IDматериала&task=edit&option=com_content) хотя она типа шифруется добавляется всякая хренатень типа "%3Afdgdfgdfg" и т.п, но это все до лампочки :). Так вот что бы злые звери не могли отредактировать надо закомментировать или удалить еще строчку в components\com_content\controller.php
Код
function edit()
{
$user =& JFactory::getUser();

// Create a user access object for the user
$access = new stdClass();
$access->canEdit = $user->authorize('com_content', 'edit', 'content', 'all');
//$access->canEditOwn = $user->authorize('com_content', 'edit', 'content', 'own'); Эту строчку комментируем.

Но с этим вариантом там у ребят какие-то проблемы или непонятки были помоему, не помню, точно так до конца и не разобрались.
Почему тему удалили я не знаю. Может кто из старших увидит ответит :)

2. А забыл еще есть более радикальный метод с com_content\helpers\icon.php можно тупо его переименовать в icon2.php, но тогда у вас упадут все иконки PDf и т.д.

Либо меняем в com_content\helpers\icon.php
Код
if (!$access->canEdit && !($access->canEditOwn && $article->created_by == $user->get('id'))) {
return;
}
на
Код
if (!$access->canEdit) {
return;
}
И все должно работать. Да уж лучше одну строчку поменять в одном файле чем в пяти :)
Только после обновления не надо забывать меняется этот файл или нет.

Вообщем все рассказал пишите, если что не так.
« Последнее редактирование: 04.03.2009, 15:05:02 от SmokerMan »
*

marbert

  • Захожу иногда
  • 413
  • 9 / 0
Итак два варианта 1 сложный, второй простой
хм, решения серьезные и не однозначные...

ты можешь помочь в вопросе с Profile Manager (PROMA)?
*

SmokerMan

  • Гуру
  • 5293
  • 720 / 26
хм, решения серьезные и не однозначные...
Однозначные  8) Ибо еще не нашлись товарищи которые помогут по данному вопросу. За советами можно обратиться на оф. форум поддержки (англ.)  ;) Если что найдете по этой теме пишите здесь. Пока это просто мое мнение. Вы задали вопрос я на него ответил.
Если вы попробовали то что я написал и у вас это не получилось, так и скажите в чем заключается проблема? А по поводу сомнительно или нет это уж ... б дальше писать не хочу

По поводу личного сообщения ничем помочь не могу!

500 цука набил  *DRINK*
« Последнее редактирование: 05.03.2009, 00:38:11 от SmokerMan »
*

marbert

  • Захожу иногда
  • 413
  • 9 / 0
Однозначные  8) Ибо еще не нашлись товарищи которые помогут по данному вопросу. За советами можно обратиться на оф. форум поддержки (англ.)  ;) Если что найдете по этой теме пишите здесь. Пока это просто мое мнение. Вы задали вопрос я на него ответил.
Если вы попробовали то что я написал и у вас это не получилось, так и скажите в чем заключается проблема? А по поводу сомнительно или нет это уж ... б дальше писать не хочу

По поводу личного сообщения ничем помочь не могу!

500 цука набил  *DRINK*
нет, вопрос не в том, что Ваш совет не пригодился или еще что, вопрос в том, что когда речь шла о J1.0 и в ней нужно было изменить 2 строки в одном файле - это одно, а в случае с J1.5 - как Вы сами сказали "Да уж лучше одну строчку поменять в одном файле чем в пяти" - и при этом "Но с этим вариантом там у ребят какие-то проблемы или непонятки были" - сами понимаете...

Поскольку, речь не о персональной страничке, рисковать стремно... Признаюсь, очень удивлен, ПОЧЕМУ такая простая функция не решена joomla.org изначально, чтобы безо всяких хаков и т.п. - ведь вопрос банальный...

В любом случае, Вам, SmokerMan, спасибо за предложение!
*

koN

  • Захожу иногда
  • 108
  • 7 / 0
Всё, нашел, как повторить метод Smarta в Joomla 1.5.

components\com_content\views\

В папках (кроме архивной) найти файлы "view.html.php" и заменить в них строки:

$access->canEdit = $user->authorize('com_content', 'edit', 'content', 'all');
$access->canEditOwn   = $user->authorize('com_content', 'edit', 'content', 'own');

На:

$access->canEdit = false;
$access->canEditOwn = false;
« Последнее редактирование: 29.07.2009, 08:34:59 от koN »
*

SmokerMan

  • Гуру
  • 5293
  • 720 / 26
Всё, нашел, как повторить метод Smarta в Joomla 1.5.

components\com_content\views\

В папках (кроме архивной) найти файлы "view.html.php" и заменить в них строки:

$access->canEdit = $user->authorize('com_content', 'edit', 'content', 'all');
$access->canEditOwn   = $user->authorize('com_content', 'edit', 'content', 'own');

На:

$access->canEdit = false;
$access->canEditOwn = false;

При таком раскладе иконка пропадет у всех, в том числе и у админа. Тогда уже лучше оставить $access->canEdit как был.
И вообще этот вариант лучше не использовать, т.к. это делается не на уровне шаблона.
И зачем опять же менять в 4-х файлах, когда все можно сделать в одном icon.php?
*

koN

  • Захожу иногда
  • 108
  • 7 / 0
При таком раскладе иконка пропадет у всех, в том числе и у админа.

Согласен, просто мне надо было отключить редактирование с фронтенда для всех групп. Но ведь и у Смарта для Joomla 1.0 аналогично.

И зачем опять же менять в 4-х файлах, когда все можно сделать в одном icon.php?

В icon.php Вы только иконку отключаете, а смартовским методом - доступ к функции редактирования, или я что-то неправильно понимаю?
*

SmokerMan

  • Гуру
  • 5293
  • 720 / 26
Я не знаю что там за  метод Смарта.
Но этим я думаю тоже много не добьетесь.
Проще убрать строчку из libraries\joomla\user\authorization.php
Код
$this->addACL( 'com_content', 'edit', 'users', 'author', 'content', 'own' );
*

koN

  • Захожу иногда
  • 108
  • 7 / 0
Я не знаю что там за  метод Смарта.

http://joomlaforum.ru/index.php/topic,32718.0.html

Но этим я думаю тоже много не добьетесь.

Какие могут быть проблемы?
*

SmokerMan

  • Гуру
  • 5293
  • 720 / 26
Какие могут быть проблемы?
Да проблем собственно не каких и нет :)
Разговор не о чем. Вашим методом точно так же скрывается иконка на редактирование материала, а если пройти по нужной ссылочке
Код
?view=article&id=IDМАТЕРИАЛА&task=edit&option=com_content
то его все равно можно отредактировать.
Если хотите от этого избавиться делайте как я написал в предыдущем посте.
*

koN

  • Захожу иногда
  • 108
  • 7 / 0
Да проблем собственно не каких и нет :)
Разговор не о чем. Вашим методом точно так же скрывается иконка на редактирование материала, а если пройти по нужной ссылочке
Код
?view=article&id=IDМАТЕРИАЛА&task=edit&option=com_content
то его все равно можно отредактировать.
Если хотите от этого избавиться делайте как я написал в предыдущем посте.

Что ж, справедливо, принимается. Больше в этом файле ничего не надо менять?
*

virusnumber9

  • Захожу иногда
  • 72
  • 0 / 0
  • Творец!
Цитата: SmokerMan
Если хотите от этого избавиться делайте как я написал в предыдущем посте.

Тогда "авторы" не могут добавлять ничего
*

SmokerMan

  • Гуру
  • 5293
  • 720 / 26
Тогда "авторы" не могут добавлять ничего
что значит не могут?
причем здесь редактирование и добавление?
*

virusnumber9

  • Захожу иногда
  • 72
  • 0 / 0
  • Творец!
"Авторы" не могут добавлять ничего, тогда что они будут редактировать? Материал не добавляется
*

SmokerMan

  • Гуру
  • 5293
  • 720 / 26
"Авторы" не могут добавлять ничего, тогда что они будут редактировать? Материал не добавляется
действительно, наверное не могут, давно тема была и всплыла тут :)
components\com_content\controller.php добавляем
Цитировать
function save()
...

      $access->canPublish      = $user->authorize('com_content', 'publish', 'content', 'all');
      $access->canADD      = $user->authorize('com_content', 'add', 'content', 'all');

      if (!($access->canEdit || $access->canEditOwn || $access->canADD)) {
         JError::raiseError( 403, JText::_("ALERTNOTAUTH") );
      }
пробуем.
*

virusnumber9

  • Захожу иногда
  • 72
  • 0 / 0
  • Творец!
Просто удалить строчку "|| $access->canEditOwn" ? Или чет я не понял...
« Последнее редактирование: 04.11.2010, 11:02:54 от virusnumber9 »
*

lustoff

  • Захожу иногда
  • 137
  • 4 / 1
Здравствуйте!
Подскажите, пожалуйста, можно ли ограничить возможность редактирования по времени. Чтобы Авторы могли редактировать свои материалы в течении суток, скажем, а после этого такая возможность бы пропадала?
Спасибо.
*

lustoff

  • Захожу иногда
  • 137
  • 4 / 1
Что, совсем никак  :o?
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться