Home >CMS Tutorial >DEDECMS >How to call the current top column name, ID, url in DreamWeaver

How to call the current top column name, ID, url in DreamWeaver

藏色散人
藏色散人Original
2019-12-17 10:22:562455browse

How to call the current top column name, ID, url in DreamWeaver

How does Dreamweaver call the current top-level column name, ID, and url?

When we use the Dreamweaver template to build a website, we often encounter the need to call the current top-level column name, and the Dreamweaver default {dede:field name='typename' /} can only get the current column. The name of the one-level column on the page, not the name of the top-level column of the current column.

Recommended learning: Dream Weaver cms

Add at the bottom of include/common.func.php:

//获取顶级栏目名
function GetTopTypename($id)
{
    global $dsql;
    $row = $dsql->GetOne("SELECT typename,topid FROM dede_arctype WHERE id= $id");
    if ($row['topid'] == '0')
    {
        return $row['typename'];
    }
    else
    {
        $row1 = $dsql->GetOne("SELECT typename FROM dede_arctype WHERE id= $row[topid]");
        return $row1['typename'];
    }
}

Note: If the top column is not bound To determine the second-level domain name, the called field should be sitepath, so the code should be as follows:

//获取顶级栏目url 
function GetTopTypeurl($id)
{
    global $dsql;
    $row = $dsql->GetOne("SELECT sitepath,topid FROM dede_arctype WHERE id= $id");
    if ($row['topid'] == '0')
    {
        return $row['sitepath'];
    }
    else
    {
        $row1 = $dsql->GetOne("SELECT sitepath FROM dede_arctype WHERE id= $row[topid]");
        return $row1['sitepath'];
    }
}

The function function called by other fields in the top column can be written as shown above.

Similarly, you can get the top-level column url method (the field called when the top-level column is bound to the second-level domain name is "siturl")

function GetTopTypeurl($id)
{
    global $dsql;
    $row = $dsql->GetOne("SELECT siteurl,topid FROM dede_arctype WHERE id= $id");
    if ($row['topid'] == '0')
    {
        return $row['siteurl'];
    }
    else
    {
        $row1 = $dsql->GetOne("SELECT siteurl FROM dede_arctype WHERE id= $row[topid]");
        return $row1['siteurl'];
    }
}

When called on the article page or column list page, This can be achieved by adding the following line of code where you want to call the column name.

{dede:field name='typeid' function="GetTopTypename(@me)" /}    顶级栏目名
{dede:field name='typeid' function="GetTopTypeurl(@me)" /}     顶级栏目url

dede calls the top column ID

Method 1:

{dede:field.typeid function="GetTopid(@me)"/} dedeyuan recommends this method , it is feasible after testing.

dedeCall the top-level column ID

Method 2:

1. Add this tag syntax

{dede:type}[feild:topid/]{/dede:type}

where you need to call the top-level column ID 2. Modify the source file and find type.lib.php in the taglib directory under the include directory.

Find this statement

$row = $dsql->GetOne(“Select id,typename,typedir,isdefault,ispart,defaultname,namerule2,moresite,siteurl,sitepath
From `dede_arctype` where id=’$typeid’ “);

Modify it to

$row = $dsql->GetOne(“Select id,topid,typename,typedir,isdefault,ispart,defaultname,namerule2,moresite,siteurl,sitepath
From `dede_arctype` where id=’$typeid’ “);

Add

if( $row['topid']==0){$row['topid']=$row['id'];}

like this in the next line of if(!is_array($row)) return ”; , this statement can be called in both top-level columns and sub-columns

The above is the detailed content of How to call the current top column name, ID, url in DreamWeaver. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn