Exemplo n.º 1
0
        private void CleanPropertiesOnDeletion(int contentTypeId)
        {
            // first delete from all master document types
            //TODO: Verify no endless loops with mixins
            DocumentType.GetAllAsList().FindAll(dt => dt.MasterContentTypes.Contains(contentTypeId)).ForEach(
                dt => CleanPropertiesOnDeletion(dt.Id));

            //Initially Content.getContentOfContentType() was called, but because this doesn't include members we resort to sql lookups and deletes
            var            tmp = new List <int>();
            IRecordsReader dr  = SqlHelper.ExecuteReader("SELECT nodeId FROM cmsContent INNER JOIN umbracoNode ON cmsContent.nodeId = umbracoNode.id WHERE ContentType = " + contentTypeId + " ORDER BY umbracoNode.text ");

            while (dr.Read())
            {
                tmp.Add(dr.GetInt("nodeId"));
            }
            dr.Close();

            foreach (var contentId in tmp)
            {
                SqlHelper.ExecuteNonQuery("DELETE FROM cmsPropertyData WHERE PropertyTypeId =" + this.Id + " AND contentNodeId = " + contentId);
            }

            // invalidate content type cache
            ContentType.FlushFromCache(contentTypeId);
        }
Exemplo n.º 2
0
        /// <summary>
        /// Ov
        /// </summary>
        /// <param name="d"></param>
        /// <returns></returns>

        public override System.Xml.XmlNode ToXMl(System.Xml.XmlDocument d)
        {
            // Get the value from
            string v = "";

            try
            {
                IRecordsReader dr = SqlHelper.ExecuteReader("Select [value] from cmsDataTypeprevalues where id in (" + SqlHelper.EscapeString(Value.ToString()) + ")");

                while (dr.Read())
                {
                    if (v.Length == 0)
                    {
                        v += dr.GetString("value");
                    }
                    else
                    {
                        v += "," + dr.GetString("value");
                    }
                }
                dr.Close();
            }
            catch {}
            return(d.CreateCDataSection(v));
        }
