Форуми / National / Russian / Версия Котонти 06, неудобства и бажки.

<<<1...45678910>>>

SunChase
#91 15.07.2009 03:04
Также весьма интерестный баг:

В текстбоксере когда есть кавычки "" (пример "Лучше качество,а не количество"при сохранении выводит так: \\\\\\\"Лучше качество,а не количество\\\\\\\"

также при '' таких ковычках тоже самое вылазит только по \\\'

поправка.При каждом изменении страницы количество \\\\ увеличивается
[url=http://ka13.orgfree.com]KA13[/url] - The essence of creativity

Відредаговано: SunChase (15.07.2009 03:20, 15 років тому)
Sergey
#92 15.07.2009 03:12
Вот из свеженького, у меня есть плагин конфигурации под мобильный сайт. Вот языковый файл:
$L['cfg_dev_mob_im_width']= array('Ширина экрана у имитируемого мобильника');
$L['cfg_dev_mob_im_height']= array('Высота экрана у имитируемого мобильника');
$L['plu_title_mobilconfig'] = 'Common параметры  для мобильного сайта';
$L['com_mobilskinfail'] = 'Предупреждение: не удалось загрузить выбранный вами скин мобильного web, проверьте настройки, установленные в профиле плагина mobilcommon.';
$L['mobile']='Мобильник';
$L['computer']='Компьютер';
так вот в когда включаешь админку, часть этого файла берется уже из англицкой версии, и непременно вот эти строчки
$L['mobile']='Mobile';
$L['computer']='Computer';
Весело :-) в 0.0.5 этого не было, а всего то не нравится строчка в коментах
//$lang=$usr['lang'];";
require_once(sed_langfile('mobilconfig'));
Когда убираешь комментарий, естественно все зеркально :-) :-) Понятно, что я разрулю эту ситуация в админке (это как раз там виден перевертыш), но согласитесь, что на эту веселую ситуацию я прибью время. Поменяли, немного концепцию по 775 транку, до сих пор, с момента появления этого транка, на 10 операторов нововведений пришлось ставить 200 операторов в затычку. Но вроде кончаю. А вдруг еще чего вовсе непринципиальное и малонужное выплывет дальше, да еще с аяксом?
www.cotonti.mobi

Відредаговано: Sergey (15.07.2009 03:20, 15 років тому)
Dayver
#93 15.07.2009 03:13
Ну про экстра поля это может работать таким образом .... сейчас категория имеет довольно скудный набор полей .... имя, описание, иконка, путь и из значимых все .... если можно будет создать екстра поле(я) то в таком поле можно будет указать свойсвто которое будет характеризировать каждую категорию .... ну например одно поле будет заполнятся характеристикой "цвет", другое поле "размер", еще одно "форма" (примеры взяты из наглядной статьи поясняющей суть термина таксонамия по отношению к упомянутой друпале)... тогда такой функционал екстра-полей + не сложный плагин(который уже не потребует вклиниватся в ядро) позволит решать как сортировку\фильтровку так и еще много задач описываемых таксонамией

З.Ы. сорри подправил предидущий пост не заметив что на него уже есть ответ

Добавлено 17 Минут спустя:

# SunChase : Также весьма интерестный баг:

