<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
			<channel>
			<title>Программное добавление топика / Вопросы, проблемы и их решения / Alto CMS</title>
			<link>http://79.174.14.219/comments/970/</link>
			<description><![CDATA[Ку! Как грамотно программно добавлять топики(ну и не только)? Спасибо!]]></description>
			<language>ru</language>
			<managingEditor>noreply@altocms.ru</managingEditor>
			<webMaster>noreply@altocms.ru</webMaster>
			<generator>Alto CMS v.1.5.0b1</generator>
							<item>
					<title>Программное добавление топика (comment #18050)</title>
					<guid isPermaLink="true">http://79.174.14.219/t/970/#comment18050</guid>
					<link>http://79.174.14.219/970.html#comment18050</link>
					<author>andreyv@gladcode.ru</author>
					<description><![CDATA[Тут два способа, не знаю какой вам больше подойдёт:<br/>
1. Все действия над данными инициализируются либо экшеном, либо кроном (последнее не будем брать), конкретно топик добавляется экшеном ActionContent, который находится в файле <em>common/classes/action/Action.content.class.php</em> и его ивентом <a href="https://github.com/altocms/altocms/blob/master/common/classes/actions/ActionContent.class.php#L221-L415" rel="nofollow" >SubmitAdd</a>. Посмотрите там, как это делается. Если коротко, то создается сущность топика $oTopic, заполняются свойтва этой сущности и она пишется в БД методом $this-&gt;Topic_AddTopic($oTopic);<br/>
<br/>
2. Записать данные топика напрямую в БД <a href="https://github.com/altocms/altocms/blob/master/common/classes/modules/topic/mapper/Topic.mapper.class.php#L22-L97" rel="nofollow" >таким запросом</a> <br/>
Но в этом случае: не обновится кэш (его придется сбрасывать вручную), картинки топика не зафиксируются в таблице ресурсов, теги не попадут в свою таблицу тегов, не обработаются доп.поля топика.]]></description>
					<pubDate>Sun, 01 Feb 2015 12:50:08 +0300</pubDate>
									</item>
							<item>
					<title>Программное добавление топика (comment #18171)</title>
					<guid isPermaLink="true">http://79.174.14.219/t/970/#comment18171</guid>
					<link>http://79.174.14.219/970.html#comment18171</link>
					<author>aleksanderd@gmail.com</author>
					<description><![CDATA[В основном, разобрался, спасибо. Однако, пока не очень понятен смысл некоторых вещей… Так и не нашел, где и как при обычном сабмите заполняются textshort и text, там вроде только textsource… а если я не задаю явно textshort & text, то у меня в таблицу topc_content ничего не добавляется, со всеми вытекающими… E::Topic_AddTopic($oTopic) при этом возвращает true<br/>
<br/>
Еще посоветуйте плз. Я вот топики импортирую и как то хочется отделить их от всех остальных, но пока еще не понял как лучше. Пока только в отдельном блоге они. Там промелькал тип контента, но я не понял пока где и с чем его едят. Кроме того, нада бы доп.поля. <br/>
<br/>
Например, для урла оригинала, и в отдельной таблице ибо extra не подходит за отсутсвием индекса, а нужно проверять при импорте на дубли, как раз по урлам оригиналов… можно по хэшам смотреть конечно, но не совсем верно. Мме и таблицы url-&gt;topcId уже для проверки хватит, но интересно как это по уму «впаять» в движок?<br/>
<br/>
Спасибо!]]></description>
					<pubDate>Fri, 06 Feb 2015 03:50:36 +0300</pubDate>
									</item>
							<item>
					<title>Программное добавление топика (comment #18174)</title>
					<guid isPermaLink="true">http://79.174.14.219/t/970/#comment18174</guid>
					<link>http://79.174.14.219/970.html#comment18174</link>
					<author>andreyv@gladcode.ru</author>
					<description><![CDATA[<blockquote>Так и не нашел, где и как при обычном сабмите заполняются textshort и text</blockquote>В <a href="https://github.com/altocms/altocms/blob/ver1.1/common/classes/actions/ActionContent.class.php#L312-L313" rel="nofollow" >экшене ActionContent</a> с помощью метода <a href="https://github.com/altocms/altocms/blob/ver1.1/engine/classes/modules/text/Text.class.php#L395-L432" rel="nofollow" >E::ModuleText()-&gt;Cut($sText)</a><br/>
<br/>
Тип контента позволяет разделить типы топиков по их содержанию, например: обзоры, спецификации, опрос и т.д. Типы контента создаются в админке и идентификатор типа пишется в БД в prefix_topic.topic_type<br/>
Сами типы контента можно привязать к типу блога и тогда, в созданный уже в клиентской части блог можно будет постить эти типы контента (в версии 1.1 к типу блога можно привязать несколько типов контента, а в версии 1.0 только один)<br/>
<br/>
<blockquote>нужно проверять при импорте на дубли, как раз по урлам оригиналов… </blockquote>Проверять на дубли через <em>...topic_extra LIKE '%http://altocms.com/218.html%'...</em> не подходит?]]></description>
					<pubDate>Fri, 06 Feb 2015 09:39:51 +0300</pubDate>
									</item>
							<item>
					<title>Программное добавление топика (comment #18178)</title>
					<guid isPermaLink="true">http://79.174.14.219/t/970/#comment18178</guid>
					<link>http://79.174.14.219/970.html#comment18178</link>
					<author>aleksanderd@gmail.com</author>
					<description><![CDATA[<blockquote>Проверять на дубли через ...topic_extra LIKE '%http://altocms.com/218.html%'… не подходит? </blockquote>Работать будет. Но, подозреваю что по по скорости это не ахти. В случае отдельного поля, там честный деревянный индекс, что даст максимальную производительность. Хотя я могу чего то не знать про LIKE.<br/>
<br/>
Ну и вообще, на будущее хочется знать какие варианты(я так понял тут их &gt;1) расширения функционала есть. Скорее всего в БД отдельная таки таблица будет. А вот как в коде все прописать правильно? Модель топика ли расширять обучая ее оперировать с новой таблицей, или создавать отдельную модель. Как отдельную модель подружить с моделью топика… и тд и тп. Потихоньку в общем сам разберусь но, если распишите(можно отдельно даже) — буду признателен(думаю, не только я).<br/>
<br/>
Спасибо!]]></description>
					<pubDate>Fri, 06 Feb 2015 14:45:50 +0300</pubDate>
									</item>
					</channel>
	</rss>
