例如:它从地址表中提取某些内容并列出他们的地址,从信息表中提取某些内容并列出他们的性别和年龄等。
这样,我就可以创建动态页面,更轻松地管理,并具有搜索和索引功能。尝试编写所有代码,但它已经远远超出了我的能力范围。我认为应该有一个CMS可以为我完成所有这些工作。
希望您能理解我的问题,我已经尝试用许多措辞进行搜索。
你做出了正确的决定。转移到一个CMS。
我已经成功地将数据(类别、文章和图片)迁移到Joomla安装中,步骤如下:
如果图片在你的CMS中与文章分开存储,至少在文本前添加一个<p>并在末尾添加剩余部分;
要执行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;
}
}
另一个想法可能是使用Cakephp http://cakephp.org/。Cake可以读取您的数据库模式并生成您需要启动和运行的文件。(如果您有命令行访问权限)。它使用MVC模式,设置相当快速。我个人在许多类似您描述的项目中使用过Cake。
如果不手动操作,将所有帖子移入Wordpress可能会有点困难。但是,如果您不想编写太多代码并且愿意手动移动所有内容,则Wordpress或其他开箱即用的CMS系统可能适合您。
写这个并不是很复杂。实际上,它类似于我的一个内容管理系统的工作方式:我为每个“模块”都有一个类,属性指定要从数据库表中选择记录的列、在概述页面(表标题)中显示的列以及在表单视图(输入)中显示的列。
试图将已经构建好的网站塞进像WordPress或Joomla!这样的CMS中,这些CMS想要为您做所有事情(包括前端网站),这将会非常麻烦。即使您将CMS塞进您的网站并让它工作,它也会变得臃肿不堪。
有四个问号:
Q. 哪个易用的 CMS 是最好的?
A. Wordpress。
我该如何入手?
A. 学习 PHP。
Q. 是否有一个简单的插件类似于 Joomla 或 Wordpress 或其它可以指向特定表,告诉它标识列,并告诉它列出每一行匹配的内容?
A. 可能有。这是 PHP 中的一个简单任务。
Q. 包括其他表吗?
A. 同上。
以下是一些可能有用的快捷方式,以实现您想要完成的目标:
如果您当前的网站正在生成RSS聚合链接,则WP-RSS-Multi-Importer看起来很有前途。
如果您当前的网站没有RSS,但您可以通过主机控制面板/ phpmyadmin或通过服务器命令行实用程序(如mysqldump)访问数据库,则可以将数据库导出为CSV或XML,并尝试使用WP-All-Import插件将其导入WordPress。
这需要花费更多时间,因为您需要将数据映射到适当的WordPress字段。
如果您既没有RSS也没有访问数据库,则需要“抓取”您的网站。通常这意味着编码,但有几个WordPress插件可能适合您。这里可能会出现很多问题,所以如果最终产品不是您想要的,请不要感到惊讶。
您有几个选项:
还可以查看http://thethemefoundry.com/blog/html-wordpress/ 还可以查看http://wordpress.org/plugins/tablepress/