it-swarm.asia

تغيير الرمز المفضل الافتراضي برمجيًا

أعلم أنه يمكنني تحميل رمز المفضلة من خلال واجهة المستخدم ، ولكن هل هناك طريقة لضبط الرمز المفضل للسمك ، بحيث عندما يتم تمكين السمة ، يتم استخدام الرمز الافتراضي على الفور؟

15
Maciej

يمكنك وضع favicon.ico في مجلد السمة (بنفس مستوى your_theme.info) وسيتم استخدامه تلقائيًا.

يعمل من أجل Drupal 6، 7 & 8.

ملاحظة: الرمز المفضل بشكل كبير مخبأ بواسطة بعض المتصفحات ، قد تحتاج إلى الذهاب إلى أطوال إضافية لرؤية الجديد.

12
rocketeerbkw

في Drupal 8 ، يمكنك استخدام ملف settings.yml ، الموجود في themes/YOURTHEME/config/install/YOURTHEME.settings.yml

فيما يلي مثال لشعار السمة/تخصيص الرمز المفضل:

logo:
  use_default: false
  path: 'themes/YOURTHEME/logo.png'
favicon:
  use_default: false
  path: 'themes/YOURTHEME/favicon.png'

ومع ذلك ، إذا قمت بتغيير هذه الإعدادات أثناء تثبيت السمة بالفعل في إدارة Drupal ، فستحتاج إلى إلغاء تثبيت السمة ثم إعادة تثبيتها. بالإضافة إلى ذلك ، حتى إذا قمت بمسح كافة ذاكرة التخزين المؤقت ، فلن تأخذ Drupal تغييراتك في الاعتبار.

9
amanteaux
<?php
function hook_page_alter(&$pages) {  
  $favicon = "http://example.com/sites/default/files/favicon.ico";
  $type = theme_get_setting('favicon_mimetype');
  drupal_add_html_head_link(array('rel' => 'shortcut icon', 'href' => drupal_strip_dangerous_protocols($favicon), 'type' => $type));
}
?>
5
Sivaji

الطريقة الأولى - عبر template.php

/**
 * Implements hook_html_head_alter().
 */
function MYTHEME_html_head_alter(&$head_elements) {

  // Remove existing favicon location
  global $base_url;
  $default_favicon_element = 'drupal_add_html_head_link:shortcut icon:' . $base_url . '/misc/favicon.ico';
  unset($head_elements[$default_favicon_element]);

  // Specify new favicon location
  $element = array(
    'rel' => 'shortcut icon',
    'href' => '/path-to-favicon/favicon.ico',
  );
  drupal_add_html_head_link($element);
}

الطريقة 2 - عبر وحدة مخصصة

/**
 * Implements hook_html_head_alter().
 */
  // Remove existing favicon location
 function MODULENAME_html_head_alter(&$head_elements) {
   global $base_url;
   $default_favicon_element = 'drupal_add_html_head_link:shortcut icon:' . $base_url . '/misc/favicon.ico';
   unset($head_elements[$default_favicon_element]);

  // Specify new favicon location
  $element = array(
    'rel' => 'shortcut icon',
    'href' => '/path-to-favicon/favicon.ico',
  );
  drupal_add_html_head_link($element);
 }

انظر hook_html_head_alter لمزيد من المعلومات.

ملاحظة: ليس مطلوبًا إدراج موقع الرمز المفضل الجديد في hook_html_head_alter(). وعادة ما أحدده في THEMENAME_preprocess_html() أو MODULENAME_init().

3
timofey.com

يستبدل الرمز التالي (في وحدة مخصصة) الرمز المفضل ، بدلاً من إضافة رمز إضافي.

/**
 * Implements hook_html_head_alter().
 *
 * Replaces the favicon.
 *
 * @param array $head_elements
 */
function MYMODULE_html_head_alter(&$head_elements) {
  foreach ($head_elements as $key => $element) {
    if (1
      // The array key can vary, depending on the original favicon setting.
      && 0 === strpos($key, 'drupal_add_html_head_link:shortcut icon:')
      && !empty($element['#attributes']['href'])
      && 'shortcut icon' === $element['#attributes']['rel']
    ) {
      // Make sure to use a file that actually exists!
      $favicon_path = drupal_get_path('module', 'MYMODULE') . '/img/favicon_32.png';
      $favicon_url = file_create_url($favicon_path);
      // If the favicon path came from a user-provided setting, we would also need drupal_strip_dangerous_protocols().
      $element['#attributes']['href'] = $favicon_url;
      $element['#attributes']['type'] = 'image/png';
      $head_elements[$key] = $element;
    }
  }
}

بالنسبة لموقع ملف favicon ، أقترح إما مجلد الوحدة النمطية لـ MYMODULE ، أو sites/default/favicon.ico. الهدف هو جعل الملف في التحكم في الإصدار ، وليس في مجلد الملفات العامة. لا نريد أن تكون قابلة للكتابة على الويب.

أفترض أن معظم الناس سيستخدمون * .ico بدلاً من * .png ، وفي هذه الحالة يمكن لـ "النوع" الاحتفاظ بقيمته الأصلية.

2
donquixote

في Drupal 8 يجب تعيين favicon على true في YOUR_THEME.settings.yml (الموجود في theme/YOUR_THEME/config/install) ووضع ملف favicon في دليل جذر السمة الخاص بك باسم "favicon .ico "

features: 
   favicon:true
0
vlledo