Форумы / National / Russian / Тех. поддержка / Запросы документации

<<<1...5...10...3839404142>>>

Принимаем вопросы от населения

Kort
#601 16.10.2023 08:59

Предупреждать надо)))

SED.by - создание сайтов, разработка плагинов и тем для Котонти
Kopusha
#602 16.10.2023 08:59
config.basicEntities = false;

позволяет не руками править а просто открыл-сохранил запись затронутую лишними nbsp

Added 1 minute later:

#47262 Kort:

Предупреждать надо)))

Я скорее хотел предупредить что новый редактор вдруг такого коныка выкинул, со старым было ок
А тут я не сразу заметил - старые записи в порядке но в любую новую он вместо пробела ставит неразрывный

 

Added 54 seconds later:

Ну и все на сегодня, пойду собирать аккумулятор на литийфосфате, готовимся)

Kort
#603 16.10.2023 09:02

Новый -- это какой? Коробочный же такого не делает.

SED.by - создание сайтов, разработка плагинов и тем для Котонти
Kopusha
#604 16.10.2023 09:04
#47262 Kort:

Предупреждать надо)))

я кстати у себя не победил error что редактор привязан к нескольким текстэреа одновременно, мне очень долго поднимать чистый текстовый котонти. Мож включи у себя на тестовом rcomm и ткни носом где включил)

Added 22 seconds later:

#47264 Kort:

Новый -- это какой? Коробочный же такого не делает.

Коробочный но с сильно поменяными config

Added 59 seconds later:

/**
 * @license Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see https://ckeditor.com/legal/ckeditor-oss-license
 */

CKEDITOR.dtd.$removeEmpty['i'] = false;
CKEDITOR.dtd.$removeEmpty['span'] = false;

