1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107
| public class DerniersDocumentsPublies : ContentByQueryWebPartPaging
{
bool _afficherDocsSousSites;
public DerniersDocumentsPublies()
{
}
protected override void OnLoad(EventArgs e)
{
base.OnLoad(e);
//Mise à jour du paramètre weburl
//Les documents doivent être récupérés à partir du site en cours
if (string.IsNullOrEmpty(this.WebUrl) && string.IsNullOrEmpty(this.ListName))
{
this.WebUrl = SPContext.Current.Web.ServerRelativeUrl;
}
if (!_afficherDocsSousSites)
{
//Ne pas afficher les documents des sous-sites
if (string.IsNullOrEmpty(this.WebsOverride) || !this.WebsOverride.Equals(this.WebUrl))
{
this.WebsOverride = this.WebUrl;
}
}
else
{
//Affichage des documents sur les sous-sites donc pas de websoverride
this.WebsOverride = string.Empty;
}
}
/////=================================================================================================================================
/// <summary>
/// Surcharge de la méthode getToolParts afin de prendre en compte les propriétés
/// </summary>
/// <returns></returns>
/////=================================================================================================================================
public override ToolPart[] GetToolParts()
{
ToolPart[] toolparts = new ToolPart[3];
ToolPart wptp0 = base.GetToolParts()[0];
ToolPart wptp1 = base.GetToolParts()[1];
CustomPropertyToolPart custom = new CustomPropertyToolPart();
toolparts[0] = wptp0;
toolparts[1] = wptp1;
toolparts[2] = custom;
return toolparts;
}
protected override void CreateChildControls()
{
this.ProcessDataDelegate = new ProcessData(ProcessItems);
base.CreateChildControls();
}
///=================================================================================================================================
/// <summary>
/// Méthode déclenchée à la récupération des données
/// </summary>
/// <param name="dt"></param>
/// <returns></returns>
///=================================================================================================================================
protected DataTable ProcessItems(DataTable dt)
{
DataTable dataTable = null;
//dt.DefaultView.RowFilter = string.Format(CultureInfo.CurrentCulture,"PublishingStartDate <= '{0}' AND (PublishingExpirationDate >= '{0}' OR PublishingExpirationDate='')", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss",CultureInfo.CurrentCulture));
dataTable = dt.DefaultView.ToTable();
dt = dataTable;
return dt;
}
///=====================================================================================================================================
/// <summary>
/// Indique le nombre de news à afficher
/// </summary>
///=====================================================================================================================================
[WebBrowsable(true),
Category("Paramètres"),
Personalizable(PersonalizationScope.Shared),
WebPartStorage(Storage.Personal),
WebDisplayName("Avec documents des sous-sites"),
Description("Affichage aussi des documents issus des sous-sites"),
DefaultValueAttribute("true")]
public bool AfficherDocsSousSites
{
get { return _afficherDocsSousSites; }
set { _afficherDocsSousSites = value; }
}
}
} |
Partager