Думья и раздумья над дальнейшими д
Автор Сообщение
Amro    

В общем изложу свои предложения:

1. Думаю нужно полностью удалять все функции связанные с bbcode:  sed_parse, sed_parse_cond, sed_bbcode, sed_bbcode_autourls и д.р.  а также их использование. Таким образом переходить только на HTML без всякой поддержки BB. Ещё как вариант вынести их в отдельный плагин совместимости. Но не оставлять в ядре, т.к. со временем мусора накопится ого-го. 

2. Для совместимости достаточно будет написать нормальный конвертер DB seditio 12x to 170 объединив в нём все апшрейды. Чтобы можно было к примеру перейти сразу даже со 110 версии на 170. Конвертер должен парсить BB и переводить в HTML. Туда же прикрутить возможность перекодировки базы из cp1251 -> utf8.

3. Необходимо проверить на совместимость все наиболее распространённые плагины и привести к рабочему виду. 

Что уже сделано:

0. Перевели все на русский ) естественно с возможностью смены на английский и на любой другой, былиб тока lang файло.

1. В инсталлятор добавлена возможность выбора языка установки

2. В плагинах по-мимо lang файлов (plugins/nameplugin/lang/nameplugin.ru.lang.php) плагина добавлена возможность перевода конфигов плагина на лету при установке (plugins/nameplugin/lang/nameplugin.ru.setup.lang.php).

Пример: плагин contact с именами конфигов: emails, recipients, admincopy1 и т.д.

тобишь:

[BEGIN_SED_EXTPLUGIN_CONFIG]
emails=1:text:::Emails, separated by commas
recipients=2:text:::Names of the recipients, separated by commas, in the same order as the emails
admincopy1=3:string:::Also send a copy to this email
admincopy2=4:string:::Also send a copy to this email 
extra1=5:text:::Extra slot #1 / {PLUGIN_CONTACT_EXTRA1} in skins/.../plugin.standalone.contact.tpl
extra2=6:text:::Extra slot #2 / {PLUGIN_CONTACT_EXTRA2} in skins/.../plugin.standalone.contact.tpl
extra3=7:text:::Extra slot #3 / {PLUGIN_CONTACT_EXTRA2} in skins/.../plugin.standalone.contact.tpl
[END_SED_EXTPLUGIN_CONFIG]

чтобы в sed_config описания параметров записывались на родном языке достаточно создать файл:

 plugins/contact/lang/contact.ru.setup.lang.php со следующим содержимым:

$L['setup_cfg_emails'] = "Список email адресов, разделенных через запятую";
$L['setup_cfg_recipients'] = "Имена получателей, разделенные через запятые, в порядке списка email";
$L['setup_cfg_admincopy1'] = "Отсылать копию сообщения на email";
$L['setup_cfg_admincopy2'] = "Отсылать копию сообщения на email"; 

3. Все функции касаемые bbcode пока вынесены в functions.deprecated.php а вызовы в файлах закоментированы.

4. Модифицированы функции sed_cc, sed_selectbox 

5. Добавлен файл database.mysqli.php с функциями MySQLi коннектора. При исталляции пользователь сможет выбрать тип драйвера mysql или mysqli

 

Forever unshaven, red-eyed, detached from reality, with his cockroaches in my head. And let it always will be!

Amro    

6. Решаем проблему с more, пока придумано вот такое:

function sed_checkmore($text, $more = false) {
    if ($more == true) { 
        return str_replace('<hr id="readmore">' ,'<!-- readmore -->', $text); 
    }
    else { 
        return str_replace('<!-- readmore -->' ,'<hr id="readmore">', $text); 
    }
}

Т.е. при инсерте и апдейте заменяем '<hr id="readmore">'  to '<!-- readmore -->'
а собственно при выводе в тextarea делаем обратную замену '<!-- readmore -->'  to '<hr id="readmore">'

В CKeditor добавили кнопочку с тремя точками ) которая вставяет в нужном месте '<hr id="readmore">'

Forever unshaven, red-eyed, detached from reality, with his cockroaches in my head. And let it always will be!

Amro    

7. в functions.php в функцию sed_import добавлен новый хук import.tags

		case 'HTM':
		$v = trim($v);
        
    /* == Hook for the plugins html filter == */
		$extp = sed_getextplugins('import.tags');
		if (is_array($extp))
			{ foreach($extp as $k => $pl) { include('plugins/'.$pl['pl_code'].'/'.$pl['pl_file'].'.php'); } }
		/* ===== */	