CKEDITOR.editorConfig = function( config ) {
	// Define changes to default configuration here.
	// For complete reference see:
	// https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_config.html
	config.keystrokes = [
        // copy here all keystrokes from _source/plugins/keystrokes/plugin.js
        // [ CKEDITOR.CTRL + 86, 'pastetext' ] //Fires new dialogue window for CTRL-C CTRL-V pasting text, remove if necessary 
    ];
    config.fillEmptyBlocks = false;
	config.basicEntities = false;
	config.autoParagraph = true;//Whether automatically create wrapping blocks around inline contents inside document body, this helps to ensure the integrality of the block enter mode.
	config.pasteFromWordPromptCleanup = true;//чистим копипаст с ворда
	config.pasteFromWordRemoveFontStyles = true;//чистим копипаст с ворда
	config.forcePasteAsPlainText = true;//чистим копипаст 
	config.ignoreEmptyParagraph = true;//Whether the editor must output an empty value ("") if it's contents is made by an empty paragraph only.
	config.removeFormatAttributes = true;//A comma separated list of elements attributes to be removed when executing the "remove format" command
	config.toolbar = 'Full';
	config.extraPlugins = 'wordcount,more,emojione,print,oembed,widget,syntaxhighlight,specialchar,mentions,codemirror';
	//config.extraPlugins = 'wordcount,more,oembed,syntaxhighlight,codemirror,emojione';
	config.wordcount = {
		// Whether or not you want to show the Paragraphs Count
		    showParagraphs: true,
		
		    // Whether or not you want to show the Word Count
		    showWordCount: true,
		
		    // Whether or not you want to show the Char Count
		    showCharCount: true,
		
		    // Whether or not you want to count Spaces as Chars
		    countSpacesAsChars: false,
		
		    // Whether or not to include Html chars in the Char Count
		    countHTML: false,
		    
		    // Maximum allowed Word Count, -1 is default for unlimited
		    maxWordCount: -1,
		
		    // Maximum allowed Char Count, -1 is default for unlimited
		    maxCharCount: -1,
		
		    // Add filter to add or remove element before counting (see CKEDITOR.htmlParser.filter), Default value : null (no filter)
		    filter: new CKEDITOR.htmlParser.filter({
		        elements: {
		            div: function( element ) {
		                if(element.attributes.class == 'mediaembed') {
		                    return false;
		                }
		            }
		        }
		    })
    	};
    	
    	
CKEDITOR.on( 'dialogDefinition', function( ev )
{
    // Take the dialog name and its definition from the event data.
    var dialogName = ev.data.name;
    var dialogDefinition = ev.data.definition;

    // Check if the definition is from the dialog we're
    // interested in (the 'link' dialog).
    //if ( dialogName == 'link' )
    //{
        //dialogDefinition.getContents('info').get('protocol')['items'].splice(4, 1);
    //}    	
    
    if (dialogName == 'link') {
        var protocolField = dialogDefinition.getContents('info').get('protocol');
        var items = protocolField['items'];
        protocolField['items'] = items.slice(0, 2); // Оставляем только первые две опции
    }    
    
    
});    	
    	
	config.removePlugins = 'contextmenu,tabletools';//убирает всплывающее копипейстменю в андроиде
	//config.allowedContent = true; // disable ACF
	config.allowedContent = false; // disable ACF// судя по всему отключает вообще фильтрацию вводимого
	config.extraAllowedContent = 'span(*); a[!href, class](*); figure(*); figcaption(*); div(*); h2(*); h3(*); p[data-pullquote]';
	config.disallowedContent = '*[on*]';
	
	
	//SCAYT conf
	config.scayt_autoStartup = true;
	config.scayt_sLang = 'auto';
	var bodyElement = document.body;
	var langValue = bodyElement.getAttribute('data-lang');
	if (langValue === 'ru') {
		config.scayt_autoStartup = false;
	    config.language = 'ru';
	} else if (langValue === 'ua') {
		config.scayt_sLang = 'uk_UA';
	    config.language = 'uk';
	} else {
		config.scayt_sLang = 'en_US';
	    config.language = 'en';
	}	
	config.scayt_minWordLength = 5;
	config.scayt_handleCheckDirty = false;
	config.scayt_handleUndoRedo = false;
	//config.disableNativeSpellChecker = false;
	config.scayt_ignoreAllCapsWords =true;
	config.scayt_ignoreDomainNames =true;
	config.scayt_ignoreWordsWithMixedCases =true;
	config.scayt_ignoreWordsWithNumbers =true;
	//config.scayt_disableOptionsStorage = 'all';
	config.scayt_uiTabs ='0,1,0';
	//mentions conf
	config.mentions = [ 
			{
	            marker: '@',
	            minChars: 4,
	            feed: '/index.php?r=autocomplete&cke=1&q={encodedQuery}',
	            itemTemplate: '<li data-id="{id}"><img src="{avatar}" height="20" width="20" alt="{name}"> {name}</li>',
	            //outputTemplate: '<a class="alpha-user__avatar" href="https://photo.travel/ru/users/{id}?m=details"><img src="{avatar}" height="20" width="20" alt="{name}"></a><a class="alpha-user__link" href="https://photo.travel/ru/users/{id}?m=details">{name}</a> '
	            //itemTemplate: '<li data-id="{id}">{name}</li>',
	            outputTemplate: '<a class="alpha-user__link" target="_blank" href="https://photo.travel/ru/users/{id}?m=details">{name}</a> '
			},
			{
	            marker: '#',
	            minChars: 3,
	            feed: '/index.php?r=tags&cke=1&q={encodedQuery}',
	            itemTemplate: '<li data-id="{id}">{tag}</li>',
	            outputTemplate: '<a class="alpha-tag__link" target="_blank" href="https://photo.travel/ru/users/{id}?m=details">{tag}</a> '
			} 
	];


	// CKEditor toolbar sets for Cotonti
	config.toolbar_Full =
		[
			['Source','Maximize'],
			['Cut','Copy','PasteText'],
			['Undo','Redo','-','Find','Replace','-','SelectAll','RemoveFormat'],
			['Image','HorizontalRule'],
			['Print','Preview','Scayt','Table','oembed','SpecialChar','Syntaxhighlight'],
			'/',
			['Bold','Italic','Underline','Strike'],
			['NumberedList','BulletedList','Blockquote'],
			['JustifyLeft','JustifyCenter','JustifyRight','JustifyBlock'],
			['Link','Unlink'],
			['Styles','Format'],
			['Emojione'],
			['TextColor','BGColor']
		];

	config.toolbar_Medium = [
		['Bold','Italic','Underline','Strike'],
		['NumberedList','BulletedList','-','Blockquote'],
		['JustifyLeft','JustifyCenter','JustifyRight','JustifyBlock'],
		['Image','Link','Unlink','HorizontalRule'],
		['TextColor','BGColor'],
		['SelectAll','Cut','Copy','PasteText'],
		['Undo','Redo'],['Source']
	];

	config.toolbar_Basic =
		[
			['Bold','Italic','Underline','Strike','Emojione','-','NumberedList','BulletedList'],['Undo','Redo','JustifyLeft','JustifyCenter','JustifyRight','JustifyBlock'],['Link','Unlink'],['Format'],['HorizontalRule','Maximize']
		];
		
	config.toolbar_Comments =
		[
			['Bold','Italic','Underline','Strike','Emojione','-','NumberedList','BulletedList'],['Source','Maximize']
		];
	// /CKEditor toolbar sets for Cotonti

	// The toolbar groups arrangement, optimized for two toolbar rows.
	// Example
	// config.toolbarGroups = [
	// 	{ name: 'clipboard',   groups: [ 'clipboard', 'undo' ] },
	// 	{ name: 'editing',     groups: [ 'find', 'selection', 'spellchecker' ] },
	// 	{ name: 'links' },
	// 	{ name: 'insert' },
	// 	{ name: 'forms' },
	// 	{ name: 'tools' },
	// 	{ name: 'document',	   groups: [ 'mode', 'document', 'doctools' ] },
	// 	{ name: 'others' },
	// 	'/',
	// 	{ name: 'basicstyles', groups: [ 'basicstyles', 'cleanup' ] },
	// 	{ name: 'paragraph',   groups: [ 'list', 'indent', 'blocks', 'align', 'bidi' ] },
	// 	{ name: 'styles' },
	// 	{ name: 'colors' },
	// 	{ name: 'about' }
	// ];

	// Remove some buttons provided by the standard plugins, which are
	// not needed in the Standard(s) toolbar.
	//config.removeButtons = 'Underline,Subscript,Superscript';

	// Set the most common block elements.
	config.format_tags = 'h2;h3;h4;h5';

	// Simplify the dialog windows.
	config.removeDialogTabs = 'image:advanced;link:advanced';
};

 