Exemplo n.º 3
0
        public static XPathNodeIterator UpcomingEvents()
        {
            int    contentType = DocumentType.GetByAlias("Event").Id;
            string property    = "start";

            string sql = string.Format(@"SELECT distinct contentNodeId from cmsPropertyData
            inner join cmsPropertyType ON 
            cmspropertytype.contenttypeid = {0} and
            cmspropertytype.Alias = '{1}' and
            cmspropertytype.id = cmspropertydata.propertytypeid
            where dataDate > GETDATE()", contentType, property);

            ISqlHelper     sqlhelper = umbraco.BusinessLogic.Application.SqlHelper;
            IRecordsReader rr        = sqlhelper.ExecuteReader(sql);

            XmlDocument doc  = new XmlDocument();
            XmlNode     root = umbraco.xmlHelper.addTextNode(doc, "events", "");

            while (rr.Read())
            {
                XmlNode x = (XmlNode)umbraco.content.Instance.XmlContent.GetElementById(rr.GetInt("contentNodeId").ToString());

                if (x != null)
                {
                    x = doc.ImportNode(x, true);
                    root.AppendChild(x);
                }
            }
            rr.Close();
            rr.Dispose();

            return(root.CreateNavigator().Select("."));
        }
Exemplo n.º 4
0
        private static List <Relation> GetRelations(string alias, string sort, int parentId, int number)
        {
            List <Relation> retval    = new List <Relation>();
            ISqlHelper      sqlhelper = umbraco.BusinessLogic.Application.SqlHelper;

            IRecordsReader rr = sqlhelper.ExecuteReader(

                string.Format(@"
                SELECT TOP {0} umbracoRelation.id
                FROM umbracoRelation
                INNER JOIN umbracoRelationType ON umbracoRelationType.id = umbracoRelation.relType AND umbracoRelationType.alias = @alias
                where parentId = @parent
                ORDER BY datetime {1}                
                ", number, sort)

                ,
                sqlhelper.CreateParameter("@parent", parentId),
                sqlhelper.CreateParameter("@alias", alias)
                );

            while (rr.Read())
            {
                retval.Add(new Relation(rr.GetInt("id")));
            }
            rr.Close();
            rr.Dispose();

            return(retval);
        }
Exemplo n.º 5
0
        protected override void setupNode()
        {
            base.setupNode();

            IRecordsReader dr      = SqlHelper.ExecuteReader("Select alias,design,master from cmsTemplate where nodeId = " + this.Id);
            bool           hasRows = dr.Read();

            if (hasRows)
            {
                _alias  = dr.GetString("alias");
                _design = dr.GetString("design");
                //set the master template to zero if it's null
                _mastertemplate = dr.IsNull("master") ? 0 : dr.GetInt("master");
            }
            dr.Close();

            if (Umbraco.Core.Configuration.UmbracoSettings.DefaultRenderingEngine == RenderingEngine.Mvc && ViewHelper.ViewExists(this))
            {
                _design = ViewHelper.GetFileContents(this);
            }
            else
            {
                _design = MasterPageHelper.GetFileContents(this);
            }
        }
Exemplo n.º 6
0
        private void setupStyleSheet(bool loadFileData, bool updateStyleProperties)
        {
            // Get stylesheet data
            IRecordsReader dr = SqlHelper.ExecuteReader("select filename, content from cmsStylesheet where nodeid = " + base.Id.ToString());

            if (dr.Read())
            {
                if (!dr.IsNull("filename"))
                {
                    _filename = dr.GetString("filename");
                }
                // Get Content from db or file
                if (!loadFileData)
                {
                    if (!dr.IsNull("content"))
                    {
                        _content = dr.GetString("content");
                    }
                }
                else
                if (File.Exists(IOHelper.MapPath(SystemDirectories.Css + "/" + this.Text + ".css")))
                {
                    StreamReader re    = File.OpenText(IOHelper.MapPath(SystemDirectories.Css + "/" + this.Text + ".css"));
                    string       input = null;
                    bool         read  = true;
                    _content = string.Empty;
                    // NH: Updates the reader to support properties
                    bool   readingProperties = false;
                    string propertiesContent = String.Empty;
                    while ((input = re.ReadLine()) != null && read)
                    {
                        if (input.Contains("EDITOR PROPERTIES"))
                        {
                            readingProperties = true;
                        }
                        else if (readingProperties)
                        {
                            propertiesContent += input.Replace("\n", "") + "\n";
                        }
                        else
                        {
                            _content += input.Replace("\n", "") + "\n";
                        }
                    }
                    re.Close();

                    // update properties
                    if (updateStyleProperties)
                    {
                        if (propertiesContent != String.Empty)
                        {
                            parseProperties(propertiesContent);
                        }
                    }
                }
            }
            dr.Close();
        }
Exemplo n.º 7
0
        private void LoadMacros()
        {
            IRecordsReader macroRenderings = SqlHelper.ExecuteReader("select id, macroAlias, macroName from cmsMacro order by macroName");

            rpt_macros.DataSource = macroRenderings;
            rpt_macros.DataBind();

            macroRenderings.Close();
        }
Exemplo n.º 8
0
        public DataSet FromIRecordReader(IRecordsReader recordsReader)
        {
            // Get the internal RawDataReader (obsolete)
            System.Data.SqlClient.SqlDataReader reader
                = ((umbraco.DataLayer.SqlHelpers.SqlServer.SqlServerDataReader)recordsReader).RawDataReader;
            DataSet dataSet = new DataSet();

            do
            {
                DataTable dataTable   = new DataTable();
                DataTable schemaTable = reader.GetSchemaTable();

                if (schemaTable != null)
                {
                    // A query returning records was executed
                    foreach (DataRow dataRow in schemaTable.Rows)
                    {
                        // Create a column name that is unique in the data table
                        string columnName = (string)dataRow["ColumnName"];
                        // Add the column definition to the data table
                        DataColumn column = new DataColumn(columnName, (Type)dataRow["DataType"]);
                        dataTable.Columns.Add(column);
                    }

                    dataSet.Tables.Add(dataTable);

                    // Fill the data table we just created
                    while (reader.Read())
                    {
                        DataRow dataRow = dataTable.NewRow();
                        for (int i = 0; i < reader.FieldCount; i++)
                        {
                            dataRow[i] = reader.GetValue(i);
                        }
                        dataTable.Rows.Add(dataRow);
                    }
                }
                else
                {
                    // No records were returned, return number of rows affected
                    dataTable.Columns.Add(new DataColumn("RowsAffected"));
                    dataSet.Tables.Add(dataTable);
                    DataRow rowsAffectedRow = dataTable.NewRow();
                    rowsAffectedRow[0] = reader.RecordsAffected;
                    dataTable.Rows.Add(rowsAffectedRow);
                }
            } // Go trough all result sets
            while (reader.NextResult());

            // Close the data reader so the underlying connection is closed
            recordsReader.Close();

            return(dataSet);
        }
Exemplo n.º 9
0
        /// <summary>
        /// Initializes this instance.
        /// </summary>
        private void initialize()
        {
            IRecordsReader dr = SqlHelper.ExecuteReader(
                "Select id, sortorder, [value] from cmsDataTypePreValues where id = @id order by sortorder",
                SqlHelper.CreateParameter("@id", Id));

            if (dr.Read())
            {
                _sortOrder = dr.GetInt("sortorder");
                _value     = dr.GetString("value");
            }
            dr.Close();
        }
Exemplo n.º 10
0
        public Member[] GetMembers()
        {
            ArrayList      retval = new ArrayList();
            IRecordsReader dr     = SqlHelper.ExecuteReader("select member from cmsMember2MemberGroup where memberGroup = @memberGroup",
                                                            SqlHelper.CreateParameter("@memberGroup", Id));

            while (dr.Read())
            {
                retval.Add(new Member(dr.GetInt("member")));
            }
            dr.Close();

            return((Member[])retval.ToArray(typeof(Member)));
        }
Exemplo n.º 11
0
        public Member[] GetMembers(string usernameToMatch)
        {
            ArrayList      retval = new ArrayList();
            IRecordsReader dr     = SqlHelper.ExecuteReader("select member from cmsMember2MemberGroup inner join cmsMember on cmsMember.nodeId = cmsMember2MemberGroup.member where loginName like @username and memberGroup = @memberGroup",
                                                            SqlHelper.CreateParameter("@memberGroup", Id), SqlHelper.CreateParameter("@username", usernameToMatch + "%"));

            while (dr.Read())
            {
                retval.Add(new Member(dr.GetInt("member")));
            }
            dr.Close();

            return((Member[])retval.ToArray(typeof(Member)));
        }
Exemplo n.º 12
0
        /// <summary>
        /// Retrieve a list of the node id's of all CMSNodes given the objecttype
        /// </summary>
        /// <param name="objectType">The objecttype identifier</param>
        /// <returns>
        /// A list of all node ids which each are associated to a CMSNode
        /// </returns>
        public int[] GetAllUniqueNodeIdsFromObjectType(Guid objectType)
        {
            IRecordsReader dr = SqlHelper.ExecuteReader("Select id from umbracoNode where nodeObjectType = @type",
                                                        SqlHelper.CreateParameter("@type", objectType));
            var tmp = new System.Collections.ArrayList();

            while (dr.Read())
            {
                tmp.Add(dr.GetInt("id"));
            }
            dr.Close();

            return((int[])tmp.ToArray(typeof(int)));
        }
Exemplo n.º 13
0
        private void initProperty()
        {
            IRecordsReader dr = SqlHelper.ExecuteReader("Select stylesheetPropertyAlias,stylesheetPropertyValue from cmsStylesheetProperty where nodeId = " + this.Id.ToString());

            if (dr.Read())
            {
                _alias = dr.GetString("stylesheetPropertyAlias");
                _value = dr.GetString("stylesheetPropertyValue");
            }
            else
            {
                throw new ArgumentException("NO DATA EXSISTS");
            }
            dr.Close();
        }
Exemplo n.º 14
0
        /// <summary>
        /// Gets the pre values collection.
        /// </summary>
        /// <param name="DataTypeId">The data type id.</param>
        /// <returns></returns>
        public static SortedList GetPreValues(int DataTypeId)
        {
            SortedList     retval = new SortedList();
            IRecordsReader dr     = SqlHelper.ExecuteReader(
                "Select id, sortorder, [value] from cmsDataTypePreValues where DataTypeNodeId = @dataTypeId order by sortorder",
                SqlHelper.CreateParameter("@dataTypeId", DataTypeId));

            int counter = 0;

            while (dr.Read())
            {
                retval.Add(counter, new PreValue(dr.GetInt("id"), dr.GetInt("sortorder"), dr.GetString("value")));
                counter++;
            }
            dr.Close();
            return(retval);
        }
Exemplo n.º 15
0
 public template(int templateID)
 {
     if (templateCache["template" + templateID.ToString()] != null)
     {
         template t = (template)templateCache["template" + templateID];
         this._masterTemplate = t._masterTemplate;
         this._templateAlias  = t._templateAlias;
         this._templateDesign = t._templateDesign;
         this._masterTemplate = t._masterTemplate;
         this._templateName   = t._templateName;
     }
     else
     {
         using (IRecordsReader templateData = SqlHelper.ExecuteReader("select nodeId, alias, master, text, design from cmsTemplate inner join umbracoNode node on node.id = cmsTemplate.nodeId where nodeId = @templateID", SqlHelper.CreateParameter("@templateID", templateID)))
         {
             if (templateData.Read())
             {
                 // Get template master and replace content where the template
                 if (!templateData.IsNull("master"))
                 {
                     _masterTemplate = templateData.GetInt("master");
                 }
                 if (!templateData.IsNull("alias"))
                 {
                     _templateAlias = templateData.GetString("alias");
                 }
                 if (!templateData.IsNull("text"))
                 {
                     _templateName = templateData.GetString("text");
                 }
                 if (!templateData.IsNull("design"))
                 {
                     _templateDesign = templateData.GetString("design");
                 }
                 templateData.Close();
                 templateCache.Insert("template" + templateID.ToString(), this);
             }
         }
     }
     // Only check for master on legacy templates - can show error when using master pages.
     if (!UmbracoSettings.UseAspNetMasterPages)
     {
         checkForMaster(templateID);
     }
 }
Exemplo n.º 16
0
        public static List <LogItem> ConvertIRecordsReader(IRecordsReader reader)
        {
            var items = new List <LogItem>();

            while (reader.Read())
            {
                items.Add(new LogItem(
                              reader.GetInt("userId"),
                              reader.GetInt("nodeId"),
                              reader.GetDateTime("DateStamp"),
                              ConvertLogHeader(reader.GetString("logHeader")),
                              reader.GetString("logComment")));
            }

            reader.Close();
            reader.Dispose();

            return(items);
        }
Exemplo n.º 17
0
        /// <summary>
        /// Retrieve a list of the unique id's of all CMSNodes given the objecttype
        /// </summary>
        /// <param name="objectType">The objecttype identifier</param>
        /// <returns>
        /// A list of all unique identifiers which each are associated to a CMSNode
        /// </returns>
        public Guid[] GetAllUniquesFromObjectType(Guid objectType)
        {
            IRecordsReader dr = SqlHelper.ExecuteReader("Select uniqueID from umbracoNode where nodeObjectType = @type",
                                                        SqlHelper.CreateParameter("@type", objectType));
            var tmp = new System.Collections.ArrayList();

            while (dr.Read())
            {
                tmp.Add(dr.GetGuid("uniqueID"));
            }
            dr.Close();

            Guid[] retval = new Guid[tmp.Count];
            for (int i = 0; i < tmp.Count; i++)
            {
                retval[i] = (Guid)tmp[i];
            }
            return(retval);
        }
        /// <summary>
        /// Retrieve HTML from the database cache for the given node
        /// </summary>
        /// <param name="nodeId">Id of the node</param>
        /// <param name="fullHtml">string to fill with HTML</param>
        /// <returns>bool indicating success/failure</returns>
        public static bool GetRecord(int nodeId, out string fullHtml)
        {
            fullHtml = "";

            if (nodeId < 1)
            {
                return(false);
            }

            var            success   = false;
            ISqlHelper     sqlHelper = null;
            IRecordsReader result    = null;

            try
            {
                const string sqlQuery = "SELECT fullHTML FROM fullTextCache WHERE nodeId = @nodeId";
                sqlHelper = DataLayerHelper.CreateSqlHelper(global::Umbraco.Core.ApplicationContext.Current.DatabaseContext.ConnectionString);
                result    = sqlHelper.ExecuteReader(sqlQuery, sqlHelper.CreateParameter("@nodeId", nodeId));
                if (result != null && result.HasRecords && result.Read() && result.ContainsField("fullHTML"))
                {
                    fullHtml = result.GetString("fullHTML");
                    success  = true;
                }
            }
            catch (umbraco.UmbracoException ex)
            {
                LogHelper.Error(typeof(DbAccess), "Error In Database Query to fullTextCache", ex);
                fullHtml = "";
            }
            finally
            {
                if (result != null)
                {
                    result.Close();
                }
                if (sqlHelper != null)
                {
                    sqlHelper.Dispose();
                }
            }
            return(success);
        }
Exemplo n.º 19
0
        /// <summary>
        /// Retrive a list of Content sharing the ContentType
        /// </summary>
        /// <param name="ct">The ContentType</param>
        /// <returns>A list of Content objects sharing the ContentType defined.</returns>
        public static Content[] getContentOfContentType(ContentType ct)
        {
            IRecordsReader dr = SqlHelper.ExecuteReader("Select nodeId from  cmsContent INNER JOIN umbracoNode ON cmsContent.nodeId = umbracoNode.id where ContentType = " + ct.Id + " ORDER BY umbracoNode.text ");

            System.Collections.ArrayList tmp = new System.Collections.ArrayList();

            while (dr.Read())
            {
                tmp.Add(dr.GetInt("nodeId"));
            }
            dr.Close();

            Content[] retval = new Content[tmp.Count];
            for (int i = 0; i < tmp.Count; i++)
            {
                retval[i] = new Content((int)tmp[i]);
            }

            return(retval);
        }
Exemplo n.º 20
0
        /// <summary>
        /// Retrieves the top level nodes in the hierarchy
        /// </summary>
        /// <param name="ObjectType">The Guid identifier of the type of objects</param>
        /// <returns>
        /// A list of all top level nodes given the objecttype
        /// </returns>
        public static Guid[] TopMostNodeIds(Guid ObjectType)
        {
            IRecordsReader dr = SqlHelper.ExecuteReader("Select uniqueID from umbracoNode where nodeObjectType = @type And parentId = -1 order by sortOrder",
                                                        SqlHelper.CreateParameter("@type", ObjectType));

            System.Collections.ArrayList tmp = new System.Collections.ArrayList();

            while (dr.Read())
            {
                tmp.Add(dr.GetGuid("uniqueID"));
            }
            dr.Close();

            Guid[] retval = new Guid[tmp.Count];
            for (int i = 0; i < tmp.Count; i++)
            {
                retval[i] = (Guid)tmp[i];
            }
            return(retval);
        }
Exemplo n.º 21
0
        public virtual List <CMSPreviewNode> GetNodesForPreview(bool childrenOnly)
        {
            List <CMSPreviewNode> nodes = new List <CMSPreviewNode>();
            string sql = @"
select umbracoNode.id, umbracoNode.parentId, umbracoNode.level, umbracoNode.sortOrder, cmsPreviewXml.xml from umbracoNode 
inner join cmsPreviewXml on cmsPreviewXml.nodeId = umbracoNode.id 
where trashed = 0 and path like '{0}' 
order by level,sortOrder";

            string pathExp = childrenOnly ? Path + ",%" : Path;

            IRecordsReader dr = SqlHelper.ExecuteReader(String.Format(sql, pathExp));

            while (dr.Read())
            {
                nodes.Add(new CMSPreviewNode(dr.GetInt("id"), dr.GetGuid("uniqueID"), dr.GetInt("parentId"), dr.GetShort("level"), dr.GetInt("sortOrder"), dr.GetString("xml")));
            }
            dr.Close();

            return(nodes);
        }
Exemplo n.º 22
0
        private void Initialize(int id)
        {
            IRecordsReader dr =
                SqlHelper.ExecuteReader(
                    "select id, uninstalled, upgradeId, installDate, userId, package, versionMajor, versionMinor, versionPatch from umbracoInstalledPackages where id = @id",
                    SqlHelper.CreateParameter("@id", id));

            if (dr.Read())
            {
                Id           = id;
                Uninstalled  = dr.GetBoolean("uninstalled");
                UpgradeId    = dr.GetInt("upgradeId");
                InstallDate  = dr.GetDateTime("installDate");
                User         = User.GetUser(dr.GetInt("userId"));
                PackageId    = dr.GetGuid("package");
                VersionMajor = dr.GetInt("versionMajor");
                VersionMinor = dr.GetInt("versionMinor");
                VersionPatch = dr.GetInt("versionPatch");
            }
            dr.Close();
        }
Exemplo n.º 23
0
        protected override void OnInit(EventArgs e)
        {
            base.OnInit(e);
            IRecordsReader dropdownData = Application.SqlHelper.ExecuteReader("select id, text from umbracoNode where nodeObjectType = '39EB0F98-B348-42A1-8662-E7EB18487560' order by text");

            base.DataValueField = "id";
            base.DataTextField  = "text";
            base.DataSource     = dropdownData;
            base.DataBind();
            base.Items.Insert(0, new ListItem(ui.Text("choose") + "...", ""));

            base.SelectedValue = _data.Value.ToString();

            // Iterate on the control items and mark fields by match them with the Text property!
            //foreach(ListItem li in base.Items)
            //{
            //	if ((","+base.SelectedValue+",").IndexOf(","+li.Value.ToString()+",") > -1)
            //		li.Selected = true;
            //}

            dropdownData.Close();
        }
        protected override void setupNode()
        {
            base.setupNode();

            IRecordsReader dr      = SqlHelper.ExecuteReader("Select alias,design,master from cmsTemplate where nodeId = " + this.Id);
            bool           hasRows = dr.Read();

            if (hasRows)
            {
                _alias  = dr.GetString("alias");
                _design = dr.GetString("design");
                //set the master template to zero if it's null
                _mastertemplate = dr.IsNull("master") ? 0 : dr.GetInt("master");
            }
            dr.Close();

            // test for masterpages
            if (UmbracoSettings.UseAspNetMasterPages)
            {
                _design = getMasterPageContent();
            }
        }
Exemplo n.º 25
0
        private static XPathNodeIterator CommentsToXml(IRecordsReader rr)
        {
            XmlDocument xd = new XmlDocument();

            XmlNode x = umbraco.xmlHelper.addTextNode(xd, "comments", "");

            while (rr.Read())
            {
                XmlNode c = xd.CreateElement("comment");

                c.Attributes.Append(umbraco.xmlHelper.addAttribute(xd, "id", rr.GetInt("id").ToString()));
                c.Attributes.Append(umbraco.xmlHelper.addAttribute(xd, "nodeid", rr.GetInt("nodeid").ToString()));
                c.Attributes.Append(umbraco.xmlHelper.addAttribute(xd, "created", rr.GetDateTime("created").ToString()));

                c.AppendChild(umbraco.xmlHelper.addCDataNode(xd, "name", rr.GetString("name")));
                c.AppendChild(umbraco.xmlHelper.addCDataNode(xd, "email", rr.GetString("email")));
                c.AppendChild(umbraco.xmlHelper.addCDataNode(xd, "website", rr.GetString("website")));
                c.AppendChild(umbraco.xmlHelper.addCDataNode(xd, "message", rr.GetString("comment")));

                x.AppendChild(c);
            }

            xd.AppendChild(x);
            rr.Close();
            return xd.CreateNavigator().Select(".");
        }
Exemplo n.º 26
0
        protected void Page_Load(object sender, System.EventArgs e)
        {
            //set labels on properties...
            pp_insertAltField.Text = ui.Text("templateEditor", "alternativeField");
            pp_insertAltText.Text  = ui.Text("templateEditor", "alternativeText");
            pp_insertBefore.Text   = ui.Text("templateEditor", "preContent");
            pp_insertAfter.Text    = ui.Text("templateEditor", "postContent");

            pp_FormatAsDate.Text = ui.Text("templateEditor", "formatAsDate");
            pp_casing.Text       = ui.Text("templateEditor", "casing");
            pp_encode.Text       = ui.Text("templateEditor", "encoding");



            if (UmbracoConfig.For.UmbracoSettings().Templates.UseAspNetMasterPages)
            {
                tagName.Value = "umbraco:Item";
            }

            // either get page fields or dictionary items
            string fieldSql = "";

            if (helper.Request("tagName") == "UMBRACOGETDICTIONARY")
            {
                fieldSql            = "select '#'+[key] as alias from cmsDictionary order by alias";
                m_IsDictionaryMode  = true;
                pp_insertField.Text = "Insert Dictionary Item";
            }
            else
            {
                //exclude built-in memberhip properties from showing up here
                var exclude = Constants.Conventions.Member.GetStandardPropertyTypeStubs()
                              .Select(x => SqlSyntaxContext.SqlSyntaxProvider.GetQuotedValue(x.Key)).ToArray();

                fieldSql = string.Format(
                    "select distinct alias from cmsPropertyType where alias not in ({0}) order by alias",
                    string.Join(",", exclude));
                pp_insertField.Text = ui.Text("templateEditor", "chooseField");
            }

            fieldPicker.ChooseText = ui.Text("templateEditor", "chooseField");
            fieldPicker.StandardPropertiesLabel = ui.Text("templateEditor", "standardFields");
            fieldPicker.CustomPropertiesLabel   = ui.Text("templateEditor", "customFields");

            IRecordsReader dataTypes = SqlHelper.ExecuteReader(fieldSql);

            fieldPicker.DataTextField  = "alias";
            fieldPicker.DataValueField = "alias";
            fieldPicker.DataSource     = dataTypes;
            fieldPicker.DataBind();
            fieldPicker.Attributes.Add("onChange", "document.forms[0].field.value = document.forms[0]." + fieldPicker.ClientID + "[document.forms[0]." + fieldPicker.ClientID + ".selectedIndex].value;");
            dataTypes.Close();

            altFieldPicker.ChooseText = ui.Text("templateEditor", "chooseField");
            altFieldPicker.StandardPropertiesLabel = ui.Text("templateEditor", "standardFields");
            altFieldPicker.CustomPropertiesLabel   = ui.Text("templateEditor", "customFields");

            IRecordsReader dataTypes2 = SqlHelper.ExecuteReader(fieldSql);

            altFieldPicker.DataTextField  = "alias";
            altFieldPicker.DataValueField = "alias";
            altFieldPicker.DataSource     = dataTypes2;
            altFieldPicker.DataBind();
            altFieldPicker.Attributes.Add("onChange", "document.forms[0].useIfEmpty.value = document.forms[0]." + altFieldPicker.ClientID + "[document.forms[0]." + altFieldPicker.ClientID + ".selectedIndex].value;");
            dataTypes2.Close();

            // Pre values
            if (!m_IsDictionaryMode)
            {
                foreach (string s in preValuesSource)
                {
                    fieldPicker.Items.Add(new ListItem(s, s.Replace("@", "")));
                    altFieldPicker.Items.Add(new ListItem(s, s.Replace("@", "")));
                }
            }
        }
Exemplo n.º 27
0
        protected void Page_Load(object sender, System.EventArgs e)
        {
            //set labels on properties...
            pp_insertAltField.Text = ui.Text("templateEditor", "alternativeField");
            pp_insertAltText.Text  = ui.Text("templateEditor", "alternativeText");
            pp_recursive.Text      = ui.Text("templateEditor", "recursive");
            pp_insertBefore.Text   = ui.Text("templateEditor", "preContent");
            pp_insertAfter.Text    = ui.Text("templateEditor", "postContent");

            pp_FormatAsDate.Text      = ui.Text("templateEditor", "formatAsDate");
            pp_casing.Text            = ui.Text("templateEditor", "casing");
            pp_encode.Text            = ui.Text("templateEditor", "encoding");
            pp_convertLineBreaks.Text = ui.Text("templateEditor", "convertLineBreaks");
            pp_removePTags.Text       = ui.Text("templateEditor", "removeParagraph");


            if (UmbracoSettings.UseAspNetMasterPages)
            {
                tagName.Value = "umbraco:Item";
            }

            // either get page fields or dictionary items
            string fieldSql = "";

            if (helper.Request("tagName") == "UMBRACOGETDICTIONARY")
            {
                fieldSql            = "select '#'+[key] as alias from cmsDictionary order by alias";
                m_IsDictionaryMode  = true;
                pp_insertField.Text = "Insert Dictionary Item";
            }
            else
            {
                fieldSql            = "select distinct alias from cmsPropertyType order by alias";
                pp_insertField.Text = umbraco.ui.Text("templateEditor", "chooseField");
            }

            IRecordsReader dataTypes = SqlHelper.ExecuteReader(fieldSql);

            fieldPicker.DataTextField  = "alias";
            fieldPicker.DataValueField = "alias";
            fieldPicker.DataSource     = dataTypes;
            fieldPicker.DataBind();
            fieldPicker.Attributes.Add("onChange", "document.forms[0].field.value = document.forms[0]." + fieldPicker.ClientID + "[document.forms[0]." + fieldPicker.ClientID + ".selectedIndex].value;");
            dataTypes.Close();

            IRecordsReader dataTypes2 = SqlHelper.ExecuteReader(fieldSql);

            altFieldPicker.DataTextField  = "alias";
            altFieldPicker.DataValueField = "alias";
            altFieldPicker.DataSource     = dataTypes2;
            altFieldPicker.DataBind();
            altFieldPicker.Attributes.Add("onChange", "document.forms[0].useIfEmpty.value = document.forms[0]." + altFieldPicker.ClientID + "[document.forms[0]." + altFieldPicker.ClientID + ".selectedIndex].value;");
            dataTypes2.Close();

            fieldPicker.Items.Insert(0, new ListItem(ui.Text("general", "choose", base.getUser())));
            altFieldPicker.Items.Insert(0, new ListItem(ui.Text("general", "choose", base.getUser())));

            // Pre values
            if (!m_IsDictionaryMode)
            {
                foreach (string s in preValuesSource)
                {
                    fieldPicker.Items.Add(new ListItem(s, s.Replace("@", "")));
                    altFieldPicker.Items.Add(new ListItem(s, s.Replace("@", "")));
                }
            }
        }
        public void ProcessRequest(HttpContext context)
        {
            legacyAjaxCalls.Authorize();

            string format     = context.Request.QueryString["format"];
            bool   returnJson = format == "json";

            context.Response.ContentType = returnJson ? "application/json" : "text/plain";

            int    count      = 2;
            string prefixText = context.Request.QueryString["q"];

            if (string.IsNullOrEmpty(prefixText))
            {
                prefixText = context.Request.QueryString["term"];
            }

            string group = context.Request.QueryString["group"];
            string id    = context.Request.QueryString["id"];

            string         sql;
            IRecordsReader reader = null;

            try
            {
                //if all is correct
                if (!String.IsNullOrEmpty(group) && !String.IsNullOrEmpty(id))
                {
                    sql = @"SELECT TOP (20) tag FROM cmsTags WHERE tag LIKE @prefix AND cmsTags.id not in 
                        (SELECT tagID FROM cmsTagRelationShip WHERE NodeId = @nodeId) AND cmstags." + SqlSyntaxContext.SqlSyntaxProvider.GetQuotedColumnName("group") + " = @group;";
                    using (var sqlHelper = Application.SqlHelper)
                        using (var rr = sqlHelper.ExecuteReader(sql,
                                                                sqlHelper.CreateParameter("@count", count),
                                                                sqlHelper.CreateParameter("@prefix", prefixText + "%"),
                                                                sqlHelper.CreateParameter("@nodeId", id),
                                                                sqlHelper.CreateParameter("@group", group)
                                                                ))
                        {
                            reader = rr;
                        }
                }
                else
                {
                    //fallback...
                    sql = "SELECT TOP (20) tag FROM cmsTags WHERE tag LIKE @prefix";

                    using (var sqlHelper = Application.SqlHelper)
                        using (var rr = sqlHelper.ExecuteReader(sql,
                                                                sqlHelper.CreateParameter("@count", count),
                                                                sqlHelper.CreateParameter("@prefix", prefixText + "%")
                                                                ))
                        {
                            reader = rr;
                        }
                }

                var tagList = new List <string>();
                while (reader.Read())
                {
                    tagList.Add(reader.GetString("tag"));
                }

                context.Response.Write(returnJson
                    ? new JavaScriptSerializer().Serialize(tagList)
                    : string.Join(Environment.NewLine, tagList));
            }
            catch (Exception ex)
            {
                LogHelper.Error <TagsAutoCompleteHandler>("An error occurred", ex);
            }
            finally
            {
                if (reader != null)
                {
                    reader.Close();
                    reader.Dispose();
                }
            }
        }