タグ付けされた質問 「7」

バージョンタグは、サイトが使用しているバージョンを単に示すだけでなく、バ​​ージョンにのみ適用される質問に使用する必要があります。

3
コンポーネントが削除されるとWebformデータはどうなりますか?コンポーネントタイプを変更できますか?
数百件の提出物がある複雑なWebフォームを継承しました。コンポーネントの1つは、フォーム送信者の電子メールアドレスをキャプチャするために使用されるTextfieldでした。なんらかの理由で、これはテキストフィールドであり、電子メールフィールドではないため、電子メールアドレスを使用して確認メールを送信できません。 テキストフィールドの電子メールコンポーネントを削除すると、すべてのデータはどうなりますか?消されると思います。 データを保持したままフォームコンポーネントのタイプを変更する方法はありますか? 更新:Drupal 7とWebform 3.19を使用しています
9 7  webforms 

2
ビューのコンテキストフィルターはどのように機能しますか?
私は再びコンテキストフィルターに頭を回そうとしています!しばらく使っていましたが、またまた困惑しました。これが私がやろうとしていることです: このクローンページに挿入された分類用語を使用して、クローンコンテンツノードページを生成します。 例:EXAMPLE.com/white-shoes/blue ユーザーが/ white-shoesページに到達すると、白色に向けられた元のノードページが表示されます。ここで、ユーザーが/ white-shoes / blueに到達すると、同じノードページが表示されますが、今回はすべてのボディコンテンツが書き直され、白色が青色に置き換えられます。 でビュー私はのパスでページ表示を作成する必要があります:%/% 次に、nidを取得するためのコンテキストフィルターを作成します。Content:nidをコンテキストフィルターとして追加します。PROVIDE A DEFAULT VALUEを選択し、次のPHPコードを入力します。 $ x = drupal_lookup_path( 'source'、arg(0)); $ y = explode( '/'、$ x); $ y 1を返します。 このPHPコードは基本的に、URLの/ white-shoes部分をNIDに変換します。しかし、それは機能しません。端末を介してdrush evでコードをテストし、実際に結果が返されたので、動作することを確認しました。 分類用語の名前についても同じことを行い、そのためのコンテキストフィルターも追加します。私が選ぶこの時間は、DEFAULT値を指定すると、選択されたURLからRAW VALUEをし、第二引数を選択します。 ご覧のとおり、コンテキストフィルターのプレビュー値を入力すると、AAA / BBB / CCCになります。デフォルト値は無視されます。2番目の引数を取得することになっていますが、1番目のみを取得しています。SQLステートメントのWHEREを見ると、BBBであるはずのときにAAAを取得していることがわかります。 だから問題は何が間違っているのですか、または私が達成したいことにもっと良い解決策がありますか?
9 7  commerce  views 

2
`form_set_error`出力の場所をどのように変更しますか?
Drupal 7の出力の場所を変更する方法はありform_set_errorますか? 現時点ではdrupal_set_message、フォームのすべてのエラーを画面の上部にキューに入れる方を呼び出します。 代わりに、各メッセージが適切なフィールドの下に表示されるようにします。 これが不可能な場合、使用せずにMODULE_form_name_validate()関数内でフォームに「無効」のフラグを手動で設定できますか?form_set_error
9 7  forms 