В текстбоксере когда есть кавычки "" (пример "Лучше качество,а не количество"при сохранении выводит так: \\\\\\\"Лучше качество,а не количество\\\\\\\"
Это где? в слотах меню? или еще где вылезло?
Pavlo Tkachenko aka Dayver

Відредаговано: Dayver (15.07.2009 03:38, 15 років тому)
Trustmaster
#94 15.07.2009 04:00
SunChase, баг с PM не замечен. По крайней мере, если ты получил мой ответ на своё сообщение, значит форма быстрого ответа всё-таки работает. Баг с лишними слешами к кавычкам исправлен в 3-й бете.

Added 8 minutes later:

Насчёт таксономии в частности, думаю копать дальше в сторону CCL (не забываем про волшебный Select language). Есть документакция к либе на русском, но без примеров и пояснений (только API). Очень сырая версия, однако даёт представление о том, как можно создавать унифицированные модели предметной области на лету.
May the Source be with you!

Відредаговано: Trustmaster (15.07.2009 04:08, 15 років тому)
SunChase
#95 15.07.2009 04:20
Trustmaster,спасибо за быстрое реагирование
[url=http://ka13.orgfree.com]KA13[/url] - The essence of creativity
Trustmaster
#96 15.07.2009 04:38
Всё течёт, всё изменяется. А раз изменяется, то возникают новые ошибки и проблемы - это закон разработки ПО. Если вам нужен движок, который не меняется (как латынь), то это Seditio. В частности, чтобы сделать так, чтобы можно было любой вопрос решить с помощью включения модуля/плагина, необходимо провести достаточно большую работу, которая без всяких сомнений породит новые ошибки и необходимость корректировать имеющийся код. И не надо думать, что это просто - один раз сделал оптимальную корректировку и забыл навсегда.

Насчёт масштабных изменений, планируемых в Ренессансе, кратко:
  1. Модуляризация. Состоит в том, чтобы упростить структуру каталогов, разделить понятия плагинов и модулей и предоставить средства для удобного манипулирования последними. Насчёт реструктуризации каталогов обсуждение открыто здесь. Разделение на плагины и модули интуитивно есть и сейчас: форум - модуль, тэги - плагин. Но вот модули довольно прочно вшиты в ядро, а хотелось бы вертеть ими словно кубиками конструктора Lego. А значит стандартные модули будут превращены в такие кубики (что не так уж и сложно), появится возможность строить и добавлять другие кубики самостоятельно.
  2. АПИ плагинов. Обсуждение здесь. Сначала думали о переделке концепции плагинов и хуков и смотрели в сторону концепции, похожей на Drupal. Но после практических экспериментов пришли к выводу, что все эти коренные переломы ни к чему, поэтому нужно просто доработать плагины алмазным напильничком. А именно: убрать назойливые шапки из файлов, переместить всю информацию в setup-файл, добавить мультихуки (одну часть плагина можно привязать к разным хукам), расширить возможности хуков.
  3. В массовом порядке поменять префиксы с sed_ на cot_. С практической точки зрения это бессмысленно. Но идеология людям покоя не даёт.
  4. Подсистема кэширования. Многослойная система кэширования в памяти / на диске / на кэш-сервере, управляемая динамическими вызовами и событиями. Опциональная, естественно.
  5. Скрипт установки. Я бы не назвал это изменением, это скорее даже отдельный продукт для администрирования установок Cotonti. Сейчас он имеет статус практически советского долгостроя.


Added 12 minutes later:

По поводу РУ-поддержки и поддержки в принципе, могу предложить вот что:
  1. Создать рабочую группу по документации. Открыть приём запросов от пользователей на документирование отдельных возможностей. Поручть выполнение таких задач рабочей группе.
  2. Я смотрю, плагин интернационализации народу по вкусу пришёлся. Мы его планируем доработать: сделать автоматическое добавление локализованных версий, подключить автоматического translate-суфлёра. А вот тогда почему бы не применить его и на этом сайте? В итоге у каждой статьи будут версии на разных языках, и не нажно под каждый язык делать отдельный сайт.
  3. Всегда есть форумы, на которых можно обсуждать всё что угодно. Нужно расширить что-то - предлагайте, расширим.
  4. Теперь наконец-то появилась возможность более-менее комфортного управления пользовательскими страницами. А значит: а) можно спокойно добавлять и редактировать свои материалы, б) бюрократические барьеры будут снижены.
May the Source be with you!

