7

(I don't know the best way to word this but here goes!) I have a site that is in PHP and it grabs certain data from tables depending on an identifier input like .php?id=500 and looks up from each table grabbing each respective fields and putting them into tables or lists.

What is the best easy CMS that I would use? How would I approach this? Is there a simple plugin for something like Joomla or Wordpress or the such I can point to specific tables, tell it the identifier column, and tell it to list every row that matches? Including other tables?

IE. It pulls something from address table and lists all their address, pulls something from information and lists their gender age, and etc.

So this way, it creates dynamic pages that I can manage a lot easier and have searches and indexes. Trying to code all that and it's getting way ahead of me. I figured there's a CMS that does all this for me.

I hope you guys understand my question, I tried searching many wordings of this.

4

11 に答える 11

1

あなたは正しい決断をしています。CMS に移動します。データ (カテゴリ、記事、および画像) を Joomla インストールに正常に移行しました。手順は次のとおりです。

  1. CMS関連データから選択
  2. 画像が CMS の記事とは別に保存されている場合は、少なくとも 1 つを先頭に追加します

    テキストに追加し、残りを追加します。

  3. J2.5+ は記事の画像とサムネイルをサポートしていますが、テンプレートはまだそれを実装していません
  4. 記事レベルできめ細かなアクセスが必要でない限り、すべての記事を単一のアセット ID に向ける
  5. サンプル記事を作成し、追加のフィールドを使用して空白を埋める
  6. 可能であれば、IntroText と FullText を適切に分離してください。それぞれに入るhtmlが自己完結型で検証されることを確認してください
  7. データが UTF-8 であることを確認し (そうでない場合は変換してください)、SQL インポートを実行します。
  8. 記事マネージャーから再構築アイコンを選択して、アセットと ltr-rtl フィールドを再構築します

SQL インポートを実行するには、content_frontpage テーブルもクリアする必要があります。

これは、別の cms から行を受け取り、それを Joomla に入れる関数です。いくつかのコメントはイタリア語で書かれていますが、それを行う方法の感触をつかむ必要があります. mdc2j は、データを適切にエスケープし、必要に応じてフォーマット/カテゴリ ID などを変更するために作成した専用関数です。

function importaArticolo($row) {
    global $link;
    echo "<h3>Importa Articolo ".$row->Id . " (". $row->titolo . ")</h3>";

    /*
        " ('$row->id', '0', 'test', 'test_alias', '', 'tutto il testo riga per riga', ".
        "  '', '0', '0', '0', '111', '2001-01-25 16:30:15', '4', 'la firma', '2001-01-25 16:30:15',  ".
        " '0', '0', '0000-00-00 00:00:00', '2001-01-25 16:30:30', '0000-00-00 00:00:00', 'list of images?', 'list of urls?',  ".
        " '".'{"show_title":"","link_titles":"","show_intro":"","show_category":"","link_category":"","show_parent_category":"","link_parent_category":"","show_author":"","link_author":"","show_create_date":"","show_modify_date":"","show_publish_date":"","show_item_navigation":"","show_icons":"","show_print_icon":"","show_email_icon":"","show_vote":"","show_hits":"","show_noauth":"","alternative_readmore":"","article_layout":""}'."', ".
        "  '1', '0', '0', 'kewords', 'key-description',  ".
        " '0', '0',  ".
        " '".'{"robots":"","author":"","rights":"","xreference":""}'."', '0', '*', '');";
        */
    try {
        $idcategory = mdc2jCategory($row->idCanale);
        if ($row->isDossier * 1 == 1) {
            if (1*$idcategory==10) {
                $idcategory= 28;
            }
        }
        $default_user=42;
        $SQL=sprintf(
            "INSERT INTO `".$GLOBALS['db_database_new']."`.`eco_content` (`id`, `asset_id`, `title`, `alias`, `title_alias`, `introtext`, ".
            " `fulltext`, `state`, `sectionid`, `mask`, `catid`, `created`, `created_by`, `created_by_alias`, `modified`,  ".
            " `modified_by`, `checked_out`, `checked_out_time`, `publish_up`, `publish_down`, `images`, `urls`, `attribs`,  ".
            " `version`, `parentid`, `ordering`, `metakey`, `metadesc`, `access`, `hits`, `metadata`, `featured`, `language`,  ".
            " `xreference`)  ".
            " VALUES  ".
            " ('%d', '0', '%s', '%s', '', '%s', ".
            "  '%s', '%d', '0', '0', '%d', '%s', '%d', '%s', '%s',  ".
            " '0', '0', '0000-00-00 00:00:00', '%s', '0000-00-00 00:00:00', '', '',  ".
            " '".'{"show_title":"","link_titles":"","show_intro":"","show_category":"","link_category":"","show_parent_category":"","link_parent_category":"","show_author":"","link_author":"","show_create_date":"","show_modify_date":"","show_publish_date":"","show_item_navigation":"","show_icons":"","show_print_icon":"","show_email_icon":"","show_vote":"","show_hits":"","show_noauth":"","alternative_readmore":"","article_layout":""}'."', ".
            "  '1', '0', '0', '%s', '%s',  ".
            " '%d', '%d',  ".
            " '".'{"robots":"","author":"","rights":"","xreference":""}'."', '%d', '*', '');",
        $row->Id,
        mysql_real_escape_string($row->titolo),
        makeAlias($row->titolo), // alias
        mdc2jSommario($row), // this creates the introtext

        mdc2jText($row), // this returns the text
        $row->idStato=="2"?0:1, // idStato="suspended"
        $idcategory, // correct category id
        mdc2jDate($row->dataCreazione),
        $default_user,
        mdc2jFirma($row->firma),
        mdc2jDate($row->dataCreazione), //2001-01-25 16:30:15
        mdc2jDate($row->dataPubblica), //2001-01-25 16:30:30

        mdc2jMetaKeywords($row), // adds "dossier" if appropriate
        mdc2jMetaDesc($row), // if not assigned, create it automatically
        $row->idStato=="2"?3:1,
        $row->viewCounter,
        0 //featured: (($row->Id % 13) == 0 ? 1 : 0 )
        );


        $res = mysql_query($SQL);

        if ($res) {
            $lastid = mysql_insert_id();
            //echo "Article $lastid ($row->Id) Inserted into DB<br>";
                    // this will import images in a separate tool, an ignite gallery, so it's not really meaningful for you:
            importaImmagini($row->Id, $row->canale, $row->cid);


            return 1;

        }
        else {
            echo "<span class='err'>WARNING: article not inserted in db</span>"."<br>".mysql_errno($link) . ": " . mysql_error($link);
            echo "<textarea cols='80' rows='3'>".$SQL."</textarea><br>";
        }

        return 0;

    }
    catch (Exception $e)
    {
        echo "<span class='err'>Exception! ".$e->getMessage()."</span><br>";
        return 0;
    }
}
于 2013-01-24T07:55:29.017 に答える
0

これは、自分で書くのにそれほど複雑ではありません。実際、これは私のコンテンツ管理システムの1つがどのように機能するかと似ています。各「モジュール」のクラスと、レコードを選択するデータベーステーブル、概要ページに表示する列(テーブル見出し)を指定するプロパティがあります。フォームビュー(入力)に表示する列。

すでに構築されているWebサイトをWordPressやJoomlaなどのCMSに統合しようとしています。箱から出して(フロントエンドサイトを含めて)すべてをやりたいというのは、お尻の痛みになります。そして、あなたがあなたのサイトにCMSを靴べらにしてそれを機能させたとしても、それは地獄のように肥大化するでしょう。

于 2013-01-23T16:05:46.257 に答える
0

これを行うことができる CMS ソリューションはたくさんあります。正直なところ、すでにサイトを立ち上げて運用していて、CMS だけが必要な場合、Joomla や WordPress はやり過ぎです。PyroCMSを見てください。まさにあなたが説明していることを行います。セットアップと実行は非常に簡単で、優れたドキュメントがあります。

Python に興味があり、ハイブリッド ソリューションに興味がある場合は、メイン サイトに PHP フレームワークを使用し、CMS にDjango (Python を使用) を使用して成功しました。

于 2013-01-23T15:59:05.170 に答える
0

良い質問です。Joomlaは回答済みなのでWordPressについて回答します。すべてのテーブル データを xml ( RSSまたはWordPress )にエクスポートする php ファイルを作成することをお勧めします。次に、 WordPress インポート機能を使用して、WordPress に情報をインポートするだけです。

このようにして、両方のテーブルを保持し、WordPress に情報を完全にインポートできます。

興味があれば、テーブルのフォーマットを教えていただければ、おそらくいくつかのコードを一緒に作成できます。

最後に、 WordPress Stack Exchange ( wordpress.stackexchange.com)で回答を検索して再投稿する必要があります。

于 2013-06-13T15:50:47.340 に答える
0

Cakephp を使用するよりも、もう少し低レベルのアプローチは、データベースの処理に大いに役立つActiveRecordの使用です。

例: PHP ActiveRecordを使用する

于 2015-01-12T13:56:35.320 に答える
0

いくつかのオプションがあります:

  1. PHP テンプレートを WordPress 互換テーマに変換します。
  2. 既存のテーマを使用し、TablePress プラグインをインストールしてテーブルを管理します。

http://themefoundry.com/blog/html-wordpress/ も参照してください。 http://wordpress.org/plugins/tablepress/も参照してください。

于 2013-12-24T03:26:11.237 に答える
0

もう 1 つのアイデアは、Cakephp http://cakephp.org/を使用することです。Cake は、データベース スキームを読み取り、起動して実行するために必要なファイルを生成できます。(コマンド ライン アクセスがある場合)。MVC パターンを使用しており、セットアップが非常に簡単です。私はあなたが説明している多くのプロジェクトで個人的にケーキを使用しました。

Wordpress は、手動で行わずにすべての投稿を取得するのは少し難しいかもしれません. しかし、あまりコードを書きたくない場合や、すべてのワードプレスを手動で移動したい場合や、すぐに使える CMS システムが適しているかもしれません。

于 2013-05-31T17:29:42.533 に答える
-1

yii や codeigniter などのフレームワークを使用できます。彼らはあなたの人生をとても楽にすることができます。これらのフレームワークを使用して、CMS を非常に簡単かつ迅速に作成できます。

id のようなパラメーターを渡すことができます

于 2014-12-22T13:25:56.357 に答える
-1
  1. WordPress、Joomla、または drupal を使用して、新しい CMS をセットアップします。
  2. すべてのデータベース アイテムをその CMS にインポートするための PHP を作成します。
于 2014-12-28T00:12:53.970 に答える