Selam. İlk önce ben flarumda üye grupu olarak Bussines ve ya premium bir grup yaradıb, diğer kullanıcıların bazı özelliklerini bu gruplara vermek istiyorum. ancak bazı özelliklerde yarattığım grubu seçerken özellik o grub ve admin grubuna izin veriyor.

Diğer bir sorun ise. Ben kullanici profili için Masqurade eklentisini kullaniyorum. Bu eklentide kullanicilarin sahip olduğu fieldler mesala: isim, soy isim yaş olduğu zaman bussinesde yalnızca şirket, telefon numarası görünmüsini istiyorum. Ancak masqurade eklentisi buna izin vermiyor. Yeterli değil.

Şimdi böyle bir eklenti olmadğı zaman başak bir yoldan düzelte bilirim düşündüm. Ancak onunlada olmaz sanırım. Mesela özel css alanında kullaniciya aid field görünümünü bussines hesaplar için görünmüz yapmak.

Her hangi bir fikirleriniz varmı?Bu konuda yardımcı olursanız sevinirim. Belki de eklenti kurucularına bir fikir önerisi olabilir.

    MrRobot öncelikle alanları css ile gizlemek mümkün olabilir öncelikle size yinede bu durumda F12 geliştirici panelinde bu verilerin görülebileceğini bunun sorun olup olmadığını sormak istiyorum.

      huseyinfiliz F12 ile baktığımda filedlerin hiç bir atributu yok. Neye göre gizleyeceğimi bulamıyorum.

      Özel Footer alanı ile böyle düzenleme verdim lakin profile girildiyinde tüm fildler gozukuyor sayfanı yeniledikde düzeliyor ilgili alanlar gözüküyor. Bunu nasil geliştire bilirim? Keşke flarumda böyle bir eklenti kursalarda bu sorunda hall edilse.

      <script>
      document.addEventListener('DOMContentLoaded', function() {
          // Sayfa yüklendikten sonra işlemi başlat
          function updateFields() {
              var isBusiness = document.querySelector('.Badge--group--12'); // Business kullanıcı kontrolü
              var fields = document.querySelectorAll('.MasqueradeRoot .Form-group, .Masquerade-Bio-Set'); // Tüm alanları seç
      
              fields.forEach(function(field) {
                  var label = field.querySelector('label, .Masquerade-Bio-Field'); // Alan başlığını al
                  var labelText = label ? label.textContent.trim() : '';
      
                  // Business hesabı değilse, iş alanlarını gizle
                  if (!isBusiness) {
                      // İş alanları
                      var businessFields = [
                          'İş saatları',
                          'Şirkət adı',
                          'Telefon',
                          'Ünvan',
                          'Github',
                          'Telegram'
                      ];
      
                      // Eğer etiket business alanlarından birine aitse gizle
                      if (businessFields.some(function(name) {
                          return labelText.includes(name);
                      })) {
                          field.style.display = 'none'; // Business alanlarını gizle
                      }
                  } else {
                      // Business hesabı ise sadece business alanlarını göster
                      var allowedFields = ['Şirkət adı', 'Telefon', 'İş saatları', 'Ünvan', 'Github', 'Telegram'];
      
                      if (!allowedFields.some(function(name) {
                          return labelText.includes(name);
                      })) {
                          field.style.display = 'none'; // Diğer alanları gizle
                      }
                  }
              });
          }
      
          // İlk yüklendiğinde alanları güncelle
          updateFields();
      
          // Sayfa yeniden yüklendikten sonra da aynı işlemi uygulamak için setTimeout kullanabiliriz
          window.addEventListener('load', function() {
              setTimeout(updateFields, 500); // Sayfa yüklendikten sonra 500ms bekleyip alanları güncelle
          });
      });
      </script>

      Bu kodlari kullandigimda hem profil duzenlemede hemde profil goruntulemede her gurupa ozel ilgili alanlar gozukuyor.

      <script>
      document.addEventListener('DOMContentLoaded', function() {
          // Sayfa yüklendikten sonra alanların gizlenmesini sağlayan fonksiyon
          function toggleFields() {
              var isBusiness = document.querySelector('.Badge--group--12'); // Business profili kontrol et
              var fields = document.querySelectorAll('.Form-group.Field');
              
              fields.forEach(function(field) {
                  var label = field.querySelector('label');
                  var labelText = label ? label.textContent.trim() : '';
      
                  // Boş olan bütün alanları gizle
                  var input = field.querySelector('.FormControl');
                  var answerText = input ? input.value.trim() : '';
                  if (!answerText) {
                      field.style.display = 'none';
                  }
      
                  if (isBusiness) {
                      // Business profilde sadece business alanları görünsün
                      var businessFields = [
                          'Şirkət adı', 'Telefon', 'İş saatları', 'Ünvan'
                      ];
                      var showBusinessField = businessFields.some(function(name) {
                          return labelText.includes(name);
                      });
      
                      // İş alanları dışında diğerlerini gizle
                      if (!showBusinessField) {
                          field.style.display = 'none';
                      }
                  } else {
                      // Normal kullanıcıda business alanları gizle
                      if (
                          labelText.includes('Şirkət adı') ||
                          labelText.includes('Telefon') ||
                          labelText.includes('İş saatları') ||
                          labelText.includes('Ünvan')
                      ) {
                          field.style.display = 'none';
                      }
                  }
      
                  // Telegram ve Github alanlarını her zaman göster
                  if (labelText.includes('Telegram') || labelText.includes('Github')) {
                      field.style.display = 'block';
                  }
              });
          }
      
          // Sayfa yüklendikten sonra hemen çalıştır
          toggleFields();
      
          // Profil düzenleme sayfasında değişiklik yapıldıkça tekrar çalıştır
          var form = document.querySelector('.ProfileConfigurePane');
          if (form) {
              form.addEventListener('input', function() {
                  setTimeout(toggleFields, 100); // Profilde değişiklik yapıldıkça tekrar kontrol et
              });
          }
      
          // Sayfa yenilenmesini veya profil düzenleme butonlarına tıklanmasını da dinleyelim
          var observer = new MutationObserver(function() {
              toggleFields();  // Sayfa yapısı değiştiğinde tekrar kontrol et
          });
          observer.observe(document.body, {
              childList: true,
              subtree: true
          });
      });
      </script>
      
      <script>
      document.addEventListener('DOMContentLoaded', function() {
          // Sayfa yüklendikten sonra alanların gizlenmesini sağlayan fonksiyon
          function toggleFields() {
              var isBusiness = document.querySelector('.Badge--group--12'); // Business profili kontrol et
              var fields = document.querySelectorAll('.Masquerade-Bio-Set');
              var isGithubTelegram = document.querySelector('.Masquerade-Bio-Field');
      
              fields.forEach(function(field) {
                  var label = field.querySelector('.Masquerade-Bio-Field');
                  var answer = field.querySelector('.Masquerade-Bio-Answer');
                  var labelText = label ? label.textContent.trim() : '';
                  var answerText = answer ? answer.textContent.trim() : '';
      
                  // Boş olan bütün alanları gizle
                  if (!answerText) {
                      field.style.display = 'none';
                  }
      
                  // Sosyal Şəbəkələr alanını gizle
                  if (labelText.includes('Sosial şəbəkələr:')) {
                      field.style.display = 'none';
                  }
      
                  if (isBusiness) {
                      // Business profilde sadece business alanları görünsün
                      var allowedFields = ['Şirkət adı:', 'Telefon:', 'Veb sayt:', 'Ünvan:', 'E-poçt:', 'İş saatları:'];
                      var showField = allowedFields.some(function(name) {
                          return labelText.includes(name);
                      });
                      if (!showField) {
                          field.style.display = 'none';
                      }
                  } else {
                      // Normal kullanıcıda business alanları gizle
                      if (
                          labelText.includes('Telefon:') ||
                          labelText.includes('Şirkət adı:') ||
                          labelText.includes('Veb sayt:') ||
                          labelText.includes('Ünvan:') ||
                          labelText.includes('İş saatları:')
                      ) {
                          field.style.display = 'none';
                      }
                  }
      
                  // Telegram ve Github kullanıcıları için ilgili alanları göster
                  if (labelText.includes('Telegram:') || labelText.includes('Github:')) {
                      field.style.display = 'block';
                  }
              });
          }
      
          // Sayfa yüklendikten sonra hemen çalıştır
          toggleFields();
      
          // Profil düzenleme sayfasında değişiklik yapıldıkça tekrar çalıştır
          var form = document.querySelector('.ProfileConfigurePane');
          if (form) {
              form.addEventListener('input', function() {
                  setTimeout(toggleFields, 100); // Profilde değişiklik yapıldıkça tekrar kontrol et
              });
          }
      
          // Sayfa yenilenmesini veya profil düzenleme butonlarına tıklanmasını da dinleyelim
          var observer = new MutationObserver(function() {
              toggleFields();  // Sayfa yapısı değiştiğinde tekrar kontrol et
          });
          observer.observe(document.body, {
              childList: true,
              subtree: true
          });
      });
      </script>

      İşte düzenlenmiş ve son hali:

      <script>
      document.addEventListener('DOMContentLoaded', function() {
          // Sayfa yüklendikten sonra alanların gizlenmesini sağlayan fonksiyon
          function toggleFields() {
              var isBusiness = document.querySelector('.Badge--group--12'); // Business profili kontrol et
              var fields = document.querySelectorAll('.Form-group.Field');
              
              fields.forEach(function(field) {
                  var label = field.querySelector('label');
                  var labelText = label ? label.textContent.trim() : '';
      
                  // Dolu ya da boş olmasına bakmaksızın alanları gizlememek
                  var input = field.querySelector('.FormControl');
                  var answerText = input ? input.value.trim() : '';
                  if (!answerText && !isBusiness) {
                      // Eğer boşsa ve iş profili değilse gizle
                      field.style.display = 'none';
                  }
      
                  if (isBusiness) {
                      // Business profilde sadece business alanları görünsün
                      var businessFields = [
                          'Şirkət adı', 'Telefon', 'İş saatları', 'Ünvan'
                      ];
                      var showBusinessField = businessFields.some(function(name) {
                          return labelText.includes(name);
                      });
      
                      // İş alanları dışında diğerlerini gizle
                      if (!showBusinessField) {
                          field.style.display = 'none';
                      }
                  } else {
                      // Normal kullanıcıda business alanları gizle
                      if (
                          labelText.includes('Şirkət adı') ||
                          labelText.includes('Telefon') ||
                          labelText.includes('İş saatları') ||
                          labelText.includes('Ünvan')
                      ) {
                          field.style.display = 'none';
                      }
                  }
      
                  // Telegram ve Github alanlarını her zaman göster
                  if (labelText.includes('Telegram') || labelText.includes('Github')) {
                      field.style.display = 'block';
                  }
              });
          }
      
          // Sayfa yüklendikten sonra hemen çalıştır
          toggleFields();
      
          // Profil düzenleme sayfasında değişiklik yapıldıkça tekrar çalıştır
          var form = document.querySelector('.ProfileConfigurePane');
          if (form) {
              form.addEventListener('input', function() {
                  setTimeout(toggleFields, 100); // Profilde değişiklik yapıldıkça tekrar kontrol et
              });
          }
      
          // Sayfa yenilenmesini veya profil düzenleme butonlarına tıklanmasını da dinleyelim
          var observer = new MutationObserver(function() {
              toggleFields();  // Sayfa yapısı değiştiğinde tekrar kontrol et
          });
          observer.observe(document.body, {
              childList: true,
              subtree: true
          });
      });
      </script>
      
      <script>
      document.addEventListener('DOMContentLoaded', function() {
          // Sayfa yüklendikten sonra alanların gizlenmesini sağlayan fonksiyon
          function toggleFields() {
              var isBusiness = document.querySelector('.Badge--group--12'); // Business profili kontrol et
              var fields = document.querySelectorAll('.Masquerade-Bio-Set');
              
              fields.forEach(function(field) {
                  var label = field.querySelector('.Masquerade-Bio-Field');
                  var answer = field.querySelector('.Masquerade-Bio-Answer');
                  var labelText = label ? label.textContent.trim() : '';
                  var answerText = answer ? answer.textContent.trim() : '';
      
                  // Dolu ya da boş olmasına bakmaksızın alanları gizlememek
                  if (!answerText && !isBusiness) {
                      field.style.display = 'none'; // Boşsa ve iş profili değilse gizle
                  }
      
                  // Sosyal Şəbəkələr alanını gizle
                  if (labelText.includes('Sosial şəbəkələr:')) {
                      field.style.display = 'none';
                  }
      
                  if (isBusiness) {
                      // Business profilde sadece business alanları görünsün
                      var allowedFields = ['Şirkət adı:', 'Telefon:', 'Veb sayt:', 'Ünvan:', 'E-poçt:', 'İş saatları:'];
                      var showField = allowedFields.some(function(name) {
                          return labelText.includes(name);
                      });
                      if (!showField) {
                          field.style.display = 'none';
                      }
                  } else {
                      // Normal kullanıcıda business alanları gizle
                      if (
                          labelText.includes('Telefon:') ||
                          labelText.includes('Şirkət adı:') ||
                          labelText.includes('Veb sayt:') ||
                          labelText.includes('Ünvan:') ||
                          labelText.includes('İş saatları:')
                      ) {
                          field.style.display = 'none';
                      }
                  }
      
                  // Telegram ve Github kullanıcıları için ilgili alanları göster
                  if (labelText.includes('Telegram:') || labelText.includes('Github:')) {
                      field.style.display = 'block';
                  }
              });
          }
      
          // Sayfa yüklendikten sonra hemen çalıştır
          toggleFields();
      
          // Profil düzenleme sayfasında değişiklik yapıldıkça tekrar çalıştır
          var form = document.querySelector('.ProfileConfigurePane');
          if (form) {
              form.addEventListener('input', function() {
                  setTimeout(toggleFields, 100); // Profilde değişiklik yapıldıkça tekrar kontrol et
              });
          }
      
          // Sayfa yenilenmesini veya profil düzenleme butonlarına tıklanmasını da dinleyelim
          var observer = new MutationObserver(function() {
              toggleFields();  // Sayfa yapısı değiştiğinde tekrar kontrol et
          });
          observer.observe(document.body, {
              childList: true,
              subtree: true
          });
      });
      </script>

        MrRobot Şimdi bir sorunda çıktı profil duzenlerken dzenledikden sonra save yapmiyor. Kullanici tarafinda degistirebiliyorlar. Masquradede fieldi dogru yaratmadigimdanmidir ya bu javascriptdenmidir anlamadim. Bussinessde save butonu tepki vermiyor?normal profilde calisiyor

        ✅ Sorun çözüldü.

        Şöyleki ben bussines fieldlerini, standart kullanici gruplarında görünmez yapmıştım. Aynısıda bussines grupunda. Ancak bu fieldleri doldurulması zorunlu işaretlemiştim. Arkada görünmez olsalarda zorunlu input alanı olduğu için save butonu çalışmıyuordu. Çünki arkada bu alanın doldurulması zorunluluğu mesajı veriyordu. Zorunluluk işaretlerini kaldırdım çalıştı.

        Hal -hazırda. Şimdilik geçiçi olarak bu yollarla böyle bişey yapmak mümkün.

        *Konu başlığını uygun bir şekilde değiştirirseniz sevinirim.

        Eklenti kurucuları bunu daha kolay yapa bilecek bir eklenti geliştirirlerse çok iyi olur.

        Hadımköy Kombi Servisi Minecraft Türk Sunucular