Відредаговано: Trustmaster (15.07.2009 04:50, 15 років тому)
Sergey
#97 15.07.2009 05:01
Я прочитал "дискуссию" про АПИ плагинов. Я не нахожу предмета обсуждения. Его нет. Если посмотреть на систему прав седа, то она имеет перспективу, но опять ограниченную. имеется по крайней мере 8 опций доступа, пока используем и часто неграмотно всего 4. Обсуждение свелось к механизму реализации. а не к методам построения и управления. Но и сама система прав важна, но и она не главная, это частность. Проблема в том, что сама структура построения этой CMS статична и представляет из себя груду камней, из которых сложено нечто, но работающее. Я не вижу проекта, я вижу пожелания построить дом.
www.cotonti.mobi
Trustmaster
#98 15.07.2009 05:22
Верно, классического проекта с детализацией и утверждением ТЗ нет. Этот проект экстремальный, он реагирует на запросы пользователей и корректирует задачи по ходу дела. А классический детерминистский подход тут вряд ли возможен - или 2 миллиона долларов в студию, офис в Амстердаме и команду привычных к классическим канонам разработчиков. Взгляните на другие движки, развиваемые сообществом, там ситуация немногим яснее.

Added 5 minutes later:

Вообще я считаю, что ТЗ - это архиважная вещь, хотя бы на отдельные задачи. Но реальность такова, что вести подробную проектную документацию до сих пор не представлялось возможным.
May the Source be with you!

