Exemple #1
0
shared_ptr<EntitiesEntities> EntitiesEntity::getChilds(const shared_ptr<IPortalDatabase> &database, const ObjectsTypes &types, const RangeUint32 &range, CommonOrder order) const
{
	shared_ptr<DbSqlSelect> select;
	getChildsStatement(database, types, range, false, false, false, select);

	switch(order)
	{
	case coSubmitDateAsc:		select->orderBy.add(DbSqlField(DBTABLES::SNAPSHOT_OBJECTS::SUBMIT_DATE, DBTABLES::SNAPSHOT_OBJECTS_TABLE), DbSqlField::foAsc);
								break;

	case coSubmitDateDesc:		select->orderBy.add(DbSqlField(DBTABLES::SNAPSHOT_OBJECTS::SUBMIT_DATE, DBTABLES::SNAPSHOT_OBJECTS_TABLE), DbSqlField::foDesc);
								break;

	case coPositionAsc:			select->orderBy.add(DbSqlField(DBTABLES::SNAPSHOT_OBJECTS::POSITION, DBTABLES::SNAPSHOT_OBJECTS_TABLE), DbSqlField::foAsc);
								break;

	case coPositionDesc:		select->orderBy.add(DbSqlField(DBTABLES::SNAPSHOT_OBJECTS::POSITION, DBTABLES::SNAPSHOT_OBJECTS_TABLE), DbSqlField::foDesc);
								break;

	default:					OS_EXCEPTION("Invalid order");
								break;
	}

	return getChilds(database, types, range, select);
}
Exemple #2
0
shared_ptr<EntitiesEntities> EntitiesEntity::getChilds(const shared_ptr<IPortalDatabase> &database, const ExtensionsComponentID &component, const RangeUint32 &range, CommonOrder order) const
{
	OS_TIMER_PERFORMANCE(TP, _S("Entity::getChilds"));
	shared_ptr<DbSqlSelect> select;
	getChildsStatement(database, portalObjectTypeSection, range, false, false, false, select);
	// Aggiunge alla select la tabella delle sezioni
	select->tables.add(DbSqlTable(DBTABLES::SECTIONS_TABLE));
	// Crea la join tra la tabella di cache e quella delle sezioni
	select->where.add(DbSqlField(DBTABLES::SNAPSHOT_OBJECTS::CURRENT, DBTABLES::SNAPSHOT_OBJECTS_TABLE), DbSqlField(DBTABLES::SECTIONS::ID, DBTABLES::SECTIONS_TABLE));
	// Seleziona il componente specificato
	select->where.add(DbSqlField(DBTABLES::SECTIONS::COMPONENT, DBTABLES::SECTIONS_TABLE), Convert::toSQL(component.toUTF16()));

	switch(order)
	{
	case coSubmitDateAsc:		select->orderBy.add(DbSqlField(DBTABLES::SNAPSHOT_OBJECTS::SUBMIT_DATE, DBTABLES::SNAPSHOT_OBJECTS_TABLE), DbSqlField::foAsc);
								break;

	case coSubmitDateDesc:		select->orderBy.add(DbSqlField(DBTABLES::SNAPSHOT_OBJECTS::SUBMIT_DATE, DBTABLES::SNAPSHOT_OBJECTS_TABLE), DbSqlField::foDesc);
								break;

	case coPositionAsc:			select->orderBy.add(DbSqlField(DBTABLES::SNAPSHOT_OBJECTS::POSITION, DBTABLES::SNAPSHOT_OBJECTS_TABLE), DbSqlField::foAsc);
								break;

	case coPositionDesc:		select->orderBy.add(DbSqlField(DBTABLES::SNAPSHOT_OBJECTS::POSITION, DBTABLES::SNAPSHOT_OBJECTS_TABLE), DbSqlField::foDesc);
								break;

	default:					OS_EXCEPTION("Invalid order");
								break;
	}

	return getChilds(database, portalObjectTypeSection, range, select);
}
Exemple #3
0
   void xml_node::clear() {

      std::vector<xml_node*>  const& childs = getChilds();

      for( xml_node * node : childs ) {
         node->clear();
      }

      _childs.clear();
   }
Exemple #4
0
String OMLItem::getSingleText()
{
	// Alcuni tag dovrebbero contenere solo un figlio di testo nel body, quali il [code], il [noparse] e il [?].
	if(getChilds().size() == 1)
	{
		shared_ptr<OMLItem> text = getChilds().front();

		//Assert sotto commentato, un caso come
		//[img][center]alfa[/center][/img]
		//finisce qui con text->getTagName() == "center".
		//OS_ASSERT(text->getTagName() == OMLItem::ITEM_TAG_TEXT);
		
		if(text->getTagName() == OMLItem::ITEM_TAG_TEXT)
		{
			return text->getParam(OMLItem::ITEM_PARAM_TEXT);
		}
	}

	return String::EMPTY;
}
Exemple #5
0
// save as text (must implement!)
bool ConfigVarBase::saveText( SaveStruct &s ) const
{
	QTextStream &ts = *s.ts;
	QString name = getName();
	const ChildList &cl = getChilds();
	if ( !s.firstItem )
	{
		ts << ",\n";
	}
	s.firstItem = 0;
	if ( !cl.empty() )
	{
		// must serialize as group now
		// put indent
		putIndent(ts, s.indent);
		if ( !name.isEmpty() )
		{
			ts << '"' << escape(name) << '"' << " : {\n";
		}
		else
		{
			ts << "{\n";
		}
		SaveStruct ls(s);
		ls.indent++;
		ls.firstItem = 1;
		size_t nwr = 0;
		for (size_t i=0; i<cl.size(); i++)
		{
			if ( cl[i]->varFlags & CF_TRANSIENT )
				continue;
			if ( !cl[i]->saveText(ls) )
				return 0;
			nwr++;
		}
		if ( nwr )
			ts << '\n';
		putIndent(ts, s.indent);
		ts << "}";

	}
	return 1;
}
Exemple #6
0
shared_ptr<EntitiesEntities> EntitiesEntity::getChilds(const shared_ptr<IPortalDatabase> &database, PortalObjectType type, const RangeUint32 &range, CommonOrder order) const
{
	return getChilds(database, ObjectsTypes(1, type), range, order);
}
Exemple #7
0
shared_ptr<EntitiesEntities> EntitiesEntity::getChilds(const shared_ptr<IPortalDatabase> &database, PortalObjectType type, const RangeUint32 &range, shared_ptr<DbSqlSelect> select) const
{
	return getChilds(database, ObjectsTypes(1, type), range, select);
}