При помощи него будут подключаться плагины HTML фильтрации
Стабильный плагин пока что MarkHtml основанный на запрещающих тегах.

В настоящее время ведётся работа над плагином Jevix, точнее над удобством добаления разрешающих тегов и их отрибутов.
С монстрами по типо HTML пурифиер связываться не будем. Кому надо напишут плагин и также подрубят.

8. Для вставки из popup окна миниатюр, изображений в CKeditor, в pfs.inc.php добавлены 2 хука stndl.icons и pfs.stndl

Forever unshaven, red-eyed, detached from reality, with his cockroaches in my head. And let it always will be!

Amro    

Немного модифицировал sed_checkmore

function sed_checkmore($text, $more = false) {
    if ($more == true) { 
		return preg_replace('/(\<hr id="readmore"(.*?)?\>)/' ,'<!--readmore-->', $text);		
    }
    else { 
		return preg_replace('/(\<!--readmore--\>)/' ,'<hr id="readmore" />', $text);	   
    }
}

Forever unshaven, red-eyed, detached from reality, with his cockroaches in my head. And let it always will be!

Antony    

Amro:

Подготовил сборку и список того, что сделано:

Но нужно обязательно все протестить ) !

1. Добавлен файл database.mysqli.php с функциями для работы с MySQL через улучшенную версию драйвера MySQLi
2. В инсталляторе добавлена возможность выбора языка установки и типа MySQL драйвера.
3. В функцию sed_plugin_install() сделана вставка для перевода названий настроек плагина,
теперь можно в файл nameofplugin/lang/nameofplugin.ru.lang.php записывать перевод настроек на родной язык по шаблону $L['setup_cfg_nameconfig'] = «бла бла бла», пример на основе плагина Contact:
$L['setup_cfg_emails'] = «Список email адресов, разделенных через запятую»;
$L['setup_cfg_recipients'] = «Имена получателей, разделенные через запятые, в порядке списка email»;
$L['setup_cfg_admincopy1'] = «Отсылать копию сообщения на email»;
$L['setup_cfg_admincopy2'] = «Отсылать копию сообщения на email»;
4. Все функции и их вызовы связанные с bbcode удалены (deprecated function: sed_bbcode, sed_bbcode_autourls, sed_bbcode_urls, sed_build_parser, sed_loadbbcodes, sed_parse, sed_parse_cond) из ядра системы, только HTML режим!
6. Изменено содержимое функции sed_cc();
7. Добавлена функция sed_html(), пока что пустая, через неё происходит вывод в браузер. Возможно кто-то решит её использовать для совместимости.
8. В pfs.inc.php добавлена фильтрация переменной $desc:
$desc = sed_import($ndesc[$ii],'D','TXT');
9. В pfs.inc.php добавлены два хука stndl.icons и pfs.stndl для использования в плагинах WYSIWYG редакторов.
10. Немного модифицирована функция sed_selectbox()
11. В функцию sed_import() добавлен хук import.tags для подключения плагинов фильтрации для HTM переменных.
12. Исправлены ошибки в плагине фильтрации Jevix основанном на разрешающих тегах.
13. В файле admin.home.inc.php и в плагине cleaner заменены использования mysql_affected_rows в явном виде на sed_sql_affectedrows.
14. По-умолчанию в системе устанавливается CKeditor, tinymce удалён из сборки.
15. Добавлена функция sed_checkmore() и кнопка в CKeditor для вставки разрыва страницы.

В планах реализация универсального конвертера sed 12x to sed 170

Welcome to mother Russia: Putin, medvedi, matrioshka, balalayka, okhuenno!

Amro    

 

1. В MySQL таблицах удалены колонки page_text_ishtml, pm_text_ishtml, user_text_ishtml, com_text_ishtml и их использование в коде.
2. Модифицирован файл database.mysqli.php
3. В нескольких файлах system/core/admin/admin.*.inc.php в нужных местах сделаны вставки sed_xg() и sed_check_xg() для защиты процесса установки/удаления плагинов, защиты сброса конфигов
4. В файле plugins/search/search.php явное использование функции mysql_num_rows() заменено на sed_sql_numrows() 
5. Протестировали Jevix, теперь он устанавливается по-умолчанию.

Forever unshaven, red-eyed, detached from reality, with his cockroaches in my head. And let it always will be!