dwd

dwd

+382
Репутация
6746
Рейтинг
0
dwd dwd Компонент «Полезность страниц» для ICMS 2 8 лет назад
У нас есть форум, есть пожелания/пулреквесты на гитхабе. Можно же все неудобства обсудить, более того, многие именно так и делают. Но для этого как минимум нужно, чтобы кто-то поднял тему
Я у вас человек новый, еще толком не освоился, но со временем доберусь и до форума и до гитхаба.))))
Вы писали про то, что нужно добавлять правила, а не гибко их обрабатывать.
Вот то, что я писал, то же самое пишу еще раз. Я за возможность именно создавать правила. По умолчанию мы имеем набор родительских правил, которые работают во всем типе контента. Я предлагаю ввести возможность создавать правила, работающие только при выполнении определенных условий. К примеру мы для категории с ID=5 создаем правило запрещающее оценку статей в данной категории. Данное правило использует те же обработчики, что и глобальные правила, но работает исключительно в данной категории. В случае отсутствия правил для данной категории срабатывают глобальные правила типа контента. Как-то так.
Так что мешало предложить добавить новые хуки?
Во-первых там не только в хуках дело, многие моменты и хуками не исправишь. Во вторых это все время, а его у меня не было. Пока я предложу, пока вы обмозгуете, пока выйдет релиз и т.д. А магазин с полной мультиязычностью человеку нужен "вчера".
+1
dwd dwd Компонент «Полезность страниц» для ICMS 2 8 лет назад
Все что я напишу ниже более чем реально и при этом не трудозатратно. Не примите это как камень в ваш огород, но я считаю что система такого уровня должна обладать гораздо большими возможностями и гибкостью настройки прав. Я рад что вы прочли прошлое сообщение и буду рад если вы прочтете это. И еще больше буду рад если прислушаетесь. Возможно даже форма в которой это будет реализована будет отличаться от той, которую я сейчас предложу.
Очевидно для мультиязычности интрефейса.
Вариант en => Title, ru => Заголовок преобразованные в Yaml не подходят? Вам виднее, я только предложил. Да и воообще хранение констант в БД и их удобное редактирование в админке на мой взгляд в разы удобнее. Больше сотни языковых файлов превращаются в 1 таблицу, мультиязычность реализуется одним $model->filterEqual('lang', $lang) и пользователи получают полный контроль над константами/языками.
Правила доступа это прерогатива разработчика компонента, а не администратора сайта.
Вот в этом моменте абсолютно с вами не согласен о чем напишу ниже.
Это не гибкое управление правами доступа?
Нет, это пародия. Простейший пример: имеем 2 категории в типе контента. Надо разрешить оценку/просмотр записей только для одной из двух и запретить для другой. Как? А ведь это вопрос админа.
Администратор лишь настраивает правила. Мне кажется вы вводите окружающих в заблуждение или неверно доносите свою мысль.
Я никого не ввожу в заблуждение. Существуют настройки типов контента, компонентов по умолчанию. Существуют их обработчики. Со временем добавите новые. А для начала не надо ничего глобально дописывать/переделывать. просто дайте пользователям возможность переопределять данные правила в зависимости от ряда условий. Как в примере выше(про категории). А еще я хочу показывать наборы(datasets) одной группе пользователей и не показывать другой, разрешать поиск только в определенных категориях сайта и т.д. И таких примеров привести можно миллион. Вот тогда это будет поистине гибкое управление правами доступа. На данный момент оно является удовлетворительным и позволяет решить большинство задач. Но гибкости в нем нет.

Я не претендую на истину первой инстанции, а просто высказываю свое мнение. Вам решать как и в какую сторону развивать систему.

Ну и чисто для справки:
А если вы делаете дополнение, при разработке которого нужно править файлы движка - это явная ошибка подхода к разработке.
Поверьте, я много чего написал под вторую ветку и для себя и для знакомых и по личным просьбам в ЛС на вашем сайте. И у меня нет ни одной разработки кроме компонента "Языки", которая бы затрагивала файлы движка.
+1
dwd dwd Компонент «Полезность страниц» для ICMS 2 8 лет назад
Я о том, что не мешало бы в таблицу perms_rules добавить парочку столбцов - title и options и сделать простой компонент, позволяющий любому пользователю добавлять собственные правила. Это сделает систему гораздо гибче. Я даже не буду приводить в пример тот же древний VBulletin, где кастомизация настолько шикарна, что для каждого раздела можно настроить десятки правил. Любой пользователь сможет открыть компонент, ввести название правила, тип контента, и другие опции(например, категорию в которой оно будет действовать) и нажав кнопочку сохранить получить желаемое.