3
プログラムでカスタムモジュールのファイルフィールドを使用してコンテンツタイプを作成する
以前に作成したカスタムモジュールを作成していますが、フィールドを使用してコンテンツタイプを作成しようとしたのはこれが初めてです。私はhook_node_infoを実装しましたが、コンテンツタイプがadmin_menuのドロップダウンのコンテンツタイプのリストに表示されていますが、参照するadmin/structure/typesとリストされません。 私はhook_installを実装し、別のSOの質問で見つけたいくつかのコードを取得しました。エラーログにデバッグ情報を出力するコードがありますが、すべて正常に機能しているように見えますが、構造コンテンツタイプを参照すると、追加したフィールドが表示されません。 ここにフックがあります: function mymod_node_info() { return array( 'mymod_content' => array( 'name' => t('My Mod'), 'base' => 'mymod_content', 'description' => t('A Description'), ) ); } function mymod_install() { error_log('mymod_install'); $types = node_type_get_types(); if ( ! field_info_field('field_mymod_myfile') ) { $field = array( 'field_name' => 'field_mymod_myfile', 'type' => 'file', ); $created_field = …

3
drupalのnode_save()関数を高速化するにはどうすればよいですか?
node_save()の非効率性に多くの問題を抱えています。しかし、ノードは私の問題を保存していますか?それが最終的に私が調べようとしていることです。 100,000回の繰り返しでループを作成しました。ノードオブジェクトが有効で正しく保存されるための最低限の条件を作成しました。ノードの保存コードは次のとおりです。 $node = new stdClass(); $node->type = "test_page"; node_object_prepare($node); $node->uid = 1; $node->title = $node_title; $node->status = 1; $node->language = LANGUAGE_NONE; if($node = node_submit($node)){ node_save($node); } 結果は次のとおりです。 それぞれnode_save()を使用して、100,000のノードが保存されました。完了するまで5196.22秒かかりました。それは19秒だけを節約します。 控えめに言っても、これは受け入れられません。特に、この人物が毎秒約1200の個別の挿入クエリを取得しており、この人物が毎秒25,000の挿入を取得している場合はなおさらです。 それで、ここで何が起こっているのですか?ボトルネックはどこですか?それはnode_save()関数であり、どのように設計されていますか? それは私のハードウェアでしょうか?私のハードウェアは開発サーバーで、私以外は誰もいません-Intelデュアルコア、3 GHz、16 GBのRAMを搭載したUbuntu 12.04。 ループの実行中の私のリソース使用量は次のとおりです。MySQL27%CPU、6M RAM。PHP 22%CPU 2M RAM。 私のmysql設定はperconaウィザードによって行われました。 Mysqlによると、CPU使用率が70%未満の場合、問題はディスクにバインドされているということです。確かに、私は工場のWD Caviar 7200 RPMしか実行していませんが、1秒あたり19以上の挿入が得られるはずです。 少し前に、1日に30,000ノードを節約することについて書きました。ただし、明確にするために、このノードは外力とは何の関係もありません。これは、node_save()への呼び出しの速度を上げる方法を学ぶための純粋なベンチマークです。 現実的には、node_saveを使用して毎分30,000項目をデータベースに取得する必要があります。ノードの保存がオプションでない場合、独自のdrupal api関数「node_batch_save()」またはINSERTクエリで一括挿入を実行するmysqlの機能を利用する何かを記述できるかどうか疑問に思います。これにアプローチする方法についての考え?
9 7  performance  nodes 

1
フルHTMLコンテンツの本文翻訳をブロックする
ブロックを作成し、本文フィールドにHTMLコンテンツを配置した後、次の理由でこのコンテンツを翻訳できません。 textgroupブロックの文字列blocks:block:1:bodyは、そのテキスト形式のため、翻訳が許可されていません。 プレーンテキストに変更すると、ブロックを翻訳できますが、表示中はプレーンテキストとして扱われます。同じHTMLコンテンツ(翻訳済み)で別のブロックを作成し、特定の言語でのみ表示するように選択する必要がありますか?
9 7  blocks  i18n-l10n 

5
フィールドコレクションを適切に削除する方法
Drupalバージョン:7.21 フィールドコレクションモジュールバージョン:7.x-1.0-beta5 簡単な説明:フィールドコレクションをプログラムでインポートするのに忙しいのですが、それらの一部を削除すると、常にいくつかの「偽の」フィールドコレクションが残っています。 長い説明:ユーザーのプロファイルにフィールドコレクションフィールドがあります。このフィールドコレクションには、3つのテキストフィールドが含まれています。カスタムSQLデータベースからユーザーのフィールドコレクションにデータをインポートしたい。このフィールドコレクションは複数の値を持つことができます。初めてデータをインポートすると、すべてが正常に機能し、フィールドコレクションのフィールドにデータが表示されます。すごい。 しかし、ここでトリッキーな部分があります。たとえば、特定のユーザーに対して、カスタムデータベースから5行をインポートするとします。それらはフィールドコレクションに追加されるため、このフィールドコレクションにはそれぞれ3つのフィールドを含む5つのアイテムがあります。次に、カスタムデータベースからいくつかの行を削除して、このユーザーの残りの行が3行だけになるようにします。インポートを再度実行して、フィールドコレクションの最初の3つのアイテムを更新しますが、前回のインポートの2つのアイテムが残ります。インポートされた行は3つだけですが、フィールドコレクションアイテムが5つあるため、削除する必要があります。 そのため、これらのフィールドコレクションアイテムを削除しようとしましたが、常に1つ以上のアイテムが残っています。ユーザープロファイルを見るとフィールドは空ですが、まだ何かがあります。この時点で、カスタムデータベースにユーザーの新しい行を5つ追加したとしましょう。このユーザーの行は合計で8行になります。次に、インポートを再度実行します。最初の3つのアイテムが更新されますが、4番目の行を追加しようとすると、4番目のフィールドコレクションアイテムからエンティティIDが取得され、更新が試行されますが失敗し、次のエラーが返されます。 Fatal error: Call to undefined method stdClass::save() 以下の各方法でフィールドコレクションアイテムを削除してみました。 // Method 1 entity_delete_multiple('field_collection_item', array($fc_id)); // Method 2 $field_collection_item = field_collection_item_load($fc_id); $field_collection_item->delete(); // Method 3 $field_collection_item = field_collection_item_load($fc_id); $field_collection_item->deleteRevision(); これは私の完全なコードです: function import_user_field_collection(&$user, $old_user_id) { // I do a query to get the rows I want to …
9 7  entities 

9
ビュー3は、公開されたフィルターをプログラムで削除します
いくつかのノードタイプがあり、それぞれが異なる分類用語の語彙を参照しています。カテゴリを表示するには、taxonomy_displayモジュールを使用します。 たとえば、キュ​​ーとビリヤードボールの2つのカテゴリがあります。 Cuesには、from、price to、woodタイプのフィルターがあります。ただし、ボールにはウッドタイプのフィルターはありません。 したがって、taxonomy_term tidがビリヤードボールの語彙を参照している場合は、ウッドタイプフィルターを削除する必要があります。 したがって、プログラムで多くの公開されたフィルターの1つを削除する必要があります。 function modulename_views_pre_view(&$view, &$display_id, &$args) { // Some custom logic wich field_info_instances checking ... $filter_field = 'filter_id'; // Removes from everywhere where i can find filter or filters properties unset($view->display[$view->current_display]->display_options['filters'][$filter_field]); unset($view->display[$view->current_display]->handler->options['filters'][$filter_field]); unset($view->display_handler->display->display_options['filters'][$filter_field]); unset($view->display_handler->options['filters'][$filter_field]); } フィルターフィールドは正常に削除されますが、phpの通知があります。 Notice: Undefined index: field_wood_reference_tid in function views_handler_filter_term_node_tid->exposed_validate() また、hook_pre_execute()でフィールドを削除しようとしていますが、同じ結果が得られます。 function …
9 7  views 

1
本文フィールドの言語がノードと同じ言語で保存されないのはなぜですか?
ユーザーが新しいノードを作成して本文を入力しているときに、ノードをその言語に対して「ニュートラル」に設定するという問題があります。しかし、ノードを保存すると、本文フィールドの言語は英語に設定されます。なぜこれが起こっているのでしょうか?何が原因でしょうか? このサイトでは、英語とフランス語の両方を有効にして構成しています。このサイトはi18nを実行しているD7です。 これは、ノード編集ページの空のボディに似ていますが、フィールドが最初のノードとは異なる言語を取得する方法を知りたい点が異なります。

2
週番号でフィルタリングする方法はありますか?
Drupal 7、ビュー3 長年にわたってデータを表示するように構成されたビューがいくつかあります。データは、日付フィールドをフィルター基準として使用して、年によってフィルターされます。毎年、添付ファイルのビューがあり、週ごとにさらにフィルタリングする必要があります。毎年の週の正確な日付を決定し、それらをフィルター基準として手動で入力するのではなく、週番号、つまり第1週から第52週でフィルターするフィルター基準を追加する方法があるかどうか疑問に思っています。設定が必要な日付のみが各ビューの年であり、残りは週番号に従って自動的に発生します。 各列が追加のビュー添付ファイルであるテーブルビューで、年と週ごとに多くのデータを集計しており、年ごとの週の日付のフィルターを手動で入力する必要がないようにしています。 これについて私にアドバイス/ヒントはありますか?どうもありがとう。 これが私が現在遊んでいるコードです: function x_week_start($date) { $ts = strtotime($date); $start = (date('w', $ts) == 0) ? $ts : strtotime('last sunday', $ts); return date('Y-m-d', $start); } function x_week_end($date) { $ts = strtotime($date); $start = (date('w', $ts) == 0) ? $ts : strtotime('last sunday', $ts); return date('Y-m-d', strtotime('next saturday', …
9 7  views 

3
Drupal 7 Captcha(すべてのWebフォームまたはコンテンツタイプごとのWebフォーム)
私はD7にいます。 Webフォームが有効になっているコンテンツタイプがあります。 要件 このコンテンツタイプのノードのすべてのWebフォームにキャプチャを実装する必要があります。 問題 D7では、フォームにキャプチャを取得するために設定ページでform_idを指定することになっていますが、私はすべての異なるform_idを持つフォームをロードします。 Captchaモジュールを使用しています。 私の要件を実装する方法はありますか?
9 7  webforms  captcha 

5
保存ノードで強制的に画像スタイルを生成
私はまだここに説明されている私の問題を抱えています画像スタイル、フィールドコレクションアイテムで画像を再利用しますが、解決策を得るために諦めました。 私の頭に浮かんだ回避策は、nodesaveでimagestylesの生成を強制することです。そうする可能性はありますか?
9 7  media  entities 

2
匿名ユーザーへのアクセスを制限してメニュー項目を表示する
コンテンツへのアクセスを設定するためにプライベートモジュールを使用するWebサイトがあります。もちろん、一部のページにはメニュー項目があります。ページを非公開に設定すると、適切な権限を持つユーザーだけがそれを見ることができます。これは素晴らしいことであり、私が望んでいたことです。 しかし、メニュー項目に少し問題があります。それらに割り当てられたコンテンツが公開されていない場合(つまり、それらに割り当てられたページが非公開である場合)、それらは消えます。これは問題ありませんが、引き続きそれらの項目を表示できるようにしたいと思いますナビゲーションで、ユーザーがそれらをクリックすると、ログインページが表示され、特定のページを表示するために詳細を入力するよう求められます。 したがって、基本的にはメニュー項目の動作を変更して、Webサイトの匿名および登録済みメンバーに常に表示されるようにしますが、それらをクリックすると、ページが表示されます(ログインしている場合) in)またはログインページにリダイレクトされる(匿名の場合) このような解決策を見つけました。そのようなページがたくさんあるので、私には最適な解決策ではないので、より良いアプローチを探しています。メニュー項目の可視性モジュールも試してみましたが、それも役に立ちませんでした! どうすればこれを達成できますか? ルカ
9 7  routes  users 

2
移行の失敗:on句があいまいです
私はmigrate初めてモジュールを使用していて、db_selectAPIを少し使用しましたが、エラーが発生しています。 いくつかの古いラベルをdrupalタクソノミーに変換しようとしています。/admin/content/migrateページを参照すると、クエリが正しく実行され、移行する必要のある正しい行数が表示されます。しかし、実際にインポートを実行しようとすると、次のエラーが発生します。 ソースプラグインの例外により移行が失敗しました:SQLSTATE [23000]:整合性制約違反:1052 on句の列 'labelId'があいまいです これが、LabelMigrationクラスにあるコードです。 $this->map = new MigrateSQLMap($this->machineName, array( 'labelId' => array('type' => 'int', 'not null' => TRUE) ), MigrateDestinationTerm::getKeySchema() ); $query = db_select('migrate_account_label', 'l') ->fields('l', array('labelId', 'label')) ; $query->leftJoin('migrate_asset_labels_membership', 'lm', 'l.labelId = lm.labelId'); $query->leftJoin('migrate_asset', 'a', 'lm.assetId = a.assetId'); $query->addExpression('count(*)', 'num'); $query->condition('a.type', 'B'); $query->groupBy('l.labelId'); $query->groupBy('l.label'); $this->source = …
9 7  database  migration 

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.