PageRenderTime 35ms CodeModel.GetById 11ms RepoModel.GetById 0ms app.codeStats 0ms

/_plugins_/mediatheque/medias_fonctions.php

https://bitbucket.org/pombredanne/spip-zone-treemap
PHP | 108 lines | 61 code | 16 blank | 31 comment | 17 complexity | f907d717461d4db62eaef918e304b7f5 MD5 | raw file
  1. <?php
  2. /**
  3. * Plugin Portfolio/Gestion des documents
  4. * Licence GPL (c) 2006-2008 Cedric Morin, romy.tetue.net
  5. *
  6. */
  7. if (!defined("_ECRIRE_INC_VERSION")) return;
  8. /**
  9. * Enter description here...
  10. *
  11. * @param unknown_type $id_document
  12. * @param unknown_type $statut
  13. * @param unknown_type $id_rubrique
  14. * @param unknown_type $type
  15. * @param unknown_type $ajax
  16. * @return unknown
  17. */
  18. function medias_puce_statut_document($id_document, $statut){
  19. if ($statut=='publie') {
  20. $puce='puce-verte.gif';
  21. }
  22. else if ($statut == "prepa") {
  23. $puce = 'puce-blanche.gif';
  24. }
  25. else if ($statut == "poubelle") {
  26. $puce = 'puce-poubelle.gif';
  27. }
  28. else
  29. $puce = 'puce-blanche.gif';
  30. return http_img_pack($puce, $statut, "class='puce'");
  31. }
  32. //
  33. // <BOUCLE(DOCUMENTS)>
  34. //
  35. // http://doc.spip.org/@boucle_DOCUMENTS_dist
  36. function boucle_DOCUMENTS($id_boucle, &$boucles) {
  37. $boucle = &$boucles[$id_boucle];
  38. $id_table = $boucle->id_table;
  39. // on ne veut pas des fichiers de taille nulle,
  40. // sauf s'ils sont distants (taille inconnue)
  41. array_unshift($boucle->where,array("'($id_table.taille > 0 OR $id_table.distant=\\'oui\\')'"));
  42. /**
  43. * N'afficher que les modes de documents que l'on accepte
  44. * Utiliser le "pipeline medias_documents_visibles" pour en ajouter
  45. */
  46. if (!isset($boucle->modificateur['criteres']['mode'])
  47. AND !isset($boucle->modificateur['criteres']['tout'])) {
  48. $modes = pipeline('medias_documents_visibles',array('image','document'));
  49. $f = sql_serveur('quote', $serveur, true);
  50. $modes = addslashes(join(',', array_map($f, array_unique($modes))));
  51. array_unshift($boucle->where,array("'IN'", "'$id_table.mode'", "'($modes)'"));
  52. }
  53. // Pour une boucle generique (DOCUMENTS) sans critere de lien, verifier
  54. // qu notre document est lie a un element publie
  55. // (le critere {tout} permet de les afficher tous quand meme)
  56. // S'il y a un critere de lien {id_article} par exemple, on zappe
  57. // ces complications (et tant pis si la boucle n'a pas prevu de
  58. // verification du statut de l'article)
  59. if (!isset($boucle->modificateur['tout'])
  60. AND !isset($boucle->modificateur['criteres']['statut'])
  61. ) {
  62. if ($GLOBALS['var_preview']) {
  63. array_unshift($boucle->where,"'($id_table.statut IN (\"publie\",\"prop\",\"prepa\"))'");
  64. } else {
  65. if ($GLOBALS['meta']["post_dates"] == 'non')
  66. array_unshift($boucle->where,array("'<'", "'$id_table" . ".date_publication'", "sql_quote(quete_date_postdates())"));
  67. array_unshift($boucle->where,"'(($id_table.statut = \"publie\"))'");
  68. }
  69. }
  70. return calculer_boucle($id_boucle, $boucles);
  71. }
  72. function lien_objet($id,$type,$longueur=80,$connect=NULL){
  73. include_spip('inc/liens');
  74. $titre = traiter_raccourci_titre($id, $type, $connect);
  75. $titre = typo($titre['titre']);
  76. if (!strlen($titre))
  77. $titre = _T('info_sans_titre');
  78. $url = generer_url_entite($id,$type);
  79. return "<a href='$url' class='$type'>".couper($titre,$longueur)."</a>";
  80. }
  81. function critere_DOCUMENTS_orphelins_dist($idb, &$boucles, $crit) {
  82. $boucle = &$boucles[$idb];
  83. $quoi = '@$Pile[0]["orphelins"]';
  84. $cond = $crit->cond;
  85. $not = $crit->not?"":"NOT";
  86. $select = sql_get_select("DISTINCT id_document","spip_documents_liens as oooo");
  87. $where = "'".$boucle->id_table.".id_document $not IN ($select)'";
  88. if ($cond)
  89. $where = "($quoi)?$where:''";
  90. $boucle->where[]= $where;
  91. }
  92. ?>