Если ну аж очень совсем ни разу такие возможности инстанту не нужны(возможно это я один такой извращенец) то стоит добавить просто поле title. Да, разработчики все также будут добавлять нужный функционал при установке своего компонента, но вопросы про то, куда куда вставлять константы отпадут сами собой. Все будет культурно храниться в одной табличке - и правила и их названия. Если честно не совсем понимаю что заставило разработчиков системы хранить названия правил в виде констант.
0
dwd dwd Компонент «Полезность страниц» для ICMS 2 8 лет назад
Речь не об этом. А о том, что кодом по возможности максимально должен заниматься программист. И желательно избавлять пользователей от любых действий с редактированием кода, если это возможно и не несёт за собой серьёзных затрат ресурсов. ИМХО.

Абсолютно с вами согласен. По поводу удобства для пользователей вы меня убедили, пожалуй это действительно так. Но вот версия Инстанта скоро упрется в 3.0, а ввиду отсутствия в коробке хоть какого-нибудь компонента управления правами доступа мы с вами до сих пор добавляем правила доступа SQL-запросами и рассуждаем на тему куда втыкать константы этих самых правил. Это равносильно рассуждениям на тему какой костыль лучше - деревянный или аллюминиевый.))))))
0
dwd dwd Компонент «Полезность страниц» для ICMS 2 8 лет назад
Я же сказал, я не хочу вступать в полемику по данному вопросу. Я предложил тот способ, который считаю наиболее оптимальным.
при этом отсутствие необходимости править руками какие-то файлы при установке компонента и каждом обновлении + возможность обновлять ядро без риска забыть внести эти правки.
Если уж на то пошло, можно и вовсе обойтись без всяких правок. Чем не вариант? Да, вариант №3. Вы как один раз настроите права так больше и не загляните никогда в них.)))))) И это вместо того, чтобы грузить ваш файл при каждой загрузке страницы. Одного трафика на сайте с приличной посещаемостью набежит 100Мб+)))))
- кто за вариант 2 (за экономию 0,1 мс и за свою дополнительную работу и риск что-то испортить при каждом обновлении движка или компонента) - поставьте минус.
Не вводите людей в заблуждение. Если у вас получится что-то сломать забыв разместить константу я вам лично поставлю памятник при жизни.
0
dwd dwd Компонент «Полезность страниц» для ICMS 2 8 лет назад
Языковые файлы компонентов загружаются автоматом только на страницах этих компонентов.
Именно об этом я собственно и писал.
Вам же объяснили - кидаете файл grades.php с нужными для работы вне компонента константами в папку \system\languages\ru
Плюс один подключаемый файл из-за одной константы это поистине королевская щедрость. Не хочу вдаваться в полемику по данному вопросу, но у себя на сайте я б этого не делал.
0
dwd dwd Компонент «Полезность страниц» для ICMS 2 8 лет назад
и разместить их в system\languages\ru и \system\languages\ru
и еще где разместить?))))