Відредаговано: Trustmaster (15.07.2009 05:28, 15 років тому)
Sergey
#99 15.07.2009 05:44
Совершенно с вами согласен. Проект, в его классическом понимании, появится скорее как постфактум в форме документации, но работающий концептуальный пример в нашем деле может заменить стопку мало нужных ТЗ, а вот его я не вижу. Конечно, можно предложить, но будет ли это СЕД (пока от него еще не ушли) или это будет клон с другими именами полей баз, что тоже вызовет сумятицу, так как и это часть имеет свою функциональную сущность. Вот например из вашей переделки: транк 775 list.inc.php
82	elseif ($c == 'unvalidated') 
 	83	{ 
 	84	        $sql = sed_sql_query("SELECT COUNT(*) FROM $db_pages 
 	85	                WHERE page_state = 1 AND page_ownerid = " . $usr['id']); 
 	86	        $totallines = sed_sql_result($sql, 0, 0); 
 	87	        $sql = sed_sql_query("SELECT p.*, u.user_name ".$join_ratings_columns." 
 	88	                FROM $db_pages as p ".$join_ratings_condition." 
 	89	                        LEFT JOIN $db_users AS u ON u.user_id=p.page_ownerid 
 	90	                WHERE page_state = 1 AND page_ownerid = {$usr['id']} 
 	91	                ORDER BY page_$s $w LIMIT $d,".$cfg['maxrowsperpage']); 
 	92	        $sed_cat[$c]['title'] = $L['pag_validation']; 
 	93	        $sed_cat[$c]['desc'] = $L['pag_validation_desc']; 
 	94	 } 
добавили к трем непроходимым для плагинов блокам, еще один блок-подножку
почему бы не так:
$want_standart_read_table=TRUE;
//вызов плагина альтернативного варианта чтения 
if ($want_standart_read_table) {//читаем как было}
else {// читаем как хочет плагин}
и ставили бы свою четвертую часть, а я бы свою. Как видите методов модернизации очень много не нарушая схемы известного.
www.cotonti.mobi
Trustmaster
#100 15.07.2009 05:48
О том и речь! Решается это очень просто: вы говорите - "А вообще-то лучше было бы, если бы в этом месте был хук и проверка такого условия, тогда можно своими плагинами организовать любой листинг". Мы тут же: "Точно, и как только раньше никто об этом не подумал!". В итоге добавляется хук/проверка, и все счастливы.

Сейчас как раз правлю этот кусок, ибо счётчики страниц врут и перекашивают пагинацию. Так что не поздно и проверку на перегрузку запроса в плагине вставить.

Added 4 minutes later:

Правда есть тут одна загвоздка: это далеко не единственный такой кусок, где нужна "перегрузка" запросов в плагинах. Поэтому не помешало бы составить список таких мест, выработать единый подход реализации такой "перегрузки" и написать пару строк о том, как ей пользоваться. Об этом, кстати, шла речь в той же теме про АПИ, но скорее как вопрос "нужно ли" да/нет. Конкретика и примеры начинаются тогда, когда кто-то уже собирается приступать к реализации.
May the Source be with you!
Sergey
#101 15.07.2009 05:58
Да я знаю о проблему со счетчиком. Он неправильно считает. Но введя свое видение, что page_state может быть только 1 или 0 (хотя есть и 2) вы показали пример "грязного" кода, в исходном было куда как логичнее - свое ставлю и свое меняю. Я вот, например в плагине имею еще и другие варианты значений page_state и естественно свою концепцию развития этого поля Убил целый день, чтобы обойти эту засаду, уже операторов 50, но так еще и не смог решить проблему до конца, т.к эту несчастную таблицу sed_pages с разным успехом на коротком участке умудрились несколько раз открыть, модернизировать и наставить глупых проверок.
www.cotonti.mobi
Trustmaster
#102 15.07.2009 06:02
Поэтому, как отметил dayver, о своих трудах надо говорить и не стесняться делать свои замечания. Ведь иначе нам просто не узнать, что есть не только 0 и 1, но ещё и 2.

Кстати, раз уж там числа вместо именованных констант, мне всё же казалось что 1 значит UNVALIDATED. Или я не прав, и UNVALIDATED означает != 0 ?
May the Source be with you!
Sergey
#103 15.07.2009 06:09
Вы считаете что if ($usr['isadmin'] && $cfg['autovalidate']) т.е. меняет права админ в сторону $page_state = 0;
sed_sql_query("UPDATE $db_structure SET structure_pagecount=structure_pagecount+1 WHERE structure_code='".sed_sql_prep($newpagecat)."' ");

а для не админа ставите $page_state = 1 и уводите видимость страницы из списка, а таблицу db_structure надо корректировать в сторону structure_pagecount=structure_pagecount-1
Но это так мелочь. А у меня куча значений $page_state, что несомнено веселей, это пытаюсь изобразить плагином, а ранее таблицу уже испортили.
www.cotonti.mobi
Trustmaster
#104 15.07.2009 06:29
Ну откуда ж мне было знать, что может быть куча значений page_state, которые к тому же вычисляются друг относительно друга. Я тут скорее скопировал образ и подобие Seditio.

Напрашивается только одно - надо добавлять в этот кусок поддержку плагина, иначе всю арифметику не предусмотришь.
May the Source be with you!
Sergey
#105 15.07.2009 12:14
Если подойти философски к проблеме модернизации модулей, то напрашивается желание просмотреть этот модуль на "события".
Например, имеется непреодолимое событие на 21 строке
list($usr['auth_read'], $usr['auth_write'], $usr['isadmin']) = sed_auth('page', 'any');
sed_block($usr['auth_read']);
Я уже сказал, что имеется 8 ключей доступа, здесь извлекается 3. Но нет возможности установки плагина на преодоления этого события. Естественно пришлось подгружать этот модуль в другом модуле предварительно создав ложную ситуацию для преодоления этого события. Хорошо, что по опции $a=='update' сразу следует хук и можно востановить правильное состояние. Раз вспомнил это место $a=='update' в модуле и. что есть возможность "правильно" подготовить update через хук page.edit.update.first это хорошо, но вслед ваши усилия будут затерты и нет возможности восстановить и добавит корректировки т.к идет непреодолимый $ssql = "UPDATE $db_pages SET. Да, затем есть хук page.edit.update.done и, что еще раз "UPDATE $db_pages SET. ? но уже с скорректированными параметрами. а перед UPDATE его нет, так зачем он после?
Вот я показал два примера "грязного" кода. Я понимаю, что требовать в этой ситуации трудно, но тут еще собираются воткнуть аякс, как я понял, и дай бог не похожим методом.
www.cotonti.mobi

<<<1...45678910>>>