Argont
#605 14.11.2023 12:38

каждой группе пользователей, можно создать отдельный вид страницы, дописывая алис к шаблону как пример

users.details.moderator.tpl

 но как сделать, что бы конкретному пользователю задать свой шаблон, основываясь на его ID или user_name?

 

иногда поржать над задравшим подбородок разработчиком
Kort
#606 14.11.2023 14:43

https://github.com/seditio/cot_cute

В зависимости от настроек, users.details.id13.tpl или users.details.Alex.tpl

SED.by - создание сайтов, разработка плагинов и тем для Котонти
Отредактировано: Kort (14.11.2023 14:57, 5 месяцев назад)
Argont
#607 14.11.2023 15:12
#47357 Kort:

https://github.com/seditio/cot_cute

В зависимости от настроек, users.details.id13.tpl или users.details.Alex.tpl

спасибо, счас подорву )))

Добавлено 15 минут спустя:

поставил,....  сам модуль обновил, ..... кеш почистил, - борода.

работает у меня только тогда, когда прямо в файле модуля users.details  сразу за хуком

/* === Hook === */
foreach (cot_getextplugins('users.details.main') as $pl)
{
	include $pl;
}
/* ===== */

вкинуть

$mskin = cot_tplfile(array('users', 'details', ($cfg['plugin']['cute']['tpl_type'] == 1) ? 'id' . $urr['user_id'] : $urr['user_name']), 'module');