Если б константа нужна была для работы компонента она б и бралась из файла system/languages/ru/controllers/grades/grades.php, но если бы вы были более внимательны, то обратили бы внимание, где именно выводится данная константа. Лично у меня движок при редактировании типов контента отказывается брать константы с языкового файла компонента. Поделитесь секретом как это получается у вас?
0
dwd dwd Компонент «Полезность страниц» для ICMS 2 8 лет назад
Вы имеете в виду какие "обе оценки"? И полезность и рейтинг? Они и так между собой никак не связаны, используйте одновременно.
+1
dwd dwd Компонент «Полезность страниц» для ICMS 2 8 лет назад
Спасибо, учтемс и это. Код данного компонента открыт и не имеет никаких привязок.
+2
dwd dwd Компонент «Полезность страниц» для ICMS 2 8 лет назад
Спасибо, учтемс ...
+1
dwd dwd Компонент «Полезность страниц» для ICMS 2 8 лет назад
Можете считать этот компонент заменой банальному
+1
dwd dwd Компонент «Полезность страниц» для ICMS 2 8 лет назад
Поправлю. Рейтинг это рейтинг. А тут речь совсем о другом. Я могу зайти на страницу с описанием свехкачественного, супердешевого и хорошо себя зарекомендовавшего себя товара, но не найти на ней ни внятного описания ни тех. характеристик ни фото. Хорош товар? Безусловно. Полезна страница - нет. Так что рейтинг тут ни при чем. Вы конечно и в качестве альтернативы рейтингу можете использовать компонент, но изначально его функция другая.
+2
dwd dwd Компонент "Языки" для ICMS 2 - Обновление 1.1 8 лет назад
В файле templates/default/controllers/content/widgets/categories/categories.tpl.php меняем вставленный код на :
Код PHP:
  1. <?php # перевод категорий
  2. $system_lang = cmsCore::getLanguageName();
  3. $config = cmsConfig::getInstance();
  4. if(cmsCore::isControllerExists('languages') && $system_lang !== $config->language) {
  5. $url = explode('/', $this->controller->cms_core->uri);
  6. $model = cmsCore::getModel('languages');
  7. foreach($cats as $key=>$cat){
  8. $title = $model->filterEqual('item_id', $cat['id'])->filterEqual('ctype', $url[0])->filterEqual('lang', $system_lang)->getFieldFiltered('languages_cats', 'title');
  9. if($title) $cats[$key]['title'] = $title;
  10. }
  11. }
  12. # перевод категорий ?>
0
dwd dwd Компонент "Языки" для ICMS 2 - Обновление 1.1 8 лет назад
Или же просто выровняйте в данном блоке данный фрагмент кода
Код PHP:
  1. $.post("<?php echo href_to('languages').'/translate_ajax'; ?>", { text: text, lang : lang })
  2. .done(function(data) {
в одну строку:
Код PHP:
  1. $.post("<?php echo href_to('languages').'/translate_ajax'; ?>", { text: text, lang : lang }).done(function(data) {
+1
dwd dwd Компонент "Языки" для ICMS 2 - Обновление 1.1 8 лет назад
Из файла templates/default/assets/ui/form.tpl.php удалите последний блок
Код PHP:
  1. <script type="text/javascript">...</script>
заменив его строчкой
Код PHP:
  1. <?php $this->addJS('templates/default/js/translateform.js'); ?>
а в папку templates/default/js поместите файл, содержащийся в этом архиве.
Этот файл содержит код, удаленный из файла templates/default/assets/ui/form.tpl.php
0
dwd dwd Компонент "Языки" для ICMS 2 8 лет назад
и в папке "res" в дефолтном шаблоне есть мелкие разбежности с шаблоном 2.6.1
Разве что в нумерации строк. Код идентичен. Все файлы взяты из установочного пакета 2.6.1

заменить на <?php # перевод содержимого форм if(cmsCore::isControllerExists('languages'))
Уже обсудили данный момент здесь
+1
dwd dwd Компонент "Языки" для ICMS 2 - Обновление 1.1 8 лет назад
Спасибо, учту на будущее. Вообще это мой косяк, все вставки и должны начинаться с <?php, именно такое правило оформления кода изначально было принято разработчиками, видать неспроста. А тут я пропустил этот момент.
0
dwd dwd Компонент "Языки" для ICMS 2 - Обновление 1.1 8 лет назад
1. Попробуйте переименовать переменные $options и $controller в данном фрагменте кода дам им любые другие имена.
2. Проверьте разные формы на сайте. При выводе каких возникает ошибка, а при выводе каких нет. 3.

Судя по тому, что пользуются компонентом многие, а проблема только у вас значит проблема скорее всего либо в сторонних компонентах, либо в самописных полях. Трудно делать предположения вслепую.
0
dwd dwd Компонент "Языки" для ICMS 2 - Обновление 1.1 8 лет назад
Даже и не знаю что сказать - фантастика. Ни у кого не было таких проблем. Вариант только один: где-то неверно вставили код. Пришлите мне ваш файлик(почта есть в моем профиле), с ним явно что-то не так. Судя по тому, что PHP-код выводится? а не выполняется то вы где-то потеряли начало этого кода. Перед
Код PHP:
  1. getOptions();{
должно быть еще и
Код PHP:
  1. <? # перевод содержимого форм
  2. if(cmsCore::isControllerExists('languages')) {
  3. $controller = cmsCore::getController('languages');
  4. $options = $controller->
0
dwd dwd Компонент "Вкладки" для InstantCMS 2 8 лет назад
Все стили в отдельном CSS-файле, каждый может сделать все, что пожелает. Я лишь показал пример.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.