Example #1
0
CString CTemplateLoopContext::GetValue(const CString& sName, bool bFromIf) {
	CTemplate* pTemplate = GetCurRow();

	if (!pTemplate) {
		DEBUG("Loop [" + GetName() + "] has no row index [" + CString(GetRowIndex()) + "]");
		return "";
	}

	if (sName.Equals("__ID__")) {
		return CString(GetRowIndex() +1);
	} else if (sName.Equals("__COUNT__")) {
		return CString(GetRowCount());
	} else if (sName.Equals("__ODD__")) {
		return ((GetRowIndex() %2) ? "" : "1");
	} else if (sName.Equals("__EVEN__")) {
		return ((GetRowIndex() %2) ? "1" : "");
	} else if (sName.Equals("__FIRST__")) {
		return ((GetRowIndex() == 0) ? "1" : "");
	} else if (sName.Equals("__LAST__")) {
		return ((GetRowIndex() == m_pvRows->size() -1) ? "1" : "");
	} else if (sName.Equals("__OUTER__")) {
		return ((GetRowIndex() == 0 || GetRowIndex() == m_pvRows->size() -1) ? "1" : "");
	} else if (sName.Equals("__INNER__")) {
		return ((GetRowIndex() == 0 || GetRowIndex() == m_pvRows->size() -1) ? "" : "1");
	}

	return pTemplate->GetValue(sName, bFromIf);
}