то так работают и по ID  и по никнейму

Добавлено 7 минут спустя:

и перестал работать шаблон детальной страницы модератора

users.details.moderator.tpl

досадно

Добавлено 4 минуты спустя:

пришлось пока ограничиться кодом в файле модуля users.details  сразу за хуком users.details.main

/* === начало неудавшегося хука === */

$skincustom_tpl = 'USERNICKNAME'; // никнейм конкретного пользователя
	if ($urr['user_name'] == $skincustom_tpl) {
        $mskin = cot_tplfile(array('users', 'details.USERNICKNAME'), 'module');
	}
	
/* === конец неудавшегося хука === */

знаю что не правильно, сам пытался через новый файл users.details.main.php но никак...

иногда поржать над задравшим подбородок разработчиком
Отредактировано: Argont (14.11.2023 16:13, 5 месяцев назад)
Kort
#608 14.11.2023 15:43

https://sed.by/users/Merlin

Шаблоны по имени не особо пробовал, скорее всего могут быть конфликты...
Хотя работает.

SED.by - создание сайтов, разработка плагинов и тем для Котонти
Argont
#609 14.11.2023 15:52
#47359 Kort:

https://sed.by/users/Merlin

Шаблоны по имени не особо пробовал, скорее всего могут быть конфликты...

Хотя работает.

пока никак у меня, пробую

Добавлено 11 минут спустя:

спасибо, что старались, но не помогло, конкретно у меня почему-то хук плагина не срабатывает для users.details.main

пришлось пока ограничится своим костылем, который выше, - кусок кода после хука

иногда поржать над задравшим подбородок разработчиком
Отредактировано: Argont (14.11.2023 16:04, 5 месяцев назад)
Kort
#610 14.11.2023 16:07
#47358 Argont:

поставил,....  сам модуль обновил, ..... кеш почистил, - борода.

А это ты какой модуль обновлял?

SED.by - создание сайтов, разработка плагинов и тем для Котонти
Argont
#611 14.11.2023 16:08
#47361 Kort:
#47358 Argont:

поставил,....  сам модуль обновил, ..... кеш почистил, - борода.

А это ты какой модуль обновлял?

Users, разумеется

Добавлено 1 минута спустя:

все со грядки, (с репозитория) ничего от себя + ваш плуг и...

иногда поржать над задравшим подбородок разработчиком
Kort
#612 14.11.2023 16:30

/modules/users/tpl/users.details.id1.tpl

Где еще проверять, не знаю.

SED.by - создание сайтов, разработка плагинов и тем для Котонти
Argont
#613 14.11.2023 16:39
#47363 Kort:

 

/modules/users/tpl/users.details.id1.tpl

Где еще проверять, не знаю.

Kort, я верю и сомнений нет. видать что-то у меня "подножки ставит" хуку.

найду отпишусь

иногда поржать над задравшим подбородок разработчиком
Kabak
#614 16.11.2023 17:25

1) user_postcount в базе cot_users - это посты на форуме или созданные страницы, коменты тоже ?

2) где хранится число созданных пользователем комментариев и страниц ?

Argont
#615 16.11.2023 21:49
#47385 Kabak:

1) user_postcount в базе cot_users - это посты на форуме или созданные страницы, коменты тоже ?

2) где хранится число созданных пользователем комментариев и страниц ?

все созданные страницы юзера

	$totalitems = cot::$db->query("SELECT COUNT(*) FROM " . cot::$db->pages .
        " WHERE page_state=0 AND page_cat NOT LIKE 'system' AND page_ownerid='$ownerId'")->fetchColumn();

а вот подсчитать полное количество комментариев от одного пользователя ко всем статьям - что-то не соображу как....

иногда поржать над задравшим подбородок разработчиком

<<<1...5...10...3839404142>>>