/htroot/manager/processors/metatags.processor.php

https://github.com/gunf/novo-isaak.local · PHP · 117 lines · 97 code · 12 blank · 8 comment · 24 complexity · 516e592e20eba9525357d1b4412b16da MD5 · raw file

  1. <?php
  2. if(IN_MANAGER_MODE!="true") die("<b>INCLUDE_ORDERING_ERROR</b><br /><br />Please use the MODx Content Manager instead of accessing this file directly.");
  3. if(!$modx->hasPermission('manage_metatags')) {
  4. $e->setError(3);
  5. $e->dumpError();
  6. }
  7. // get op code
  8. $opcode = isset($_POST['op']) ? $_POST['op'] : "keys" ;
  9. // add tag
  10. if($opcode=="addtag") {
  11. list($tag,$http_equiv) = explode(";",$_POST["tag"]);
  12. $f = array(
  13. name => $modx->db->escape($_POST["tagname"]),
  14. tag => $modx->db->escape($tag),
  15. tagvalue => $modx->db->escape($_POST["tagvalue"]),
  16. http_equiv => intval($http_equiv)
  17. );
  18. if($f["name"] && $f["tagvalue"]) {
  19. $modx->db->insert($f,$modx->getFullTableName("site_metatags"));
  20. }
  21. }
  22. // edit tag
  23. else if($opcode=="edttag") {
  24. $id = intval($_POST["id"]);
  25. list($tag,$http_equiv) = explode(";",$_POST["tag"]);
  26. $f = array(
  27. name => $modx->db->escape($_POST["tagname"]),
  28. tag => $modx->db->escape($tag),
  29. tagvalue => $modx->db->escape($_POST["tagvalue"]),
  30. http_equiv => intval($http_equiv)
  31. );
  32. if($f["name"] && $f["tagvalue"]) {
  33. $modx->db->update($f,$modx->getFullTableName("site_metatags"),"id='$id'");
  34. }
  35. }
  36. // delete
  37. else if($opcode=="deltag") {
  38. $f = $_POST["tag"];
  39. if(is_array($f) && count($f)>0) {
  40. for($i=0;$i<count($f);$i++) $f[$i]=$modx->db->escape($f[$i]);
  41. $modx->db->delete($modx->getFullTableName("site_metatags"),"id IN('".implode("','",$f)."')");
  42. }
  43. }
  44. else {
  45. $delete_keywords = isset($_POST['delete_keywords']) ? $_POST['delete_keywords'] : array() ;
  46. $orig_keywords = isset($_POST['orig_keywords']) ? $_POST['orig_keywords'] : array() ;
  47. $rename_keywords = isset($_POST['rename_keywords']) ? $_POST['rename_keywords'] : array() ;
  48. // do any renaming that has to be done
  49. foreach($orig_keywords as $key => $value) {
  50. if($rename_keywords[$key]!=$value) {
  51. $sql = "SELECT * FROM $dbase.`".$table_prefix."site_keywords` WHERE BINARY keyword='".addslashes($rename_keywords[$key])."'";
  52. $rs = mysql_query($sql);
  53. $limit = mysql_num_rows($rs);
  54. if($limit > 0) {
  55. echo " - This keyword has already been defined!";
  56. exit;
  57. } else {
  58. $sql = "UPDATE $dbase.`".$table_prefix."site_keywords` SET keyword='".addslashes($rename_keywords[$key])."' WHERE keyword='".addslashes($value)."'";
  59. $rs = mysql_query($sql);
  60. }
  61. }
  62. }
  63. // delete any keywords that need to be deleted
  64. if(count($delete_keywords)>0) {
  65. $keywords_array = array();
  66. foreach($delete_keywords as $key => $value) {
  67. $keywords_array[] = $key;
  68. }
  69. $sql = "DELETE FROM $dbase.`".$table_prefix."keyword_xref` WHERE keyword_id IN(".join($keywords_array, ",").")";
  70. $rs = mysql_query($sql);
  71. if(!$rs) {
  72. echo "Failure on deletion of xref keys: ".mysql_error();
  73. exit;
  74. }
  75. $sql = "DELETE FROM $dbase.`".$table_prefix."site_keywords` WHERE id IN(".join($keywords_array, ",").")";
  76. $rs = mysql_query($sql);
  77. if(!$rs) {
  78. echo "Failure on deletion of keywords ".mysql_error();
  79. exit;
  80. }
  81. }
  82. // add new keyword
  83. if(!empty($_POST['new_keyword'])) {
  84. $nk = $_POST['new_keyword'];
  85. $sql = "SELECT * FROM $dbase.`".$table_prefix."site_keywords` WHERE keyword='".addslashes($nk)."'";
  86. $rs = mysql_query($sql);
  87. $limit = mysql_num_rows($rs);
  88. if($limit > 0) {
  89. echo "Keyword $nk already exists!";
  90. exit;
  91. } else {
  92. $sql = "INSERT INTO $dbase.`".$table_prefix."site_keywords` (keyword) VALUES('".addslashes($nk)."')";
  93. $rs = mysql_query($sql);
  94. }
  95. }
  96. }
  97. // empty cache
  98. include_once "cache_sync.class.processor.php";
  99. $sync = new synccache();
  100. $sync->setCachepath("../assets/cache/");
  101. $sync->setReport(false);
  102. $sync->emptyCache();
  103. $header="Location: index.php?a=81";
  104. header($header);
  105. ?>